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. | |
| Public Member Functions | |
| virtual int | speed () const | 
| The speed of the engine: The higher the number, the better. | |
| virtual bool | dimsupported (int dim) const | 
| Is this dimension supported by this engine? | |
| virtual int | memory (const cubfile &X) const | 
| Rough memory usage estimate for a single set of cubes. | |
| virtual bool | relative () const | 
| Does this engine compute relative homology? | |
| virtual bool | elementary () const | 
| Is this engine capable of processing elementary cubes? | |
| virtual bool | spacewrapping () const | 
| Does this engine support space wrapping? | |
| virtual void | homology (const cubfile &x, algstruct< chomp::homology::integer > &h) const | 
| Compute the homology of the given set of cubes. | |
| 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. | |
| virtual const char * | name () const | 
| The name of the engine to be used in the command line. | |
| virtual std::ostream & | describe (std::ostream &out) const | 
| Describes this particular engine. | |
| 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. | |
| static const engine * | find (const cubfile *X, const cubfile *Y, const engine::enginelist &elist=engine::engines) | 
| Finds the most appropriate homology engine. | |
| static const engine * | find (const cubfile *X, const engine::enginelist &elist=engine::engines) | 
| Finds the most appropriate homology engine for just one set. | |
| static const engine * | find (const char *name, const engine::enginelist &elist=engine::engines) | 
| Finds a homology engine with the given name. | |
| Static Public Attributes | |
| static enginelist | engines | 
| A list of all the engines that have been defined so far. | |
| Protected Member Functions | |
| engine () | |
| The default constructor: Add the engine to the list. | |
| virtual | ~engine () | 
| The destructor: Remove the engine from the list. | |
An abstract class that is inherited by all the homology engines.
Definition at line 79 of file engines.h.
| typedef std::vector<const engine *> chomp::homengin::engine::enginelist | 
| chomp::homengin::engine::engine | ( | ) |  [inline, protected] | 
| virtual chomp::homengin::engine::~engine | ( | ) |  [inline, protected, virtual] | 
| virtual std::ostream& chomp::homengin::engine::describe | ( | std::ostream & | out | ) | const  [inline, virtual] | 
Describes this particular engine.
Reimplemented in chomp::homengin::PPengine, chomp::homengin::BKengine, chomp::homengin::BK_LTengine, chomp::homengin::MMengine, chomp::homengin::MM_CRengine, chomp::homengin::MM_ARengine, and chomp::homengin::MM_ASLTengine.
Definition at line 165 of file engines.h.
        {
                out << "This is an unknown homology engine.\n";
                return out;
        }
| virtual bool chomp::homengin::engine::dimsupported | ( | int | dim | ) | const  [inline, virtual] | 
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 114 of file engines.h.
        {
                return false;
        }
| virtual bool chomp::homengin::engine::elementary | ( | ) | const  [inline, virtual] | 
Is this engine capable of processing elementary cubes?
Reimplemented in chomp::homengin::PPengine, chomp::homengin::BKengine, and chomp::homengin::MMengine.
Definition at line 133 of file engines.h.
        {
                return false;
        }
| static const engine* chomp::homengin::engine::find | ( | const cubfile * | X, | |
| const cubfile * | Y, | |||
| const engine::enginelist & | elist = engine::engines | |||
| ) |  [static] | 
Finds the most appropriate homology engine.
Throws an exception if none can be found.
Referenced by ComputeBettiNumbers(), find(), and ~engine().
| static const engine* chomp::homengin::engine::find | ( | const cubfile * | X, | |
| const engine::enginelist & | elist = engine::engines | |||
| ) |  [inline, static] | 
| static const engine* chomp::homengin::engine::find | ( | const char * | name, | |
| const engine::enginelist & | elist = engine::engines | |||
| ) |  [static] | 
Finds a homology engine with the given name.
Throws an exception if none can be found.
| virtual void chomp::homengin::engine::homology | ( | const cubfile & | x, | |
| algstruct< chomp::homology::integer > & | h | |||
| ) | const  [inline, virtual] | 
Compute the homology of the given set of cubes.
Reimplemented in chomp::homengin::PPengine, chomp::homengin::BKengine, chomp::homengin::MMengine, chomp::homengin::MM_CRengine, chomp::homengin::MM_ARengine, and chomp::homengin::MM_ASLTengine.
Definition at line 145 of file engines.h.
        {
                throw "Homology computation not supported.";
        }
| virtual void chomp::homengin::engine::homology | ( | const cubfile & | x, | |
| const cubfile & | y, | |||
| algstruct< chomp::homology::integer > & | h | |||
| ) | const  [inline, virtual] | 
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 152 of file engines.h.
        {
                throw "Relative homology computation not supported.";
        }
| virtual int chomp::homengin::engine::memory | ( | const cubfile & | X | ) | const  [inline, virtual] | 
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 121 of file engines.h.
        {
                return 0;
        }
| virtual const char* chomp::homengin::engine::name | ( | ) | const  [inline, virtual] | 
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::MMengine, chomp::homengin::MM_CRengine, chomp::homengin::MM_ARengine, and chomp::homengin::MM_ASLTengine.
Definition at line 159 of file engines.h.
        {
                return "";
        }
| virtual bool chomp::homengin::engine::relative | ( | ) | const  [inline, virtual] | 
Does this engine compute relative homology?
Reimplemented in chomp::homengin::PPengine, chomp::homengin::BKengine, and chomp::homengin::MMengine.
Definition at line 127 of file engines.h.
        {
                return false;
        }
| static std::ostream& chomp::homengin::engine::showlist | ( | std::ostream & | out, | |
| const engine::enginelist & | elist = engine::engines | |||
| ) |  [static] | 
Shows a list of available homology engines with descriptions.
| virtual bool chomp::homengin::engine::spacewrapping | ( | ) | const  [inline, virtual] | 
Does this engine support space wrapping?
Reimplemented in chomp::homengin::PPengine, chomp::homengin::BKengine, and chomp::homengin::MMengine.
Definition at line 139 of file engines.h.
        {
                return false;
        }
| virtual int chomp::homengin::engine::speed | ( | ) | const  [inline, virtual] | 
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::MMengine, chomp::homengin::MM_CRengine, chomp::homengin::MM_ARengine, and chomp::homengin::MM_ASLTengine.
Definition at line 108 of file engines.h.
        {
                return 0;
        }
 1.7.1
 1.7.1