Macaulay2 Engine
Loading...
Searching...
No Matches
NAG.h
Go to the documentation of this file.
1#ifndef _NAG_h_
2# define _NAG_h_
3
34
35# include "engine-includes.hpp"
36
37// TODO: fix this
38# if defined(__cplusplus)
39class M2SLEvaluator;
40class M2Homotopy;
41class M2SLProgram;
43class PathTracker;
44class M2PointArray;
45# else
46typedef struct M2SLEvaluator M2SLEvaluator;
47typedef struct M2Homotopy M2Homotopy;
48typedef struct M2SLProgram M2SLProgram;
50typedef struct PathTracker PathTracker;
51typedef struct M2PointArray M2PointArray;
52# endif
53
57
58# if defined(__cplusplus)
59extern "C" {
60# endif
61
62M2Homotopy /* or null */ *rawHomotopy(M2SLEvaluator *Hx,
63 M2SLEvaluator *Hxt,
64 M2SLEvaluator *HxH);
66 M2_arrayint constsPos,
67 M2_arrayint varsPos,
68 const MutableMatrix *consts);
70 M2_string libName,
71 int nInputs,
72 int nOutputs,
73 const MutableMatrix *empty);
76 const MutableMatrix *parameters);
77M2SLProgram /* or null */ *rawSLProgram(unsigned long nConstantsAndInputs);
78M2_string rawSLEvaluatorToString(M2SLEvaluator *); /* connected */
80 const MutableMatrix *inputs,
81 MutableMatrix *outputs);
82M2_string rawHomotopyToString(M2Homotopy *); /* connected */
83M2_string rawSLProgramToString(M2SLProgram *); /* connected */
84unsigned int rawSLEvaluatorHash(M2SLEvaluator *); /* connected */
85unsigned int rawHomotopyHash(M2Homotopy *); /* connected */
86unsigned int rawSLProgramHash(M2SLProgram *); /* connected */
87
89 const MutableMatrix *inputs,
90 MutableMatrix *outputs,
91 MutableMatrix *output_extras,
92 gmp_RR init_dt,
93 gmp_RR min_dt,
94 gmp_RR epsilon, // o.CorrectorTolerance,
95 int max_corr_steps,
96 gmp_RR infinity_threshold,
97 M2_bool checkPrecision);
98
105
106StraightLineProgram /* or null */ *rawSLP(const Matrix *consts,
107 M2_arrayint program);
108const Matrix /* or null */ *rawEvaluateSLP(StraightLineProgram *SLP,
109 const Matrix *vals);
110M2_string rawStraightLineProgramToString(StraightLineProgram *); /* connected */
111unsigned int rawStraightLineProgramHash(StraightLineProgram *); /* connected */
112const Matrix /* or null */ *rawTrackPaths(StraightLineProgram *slp_pred,
113 StraightLineProgram *slp_corr,
114 const Matrix *start_sols,
115 M2_bool is_projective,
116 gmp_RR init_dt,
117 gmp_RR min_dt,
118 gmp_RR max_dt,
119 gmp_RR dt_increase_factor,
120 gmp_RR dt_decrease_factor,
121 int num_successes_before_increase,
122 gmp_RR epsilon,
123 int max_corr_steps,
124 int pred_type);
125
127 StraightLineProgram *slp_pred,
128 StraightLineProgram *slp_corr);
129PathTracker /* or null */ *rawPathTracker(const Matrix *);
130PathTracker /* or null */ *rawPathTrackerProjective(const Matrix *,
131 const Matrix *,
132 gmp_RR);
133M2_string rawPathTrackerToString(PathTracker *); /* connected */
134unsigned int rawPathTrackerHash(PathTracker *); /* connected */
136 M2_bool is_projective,
137 gmp_RR init_dt,
138 gmp_RR min_dt,
139 gmp_RR dt_increase_factor,
140 gmp_RR dt_decrease_factor,
141 int num_successes_before_increase,
142 gmp_RR epsilon,
143 int max_corr_steps,
144 gmp_RR end_zone_factor,
145 gmp_RR infinity_threshold,
146 int pred_type);
147void rawLaunchPT(PathTracker *PT, const Matrix *start_sols);
148const Matrix /* or null */ *rawGetSolutionPT(PathTracker *PT, int solN);
149const Matrix /* or null */ *rawGetAllSolutionsPT(PathTracker *PT);
150int rawGetSolutionStatusPT(PathTracker *PT, int solN);
151int rawGetSolutionStepsPT(PathTracker *PT, int solN);
154const Matrix /* or null */ *rawRefinePT(PathTracker *PT,
155 const Matrix *sols,
156 gmp_RR tolerance,
157 int max_corr_steps_refine);
158
159// M2PointArray
160unsigned int rawPointArrayHash(M2PointArray *);
162M2PointArray /* or null */ *rawPointArray(double epsilon, int n);
163int rawPointArrayLookup(M2PointArray *pa, const MutableMatrix *M, int col);
165 const MutableMatrix *M,
166 int col);
167
168# if defined(__cplusplus)
169}
170# endif
171
172#endif /* _NAG_h_ */
173
174// Local Variables:
175// indent-tabs-mode: nil
176// End:
gmp_ZZ rawSLPDetGate(M2SLProgram *S, M2_arrayint a)
Definition matrix.cpp:946
void rawSetParametersPT(PathTracker *PT, M2_bool is_projective, gmp_RR init_dt, gmp_RR min_dt, gmp_RR dt_increase_factor, gmp_RR dt_decrease_factor, int num_successes_before_increase, gmp_RR epsilon, int max_corr_steps, gmp_RR end_zone_factor, gmp_RR infinity_threshold, int pred_type)
Definition NAG.cpp:1571
gmp_ZZ rawSLPDivideGate(M2SLProgram *S, M2_arrayint a)
Definition matrix.cpp:955
const Matrix * rawTrackPaths(StraightLineProgram *slp_pred, StraightLineProgram *slp_corr, const Matrix *start_sols, M2_bool is_projective, gmp_RR init_dt, gmp_RR min_dt, gmp_RR max_dt, gmp_RR dt_increase_factor, gmp_RR dt_decrease_factor, int num_successes_before_increase, gmp_RR epsilon, int max_corr_steps, int pred_type)
const Matrix * rawGetSolutionPT(PathTracker *PT, int solN)
Definition NAG.cpp:1602
M2_string rawPathTrackerToString(PathTracker *)
Definition matrix.cpp:1030
M2_string rawHomotopyToString(M2Homotopy *)
Definition matrix.cpp:870
int rawGetSolutionStatusPT(PathTracker *PT, int solN)
Definition NAG.cpp:1612
M2_string rawStraightLineProgramToString(StraightLineProgram *)
Definition matrix.cpp:982
M2SLEvaluator * rawSLEvaluatorSpecialize(M2SLEvaluator *H, const MutableMatrix *parameters)
Definition matrix.cpp:894
StraightLineProgram * rawSLP(const Matrix *consts, M2_arrayint program)
Definition matrix.cpp:960
gmp_ZZ rawSLPProductGate(M2SLProgram *S, M2_arrayint a)
Definition matrix.cpp:942
unsigned int rawStraightLineProgramHash(StraightLineProgram *)
Definition matrix.cpp:989
unsigned int rawPointArrayHash(M2PointArray *)
Definition matrix.cpp:1047
gmp_RRorNull rawGetSolutionLastTvaluePT(PathTracker *PT, int solN)
Definition NAG.cpp:1622
gmp_ZZ rawSLPsetOutputPositions(M2SLProgram *S, M2_arrayint a)
Definition matrix.cpp:950
M2_bool rawSLEvaluatorEvaluate(M2SLEvaluator *sle, const MutableMatrix *inputs, MutableMatrix *outputs)
Definition matrix.cpp:906
M2PointArray * rawPointArray(double epsilon, int n)
Definition matrix.cpp:1052
PathTracker * rawPathTrackerProjective(const Matrix *, const Matrix *, gmp_RR)
Definition matrix.cpp:1018
unsigned int rawHomotopyHash(M2Homotopy *)
Definition matrix.cpp:876
M2SLEvaluator * rawSLEvaluator(M2SLProgram *SLP, M2_arrayint constsPos, M2_arrayint varsPos, const MutableMatrix *consts)
Definition matrix.cpp:877
M2SLProgram * rawSLProgram(unsigned long nConstantsAndInputs)
Definition matrix.cpp:925
unsigned int rawPathTrackerHash(PathTracker *)
Definition matrix.cpp:1037
gmp_ZZ rawSLPSumGate(M2SLProgram *S, M2_arrayint a)
Definition matrix.cpp:938
M2_string rawPointArrayToString(M2PointArray *)
Definition matrix.cpp:1040
PathTracker * rawPathTrackerPrecookedSLPs(StraightLineProgram *slp_pred, StraightLineProgram *slp_corr)
PathTracker /////////////////////////////////////////////////////.
Definition matrix.cpp:996
unsigned int rawSLEvaluatorHash(M2SLEvaluator *)
Definition matrix.cpp:924
M2_bool rawHomotopyTrack(M2Homotopy *H, const MutableMatrix *inputs, MutableMatrix *outputs, MutableMatrix *output_extras, gmp_RR init_dt, gmp_RR min_dt, gmp_RR epsilon, int max_corr_steps, gmp_RR infinity_threshold, M2_bool checkPrecision)
Definition matrix.cpp:843
int rawGetSolutionStepsPT(PathTracker *PT, int solN)
Definition NAG.cpp:1617
PathTracker * rawPathTracker(const Matrix *)
Definition matrix.cpp:1008
const Matrix * rawRefinePT(PathTracker *PT, const Matrix *sols, gmp_RR tolerance, int max_corr_steps_refine)
Definition NAG.cpp:1632
const Matrix * rawEvaluateSLP(StraightLineProgram *SLP, const Matrix *vals)
Definition matrix.cpp:971
int rawPointArrayLookupOrAppend(M2PointArray *pa, const MutableMatrix *M, int col)
Definition matrix.cpp:1085
M2Homotopy * rawHomotopy(M2SLEvaluator *Hx, M2SLEvaluator *Hxt, M2SLEvaluator *HxH)
Definition matrix.cpp:831
int rawPointArrayLookup(M2PointArray *pa, const MutableMatrix *M, int col)
Definition matrix.cpp:1080
gmp_ZZ rawSLPInputGate(M2SLProgram *S)
Definition matrix.cpp:937
M2SLEvaluator * rawCompiledSLEvaluator(M2_string libName, int nInputs, int nOutputs, const MutableMatrix *empty)
Definition matrix.cpp:885
void rawLaunchPT(PathTracker *PT, const Matrix *start_sols)
Definition NAG.cpp:1597
gmp_RRorNull rawGetSolutionRcondPT(PathTracker *PT, int solN)
Definition NAG.cpp:1627
const Matrix * rawGetAllSolutionsPT(PathTracker *PT)
Definition NAG.cpp:1607
M2_string rawSLProgramToString(M2SLProgram *)
Definition matrix.cpp:930
unsigned int rawSLProgramHash(M2SLProgram *)
Definition matrix.cpp:936
M2_string rawSLEvaluatorToString(M2SLEvaluator *)
Definition matrix.cpp:918
MutableEngineObject wrapper that owns a Homotopy via unique_ptr.
Definition SLP-defs.hpp:139
MutableEngineObject wrapper that owns a PointArray via unique_ptr.
Definition NAG.hpp:88
MutableEngineObject wrapper holding a raw SLEvaluator*.
Definition SLP-defs.hpp:248
MutableEngineObject wrapper that owns an SLProgram via unique_ptr.
Definition SLP-defs.hpp:64
Abstract base class for mutable matrices over an arbitrary engine Ring, the in-place counterpart of t...
Definition mat.hpp:79
Numerical homotopy-continuation path tracker for systems of polynomial equations.
Definition NAG.hpp:654
Definition NAG.hpp:485
Engine-wide include prelude — a single point of truth for portability shims.
#define Matrix
Definition factory.cpp:14
mpfr_srcptr gmp_RR
Definition m2-types.h:148
mpfr_srcptr gmp_RRorNull
Definition m2-types.h:149
char M2_bool
Definition m2-types.h:82
mpz_srcptr gmp_ZZ
Definition m2-types.h:141