\( \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 | Classes
AlgebraicKernel_d_1 Concept Reference
Univariate Algebraic Kernel

## Definition

A model of the `AlgebraicKernel_d_1` concept is meant to provide the algebraic functionalities on univariate polynomials of general degree \( d\).

Refines:

  `CopyConstructible`

  `Assignable`

Has Models:

  `CGAL::Algebraic_kernel_rs_gmpz_d_1`

  `CGAL::Algebraic_kernel_rs_gmpq_d_1`

See Also
  `AlgebraicKernel_d_2`

A model of `AlgebraicKernel_d_1` must provide:

## Concepts
concept | ApproximateAbsolute_1
| A model of `AlgebraicKernel_d_1::ApproximateAbsolute_1` is an `AdaptableBinaryFunction` that computes an approximation of an `AlgebraicKernel_d_1::Algebraic_real_1` value with respect to a given absolute precision. More...
concept | ApproximateRelative_1
| A model of `AlgebraicKernel_d_1::ApproximateRelative_1` is an `AdaptableBinaryFunction` that computes an approximation of an `AlgebraicKernel_d_1::Algebraic_real_1` value with respect to a given relative precision. More...
concept | BoundBetween_1
| Computes a number of type `AlgebraicKernel_d_1::Bound` in-between two `AlgebraicKernel_d_1::Algebraic_real_1` values. More...
concept | Compare_1
| Compares `AlgebraicKernel_d_1::Algebraic_real_1` values. More...
concept | ComputePolynomial_1
| Computes a square free univariate polynomial \( p\), such that the given `AlgebraicKernel_d_1::Algebraic_real_1` is a root of \( p\). More...
concept | ConstructAlgebraicReal_1
| Constructs `AlgebraicKernel_d_1::Algebraic_real_1`. More...
concept | IsCoprime_1
| Determines whether a given pair of univariate polynomials \( p_1, p_2\) is coprime, namely if \( \deg({\rm gcd}(p_1 ,p_2)) = 0\). More...
concept | Isolate_1
| Computes an open isolating interval for an `AlgebraicKernel_d_1::Algebraic_real_1` with respect to the real roots of a given univariate polynomial. More...
concept | IsSquareFree_1
| Computes whether the given univariate polynomial is square free. More...
concept | IsZeroAt_1
| Computes whether an `AlgebraicKernel_d_1::Polynomial_1` is zero at a given `AlgebraicKernel_d_1::Algebraic_real_1`. More...
concept | MakeCoprime_1
| Computes for a given pair of univariate polynomials \( p_1\), \( p_2\) their common part \( g\) up to a constant factor and coprime parts \( q_1\), \( q_2\) respectively. More...
concept | MakeSquareFree_1
| Returns a square free part of a univariate polynomial. More...
concept | NumberOfSolutions_1
| Computes the number of real solutions of the given univariate polynomial. More...
concept | SignAt_1
| Computes the sign of a univariate polynomial `AlgebraicKernel_d_1::Polynomial_1` at a real value of type `AlgebraicKernel_d_1::Algebraic_real_1`. More...
concept | Solve_1
| Computes the real roots of a univariate polynomial. More...
concept | SquareFreeFactorize_1
| Computes a square free factorization of an `AlgebraicKernel_d_1::Polynomial_1`. More...

## Types
typedef unspecified_type | Coefficient
| A model of `IntegralDomain` and `RealEmbeddable`. More...
typedef unspecified_type | Polynomial_1
| A univariate polynomial that is a model of `Polynomial_d`, where `CGAL::Polynomial_traits_d<Polynomial_1>::Innermost_coefficient_type` is `AlgebraicKernel_d_1::Coefficient`.
typedef unspecified_type | Algebraic_real_1
| A type that is used to represent real roots of univariate polynomials. More...
typedef unspecified_type | Bound
| A type to represent upper and lower bounds of `AlgebraicKernel_d_1::Algebraic_real_1`. More...
typedef unspecified_type | size_type
| Size type (unsigned integral type).
typedef unspecified_type | Multiplicity_type
| Multiplicity type (unsigned integral type).

## Functors
typedef unspecified_type | Construct_algebraic_real_1
| A model of `AlgebraicKernel_d_1::ConstructAlgebraicReal_1`.
typedef unspecified_type | Compute_polynomial_1
| A model of `AlgebraicKernel_d_1::ComputePolynomial_1`.
typedef unspecified_type | Isolate_1
| A model of `AlgebraicKernel_d_1::Isolate_1`.
typedef unspecified_type | Is_square_free_1
| A model of `AlgebraicKernel_d_1::IsSquareFree_1`.
typedef unspecified_type | Make_square_free_1
| A model of `AlgebraicKernel_d_1::MakeSquareFree_1`.
typedef unspecified_type | Square_free_factorize_1
| A model of `AlgebraicKernel_d_1::SquareFreeFactorize_1`.
typedef unspecified_type | Is_coprime_1
| A model of `AlgebraicKernel_d_1::IsCoprime_1`.
typedef unspecified_type | Make_coprime_1
| A model of `AlgebraicKernel_d_1::MakeCoprime_1`.
typedef unspecified_type | Solve_1
| A model of `AlgebraicKernel_d_1::Solve_1`.
typedef unspecified_type | Number_of_solutions_1
| A model of `AlgebraicKernel_d_1::NumberOfSolutions_1`.
typedef unspecified_type | Sign_at_1
| A model of `AlgebraicKernel_d_1::SignAt_1`.
typedef unspecified_type | Compare_1
| A model of `AlgebraicKernel_d_1::Compare_1`.
typedef unspecified_type | Bound_between_1
| A model of `AlgebraicKernel_d_1::BoundBetween_1`.
typedef unspecified_type | Approximate_absolute_1
| A model of `AlgebraicKernel_d_1::ApproximateAbsolute_1`.
typedef unspecified_type | Approximate_relative_1
| A model of `AlgebraicKernel_d_1::ApproximateRelative_1`.

## Operations
For each of the function objects above, there must exist a member function that requires no arguments and returns an instance of that function object. The name of the member function is the uncapitalized name of the type returned with the suffix `_object` appended. For example, for the function object `AlgebraicKernel_d_1::Bound_between_1` the following member function must exist:
AlgebraicKernel_d_1::Bound_between_1 | bound_between_1_object () const

## Member Typedef Documentation

typedef unspecified_type AlgebraicKernel_d_1::Algebraic_real_1

A type that is used to represent real roots of univariate polynomials.

The type must be a model of `DefaultConstructible`, `CopyConstructible`, `Assignable` and `RealEmbeddable`.

typedef unspecified_type AlgebraicKernel_d_1::Bound

A type to represent upper and lower bounds of `AlgebraicKernel_d_1::Algebraic_real_1`.

The type is `ExplicitInteroperable` with `AlgebraicKernel_d_1::Coefficient` and must be a model `IntegralDomain`, `RealEmbeddable` and dense in \( \mathbb{R}\).

typedef unspecified_type AlgebraicKernel_d_1::Coefficient

A model of `IntegralDomain` and `RealEmbeddable`.

`ExplicitInteroperable` with `AlgebraicKernel_d_1::Bound`.