Macaulay2 Engine
Loading...
Searching...
No Matches
f4-m2-interface.hpp
Go to the documentation of this file.
1#ifndef __F4toM2interface_h_
2#define __F4toM2interface_h_
3
39
40#include "interface/m2-types.h" // for M2_arrayint
41#include "f4/f4-types.hpp" // for gb_array, GBF4Polynomial (ptr only), coefficient_m...
42#include "ringelem.hpp" // for vec
43
44class FreeModule;
46class Matrix;
47class MonomialInfo;
48class MutableMatrix;
49
63{
64 public:
65 static void poly_set_degrees(const VectorArithmetic* VA,
66 const MonomialInfo *MI,
67 const M2_arrayint wts,
68 const GBF4Polynomial &f,
69 int &deg,
70 int &alpha);
71
72 static void from_M2_vec(const VectorArithmetic* VA,
73 const MonomialInfo *MI,
74 const FreeModule *F,
75 vec v,
77
78 static vec to_M2_vec(const VectorArithmetic* VA,
79 const MonomialInfo *MI,
80 const GBF4Polynomial &f,
81 const FreeModule *F);
82
83 static void from_M2_matrix(const VectorArithmetic* VA,
84 const MonomialInfo *MI,
85 const Matrix *m,
86 gb_array &result_polys);
87
88 static Matrix *to_M2_matrix(const VectorArithmetic* VA,
89 const MonomialInfo *MI,
90 gb_array &polys,
91 const FreeModule *F);
92
95 gb_array &gens,
96 gb_array &gb);
97};
98
99#endif
100
101// Local Variables:
102// compile-command: "make -C $M2BUILDDIR/Macaulay2/e "
103// indent-tabs-mode: nil
104// End:
static void from_M2_vec(const VectorArithmetic *VA, const MonomialInfo *MI, const FreeModule *F, vec v, GBF4Polynomial &result)
static MutableMatrix * to_M2_MutableMatrix(const VectorArithmetic *VA, coefficient_matrix *mat, gb_array &gens, gb_array &gb)
static void poly_set_degrees(const VectorArithmetic *VA, const MonomialInfo *MI, const M2_arrayint wts, const GBF4Polynomial &f, int &deg, int &alpha)
static Matrix * to_M2_matrix(const VectorArithmetic *VA, const MonomialInfo *MI, gb_array &polys, const FreeModule *F)
static void from_M2_matrix(const VectorArithmetic *VA, const MonomialInfo *MI, const Matrix *m, gb_array &result_polys)
static vec to_M2_vec(const VectorArithmetic *VA, const MonomialInfo *MI, const GBF4Polynomial &f, const FreeModule *F)
Static-method namespace for translating between engine Matrix / vec polynomials and the F4-internal G...
Engine-side free module R^n over a Ring.
Definition freemod.hpp:66
Per-ring monomial layout / encoding helper used by F4GB.
Definition moninfo.hpp:108
Abstract base class for mutable matrices over an arbitrary engine Ring, the in-place counterpart of t...
Definition mat.hpp:79
Runtime dispatcher that hides the concrete coefficient ring behind a std::variant of ConcreteVectorAr...
std::vector< gbelem * > gb_array
Definition f4-types.hpp:145
Shared type vocabulary used across the F4 engine.
#define Matrix
Definition factory.cpp:14
void gb(IntermediateBasis &F, int n)
VALGRIND_MAKE_MEM_DEFINED & result(result)
Engine-to-interpreter type vocabulary across the C++ / .dd boundary.
ring_elem — the universal value type carried by every Ring* in the engine.
Compact polynomial layout used inside the F4 GB engine.
Definition f4-types.hpp:107