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

◆ IM2_RingElement_to_Interval()

gmp_RRiorNull IM2_RingElement_to_Interval ( const RingElement * a)

Definition at line 162 of file ringelement.cpp.

163{
164 const Ring *R = a->get_ring();
167
168 switch (R->ringID())
169 {
170 case M2::ring_RR:
172 mpfi_init2(result, 53);
173 mpfi_set_d(result, a->get_value().get_double());
174 return moveTo_gmpRRi(result);
175 case M2::ring_RRR:
176 R1 =
177 dynamic_cast<const M2::ConcreteRing<M2::ARingRRi> *>(R);
179 mpfi_init2(result, R1->get_precision());
180 mpfi_set_fr(result, a->get_value().get_mpfr());
181 return moveTo_gmpRRi(result);
182 case M2::ring_RRi:
183 R1 =
184 dynamic_cast<const M2::ConcreteRing<M2::ARingRRi> *>(R);
186 mpfi_init2(result, R1->get_precision());
187 mpfi_set(result, a->get_value().get_mpfi());
188 return moveTo_gmpRRi(result);
189 default:
190 ERROR("expected an element of RRi");
191 return nullptr;
192 }
193}
virtual unsigned long get_precision() const
virtual M2::RingID ringID() const
Definition ring.hpp:164
ring_elem get_value() const
Definition relem.hpp:79
const Ring * get_ring() const
Definition relem.hpp:81
xxx xxx xxx
Definition ring.hpp:102
mpfi_srcptr moveTo_gmpRRi(mpfi_ptr _z)
Definition gmp-util.h:159
@ ring_RR
Definition aring.hpp:87
@ ring_RRR
Definition aring.hpp:89
@ ring_RRi
Definition aring.hpp:91
const int ERROR
Definition m2-mem.cpp:55
VALGRIND_MAKE_MEM_DEFINED & result(result)
#define getmemstructtype(S)
Definition m2-mem.h:143
mpfi_ptr gmp_RRimutable
Definition m2-types.h:152
mpfr_srcptr get_mpfr() const
Definition ringelem.hpp:130
mpfi_srcptr get_mpfi() const
Definition ringelem.hpp:131
double get_double() const
Definition ringelem.hpp:126

References ERROR, ring_elem::get_double(), ring_elem::get_mpfi(), ring_elem::get_mpfr(), M2::ConcreteRing< RingType >::get_precision(), RingElement::get_ring(), RingElement::get_value(), getmemstructtype, moveTo_gmpRRi(), result(), M2::ring_RR, M2::ring_RRi, M2::ring_RRR, and Ring::ringID().