realroot_doc 0.1.1
/Users/mourrain/Devel/mmx/realroot/glue/glue_solver_univariate_floating.cpp
Go to the documentation of this file.
00001 
00002 #include <numerix/integer.hpp>
00003 #include <numerix/rational.hpp>
00004 #include <numerix/floating.hpp>
00005 #include <numerix/kernel.hpp>
00006 #include <realroot/Interval_glue.hpp>
00007 #include <basix/int.hpp>
00008 #include <basix/vector.hpp>
00009 #include <basix/port.hpp>
00010 #include <realroot/polynomial.hpp>
00011 #include <realroot/polynomial_glue.hpp>
00012 #include <realroot/polynomial_sparse_glue.hpp>
00013 #include <realroot/polynomial_tensor_glue.hpp>
00014 #include <realroot/solver_univariate_glue.hpp>
00015 #include <basix/glue.hpp>
00016 
00017 #define set_of_generic set_of(generic)
00018 #define set_of_double set_of(double)
00019 #define set_of_integer set_of(integer)
00020 #define set_of_rational set_of(rational)
00021 #define set_of_bigfloat set_of(bigfloat)
00022 #define set_of_complex_bigfloat set_of(complex_bigfloat)
00023 #define int_literal(x) as_int (as_string (x))
00024 ;
00025 namespace mmx {
00026   inline long int bit_size(const rational& z) {return std::max(bit_size(numerator(z)), bit_size(denominator(z))); }
00027 }
00028 
00029 
00030 namespace mmx {
00031   static vector<generic>
00032   GLUE_1 (const ring<mmx_floating, MonomialTensor>::Polynomial &arg_1) {
00033     return solver_univariate_contfrac_approx (arg_1);
00034   }
00035   
00036   static vector<generic>
00037   GLUE_2 (const ring<mmx_floating, MonomialTensor>::Polynomial &arg_1, const int &arg_2) {
00038     return solver_univariate_contfrac_approx_prec (arg_1, arg_2);
00039   }
00040   
00041   void
00042   glue_solver_univariate_floating () {
00043     static bool done = false;
00044     if (done) return;
00045     done = true;
00046     call_glue (string ("glue_kernel"));
00047     call_glue (string ("glue_interval"));
00048     call_glue (string ("glue_polynomial_tensor_floating"));
00049     define ("solve_approx", GLUE_1);
00050     define ("solve_approx", GLUE_2);
00051   }
00052 }