Skip to content

Commit

Permalink
Update Sphinx documentation, commit 588b96a [skip ci].
Browse files Browse the repository at this point in the history
  • Loading branch information
bluescarni committed Dec 4, 2024
1 parent ca97588 commit b0f513e
Show file tree
Hide file tree
Showing 79 changed files with 7,992 additions and 5,756 deletions.
18 changes: 18 additions & 0 deletions _sources/changelog.rst
Original file line number Diff line number Diff line change
@@ -1,6 +1,24 @@
Changelog
=========

2.0.0 (unreleased)
------------------

Changes
~~~~~~~

- **BREAKING**: when FLINT support is enabled, mp++ now requires FLINT>=3
(`#319 <https://github.com/bluescarni/mppp/pull/319>`__).
- **BREAKING**: mp++ now requires CMake>=3.12
(`#319 <https://github.com/bluescarni/mppp/pull/319>`__).

Fix
~~~

- Implement workaround to avoid segfaults when compiling with
MSVC against a MinGW build of MPFR and MPC
(`#319 <https://github.com/bluescarni/mppp/pull/319>`__).

1.0.4 (2024-10-10)
------------------

Expand Down
42 changes: 18 additions & 24 deletions _sources/complex.rst
Original file line number Diff line number Diff line change
Expand Up @@ -655,7 +655,7 @@ The complex class
.. note::

The ``inv()`` function is available only if mp++ was
configured with the ``MPPP_WITH_ARB`` option enabled.
configured with the ``MPPP_WITH_FLINT`` option enabled.

In-place basic aritmetic functions.

Expand All @@ -682,7 +682,7 @@ The complex class

:return: a reference to ``this``.

:exception std\:\:invalid_argument: if the conversion between Arb and MPC types
:exception std\:\:invalid_argument: if the conversion between FLINT and MPC types
fails because of (unlikely) overflow conditions.

.. cpp:function:: complex &sqrt()
Expand All @@ -691,7 +691,7 @@ The complex class
.. note::

The ``rec_sqrt()`` function is available only if mp++ was
configured with the ``MPPP_WITH_ARB`` option enabled.
configured with the ``MPPP_WITH_FLINT`` option enabled.

In-place roots.

Expand All @@ -711,7 +711,7 @@ The complex class

:return: a reference to ``this``.

:exception std\:\:invalid_argument: if the conversion between Arb and MPC types
:exception std\:\:invalid_argument: if the conversion between FLINT and MPC types
fails because of (unlikely) overflow conditions.

.. cpp:function:: complex &exp()
Expand Down Expand Up @@ -781,7 +781,7 @@ The complex class
.. note::

This function is available only if mp++ was
configured with the ``MPPP_WITH_ARB`` option enabled.
configured with the ``MPPP_WITH_FLINT`` option enabled.

Arithmetic-geometric mean.

Expand All @@ -791,7 +791,7 @@ The complex class

:return: a reference to ``this``.

:exception std\:\:invalid_argument: if the conversion between Arb and MPC types
:exception std\:\:invalid_argument: if the conversion between FLINT and MPC types
fails because of (unlikely) overflow conditions.

Types
Expand Down Expand Up @@ -1325,7 +1325,7 @@ Arithmetic
.. note::

The ``inv()`` function is available only if mp++ was
configured with the ``MPPP_WITH_ARB`` option enabled.
configured with the ``MPPP_WITH_FLINT`` option enabled.

Basic binary arithmetic functions.

Expand Down Expand Up @@ -1355,7 +1355,7 @@ Arithmetic

:return: a reference to *rop*.

:exception std\:\:invalid_argument: if the conversion between Arb and MPC types
:exception std\:\:invalid_argument: if the conversion between FLINT and MPC types
fails because of (unlikely) overflow conditions.

.. cpp:function:: template <mppp::cvr_complex T> mppp::complex mppp::neg(T &&z)
Expand All @@ -1371,7 +1371,7 @@ Arithmetic
.. note::

The ``inv()`` function is available only if mp++ was
configured with the ``MPPP_WITH_ARB`` option enabled.
configured with the ``MPPP_WITH_FLINT`` option enabled.

Basic unary arithmetic functions.

Expand Down Expand Up @@ -1400,7 +1400,7 @@ Arithmetic

:return: the result of the operation.

:exception std\:\:invalid_argument: if the conversion between Arb and MPC types
:exception std\:\:invalid_argument: if the conversion between FLINT and MPC types
fails because of (unlikely) overflow conditions.

