typedef char* PetscBT;
PetscBTCreate(m,&bt) - creates a bit array with enough room to hold m values PetscBTDestroy(&bt) - destroys the bit array PetscBTMemzero(m,bt) - zeros the entire bit array (sets all values to false) PetscBTSet(bt,index) - sets a particular entry as true PetscBTClear(bt,index) - sets a particular entry as false PetscBTLookup(bt,index) - returns the value PetscBTLookupSet(bt,index) - returns the value and then sets it true PetscBTLookupClear(bt,index) - returns the value and then sets it false PetscBTLength(m) - returns number of bytes in array with m bits PetscBTView(m,bt,viewer) - prints all the entries in a bit array
We do not currently check error flags on PetscBTSet(), PetscBTClear(), PetscBTLookup(), PetcBTLookupSet(), PetscBTLength() cause error checking would cost hundreds more cycles then the operation.