00001 #define MAXDIMENSION 3 00002 class BitVec 00003 { 00004 public: 00005 unsigned short vec[MAXDIMENSION]; 00006 short numbits; 00007 BitVec() { 00008 vec[0] = 0; 00009 vec[1] = 0; 00010 vec[2] = 0; 00011 numbits = 0; 00012 } 00013 BitVec(unsigned short *in_vec , short nobits){ 00014 memset(vec, 0,(sizeof(unsigned short)*MAXDIMENSION)); 00015 memcpy(vec, in_vec, (sizeof (unsigned short)*MAXDIMENSION)); 00016 numbits = nobits ; 00017 } 00018 void pup(PUP::er &p){ 00019 p(vec, MAXDIMENSION); 00020 p(numbits); 00021 } 00022 }; 00023 00024 00025 class CkArrayIndexBitVec : public CkArrayIndex 00026 { 00027 public: 00028 BitVec vecIndex; 00029 CkArrayIndexBitVec(){} 00030 CkArrayIndexBitVec(const BitVec &in) { 00031 vecIndex = in; 00032 nInts = sizeof(vecIndex)/sizeof(int); 00033 } 00034 };