--- /dev/null
+ #include "kBitArray.h"\r
+ \r
+/*-----------------------------------------------------------------\r
+ Initilization of the kBitArray\r
+ ---------------------------------------------------------------- */ \r
+ t_kBitArray create_kBitArray (uint size, uint elemSize) {\r
+ uint bitsNeeded; \r
+ t_kBitArray V;\r
+ \r
+ V = (t_kBitArray) malloc (sizeof(struct akbitArr));\r
+ bitsNeeded = size * elemSize;\r
+ V->totalInts = ((bitsNeeded+W-1)/W);\r
+ V->data = (uint *) malloc((V->totalInts) * sizeof(uint));\r
+ V->data[V->totalInts-1]=0000; /** avoids valgrind to blame*/\r
+ V->size = size;\r
+ V->elemSize= elemSize;\r
+ printf("\nKbitVector[0,%d), of elemSize = %u initialized\n",V->size,V->elemSize);\r
+ printf("\ntotalInts = %u, size = %u elemSize = %u\n",V->totalInts,V->size,V->elemSize);\r
+ return V;\r
+}\r
+\r
+uint getKBitArray(t_kBitArray V, register uint i) {\r
+ register uint eSize = V->elemSize;\r
+ register uint answ;\r
+ register uint pos = i * eSize;\r
+ mybitread(answ, V->data, pos, eSize);\r
+ return (answ);\r
+ //return ( bitread(V->data,i * eSize,eSize)); \r
+}\r
+\r
+uint getKBitArraySinMacro(t_kBitArray V, register uint i) {\r
+ register uint eSize = V->elemSize;\r
+ return ( bitread(V->data,i * eSize,eSize)); \r
+}\r
+\r
+void setKBitArray(t_kBitArray V, uint i, uint value){\r
+ register uint eSize = V->elemSize; \r
+ register uint pos = i * eSize;\r
+ mybitwrite(V->data, pos, eSize, value);\r
+}\r
+\r
+void setKBitArraySinMacro(t_kBitArray V, uint i, uint value){\r
+ register uint eSize = V->elemSize;\r
+ bitwrite(V->data,i *eSize, eSize, value);\r
+}\r
+\r
+/*-----------------------------------------------------------------\r
+ freeing resources\r
+ ---------------------------------------------------------------- */ \r
+void destroy_kBitArray (t_kBitArray kBitArray) {\r
+ uint total;\r
+ total = (kBitArray->totalInts) * sizeof(uint);\r
+ \r
+ free(kBitArray->data);\r
+ free(kBitArray); \r
+ printf("\n[destroying a Kbit array of size table]...Freed %u bytes... RAM", total); \r
+}\r
+\r
+\r