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

◆ diff()

ring_elem PolyRing::diff ( ring_elem a,
ring_elem b,
int use_coeff ) const
virtual

Implements PolynomialRing.

Definition at line 2014 of file poly.cpp.

2015{
2016 polyheap H(this);
2017 Nterm *d = new_term();
2018 for (Nterm& s : a)
2019 {
2020 for (Nterm& t : b)
2021 {
2022 d->coeff = diff_term(s.monom, t.monom, d->monom, use_coeff);
2023 if (!K_->is_zero(d->coeff))
2024 {
2025 K_->mult_to(d->coeff, s.coeff);
2026 K_->mult_to(d->coeff, t.coeff);
2027 d->next = nullptr;
2028 H.add(d);
2029 d = new_term();
2030 }
2031 }
2032 }
2033 return H.value();
2034}
ring_elem diff_term(const_monomial m, const_monomial n, monomial resultmon, int use_coeff) const
Definition poly.cpp:2036
Nterm * new_term() const
Definition poly.cpp:146
const Ring * K_
Definition polyring.hpp:123
void size_t s
Definition m2-mem.cpp:271
Nterm * next
Definition ringelem.hpp:157
ring_elem coeff
Definition ringelem.hpp:158
int monom[1]
Definition ringelem.hpp:160

References polyheap::add(), Nterm::coeff, diff_term(), PolynomialRing::K_, Nterm::monom, new_term(), Nterm::next, s, and polyheap::value().