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

◆ IM2_RingElement_list_form()

engine_RawArrayPairOrNull IM2_RingElement_list_form ( const Ring * coeffRing,
const RingElement * f )

Definition at line 636 of file ringelement.cpp.

639{
640 try {
642 if (P != nullptr)
643 {
644 return P->list_form(coeffRing, f->get_value());
645 }
646 const SchurRing2* S = f->get_ring()->cast_to_SchurRing2();
647 if (S != nullptr)
648 {
649 return S->list_form(coeffRing, f->get_value());
650 }
651 /* added by Frank */
652 const M2FreeAlgebra* ncP = dynamic_cast<const M2FreeAlgebra*>(f->get_ring());
653 if (ncP != nullptr)
654 {
655 return ncP->list_form(coeffRing, f->get_value());
656 }
657 /* added by Frank */
658 const M2FreeAlgebraQuotient* ncQ = dynamic_cast<const M2FreeAlgebraQuotient*>(f->get_ring());
659 if (ncQ != nullptr)
660 {
661 return ncQ->m2FreeAlgebra().list_form(coeffRing, f->get_value());
662 }
663 ERROR("expected a polynomial");
664 return nullptr;
665 }
666 catch (exc::engine_error& e) {
667 ERROR(e.what());
668 return nullptr;
669 }
670}
virtual engine_RawArrayPairOrNull list_form(const Ring *coeffR, const ring_elem f) const
Concrete Ring wrapper around an owned FreeAlgebra (no quotient).
const M2FreeAlgebra & m2FreeAlgebra() const
Concrete Ring wrapper around an owned FreeAlgebraQuotient (the quotient counterpart of M2FreeAlgebra)...
virtual engine_RawArrayPairOrNull list_form(const Ring *coeffR, const ring_elem f) const =0
Abstract base for the engine's polynomial-ring hierarchy.
Definition polyring.hpp:96
virtual const SchurRing2 * cast_to_SchurRing2() const
Definition ring.hpp:277
virtual const PolynomialRing * cast_to_PolynomialRing() const
Definition ring.hpp:243
ring_elem get_value() const
Definition relem.hpp:79
const Ring * get_ring() const
Definition relem.hpp:81
engine_RawArrayPairOrNull list_form(const Ring *coeffR, const ring_elem f) const
Definition schur2.cpp:682
Refactored Schur (symmetric-function) ring whose elements are schur_poly sums of partitions over a co...
Definition schur2.hpp:152
const int ERROR
Definition m2-mem.cpp:55

References Ring::cast_to_PolynomialRing(), Ring::cast_to_SchurRing2(), ERROR, RingElement::get_ring(), RingElement::get_value(), M2FreeAlgebra::list_form(), PolynomialRing::list_form(), SchurRing2::list_form(), and M2FreeAlgebraQuotient::m2FreeAlgebra().