\( \newcommand{\E}{\mathrm{E}} \) \( \newcommand{\A}{\mathrm{A}} \) \( \newcommand{\R}{\mathrm{R}} \) \( \newcommand{\N}{\mathrm{N}} \) \( \newcommand{\Q}{\mathrm{Q}} \) \( \newcommand{\Z}{\mathrm{Z}} \) \( \def\ccSum #1#2#3{ \sum_{#1}^{#2}{#3} } \def\ccProd #1#2#3{ \sum_{#1}^{#2}{#3} }\)

CGAL 4.8 - Algebraic Kernel

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
List of all members
CGAL::Algebraic_kernel_d_1< Coeff > Class Template Reference
Models

`#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)

Advanced

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 [6]. The used method to refine the approximation of an algebraic real root is a slightly modified (filtered) version of the one presented in [1]. The method has quadratic convergence.

Is Model Of:
  `AlgebraicKernel_d_1`

See Also
  `AlgebraicKernel_d_1`
  `Polynomial_d`
  `CGAL::Algebraic_kernel_d_2<Coeff>`

Examples:
  Algebraic_kernel_d/Compare_1.cpp, Algebraic_kernel_d/Construct_algebraic_real_1.cpp, Algebraic_kernel_d/Isolate_1.cpp, Algebraic_kernel_d/Sign_at_1.cpp, and Algebraic_kernel_d/Solve_1.cpp.

## Types
typedef unspecified_type | Coefficient
| Same type as the template argument `Coeff`.
typedef unspecified_type | Polynomial_1
| A model of `AlgebraicKernel_d_1::Polynomial_1`.
typedef unspecified_type | Algebraic_real_1
| A model of `AlgebraicKernel_d_1::Algebraic_real_1`.
typedef unspecified_type | Bound
| The choice of `Coeff` also determines the provided bound type. More...
typedef unspecified_type | Multiplicity_type
| The multiplicity type is `int`.

## Member Typedef Documentation

template<typename Coeff >

typedef unspecified_type CGAL::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::BigRat`, this is `CORE::BigRat`,
- `leda_integer` or `leda_rational`, this is `leda_rational`.