Releases: flatsurf/e-antic
Releases · flatsurf/e-antic
2.0.2
2.0.1
2.0.0
There are no API changes in this major release. But there are breaking ABI changes.
Added:
- Added tarball with the built documentation to our GitHub release pages with every future release of e-antic.
- Added support for FLINT 3. (This is a breaking ABI change. A library built against FLINT 3 is not compatible with a library built against FLINT 2. You can still build against FLINT 2 and such a library should be compatible with the previous version 1.3.0.)
Removed:
- Removed the static library from the conda package that we upload with every commit to the master branch to the flatsurf channel. To our knowledge nobody is using these builds. They can sometimes be useful for debugging because they are built with debug symbols (which is why they are very big.) Providing a static library that nobody should use anyway is eating up the limited storage on anaconda.org twice as fast so we disable this.
Fixed:
- Adapted CI setup on GitHub to changes in setup-miniconda.
- Fixed some typos in source code, documentation, and error messages.
- Improved
environment.yml
files for development to not pull in any incompatible dependencies from PyPI silently - Fixed compiler warning about possibly uninitialized variable.
1.3.0
1.2.3
1.2.2
Fixed:
- Fixed conda channels used for binder notebooks.
- Fixed compilation errors on recent compilers by upgrading catch2 dependency used for testing.
- Fixed deserialization of renf_class from old Python pickles. (#242 sometimes crashed when called from Python since cppyy had trouble with the exceptions being thrown.)
- Fixed "installation with conda" page in our documentation (#240)
- Added logo to documentation. (#239)
- Fixed serialization with cereal 1.3.1+.
- Fixed compiler warnings about missing prototypes for test functions.
1.2.1
1.2.0
Performance:
-
Improved conversion from vectors of rational coefficients to
renf_elem_class
by using a faster code path in FLINT. -
Improved conversion from SageMath number fields to pyeantic
RealEmbeddedNumberField
. This adds a dependency of pyeantic on gmpxxyy.
1.1.1
Deprecated:
- Deprecated arithmetic between elements in different number fields in the C++ interface. Before, an operation such as
a + b
was possible even ifa
andb
lived in different number fields if at least one of them was actually a rational number. This led to inconsistent parent fields of the resulting element. We still allow such operations if the parent ofa
orb
is the rational field (renf_class::make()
) otherwise a deprecation warning is printed. To fully opt in to the new behaviour set the environment variableLIBEANTIC_STRICT_BINOP
to any value; this raises an exception instead of printing a warning.
Fixed:
- Fixed a compilation error on some xenial systems.
- Fixed import order in pyeantic's setup.py script.
- Fixed inclusion of .map files in distribution tarball even if building without version script support.
Performance:
- Improved performance of
RealEmbeddedNumberField
in Python interface by caching results. In particular the costly conversion fromrenf_class
.
1.1.0
Added:
- automatic integration checks for Normaliz
- Added support for Python 3.10; we are now automatically testing pyeantic with Python 3.10.
- Added
renf_class
that uses a root with dynamic precision. (Makes it easier to specify a root when the roots of the minimal polynomial are very close to each other.)
Changed:
- We do not claim anymore that
_cmp
functions return -1, 0, 1. Instead we only make a statement about the sign of the integer returned. In practice we still return -1, 0, 1 for the time being. - Header file
e-antic.h
is now calledlocal.h
. There is still a header filee-antic.h
that includes all of e-antic's C interface, so in particularlocal.h
. - Header file
renfxx_fwd.hpp
is now calledforward.hpp
. The old header filerenfxx_fwd.hpp
can still be used. - Header file
renfxx.h
is now callede-antic.hpp
. The old header filerenfxx.h
can still be used. - Dropped explicit support for Python 3.6 which has reached its end of life. It should still work but we are not testing it explicitly in our CI anymore.
Fixed:
- We do not assume anymore that
_cmp
functions return -1, 0, 1. FLINT, GMP, and Arb only guarantee that these functions return a negative, zero, or positive integer. In practice their implementations return -1, 0, 1, however in some obscure case on Fedora/i686, this was not the case. - Removed unused includes that cannot be resolved on Windows.
- Fixed a compiler warning on Fedora.
- Improved the error message when arb headers cannot be found. Fedora installs the arb headers into /usr/include/arb instead of /usr/include.
- Added missing
LIBEANTIC_API
declarators so building with-fvisibility=hidden
produces a usable libeanticxx.so. - Updated installation instructions for installation from conda-forge. The e-antic package there has been renamed to libeantic. The package
e-antic
still exists but is now essentially an alias forlibeantic
andpyeantic
. - Worked around doctesting issues in SageMath 9.4.
- Fixed failing SageMath tests when pytest is installed.
- Fixed construction of
RealEmbeddedNumberField
in Python when roots of the minimal polynomial are very close to each other.