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

◆ BRPSfromMatrix()

IntermediateBasis BRPSfromMatrix ( const Matrix * m)

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

41{
42 const Ring *R = m->get_ring();
44 assert(P != 0); // TODO: change this.
45 const Monoid *M = P->getMonoid();
46 int n = P->n_vars();
49 for (int i = 0; i < m->n_cols(); i++)
50 {
51 vec v = m->elem(i);
52 if (v == nullptr) continue;
53 BRP temp;
54 for (Nterm& f : v->coeff)
55 {
56 M->to_expvector(f.monom, exp);
57 brMonomial mono = exponentsToLong(n, exp);
58 temp = temp + BRP(mono);
59 }
60 F[i] = temp;
61 }
62 freemem(exp);
63 return F;
64}
exponents::Exponents exponents_t
Boolean (F_2-coefficient) polynomial stored as an ordered list of square-free monomials.
const Ring * get_ring() const
Definition matrix.hpp:134
ring_elem elem(int i, int j) const
Definition matrix.cpp:307
int n_cols() const
Definition matrix.hpp:147
void to_expvector(const_monomial m, exponents_t result_exp) const
Definition monoid.cpp:747
Engine-side commutative monomial monoid: variable names, ordering, multidegree machinery,...
Definition monoid.hpp:89
virtual const Monoid * getMonoid() const
Definition polyring.hpp:282
int n_vars() const
Definition polyring.hpp:196
Abstract base for the engine's polynomial-ring hierarchy.
Definition polyring.hpp:96
virtual const PolynomialRing * cast_to_PolynomialRing() const
Definition ring.hpp:243
xxx xxx xxx
Definition ring.hpp:102
unsigned long brMonomial
std::map< int, BRP > IntermediateBasis
brMonomial exponentsToLong(int nvars, const_exponents exp)
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
int monom[1]
Definition ringelem.hpp:160
Singly linked-list node carrying one term of a polynomial-ring element.
Definition ringelem.hpp:156

References Ring::cast_to_PolynomialRing(), Matrix::elem(), exponentsToLong(), freemem(), Matrix::get_ring(), PolynomialRing::getMonoid(), Matrix, Nterm::monom, Matrix::n_cols(), PolynomialRing::n_vars(), newarray_atomic, and Monoid::to_expvector().

Referenced by rawGbBoolean().