3#ifndef _aring_translate_hpp_
4#define _aring_translate_hpp_
100template <
typename RT>
108template <
typename RT>
110 typename RT::ElementType& a,
272template <
typename RingR,
typename RingS>
275 const typename RingR::ElementType& fR,
276 typename RingS::ElementType& result_fS)
284template <
typename RingR,
typename RingS>
287 typename RingR::ElementType& result_gR,
288 const typename RingS::ElementType& gS)
550 R.
set(result_gR, gS);
615 R.
set(result_gR, gS);
643 R.
set(result_gR, gS);
655 ARingRRR::Element gT(
T);
658 bool liftstep =
mylift(R,
T,result_gR,gT);
660 return liftstep &&
T.is_zero(gT);
669 ARingRRR::Element gT(
T);
672 bool liftstep =
mylift(R,
T,result_gR,gT);
674 return liftstep &&
T.is_zero(gT);
683 ARingRRR::Element gT(
T);
686 bool liftstep =
mylift(R,
T,result_gR,gT);
688 return liftstep &&
T.is_zero(gT);
M2::ARingCC — machine-precision complex numbers (pair of doubles).
M2::ARingCCC — arbitrary-precision complex numbers (pair of MPFR floats).
M2::ARingCCi — certified complex intervals as Cartesian rectangles of MPFI intervals.
M2::ARingRR — machine-precision real numbers (IEEE 754 double).
M2::ARingRRR — arbitrary-precision real numbers backed by MPFR.
M2::ARingRRi — certified real intervals [a, b] with MPFR endpoints, MPFI arithmetic.
M2::ARingGFFlintBig — arbitrary-degree GF(p^k) via FLINT fq_nmod.
M2::ARingGFFlint — small GF(p^k) via FLINT Zech-logarithm tables.
M2::ARingGFM2 — native engine Galois field, no FLINT dependency.
Tiny dispatcher header that picks the default ARingQQ from among the QQ aring implementations.
M2::ARingTower — iterated finite-field extension tower for very large GF(p^k).
M2::ARingZZ — FLINT-backed arbitrary-precision integers with small-value inlining.
M2::ARingZZGMP — aring integer ring backed straight by GMP mpz_t.
M2::ARingZZpFFPACK — Z/p via FFLAS-FFPACK's Givaro::Modular<double> field.
M2::ARingZZpFlint — Z/p via FLINT's nmod_t precomputed-reciprocal reduction.
M2::ARingZZp — portable Z/p for small primes via log / exp tables.
void set(ElementType &result, const ElementType &a) const
bool set_from_mpq(ElementType &result, mpq_srcptr a) const
void set_from_doubles(ElementType &result, double re, double im) const
bool set_from_BigReals(ElementType &result, gmp_RR re, gmp_RR im) const
bool set_from_BigComplex(ElementType &result, gmp_CC a) const
bool set_from_double(ElementType &result, double a) const
bool set_from_complex_double(ElementType &result, double re, double im) const
bool set_from_BigReal(ElementType &result, gmp_RR a) const
bool set_from_BigReal(ElementType &result, gmp_RR a) const
bool set_from_complex_double(ElementType &result, double re, double im) const
const RealRingType & real_ring() const
bool set_from_RRR(ElementType &result, const ARingRRR::ElementType &a) const
bool set_from_mpq(ElementType &result, mpq_srcptr a) const
bool set_from_double(ElementType &result, double a) const
const ARingRRR::ElementType & realPartReference(const ElementType &a) const
void set_from_doubles(ElementType &result, double re, double im) const
const ARingRRR::ElementType & imaginaryPartReference(const ElementType &a) const
bool set_from_BigComplex(ElementType &result, gmp_CC a) const
void set(ElementType &result, const ElementType &a) const
aring-style adapter for arbitrary-precision complex numbers, stored as (MPFR, MPFR) pairs.
aring-style adapter for double-precision complex numbers, stored as (double, double) pairs.
void set(ElementType &result, const ElementType &a) const
bool set_from_BigComplex(ElementType &result, gmp_CC a) const
bool set_from_complex_double(ElementType &result, double re, double im) const
bool set_from_double(ElementType &result, double a) const
bool set_from_BigReal(ElementType &result, gmp_RR a) const
bool set_from_Interval(ElementType &result, gmp_RRi a) const
aring-style adapter for arbitrary-precision complex intervals, stored as (MPFI, MPFI) pairs.
bool set_from_mpq(ElementType &result, mpq_srcptr a) const
bool set_from_BigReal(ElementType &result, gmp_RR a) const
bool set_from_double(ElementType &result, double a) const
aring-style adapter for double-precision real numbers.
bool set_from_BigReal(ElementType &result, gmp_RR a) const
bool is_zero(const ElementType &f) const
void set(ElementType &result, const ElementType &a) const
bool set_from_double(ElementType &result, double a) const
bool set_from_mpq(ElementType &result, mpq_srcptr a) const
aring-style adapter for arbitrary-precision real numbers, backed by MPFR.
void midpoint(ARingRRR::ElementType &a, const ElementType &b) const
bool set_from_Interval(ElementType &result, gmp_RRi a) const
void set(ElementType &result, const ElementType &a) const
void diameter(ARingRRR::ElementType &a, const ElementType &b) const
unsigned long get_precision() const
bool set_from_mpq(ElementType &result, mpq_srcptr a) const
bool set_from_double(ElementType &result, double a) const
bool set_from_BigReal(ElementType &result, gmp_RR a) const
aring-style adapter for arbitrary-precision real intervals, backed by MPFI.
struct gmp_CC_struct * gmp_CC
struct gmp_CCi_struct * gmp_CCi
bool get_from_Interval(const RT &R, typename RT::ElementType &a, gmp_RRi b)
bool mypromote(const RingR &R, const RingS &S, const typename RingR::ElementType &fR, typename RingS::ElementType &result_fS)
bool get_from_BigComplex(const RT &R, typename RT::ElementType &a, gmp_CC b)
bool get_from_complex_double(const RT &R, typename RT::ElementType &a, double re, double im)
bool get_from_double(const RT &R, typename RT::ElementType &a, double b)
bool get_from_ComplexInterval(const RT &R, typename RT::ElementType &a, gmp_CCi b)
bool get_from_BigReal(const RT &R, typename RT::ElementType &a, gmp_RR b)
bool mylift(const RingR &R, const RingS &S, typename RingR::ElementType &result_gR, const typename RingS::ElementType &gS)