The Original CHomP Software
|
An abstract class that is inherited by all the homology engines. More...
#include <engines.h>
Public Types | |
typedef std::vector< const engine * > | enginelist |
The type of a list of engines. More... | |
Public Member Functions | |
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 Member Functions | |
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 engine * | find (const cubfile *X, const cubfile *Y, const engine::enginelist &elist=engine::engines) |
Finds the most appropriate homology engine. More... | |
static const engine * | find (const cubfile *X, const engine::enginelist &elist=engine::engines) |
Finds the most appropriate homology engine for just one set. More... | |
static const engine * | find (const char *name, const engine::enginelist &elist=engine::engines) |
Finds a homology engine with the given name. More... | |
Static Public Attributes | |
static enginelist | engines |
A list of all the engines that have been defined so far. More... | |
Protected Member Functions | |
engine () | |
The default constructor: Add the engine to the list. More... | |
virtual | ~engine () |
The destructor: Remove the engine from the list. More... | |
An abstract class that is inherited by all the homology engines.
typedef std::vector<const engine *> chomp::homengin::engine::enginelist |
|
inlineprotected |
The default constructor: Add the engine to the list.
Definition at line 89 of file engines.h.
References engines.
|
inlineprotectedvirtual |
|
inlinevirtual |
Describes this particular engine.
Reimplemented in chomp::homengin::PPengine, chomp::homengin::BKengine, chomp::homengin::BK_LTengine, chomp::homengin::MM_CRengine, chomp::homengin::MM_ARengine, chomp::homengin::MM_ASLTengine, and chomp::homengin::MMengine.
Definition at line 164 of file engines.h.
|
inlinevirtual |
Is this dimension supported by this engine?
Reimplemented in chomp::homengin::PPengine, chomp::homengin::BKengine, chomp::homengin::MMengine, chomp::homengin::MM_CRengine, and chomp::homengin::MM_ARengine.
Definition at line 113 of file engines.h.
|
inlinevirtual |
Is this engine capable of processing elementary cubes?
Reimplemented in chomp::homengin::PPengine, chomp::homengin::BKengine, and chomp::homengin::MMengine.
Definition at line 132 of file engines.h.
|
static |
Finds a homology engine with the given name.
Throws an exception if none can be found.
|
static |
Finds the most appropriate homology engine.
Throws an exception if none can be found.
Referenced by ComputeBettiNumbers(), and find().
|
inlinestatic |
Finds the most appropriate homology engine for just one set.
Throws an exception if none can be found.
Definition at line 181 of file engines.h.
References find().
|
inlinevirtual |
Compute the homology of the given set of cubes.
Reimplemented in chomp::homengin::PPengine, chomp::homengin::BKengine, chomp::homengin::MM_CRengine, chomp::homengin::MM_ARengine, chomp::homengin::MM_ASLTengine, and chomp::homengin::MMengine.
Definition at line 144 of file engines.h.
|
inlinevirtual |
Compute the relative homology of the given pair of sets of cubes.
Reimplemented in chomp::homengin::PPengine, chomp::homengin::BKengine, and chomp::homengin::MMengine.
Definition at line 151 of file engines.h.
|
inlinevirtual |
Rough memory usage estimate for a single set of cubes.
Returns 0 if unknown, -1 if not enough memory.
Reimplemented in chomp::homengin::PPengine, chomp::homengin::BKengine, and chomp::homengin::MMengine.
Definition at line 120 of file engines.h.
|
inlinevirtual |
The name of the engine to be used in the command line.
Reimplemented in chomp::homengin::PPengine, chomp::homengin::BKengine, chomp::homengin::BK_LTengine, chomp::homengin::MM_CRengine, chomp::homengin::MM_ARengine, chomp::homengin::MM_ASLTengine, and chomp::homengin::MMengine.
Definition at line 158 of file engines.h.
|
inlinevirtual |
Does this engine compute relative homology?
Reimplemented in chomp::homengin::PPengine, chomp::homengin::BKengine, and chomp::homengin::MMengine.
Definition at line 126 of file engines.h.
|
static |
Shows a list of available homology engines with descriptions.
|
inlinevirtual |
Does this engine support space wrapping?
Reimplemented in chomp::homengin::PPengine, chomp::homengin::BKengine, and chomp::homengin::MMengine.
Definition at line 138 of file engines.h.
|
inlinevirtual |
The speed of the engine: The higher the number, the better.
Reimplemented in chomp::homengin::PPengine, chomp::homengin::BKengine, chomp::homengin::BK_LTengine, chomp::homengin::MM_CRengine, chomp::homengin::MM_ARengine, chomp::homengin::MM_ASLTengine, and chomp::homengin::MMengine.
Definition at line 107 of file engines.h.
|
static |