Skip to content

Releases: flatsurf/e-antic

2.0.2

10 Jan 23:23
Compare
Choose a tag to compare

Fixed:

2.0.1

09 Jan 21:18
Compare
Choose a tag to compare

Fixed:

  • Fixed segfault when using non-intrusive pointers to renf_class such as the ones returned by parent() from Python.
  • Fixed compilation with GCC 13.2.1.

2.0.0

14 Dec 18:46
Compare
Choose a tag to compare

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

05 Dec 23:30
Compare
Choose a tag to compare

Added:

  • Added support for FLINT 2.8 and 2.9
  • Added short and unsigned short operators to C++ interface.

1.2.3

25 Oct 14:23
Compare
Choose a tag to compare

Added:

  • Added automatic update on conda-forge with every release.

Fixed:

  • Fixed soname which was not bumped in the 1.2.2 release.

1.2.2

25 Oct 09:44
Compare
Choose a tag to compare

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

20 May 11:06
Compare
Choose a tag to compare

Fixed:

  • Fixed serialization of renf_class with cereal>=1.3.2 (#224)

  • Fixed deserialization of objects serialized with e-antic prior to 1.0.0

1.2.0

10 Apr 12:09
Compare
Choose a tag to compare

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

04 Apr 15:41
Compare
Choose a tag to compare

Deprecated:

  • Deprecated arithmetic between elements in different number fields in the C++ interface. Before, an operation such as a + b was possible even if a and b 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 of a or b is the rational field (renf_class::make()) otherwise a deprecation warning is printed. To fully opt in to the new behaviour set the environment variable LIBEANTIC_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 from renf_class.

1.1.0

09 Feb 22:56
Compare
Choose a tag to compare

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 called local.h. There is still a header file e-antic.h that includes all of e-antic's C interface, so in particular local.h.
  • Header file renfxx_fwd.hpp is now called forward.hpp. The old header file renfxx_fwd.hpp can still be used.
  • Header file renfxx.h is now called e-antic.hpp. The old header file renfxx.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 for libeantic and pyeantic.
  • 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.