2 #include <basix/vector.hpp>
3 #include <basix/vector_sort.hpp>
4 #include <numerix/kernel.hpp>
13 #define TMPL template<class C>
14 #define RING ring<C,MonomialTensor>
15 #define POLYNOMIAL polynomial< C, with<MonomialTensor> >
19 template<
typename FT,
typename RT,
typename Poly>
21 static inline interval<FT>
34 return interval<FT>(left, right);
43 typedef typename kernel::interval_rational interval_rational;
46 vector<interval_rational> sol;
47 Solver::set_precision(prec);
52 for(
unsigned i=0;i<sol.size();i++)
53 r <<as<generic>(interval< Rational > (
lower(sol[i]),
upper(sol[i])));
69 typedef typename kernel::interval_rational interval_rational;
72 vector<interval_rational> sol;
73 Solver::set_precision(mmx_bit_precision);
77 for(
unsigned i=0;i<
N(sol);i++)
78 r <<as<generic>(interval< rational > (
lower(sol[i]),
upper(sol[i])));
89 typedef typename kernel::interval_rational interval_rational;
93 Solver::set_precision(prec);
95 vector<interval_rational> sol;
98 long int old_prec = mmx_bit_precision;
100 mmx_bit_precision = prec;
101 for(
unsigned i=0;i<sol.size();i++) {
102 r << as<generic>(as<floating<> >((
lower(sol[i])+
upper(sol[i]))/2));
104 mmx_bit_precision = old_prec;
118 typedef typename kernel::interval_rational interval_rational;
119 typedef kernel::interval_rational interval_rational;
123 for(
unsigned i=0;i<sol.
size();i++) r << as<generic>(sol[i]);
127 TMPL interval<floating<> >
129 typedef interval<floating<> > interval_t;
Cauchy bound.
Definition: univariate_bounds.hpp:163
Sequence of terms with reference counter.
Definition: Seq.hpp:28
TMPL vector< generic > solver_univariate_contfrac_approx(const POLYNOMIAL &p)
Definition: solver_univariate_glue.hpp:109
const Interval & I
Definition: Interval_glue.hpp:49
Definition: assign.hpp:48
T upper(const Interval< T, r > &x)
Definition: Interval_fcts.hpp:89
FT bound_root(const POLY &p, const Cauchy< FT > &m)
Definition: univariate_bounds.hpp:325
RT a
Definition: contfrac_intervaldata.hpp:22
TMPL vector< generic > solver_univariate_sleeve(const POLYNOMIAL &p)
Definition: solver_univariate_glue.hpp:114
TMPL int N(const MONOMIAL &v)
Definition: monomial_glue.hpp:60
Seq< typename ContFrac< NT, LB >::root_t > solve(const typename ContFrac< NT >::Poly &f, ContFrac< NT, LB >)
Definition: contfrac.hpp:164
static interval< FT > cv(const IntervalData< RT, Poly > &I)
Definition: solver_univariate_glue.hpp:22
RT b
Definition: contfrac_intervaldata.hpp:22
RT c
Definition: contfrac_intervaldata.hpp:22
TMPL vector< generic > solver_univariate_contfrac_prec(const POLYNOMIAL &p, const int &prec)
Definition: solver_univariate_glue.hpp:39
Definition: contfrac_intervaldata.hpp:17
Definition: texp_kernelof.hpp:14
size_type size() const
Definition: Seq.hpp:166
TMPL vector< generic > solver_univariate_contfrac_approx_prec(const POLYNOMIAL &p, const int &prec)
Definition: solver_univariate_glue.hpp:85
RT d
Definition: contfrac_intervaldata.hpp:22
Definition: solver.hpp:68
TMPL POLYNOMIAL
Definition: polynomial_operators.hpp:148
TMPL vector< generic > solver_univariate_contfrac(const POLYNOMIAL &p)
Definition: solver_univariate_glue.hpp:59
T lower(const Interval< T, r > &x)
Definition: Interval_fcts.hpp:87
mplib::integer integer
Definition: texp_kernelof.hpp:16
#define TMPL
Definition: solver_univariate_glue.hpp:13
mplib::rational rational
Definition: texp_kernelof.hpp:17
Poly p
Definition: contfrac_intervaldata.hpp:23
TMPL interval< floating<> > solver_univariate_newton(const POLYNOMIAL &p, const interval< floating<> > &I)
Definition: solver_univariate_glue.hpp:128
int sign(const QQ &a)
Definition: GMP.hpp:60
Definition: solver_uv_interval_newton.hpp:232