Path: blob/devel/ElmerGUI/netgen/libsrc/general/bitarray.cpp
3206 views
/**************************************************************************/1/* File: bitarray.cc */2/* Autho: Joachim Schoeberl */3/* Date: 01. Jun. 95 */4/**************************************************************************/56/*7data type BitArray8*/910#include <mystdlib.h>11#include <myadt.hpp>121314namespace netgen15{16//using namespace netgen;1718BitArray :: BitArray ()19{20size = 0;21data = NULL;22}2324BitArray :: BitArray (int asize)25{26size = 0;27data = NULL;28SetSize (asize);29}3031BitArray :: ~BitArray ()32{33delete [] data;34}3536void BitArray :: SetSize (int asize)37{38if (size == asize) return;39delete [] data;4041size = asize;42data = new unsigned char [Addr (size)+1];43}4445void BitArray :: Set ()46{47if (!size) return;48for (int i = 0; i <= Addr (size); i++)49data[i] = UCHAR_MAX;50}5152void BitArray :: Clear ()53{54if (!size) return;55for (int i = 0; i <= Addr (size); i++)56data[i] = 0;57}58596061void BitArray :: Invert ()62{63if (!size) return;64for (int i = 0; i <= Addr (size); i++)65data[i] ^= 255;66}6768void BitArray :: And (const BitArray & ba2)69{70if (!size) return;71for (int i = 0; i <= Addr (size); i++)72data[i] &= ba2.data[i];73}747576void BitArray :: Or (const BitArray & ba2)77{78if (!size) return;79for (int i = 0; i <= Addr (size); i++)80data[i] |= ba2.data[i];81}828384858687888990919293template <int BASE>94void BitArrayChar<BASE> :: Set ()95{96data = 1;97}9899template <int BASE>100void BitArrayChar<BASE> :: Clear ()101{102data = 0;103}104105106template <int BASE>107void BitArrayChar<BASE> :: Invert ()108{109for (int i = BASE; i < data.Size()+BASE; i++)110data[i] = 1 - data[i];111}112113template <int BASE>114void BitArrayChar<BASE> :: And (const BitArrayChar & ba2)115{116for (int i = BASE; i < data.Size()+BASE; i++)117data[i] &= ba2.data[i];118}119120121template <int BASE>122void BitArrayChar<BASE> :: Or (const BitArrayChar & ba2)123{124for (int i = BASE; i < data.Size()+BASE; i++)125data[i] |= ba2.data[i];126}127128129template class BitArrayChar<0>;130template class BitArrayChar<1>;131}132133134