.. cpp:function:: template <mppp::cvr_complex T> mppp::complex &mppp::mul_2ui(mppp::complex &rop, T &&c, unsigned long n)
Expand Down Expand Up @@ -1502,7 +1502,7 @@ Roots
.. note::

The ``rec_sqrt()`` and ``rootn_ui()`` functions are available only if mp++ was
configured with the ``MPPP_WITH_ARB`` option enabled.
configured with the ``MPPP_WITH_FLINT`` option enabled.

Binary :cpp:class:`~mppp::complex` roots.

Expand Down Expand Up @@ -1530,7 +1530,7 @@ Roots

:return: a reference to *rop*.

:exception std\:\:invalid_argument: if the conversion between Arb and MPC types
:exception std\:\:invalid_argument: if the conversion between FLINT and MPC types
fails because of (unlikely) overflow conditions.

.. cpp:function:: template <mppp::cvr_complex T> mppp::complex mppp::sqrt(T &&z)
Expand All @@ -1540,7 +1540,7 @@ Roots
.. note::

The ``rec_sqrt()`` and ``rootn_ui()`` functions are available only if mp++ was
configured with the ``MPPP_WITH_ARB`` option enabled.
configured with the ``MPPP_WITH_FLINT`` option enabled.

Unary :cpp:class:`~mppp::complex` roots.

Expand All @@ -1567,7 +1567,7 @@ Roots

:return: the result of the operation.

:exception std\:\:invalid_argument: if the conversion between Arb and MPC types
:exception std\:\:invalid_argument: if the conversion between FLINT and MPC types
fails because of (unlikely) overflow conditions.

Exponentiation
Expand Down Expand Up @@ -1767,10 +1767,7 @@ Arithmetic-geometric mean
.. note::

These functions are available only if mp++ was
configured with the ``MPPP_WITH_ARB`` option enabled.

The ``agm()`` function is available only from
Arb 2.18 onwards.
configured with the ``MPPP_WITH_FLINT`` option enabled.

:cpp:class:`~mppp::complex` AGM functions.

Expand All @@ -1787,7 +1784,7 @@ Arithmetic-geometric mean

:return: a reference to *rop*.

:exception std\:\:invalid_argument: if the conversion between Arb and MPC types
:exception std\:\:invalid_argument: if the conversion between FLINT and MPC types
fails because of (unlikely) overflow conditions.

.. cpp:function:: template <mppp::cvr_complex T> mppp::complex mppp::agm1(T &&x)
Expand All @@ -1798,10 +1795,7 @@ Arithmetic-geometric mean
.. note::

These functions are available only if mp++ was
configured with the ``MPPP_WITH_ARB`` option enabled.

The ``agm()`` function is available only from
Arb 2.18 onwards.
configured with the ``MPPP_WITH_FLINT`` option enabled.

:cpp:class:`~mppp::complex` AGM functions.

Expand All @@ -1818,7 +1812,7 @@ Arithmetic-geometric mean

:return: the result of the operation.

:exception std\:\:invalid_argument: if the conversion between Arb and MPC types
:exception std\:\:invalid_argument: if the conversion between FLINT and MPC types
fails because of (unlikely) overflow conditions.

Input/Output
Expand Down
6 changes: 3 additions & 3 deletions _sources/definitions.rst
Original file line number Diff line number Diff line change
Expand Up @@ -83,11 +83,11 @@ Macros and definitions
This name is defined if mp++ was configured with support for the MPC library
(see the :ref:`installation instructions <installation>`).

.. c:macro:: MPPP_WITH_ARB
.. c:macro:: MPPP_WITH_FLINT
.. versionadded:: 0.19
.. versionadded:: 2.0.0

This name is defined if mp++ was configured with support for the Arb library
This name is defined if mp++ was configured with support for the FLINT library
(see the :ref:`installation instructions <installation>`).

.. c:macro:: MPPP_HAVE_GCC_INT128
Expand Down
25 changes: 11 additions & 14 deletions _sources/installation.rst
Original file line number Diff line number Diff line change
Expand Up @@ -17,18 +17,17 @@ a continuous integration pipeline which includes:

mp++ has the following dependencies:

