CGAL 4.12.1 - Algebraic Kernel
AlgebraicKernel_d_1 Concept Reference

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

AlgebraicKernel_d_2

A model of AlgebraicKernel_d_1 must provide:

## Concepts

conceptApproximateAbsolute_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...

conceptApproximateRelative_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...

conceptBoundBetween_1
Computes a number of type AlgebraicKernel_d_1::Bound in-between two AlgebraicKernel_d_1::Algebraic_real_1 values. More...

conceptCompare_1
Compares AlgebraicKernel_d_1::Algebraic_real_1 values. More...

conceptComputePolynomial_1
Computes a square free univariate polynomial $$p$$, such that the given AlgebraicKernel_d_1::Algebraic_real_1 is a root of $$p$$. More...

conceptConstructAlgebraicReal_1
Constructs AlgebraicKernel_d_1::Algebraic_real_1. More...

conceptIsCoprime_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...

conceptIsolate_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...

conceptIsSquareFree_1
Computes whether the given univariate polynomial is square free. More...

conceptIsZeroAt_1
Computes whether an AlgebraicKernel_d_1::Polynomial_1 is zero at a given AlgebraicKernel_d_1::Algebraic_real_1. More...

conceptMakeCoprime_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...

conceptMakeSquareFree_1
Returns a square free part of a univariate polynomial. More...

conceptNumberOfSolutions_1
Computes the number of real solutions of the given univariate polynomial. More...

conceptSignAt_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...

conceptSolve_1
Computes the real roots of a univariate polynomial. More...

conceptSquareFreeFactorize_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

## ◆ 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.

## ◆ 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}$$.

## ◆ Coefficient

A model of IntegralDomain and RealEmbeddable.

ExplicitInteroperable with AlgebraicKernel_d_1::Bound.