Class

CGAL::Algebraic_kernel_d_1<Coeff>

#include <CGAL/Algebraic_kernel_d_1.h>

Definition

The class represents an algebraic real root by a square free polynomial and an isolating interval that uniquely defines the root. The template argument Coeff determines the coefficient type of the kernel, which is also the coefficient type of the supported polynomials.

Currently, the following coefficient types are supported:
- Gmpz, Gmpq, (requires configuration with external libraries GMP, MPFR and MPFI)
- CORE::BigInt, CORE::BigRat, (requires configuration with external library GMP)
- leda_integer, leda_rational. (requires configuration with external library LEDA)

The template argument type can also be set to Sqrt_extension<NT,ROOT>, where NT is one of the types listed above. ROOT should be one of the integer types. See also the documentation of Sqrt_extension<NT,ROOT>.

The current method to isolate roots is the bitstream Descartes method presented in [Eig08]. The used method to refine the approximation of an algebraic real root is a slightly modified (filtered) version of the one presented in [Abb]. The method has quadratic convergence.

Is Model for the Concepts

AlgebraicKernel_d_1.

Types

Algebraic_kernel_d_1<Coeff>::Coefficient
Same type as the template argument Coeff.


Algebraic_kernel_d_1<Coeff>::Polynomial_1
A model of AlgebraicKernel_d_1::Polynomial_1.


Algebraic_kernel_d_1<Coeff>::Algebraic_real_1
A model of AlgebraicKernel_d_1::AlgebraicReal_1.


Algebraic_kernel_d_1<Coeff>::Bound
The choice of Coeff also determines the provided bound, type. In case of Coeff is:
- Gmpz or Gmpq this is Gmpq,
- CORE::BigInt or CORE::BigInt this is CORE::BigRat,
- leda_integer or leda_integer this is leda_rational.


Algebraic_kernel_d_1<Coeff>::Multiplicity_type
The multiplicity type is int.

See Also

AlgebraicKernel_d_1
Polynomial_d
CGAL::Algebraic_kernel_d_2<Coeff>