A class for storing tabulated configurations of neighbors for various dimensions. More...
#include <tabulate.h>
Public Member Functions | |
| Tabulated () | |
| The default constructor. | |
| ~Tabulated () | |
| The destructor. | |
| int | read (int dim, const char *filename) |
| Reads tabulated configurations from a file. | |
| int | write (int dim, const char *filename) const |
| Writes tabulated configurations to a file. | |
| int | compute (int dim) |
| Computes tabulated configurations for a specific dimension. | |
| int | define (int dim, char *buffer) |
| Sets tabulated configuration bits to a given table. | |
| const char * | operator[] (int dim) const |
| Retrieves the buffer allocated for the specific dimension or returns the null pointer if none. | |
Static Public Member Functions | |
| static int | get (const char *table, int_t bitnumber) |
| Retrieve the given bit from the given table. | |
| static void | set (char *table, int_t bitnumber) |
| Sets the given bit in the given table. | |
Private Attributes | |
| char * | tables [maxdim] |
| The tabulated configurations. | |
| bool | deallocate [maxdim] |
| Should the configuration tables be deallocated? | |
| int | size [maxdim] |
| The size of the table in bytes for each dimension. | |
Static Private Attributes | |
| static const int | maxdim = 8 |
| The strict upper bound for the supported dimensions. | |
A class for storing tabulated configurations of neighbors for various dimensions.
Definition at line 51 of file tabulate.h.
| chomp::homology::Tabulated::Tabulated | ( | ) |
The default constructor.
| chomp::homology::Tabulated::~Tabulated | ( | ) |
The destructor.
| int chomp::homology::Tabulated::compute | ( | int | dim | ) |
Computes tabulated configurations for a specific dimension.
| int chomp::homology::Tabulated::define | ( | int | dim, | |
| char * | buffer | |||
| ) | [inline] |
Sets tabulated configuration bits to a given table.
Note: This buffer will not be deallocated automatically. Call this function with the null pointer to disable the table.
Definition at line 101 of file tabulate.h.
References deallocate, maxdim, and tables.
{
if ((dim <= 0) || (dim >= maxdim))
return -1;
if (tables [dim] && deallocate [dim])
{
delete [] (tables [dim]);
deallocate [dim] = false;
}
tables [dim] = buffer;
return 0;
} /* Tabulated::define */
| int chomp::homology::Tabulated::get | ( | const char * | table, | |
| int_t | bitnumber | |||
| ) | [inline, static] |
Retrieve the given bit from the given table.
Definition at line 122 of file tabulate.h.
Referenced by chomp::homology::acyclic().
{
if (table [bitnumber >> 3] & (1 << (bitnumber & 0x07)))
return 1;
else
return 0;
} /* Tabulated::get */
| const char * chomp::homology::Tabulated::operator[] | ( | int | dim | ) | const [inline] |
| int chomp::homology::Tabulated::read | ( | int | dim, | |
| const char * | filename | |||
| ) |
Reads tabulated configurations from a file.
| void chomp::homology::Tabulated::set | ( | char * | table, | |
| int_t | bitnumber | |||
| ) | [inline, static] |
Sets the given bit in the given table.
Definition at line 130 of file tabulate.h.
{
table [bitnumber >> 3] |=
static_cast<char> (1 << (bitnumber & 0x07));
return;
} /* Tabulated::set */
| int chomp::homology::Tabulated::write | ( | int | dim, | |
| const char * | filename | |||
| ) | const |
Writes tabulated configurations to a file.
bool chomp::homology::Tabulated::deallocate[maxdim] [private] |
Should the configuration tables be deallocated?
Definition at line 92 of file tabulate.h.
Referenced by define().
const int chomp::homology::Tabulated::maxdim = 8 [static, private] |
The strict upper bound for the supported dimensions.
Definition at line 86 of file tabulate.h.
Referenced by define(), and operator[]().
int chomp::homology::Tabulated::size[maxdim] [private] |
The size of the table in bytes for each dimension.
Definition at line 95 of file tabulate.h.
char* chomp::homology::Tabulated::tables[maxdim] [private] |
The tabulated configurations.
Definition at line 89 of file tabulate.h.
Referenced by define(), and operator[]().
1.7.1