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

◆ gbvector_get_lead_exponents()

void GBRing::gbvector_get_lead_exponents ( const FreeModule * F,
const gbvector * f,
int * result )

Definition at line 541 of file gbring.cpp.

544{
545 const SchreyerOrder *S;
546 if (_schreyer_encoded && (S = F->get_schreyer_order()) != nullptr && f->comp > 0)
547 {
549
550 S->schreyer_down(f->monom, f->comp - 1, MONOM1);
551 M->to_expvector(MONOM1, result);
552 }
553 else
554 M->to_expvector(f->monom, result);
555}
const SchreyerOrder * get_schreyer_order() const
Definition freemod.hpp:103
bool _schreyer_encoded
Definition gbring.hpp:136
size_t monom_size
Definition gbring.hpp:170
const Monoid * M
Definition gbring.hpp:137
void schreyer_down(const_monomial m, int comp, monomial result) const
Definition schorder.hpp:113
int * monomial
Definition gbring.hpp:102
VALGRIND_MAKE_MEM_DEFINED & result(result)
#define ALLOCATE_MONOMIAL(byte_len)
Definition monoid.hpp:65
int monom[1]
Definition gbring.hpp:83
int comp
Definition gbring.hpp:82

References _schreyer_encoded, ALLOCATE_MONOMIAL, gbvector::comp, FreeModule::get_schreyer_order(), M, gbvector::monom, monom_size, result(), and SchreyerOrder::schreyer_down().

Referenced by find_reduction_coeffs(), find_reduction_coeffs_ZZ(), gbvector_cancel_lead_terms(), gbvector_combine_lead_terms_ZZ(), QRingInfo_field_basic::gbvector_normal_form(), QRingInfo_field_QQ::gbvector_normal_form(), QRingInfo_field_QQ::gbvector_normal_form(), QRingInfo_ZZ::gbvector_normal_form(), and GBRingSkew::mult_by_term1().