11 # ifndef realroot_subdivisor_mv_binary_hpp
12 # define realroot_subdivisor_mv_binary_hpp
23 template<
class Cell,
class Stack>
27 static bool reduce(Cell* cl);
36 template<
class Cell,
class Stack>
void
40 Cell* left =
new Cell(*cl);
41 Cell* right =
new Cell(*cl);
44 typename Cell::Scalar s=cl->domain(0).upper()-cl->domain(0).lower(),s0;
45 for (
unsigned i=0;i<cl->nbvar();i++)
46 if((s0=cl->domain(i).upper()-cl->domain(i).lower())>s) {
49 typename Cell::Scalar m=(cl->domain(v).upper()+cl->domain(v).lower())/2;
51 for (
unsigned i=0;i<cl->nbeq();i++)
53 left->domain(v).upper()=m;
54 right->domain(v).lower()=m;
64 template<
class Cell>
bool
66 if(cl->size() <
m_eps)
return false;
67 for(
unsigned i=0;i<cl->nbeq();i++)
72 template<
class Cell>
bool
74 for(
unsigned i=0;i<cl->nbeq();i++)
83 static bool reduce(Cell* cl);
87 template<
class Cell>
bool
89 if(cl->size() <
m_eps)
return false;
90 std::cout<<
"isolate"<<std::endl;
91 for(
unsigned i=0;i<cl->nbeq();i++)
Definition: subdivisor_mv_binary.hpp:19
static bool reduce(Cell *cl)
Definition: subdivisor_mv_binary.hpp:65
static bool reduce(Cell *cl)
Definition: subdivisor_mv_binary.hpp:88
static double m_eps
Definition: subdivisor_mv_binary.hpp:21
Definition: subdivisor_mv_binary.hpp:80
TMPL void split(Polynomial &r, Polynomial &p, int v)
Definition: polynomial_fcts.hpp:193
#define Scalar
Definition: polynomial_operators.hpp:12
#define Stack
Definition: subdivisor.hpp:19
static bool regular(Cell *cl)
Definition: subdivisor_mv_binary.hpp:73
bool has_sign_variation(Iterator b, Iterator e)
Definition: sign_variation.hpp:84
static void subdivide(Cell *cl, Stack *stack)
Definition: subdivisor_mv_binary.hpp:37