The Original CHomP Software
Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes | List of all members
chomp::homengin::BKengine Class Reference

The homology engine that uses the Bill Kalies' engine. More...

#include <engines.h>

Inheritance diagram for chomp::homengin::BKengine:
chomp::homengin::engine chomp::homengin::BK_LTengine

Public Member Functions

int speed () const
 The speed of the engine: The higher the number, the better. More...
 
bool dimsupported (int dim) const
 Is this dimension supported by this engine? More...
 
int memory (const cubfile &X) const
 Rough memory usage estimate for a single set of cubes. More...
 
bool relative () const
 Does this engine compute relative homology? More...
 
bool elementary () const
 Is this engine capable of processing elementary cubes? More...
 
bool spacewrapping () const
 Does this engine support space wrapping? More...
 
void homology (const cubfile &x, algstruct< chomp::homology::integer > &h) const
 Compute the homology of the given set of cubes. More...
 
void homology (const cubfile &x, const cubfile &y, algstruct< chomp::homology::integer > &h) const
 Compute the relative homology of the given pair of sets of cubes. More...
 
const char * name () const
 The name of the engine to be used in the command line. More...
 
std::ostream & describe (std::ostream &out) const
 Describes this particular engine. More...
 
virtual int speed () const
 The speed of the engine: The higher the number, the better. More...
 
virtual bool dimsupported (int dim) const
 Is this dimension supported by this engine? More...
 
virtual int memory (const cubfile &X) const
 Rough memory usage estimate for a single set of cubes. More...
 
virtual bool relative () const
 Does this engine compute relative homology? More...
 
virtual bool elementary () const
 Is this engine capable of processing elementary cubes? More...
 
virtual bool spacewrapping () const
 Does this engine support space wrapping? More...
 
virtual void homology (const cubfile &x, algstruct< chomp::homology::integer > &h) const
 Compute the homology of the given set of cubes. More...
 
virtual void homology (const cubfile &x, const cubfile &y, algstruct< chomp::homology::integer > &h) const
 Compute the relative homology of the given pair of sets of cubes. More...
 
virtual const char * name () const
 The name of the engine to be used in the command line. More...
 
virtual std::ostream & describe (std::ostream &out) const
 Describes this particular engine. More...
 

Static Public Attributes

static BKengine eng
 One instance of this engine. More...
 
- Static Public Attributes inherited from chomp::homengin::engine
static enginelist engines
 A list of all the engines that have been defined so far. More...
 

Protected Member Functions

 BKengine ()
 The default constructor. More...
 
 ~BKengine ()
 The destructor. More...
 
- Protected Member Functions inherited from chomp::homengin::engine
 engine ()
 The default constructor: Add the engine to the list. More...
 
virtual ~engine ()
 The destructor: Remove the engine from the list. More...
 

Protected Attributes

bool useLookupTable
 Should the lookup table be used prior to the homology computation? More...
 

Additional Inherited Members

- Public Types inherited from chomp::homengin::engine
typedef std::vector< const engine * > enginelist
 The type of a list of engines. More...
 
- Static Public Member Functions inherited from chomp::homengin::engine
static std::ostream & showlist (std::ostream &out, const engine::enginelist &elist=engine::engines)
 Shows a list of available homology engines with descriptions. More...
 
static const enginefind (const cubfile *X, const cubfile *Y, const engine::enginelist &elist=engine::engines)
 Finds the most appropriate homology engine. More...
 
static const enginefind (const cubfile *X, const engine::enginelist &elist=engine::engines)
 Finds the most appropriate homology engine for just one set. More...
 
static const enginefind (const char *name, const engine::enginelist &elist=engine::engines)
 Finds a homology engine with the given name. More...
 

Detailed Description

The homology engine that uses the Bill Kalies' engine.

Definition at line 279 of file engines.h.

Constructor & Destructor Documentation

◆ BKengine()

chomp::homengin::BKengine::BKengine ( )
inlineprotected

The default constructor.

Definition at line 283 of file engines.h.

283 : useLookupTable (false)
284 {
285 return;
286 }
bool useLookupTable
Should the lookup table be used prior to the homology computation?
Definition: engines.h:354

◆ ~BKengine()

chomp::homengin::BKengine::~BKengine ( )
inlineprotected

The destructor.

Definition at line 289 of file engines.h.

290 {
291 return;
292 }

Member Function Documentation

◆ describe()

std::ostream & chomp::homengin::BKengine::describe ( std::ostream &  out) const
virtual

Describes this particular engine.

Reimplemented from chomp::homengin::engine.

Reimplemented in chomp::homengin::BK_LTengine.

◆ dimsupported()

bool chomp::homengin::BKengine::dimsupported ( int  dim) const
inlinevirtual

Is this dimension supported by this engine?

Reimplemented from chomp::homengin::engine.

Definition at line 302 of file engines.h.

303 {
304 return (dim == DIM);
305 }

◆ elementary()

bool chomp::homengin::BKengine::elementary ( ) const
inlinevirtual

Is this engine capable of processing elementary cubes?

Reimplemented from chomp::homengin::engine.

Definition at line 318 of file engines.h.

319 {
320 return false;
321 }

◆ homology() [1/2]

void chomp::homengin::BKengine::homology ( const cubfile x,
algstruct< chomp::homology::integer > &  h 
) const
virtual

Compute the homology of the given set of cubes.

Reimplemented from chomp::homengin::engine.

◆ homology() [2/2]

void chomp::homengin::BKengine::homology ( const cubfile x,
const cubfile y,
algstruct< chomp::homology::integer > &  h 
) const
inlinevirtual

Compute the relative homology of the given pair of sets of cubes.

Reimplemented from chomp::homengin::engine.

Definition at line 334 of file engines.h.

336 {
337 throw "The BK engine cannot compute relative homology.";
338 }

◆ memory()

int chomp::homengin::BKengine::memory ( const cubfile X) const
virtual

Rough memory usage estimate for a single set of cubes.

Returns 0 if unknown, -1 if not enough memory.

Reimplemented from chomp::homengin::engine.

◆ name()

const char * chomp::homengin::BKengine::name ( ) const
inlinevirtual

The name of the engine to be used in the command line.

Reimplemented from chomp::homengin::engine.

Reimplemented in chomp::homengin::BK_LTengine.

Definition at line 341 of file engines.h.

342 {
343 return "BK";
344 }

◆ relative()

bool chomp::homengin::BKengine::relative ( ) const
inlinevirtual

Does this engine compute relative homology?

Reimplemented from chomp::homengin::engine.

Definition at line 312 of file engines.h.

313 {
314 return false;
315 }

◆ spacewrapping()

bool chomp::homengin::BKengine::spacewrapping ( ) const
inlinevirtual

Does this engine support space wrapping?

Reimplemented from chomp::homengin::engine.

Definition at line 324 of file engines.h.

325 {
326 return false;
327 }

◆ speed()

int chomp::homengin::BKengine::speed ( ) const
inlinevirtual

The speed of the engine: The higher the number, the better.

Reimplemented from chomp::homengin::engine.

Reimplemented in chomp::homengin::BK_LTengine.

Definition at line 296 of file engines.h.

297 {
298 return 250;
299 }

Member Data Documentation

◆ eng

BKengine chomp::homengin::BKengine::eng
static

One instance of this engine.

Definition at line 350 of file engines.h.

◆ useLookupTable

bool chomp::homengin::BKengine::useLookupTable
protected

Should the lookup table be used prior to the homology computation?

Definition at line 354 of file engines.h.

Referenced by chomp::homengin::BK_LTengine::BK_LTengine().


The documentation for this class was generated from the following file: