This solver performs domain reduction and subdivision to isolate the real roots of a multivariate system in an axis parallel box in arbitrary dimension.
The class which implements this family of solvers is of the form:
template<class C, class P> struct solver< C, ProjRd<P> >
C | is the coefficient type used during the subdivision | |
P | is the preconditionner. |
Possible values for the preconditionner are
SBDSLV_RD
is performing simple reductions;SBDSLV_RDL
is performing reductions and a local preconditioning;SBDSLV_RDS
is performing reductions and a global preconditioning;SBDSLV_RDRDL
is performing two steps of reductions and a local preconditioning;SBDSLV_RDRDLRDS
is performing two steps of reductions and a local preconditioning and again a reduction.The solver can for instance be used as follows:
Seq<std::vector<C> > sol = solver< C, ProjRd<P> >::solve( pols, dom );
where
pols
is a sequence of polynomials (with begin()
and end()
member functions) expressed in the Monomial basis. dom
is the domain for the resolution.The results is a sequence of vectors of type C
numbers, corresponding to the roots of the system. This is also the type defined in
typename solver<C,ProjRd<P> >::Solutions