Definition at line 553 of file factory.cpp.
558{
559 const bool inExtension = false;
563 *A = nullptr;
564 *B = nullptr;
565 if (P == nullptr)
566 {
569
570 ERROR(
"expected polynomial ring");
571 return nullptr;
572 }
573 if (P != P2)
574 {
575 ERROR(
"encountered different rings");
576 return nullptr;
577 }
578
580 {
583 return g;
584 }
585
587 {
590 return f;
591 }
592
594 if (foo.mode ==
modeError)
return nullptr;
596 {
597 set_GF_minimal_poly(P);
598 }
601 CanonicalForm a, b;
602 CanonicalForm h = extgcd(
p, q, a, b);
605 {
607 return nullptr;
608 }
611 {
613 return nullptr;
614 }
617 {
619 return nullptr;
620 }
622 return ret;
623}
Abstract base for the engine's polynomial-ring hierarchy.
virtual const PolynomialRing * cast_to_PolynomialRing() const
virtual const Tower * cast_to_Tower() const
static RingElement * make_raw(const Ring *R, ring_elem f)
const Ring * get_ring() const
Front-end-visible "ring element" value: an engine ring_elem paired with the Ring* that gives it meani...
static const RingElement * convertToM2(const PolynomialRing *R, CanonicalForm h)
static CanonicalForm convertToFactory(mpz_srcptr p)
const RingElement * algebraicElement_M2
const RingElement * towerExtendedGCD(const RingElement *F, const RingElement *G, const RingElement **A, const RingElement **B)
References algebraicElement_M2, Ring::cast_to_PolynomialRing(), Ring::cast_to_Tower(), convertToFactory(), convertToM2(), ERROR, error(), RingElement::get_ring(), RingElement::is_zero(), RingElement::make_raw(), enter_factory::mode, modeError, modeGF, Ring::one(), p, towerExtendedGCD(), and Ring::zero().
Referenced by PolyRingQuotient::invert().