Macaulay2 Engine
Loading...
Searching...
No Matches

◆ BRPStoMatrix()

const Matrix * BRPStoMatrix ( const PolynomialRing * P,
const IntermediateBasis & F )

Definition at line 66 of file franzi-interface.cpp.

67{
69 const Monoid *M = P->getMonoid();
70 const Ring *K = P->getCoefficients();
71 int n = P->n_vars();
73 monomial mon = M->make_one();
74 for (IntermediateBasis::const_iterator it = F.begin(); it != F.end(); ++it)
75 {
76 ring_elem f;
77 for (monomials::const_iterator it2 = it->second.m.begin();
78 it2 != it->second.m.end();
79 ++it2)
80 {
81 brMonomial mono = *it2;
82 // cout << "a single mono in brpstoMatrix " << mono << endl;
83 longToExponents(n, mono, exp);
84 // for( int i=0; i < n; i++ )
85 // {
86 // cout << exp[i] << " ";
87 // }
88 // cout << endl;
89 M->from_expvector(exp, mon);
90 ring_elem g = P->make_flat_term(K->one(), mon);
91 P->add_to(f, g);
92 }
93 C.append(P->make_vec(0, f));
94 }
95
96 freemem(exp);
97 return C.to_matrix();
98}
exponents::Exponents exponents_t
Mutable builder used to assemble an immutable Matrix one column (or one term) at a time.
monomial make_one() const
Definition monoid.cpp:455
void from_expvector(const_exponents exp, monomial result) const
Definition monoid.cpp:742
Engine-side commutative monomial monoid: variable names, ordering, multidegree machinery,...
Definition monoid.hpp:89
virtual const Monoid * getMonoid() const
Definition polyring.hpp:282
virtual ring_elem make_flat_term(const ring_elem a, const_monomial m) const =0
virtual const Ring * getCoefficients() const
Definition polyring.hpp:277
int n_vars() const
Definition polyring.hpp:196
virtual FreeModule * make_FreeModule() const
Definition ring.cpp:53
vec make_vec(int r, ring_elem a) const
Definition ring-vecs.cpp:60
ring_elem one() const
Definition ring.hpp:357
void add_to(ring_elem &f, const ring_elem &g) const
Definition ring.cpp:205
xxx xxx xxx
Definition ring.hpp:102
unsigned long brMonomial
void longToExponents(int nvars, brMonomial mono, exponents_t exp)
#define monomial
Definition gb-toric.cpp:11
void freemem(void *s)
Definition m2-mem.cpp:103
const mpreal exp(const mpreal &x, mp_rnd_t r=mpreal::get_default_rnd())
Definition mpreal.h:2298
#define newarray_atomic(T, len)
Definition newdelete.hpp:91

References Ring::add_to(), MatrixConstructor::append(), freemem(), Monoid::from_expvector(), PolynomialRing::getCoefficients(), PolynomialRing::getMonoid(), longToExponents(), PolynomialRing::make_flat_term(), Ring::make_FreeModule(), Monoid::make_one(), Ring::make_vec(), Matrix, monomial, PolynomialRing::n_vars(), newarray_atomic, Ring::one(), and MatrixConstructor::to_matrix().

Referenced by rawGbBoolean().