Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Document boost mp as a possible gmp replacement #8438

Merged
merged 2 commits into from
Sep 4, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 19 additions & 10 deletions Documentation/doc/Documentation/Third_party.txt
Original file line number Diff line number Diff line change
Expand Up @@ -72,23 +72,32 @@ As there is no canonical directory for where to find \boost on Windows,
we recommend that you define the environment variable
`BOOST_ROOT` and set it to where you have installed \boost, e.g., `C:\boost\boost_1_70_0`.

\subsection thirdpartyMPFR GNU Multiple Precision Arithmetic (GMP) and GNU Multiple Precision Floating-Point Reliably (MPFR) Libraries
<b>GMP Version 5.0.1 or later, MPFR Version 3.0.0 or later</b>
\subsection thirdpartyMP Multi Precision Number Type Library

The components \cgal, `CGAL_Core`, and `CGAL_Qt6` require
\gmp and \mpfr which are libraries for multi precision integers and rational numbers,
and for multi precision floating point numbers.

\cgal combines floating point arithmetic with exact arithmetic
in order to be efficient and reliable. \cgal has a built-in
number type for that, but \gmp and \mpfr provide a faster
solution, and we recommend using them.
GNU Multiple Precision Arithmetic (GMP) and GNU Multiple Precision Floating-Point Reliably (MPFR) Libraries
are libraries for multi precision integers and rational numbers, and for multi precision floating point numbers.

These libraries can be obtained from <A HREF="https://gmplib.org/">`https://gmplib.org/`</A>
and <A HREF="https://www.mpfr.org/">`https://www.mpfr.org/`</A>.
Since Visual \cpp is not properly supported by the \gmp and \mpfr projects,
we provide precompiled versions of \gmp and \mpfr, which can be downloaded
from the <a href="https://github.com/CGAL/cgal/releases">assets of a release</a>.
Version supported are <b>GMP Version 5.0.1 or later, MPFR Version 3.0.0 or later</b>.

The \boost library also provides a module for multi precision integers and rational numbers:
<A HREF="https://www.boost.org/doc/libs/release/libs/multiprecision/doc/html/index.html">\boost multiprecision</A>.
Versions supported are <b>\boost Version 1.72 or later</b>.

The components \cgal, and `CGAL_Qt6` require either \gmp and \mpfr, or \boost multiprecision
for multi precision numbers. `CGAL_Core` requires \boost multiprecision.

\cgal combines floating point arithmetic with exact arithmetic
in order to be efficient and reliable. \cgal has a built-in
number type for that, but previous alternatives are faster
solutions, and we recommend using one of them.

The CMake variable `CGAL_CMAKE_EXACT_NT_BACKEND` can be used to select
the library that will be used internally for multi precision number types.

\section secoptional3rdpartysoftware Optional Third Party Libraries

Expand Down
2 changes: 1 addition & 1 deletion Documentation/doc/Documentation/Usage.txt
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ Using \cgal requires a few core components to be previously installed:
<li> a supported compiler (see Section \ref seccompilers),</li>
<li> \ref seccmake,</li>
<li> \ref thirdpartyBoost,</li>
<li> \ref thirdpartyMPFR.</li>
<li> a \ref thirdpartyMP.</li>
</ul>

Optional third-party software might be required to build examples and demos shipped with \cgal,
Expand Down
2 changes: 1 addition & 1 deletion Documentation/doc/Documentation/windows.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
15.9, 16.0, 17.0 (\visualstudio 2017, 2019, and 2022).

\cgal is a library that has mandatory dependencies that must be first installed:
\ref thirdpartyBoost and \ref thirdpartyMPFR.
\ref thirdpartyBoost and a \ref thirdpartyMP.

You have two options to install \cgal and its dependencies: you can either use
the *Vcpkg library manager*, which will automatically install an appropriate version of
Expand Down
2 changes: 2 additions & 0 deletions Installation/CHANGES.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ Release date: June 2024
- LLVM Clang version 15.0.7 or later (on Linux)
- Apple Clang compiler versions 10.0.1, 12.0.5, and 15.0.0 (on macOS)
- The minimal supported version of Boost is now 1.72.0.
- GMP/MPFR are no longer mandatory to use CGAL, [Boost.Multiprecision](https://www.boost.org/doc/libs/1_72_0/libs/multiprecision/doc/html/index.html).
can be used instead.
- The CGAL `Core` library is no longer based on GMP, but on
[Boost.Multiprecision](https://www.boost.org/doc/libs/1_72_0/libs/multiprecision/doc/html/index.html).
Either GMP backend or Boost backend can be used.
Expand Down