Skip to content

Commit

Permalink
Merge pull request CGAL#8400 from afabri/CGAL-remove_RS-GF
Browse files Browse the repository at this point in the history
Algebraic_kernel_d: Remove RS
  • Loading branch information
sloriot committed Nov 5, 2024
2 parents 1690619 + 0fa0b00 commit a025196
Show file tree
Hide file tree
Showing 32 changed files with 36 additions and 4,757 deletions.
44 changes: 5 additions & 39 deletions Algebraic_kernel_d/doc/Algebraic_kernel_d/Algebraic_kernel_d.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ namespace CGAL {
\section Algebraic_kernel_dIntroduction Introduction

Real solving of polynomials is a fundamental problem with a wide application range.
This package is targeted at providing black-box implementations of state-of-the-art
This package provides black-box implementations of
algorithms to determine, compare, and approximate real roots of univariate polynomials
and bivariate polynomial systems. Such a black-box is called an *Algebraic Kernel*.
Since this package is aimed at providing more than one implementation, the interface of
Expand Down Expand Up @@ -283,41 +283,6 @@ is not stored internally in terms of an `Algebraic_real_1` object.
Querying such a representation by calling `Compute_y_2` is a
time-consuming step, and should be avoided for efficiency reasons if possible.

\subsection Algebraic_kernel_dAlgebraicKernelsBasedon Algebraic Kernels Based on RS

The package offers two univariate algebraic kernels that are based on
the library RS \cgalCite{cgal:r-rs}, namely `Algebraic_kernel_rs_gmpz_d_1`
and `Algebraic_kernel_rs_gmpq_d_1`. As the names indicate,
the kernels are based on the library RS \cgalCite{cgal:r-rs} and support univariate
polynomials over `Gmpz` or `Gmpq`, respectively.

In general we encourage to use `Algebraic_kernel_rs_gmpz_d_1`
instead of `Algebraic_kernel_rs_gmpq_d_1`. This is caused by
the fact that the most efficient way to compute operations (such as gcd)
on polynomials with rational coefficients is to use the corresponding
implementation for polynomials with integer coefficients. That is,
the `Algebraic_kernel_rs_gmpq_d_1` is slightly slower due to
overhead caused by the necessary conversions. However, since this may
not always be a major issue, the `Algebraic_kernel_rs_gmpq_d_1`
is provided for convenience.

The core of both kernels is the implementation of the interval Descartes
algorithm \cgalCite{cgal:rz-jcam-04} of the library RS \cgalCite{cgal:r-rs},
which is used to isolate the roots of the polynomial.
The RS library restricts its attention to univariate integer
polynomials and some substantial gain of efficiency can be made by using a kernel
that does not follow the generic programming paradigm, by avoiding
interfaces between layers. Specifically, working with
only one number type allows to optimize some polynomial operations
as well as memory handling. The implementation of these kernels
make heavy use of the \mpfr \cgalCite{cgal:mt-mpfr} and \mpfi \cgalCite{cgal:r-mpfi}
libraries, and of their \cgal interfaces, `Gmpfr` and `Gmpfi`.
The algebraic numbers (roots of the polynomials) are represented
in the two RS kernels by a `Gmpfi` interval and a pointer to
the polynomial of which they are roots. See \cgalCite{cgal:lpt-wea-09}
for more details on the implementation, tests of these kernels,
comparisons with other algebraic kernels and discussions about the
efficiency.

\section Algebraic_kernel_dExamples Examples

Expand Down Expand Up @@ -376,12 +341,13 @@ Michael Hemmer and Michael Kerber, respectively. Notwithstanding, the authors al
contribution of all authors of the \exacus project,
particularly the contribution of Arno Eigenwillig, Sebastian Limbach and Pavel Emeliyanenko.

The two univariate kernels that interface the library RS \cgalCite{cgal:r-rs} were
written by Luis Peñaranda and Sylvain Lazard.
In 2010, two univariate kernels that interface the library RS \cgalCite{cgal:r-rs} were
written by Luis Peñaranda and Sylvain Lazard \cgalCite{cgal:2009-ESA}.
Both models interface the library RS \cgalCite{cgal:r-rs} by Fabrice Rouillier.
The authors want to thank Fabrice Rouillier and Elias Tsigaridas for
strong support and many useful discussions that lead to the integration of RS.
Due to lack of maintenance, these kernels have been removed in 2024.


*/
} /* namespace CGAL */

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,7 @@ algebraic functionalities on univariate polynomials of general degree \f$ d\f$.
\cgalRefines{CopyConstructible,Assignable}
\cgalHasModelsBegin
\cgalHasModels{CGAL::Algebraic_kernel_rs_gmpz_d_1}
\cgalHasModels{CGAL::Algebraic_kernel_rs_gmpq_d_1}
\cgalHasModels{CGAL::Algebraic_kernel_d_1}
\cgalHasModelsEnd
\sa `AlgebraicKernel_d_2`
Expand Down Expand Up @@ -172,4 +171,3 @@ AlgebraicKernel_d_1::Bound_between_1 bound_between_1_object() const;
/// @}

}; /* end AlgebraicKernel_d_1 */

Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,11 @@ for solving and handling bivariate polynomial systems of general degree \f$ d\f$
\cgalRefines{AlgebraicKernel_d_1,CopyConstructible,Assignable}
\cgalHasModelsBegin
\cgalHasModels{CGAL::Algebraic_kernel_d_2}
\cgalHasModelsEnd
\sa `AlgebraicKernel_d_1`
*/
Expand Down Expand Up @@ -176,4 +181,3 @@ AlgebraicKernel_d_2::Bound_between_x_2 bound_between_x_2_object() const;
/// @}

}; /* end AlgebraicKernel_d_2 */

Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,11 @@
\cgalPkgPicture{Algebraic_kernel_d.png}
\cgalPkgSummaryBegin
\cgalPkgAuthors{Eric Berberich, Michael Hemmer, Michael Kerber, Sylvain Lazard, Luis Peñaranda, and Monique Teillaud}
\cgalPkgDesc{Real solving of polynomials is a fundamental problem with a wide application range. This package is targeted to provide black-box implementations of state-of-the-art algorithms to determine, compare and approximate real roots of univariate polynomials and bivariate polynomial systems. Such a black-box is called an *Algebraic %Kernel*. So far the package only provides models for the univariate kernel. Nevertheless, it already defines concepts for the bivariate kernel, since this settles the interface for upcoming implementations.}
\cgalPkgDesc{Real solving of polynomials is a fundamental problem with a wide application range. This package is targeted to provide black-box implementation algorithms to determine, compare and approximate real roots of univariate polynomials and bivariate polynomial systems. Such a black-box is called an *Algebraic %Kernel*. So far the package only provides models for the univariate kernel. Nevertheless, it already defines concepts for the bivariate kernel, since this settles the interface for upcoming implementations.}
\cgalPkgManuals{Chapter_Algebraic_Kernel,PkgAlgebraicKernelDRef}
\cgalPkgSummaryEnd
\cgalPkgShortInfoBegin
\cgalPkgSince{3.6}
\cgalPkgDependsOn{Some models depend on \ref thirdpartyRS3.}
\cgalPkgBib{cgal:bht-ak}
\cgalPkgLicense{\ref licensesLGPL "LGPL"}
\cgalPkgShortInfoEnd
Expand Down Expand Up @@ -100,8 +99,4 @@
- `CGAL::Algebraic_kernel_d_1<Coeff>`
- `CGAL::Algebraic_kernel_d_2<Coeff>`

- `CGAL::Algebraic_kernel_rs_gmpz_d_1`
- `CGAL::Algebraic_kernel_rs_gmpq_d_1`

*/

114 changes: 0 additions & 114 deletions Algebraic_kernel_d/include/CGAL/Algebraic_kernel_rs_gmpq_d_1.h

This file was deleted.

Loading

0 comments on commit a025196

Please sign in to comment.