Macaulay2 Engine
Loading...
Searching...
No Matches
SLP-defs.hpp File Reference

Type declarations for the SLP DAG, its evaluator hierarchy, and the homotopy abstraction. More...

Go to the source code of this file.

Classes

class  M2SLProgram
 MutableEngineObject wrapper that owns an SLProgram via unique_ptr. More...
class  SLProgram
 A straight-line program: a directed acyclic graph of arithmetic gates over a fixed list of inputs and constants. More...
class  M2Homotopy
 MutableEngineObject wrapper that owns a Homotopy via unique_ptr. More...
class  TrivialHomotopyAlgorithm
 Tag type selecting the no-op homotopy algorithm. More...
class  FixedPrecisionHomotopyAlgorithm
 Tag type selecting the fixed-precision homotopy algorithm. More...
class  VariablePrecisionHomotopyAlgorithm
 Tag type selecting the variable-precision homotopy algorithm. More...
struct  HomotopyAlgorithm< RT >
 Traits class mapping a coefficient ring RT to its preferred homotopy algorithm tag. More...
struct  HomotopyAlgorithm< M2::ARingCC >
 Selects FixedPrecisionHomotopyAlgorithm for the double-precision complex ring M2::ARingCC. More...
struct  HomotopyAlgorithm< M2::ARingCCC >
 Selects FixedPrecisionHomotopyAlgorithm for the arbitrary-precision complex ring M2::ARingCCC. More...
class  M2SLEvaluator
 MutableEngineObject wrapper holding a raw SLEvaluator*. More...
class  SLEvaluator
 Abstract base for the SLP evaluator hierarchy. More...
class  SLEvaluatorConcrete< RT >
class  Homotopy
 Abstract base for the predictor-corrector path-tracker hierarchy. More...
class  HomotopyConcrete< RT, Algorithm >
class  HomotopyConcrete< RT, FixedPrecisionHomotopyAlgorithm >

Detailed Description

Type declarations for the SLP DAG, its evaluator hierarchy, and the homotopy abstraction.

Note
AI-generated documentation. Verify against the source before relying on it.

Declares the type lattice the templated SLP machinery is built on:

The wrappers exist so the templated machinery does not leak through M2-visible names: the interpreter handles M2SLProgram* / M2SLEvaluator* / M2Homotopy* as opaque pointers while the numerical specialisation does the actual work behind them.

See also
SLP.hpp
SLP-imp.hpp
NAG.hpp

Definition in file SLP-defs.hpp.