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

◆ rawPseudoRemainder()

const RingElement * rawPseudoRemainder ( const RingElement * f,
const RingElement * g )

Definition at line 625 of file factory.cpp.

627{
628 const bool inExtension = false;
631 if (P == nullptr)
632 {
633 ERROR("expected polynomial ring");
634 return nullptr;
635 }
636 if (P != P2)
637 {
638 ERROR("encountered different rings");
639 return nullptr;
640 }
641
642 struct enter_factory foo(P);
643 if (foo.mode == modeError) return nullptr;
644 if (foo.mode == modeGF)
645 {
646 set_GF_minimal_poly(P);
647 }
648 CanonicalForm p = convertToFactory(*f, inExtension);
649 CanonicalForm q = convertToFactory(*g, inExtension);
650 CanonicalForm h = Prem(p, q);
651 const RingElement *r = convertToM2(P, h);
652 if (error())
653 {
654 algebraicElement_M2 = nullptr;
655 return nullptr;
656 }
657 algebraicElement_M2 = nullptr;
658 return r;
659}
Abstract base for the engine's polynomial-ring hierarchy.
Definition polyring.hpp:96
virtual const PolynomialRing * cast_to_PolynomialRing() const
Definition ring.hpp:243
const Ring * get_ring() const
Definition relem.hpp:81
Front-end-visible "ring element" value: an engine ring_elem paired with the Ring* that gives it meani...
Definition relem.hpp:67
int error()
Definition error.c:48
@ modeGF
Definition factory.cpp:48
@ modeError
Definition factory.cpp:44
static const RingElement * convertToM2(const PolynomialRing *R, CanonicalForm h)
Definition factory.cpp:214
static CanonicalForm convertToFactory(mpz_srcptr p)
Definition factory.cpp:312
const RingElement * algebraicElement_M2
Definition factory.cpp:81
int p
const int ERROR
Definition m2-mem.cpp:55

References algebraicElement_M2, Ring::cast_to_PolynomialRing(), convertToFactory(), convertToM2(), ERROR, error(), RingElement::get_ring(), enter_factory::mode, modeError, modeGF, and p.