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

◆ rawRingElementRatConversion()

const RingElement * rawRingElementRatConversion ( const RingElement * f,
mpz_srcptr m,
const Ring * RQ )

Definition at line 94 of file cra.cpp.

97{
98 const Ring *Rf = f->get_ring();
99 const PolyRing *P = Rf->cast_to_PolyRing();
100 const PolyRing *PQ = RQ->cast_to_PolyRing();
101
102 if (P == nullptr)
103 {
104 // check whether Rf is ZZ. If not, error.
105 if (!Rf->is_ZZ())
106 {
107 ERROR("expected ZZ, or polynomial ring over ZZ");
108 return nullptr;
109 }
110 ERROR("not implemented yet");
111 return nullptr;
112 }
113 else
114 {
115 const Ring *K = P->getCoefficientRing();
116 if (K->is_ZZ())
117 {
118 ring_elem rf = f->get_value();
120 return RingElement::make_raw(PQ, result); // debug this line!
121 }
122 else
123 {
124 ERROR("expected coefficient ring to be ZZ");
125 return nullptr;
126 }
127 }
128 ERROR("not written yet");
129 return nullptr;
130}
static bool ratConversion(mpz_srcptr a, mpz_srcptr m, mpq_t result)
Definition cra.cpp:300
Concrete PolyRingFlat subclass implementing ordinary commutative polynomial rings K[x_1,...
Definition poly.hpp:64
const Ring * getCoefficientRing() const
Definition polyring.hpp:200
virtual bool is_ZZ() const
Definition ring.hpp:171
virtual const PolyRing * cast_to_PolyRing() const
Definition ring.hpp:245
ring_elem get_value() const
Definition relem.hpp:79
static RingElement * make_raw(const Ring *R, ring_elem f)
Definition relem.cpp:20
const Ring * get_ring() const
Definition relem.hpp:81
xxx xxx xxx
Definition ring.hpp:102
const int ERROR
Definition m2-mem.cpp:55
VALGRIND_MAKE_MEM_DEFINED & result(result)

References Ring::cast_to_PolyRing(), ERROR, RingElement::get_ring(), RingElement::get_value(), PolynomialRing::getCoefficientRing(), Ring::is_ZZ(), RingElement::make_raw(), ChineseRemainder::ratConversion(), and result().