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

◆ lead_term() [2/2]

ring_elem PolyRing::lead_term ( int nparts,
const ring_elem f ) const
virtual

Definition at line 2277 of file poly.cpp.

2278{
2279 Nterm *lead = f;
2280 Nterm head;
2281 Nterm *result = &head;
2282 int nslots = M_->n_slots(nparts);
2283 for (Nterm& a : f)
2284 {
2285 if (M_->compare(nslots, lead->monom, a.monom) != EQ) break;
2286 result->next = new_term();
2287 result = result->next;
2288 result->coeff = a.coeff;
2289 M_->copy(a.monom, result->monom);
2290 }
2291 result->next = nullptr;
2292 return head.next;
2293}
Nterm * new_term() const
Definition poly.cpp:146
const Monoid * M_
Definition polyring.hpp:124
VALGRIND_MAKE_MEM_DEFINED & result(result)
Nterm * next
Definition ringelem.hpp:157
int monom[1]
Definition ringelem.hpp:160
const int EQ
Definition style.hpp:40

References EQ, PolynomialRing::M_, Nterm::monom, new_term(), Nterm::next, and result().