1 #include "kBitArray.h"
\r
3 /*-----------------------------------------------------------------
\r
4 Initilization of the kBitArray
\r
5 ---------------------------------------------------------------- */
\r
6 t_kBitArray create_kBitArray (uint size, uint elemSize) {
\r
10 V = (t_kBitArray) malloc (sizeof(struct akbitArr));
\r
11 bitsNeeded = size * elemSize;
\r
12 V->totalInts = ((bitsNeeded+W-1)/W);
\r
13 V->data = (uint *) malloc((V->totalInts) * sizeof(uint));
\r
14 V->data[V->totalInts-1]=0000; /** avoids valgrind to blame*/
\r
16 V->elemSize= elemSize;
\r
17 printf("\nKbitVector[0,%d), of elemSize = %u initialized\n",V->size,V->elemSize);
\r
18 printf("\ntotalInts = %u, size = %u elemSize = %u\n",V->totalInts,V->size,V->elemSize);
\r
22 uint getKBitArray(t_kBitArray V, register uint i) {
\r
23 register uint eSize = V->elemSize;
\r
25 register uint pos = i * eSize;
\r
26 mybitread(answ, V->data, pos, eSize);
\r
28 //return ( bitread(V->data,i * eSize,eSize));
\r
31 uint getKBitArraySinMacro(t_kBitArray V, register uint i) {
\r
32 register uint eSize = V->elemSize;
\r
33 return ( bitread(V->data,i * eSize,eSize));
\r
36 void setKBitArray(t_kBitArray V, uint i, uint value){
\r
37 register uint eSize = V->elemSize;
\r
38 register uint pos = i * eSize;
\r
39 mybitwrite(V->data, pos, eSize, value);
\r
42 void setKBitArraySinMacro(t_kBitArray V, uint i, uint value){
\r
43 register uint eSize = V->elemSize;
\r
44 bitwrite(V->data,i *eSize, eSize, value);
\r
47 /*-----------------------------------------------------------------
\r
49 ---------------------------------------------------------------- */
\r
50 void destroy_kBitArray (t_kBitArray kBitArray) {
\r
52 total = (kBitArray->totalInts) * sizeof(uint);
\r
54 free(kBitArray->data);
\r
56 printf("\n[destroying a Kbit array of size table]...Freed %u bytes... RAM", total);
\r