* the `GMP <https://gmplib.org/>`__ library, **mandatory** (GMP 5 and later versions are supported,
the `MPIR <https://github.com/wbhart/mpir>`__ fork of GMP can also be used);
* the `GMP <https://gmplib.org/>`__ library, **mandatory** (GMP 5 and later versions are supported);
* the `GNU MPFR <https://www.mpfr.org>`__ multiprecision floating-point library, *optional*, used in the implementation
of the :cpp:class:`~mppp::real` class and for providing support
for the ``long double`` type in :cpp:class:`~mppp::integer` and :cpp:class:`~mppp::rational`
(MPFR 3 or a later version is required);
* the `GNU MPC <http://www.multiprecision.org/mpc/>`__ multiprecision complex library, *optional*, used in the implementation
of the :cpp:class:`~mppp::complex` class;
* the `Arb <https://arblib.org/>`__ and `FLINT <http://flintlib.org/>`__ libraries, *optional*,
* the `FLINT <http://flintlib.org/>`__ library, *optional*,
used in the implementation of additional special functions for the
:cpp:class:`~mppp::real` and :cpp:class:`~mppp::complex` classes, and in the benchmarking
suite;
suite (FLINT 3 or a later version is required);
* the `quadmath library <https://gcc.gnu.org/onlinedocs/libquadmath/>`__ from GCC, *optional*, used
in the implementation of the :cpp:class:`~mppp::real128` and :cpp:class:`~mppp::complex128` classes
(typically, the quadmath library is part of GCC and it does not need to
Expand All @@ -39,7 +38,7 @@ mp++ has the following dependencies:
to provide formatting capabilities to the multiprecision classes and in the benchmarking suite.

Additionally, `CMake <https://cmake.org/>`__ is the build system used by mp++ and it must also be available when
installing from source (the minimum required version is 3.8).
installing from source (the minimum required version is 3.12).

Installation from source
------------------------
Expand All @@ -56,7 +55,7 @@ path, etc.). The available configuration options are:
* ``MPPP_WITH_MPC``: enable features relying on the GNU
MPC library (off by default, requires the ``MPPP_WITH_MPFR``
option to be active),
* ``MPPP_WITH_ARB``: enable features relying on the Arb library
* ``MPPP_WITH_FLINT``: enable features relying on the FLINT library
(off by default, requires the ``MPPP_WITH_MPFR`` option to be active),
* ``MPPP_WITH_QUADMATH``: enable features relying on the
quadmath library (off by default),
Expand All @@ -82,10 +81,6 @@ path, etc.). The available configuration options are:

The ``MPPP_BUILD_STATIC_LIBRARY`` and ``MPPP_MSVC_UNICODE`` build options.

.. versionadded:: 0.19

The ``MPPP_WITH_ARB`` build option.

.. versionadded:: 0.20

The ``MPPP_WITH_MPC`` and ``MPPP_ENABLE_IPO`` build options.
Expand All @@ -98,6 +93,10 @@ path, etc.). The available configuration options are:

The ``MPPP_WITH_FMT`` build option.

.. versionadded:: 2.0.0

The ``MPPP_WITH_FLINT`` build option.

Note that the ``MPPP_WITH_QUADMATH`` option, at this time, is available only
using GCC (all the supported versions), Clang
(since version 3.9) and the Intel compiler. When this option is active,
Expand Down Expand Up @@ -277,7 +276,7 @@ variables to signal with which optional dependencies mp++ was compiled:

* ``mp++_WITH_MPFR`` if MPFR support was enabled,
* ``mp++_WITH_MPC`` if MPC support was enabled,
* ``mp++_WITH_ARB`` if Arb support was enabled,
* ``mp++_WITH_FLINT`` if FLINT support was enabled,
* ``mp++_WITH_QUADMATH`` if quadmath support was enabled,
* ``mp++_WITH_BOOST_S11N`` if Boost.serialization support was enabled,
* ``mp++_WITH_FMT`` if fmt support was enabled.
Expand Down Expand Up @@ -321,8 +320,7 @@ Intel compiler:
MinGW:

* Due to a compiler bug in the implementation of ``thread_local``
storage [#mingw_tls]_,
certain performance optimisations are disabled
storage, certain performance optimisations are disabled
when compiling with MinGW.

OSX:
Expand All @@ -344,5 +342,4 @@ FreeBSD:

.. rubric:: Footnotes

.. [#mingw_tls] https://sourceforge.net/p/mingw-w64/bugs/445/
.. [#freebsd_mppp_bug] https://github.com/bluescarni/mppp/issues/132
Loading

0 comments on commit b0f513e

Please sign in to comment.