From fb0e8f7b3463e53f34f0303fd15fe2cf65b75c7e Mon Sep 17 00:00:00 2001 From: GDeLaurentis Date: Sat, 4 May 2024 16:50:20 +0100 Subject: [PATCH] Preparing 0.2.1 release with various fixes/improvements, before merging feature_polynomials. Attempting to introduce workflow to automate pypi release. Updating README and CHANGELOG. --- .github/workflows/pypi_release.yml | 28 ++++++++++++++++++++++++++++ CHANGELOG.md | 12 ++++++++++-- README.md | 6 ++++-- 3 files changed, 42 insertions(+), 4 deletions(-) create mode 100644 .github/workflows/pypi_release.yml diff --git a/.github/workflows/pypi_release.yml b/.github/workflows/pypi_release.yml new file mode 100644 index 0000000..1ed3ef7 --- /dev/null +++ b/.github/workflows/pypi_release.yml @@ -0,0 +1,28 @@ +name: PyPI Release + +on: + release: + types: [created] + +jobs: + release: + runs-on: ubuntu-latest + + steps: + - name: Checkout Repo + uses: actions/checkout@v2 + - name: Setup Python + uses: actions/setup-python@v2 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install setuptools wheel twine + - name: Build + run: | + python setup.py sdist bdist_wheel + - name: Publish + env: + TWINE_USERNAME: __token__ + TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }} + run: | + twine upload dist/* diff --git a/CHANGELOG.md b/CHANGELOG.md index 6294cef..257a271 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added +### Changed + +### Fixed + +## [0.2.1] - 2024-05-04 + +### Added + - `QRing` is an alias for `QuotientRing`. - `test_primality` accepts optional `kwarg`, `iterated_degbound_computation`, with defult value `False`. Behaviour is unchanged on default setting. If set to `True`, the codimensions of ideals involving f-poly factors are computed with subsequently looser degree bounds, until the either a prest degre (18) is exceeded or the codim is greater than that of the original ideal. Use is recommended only for ideals that are expected to be prime and for which the computation without degree bound fails. @@ -16,7 +24,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Default `max_tries` for `Ideal.point_on_variety` increased to 100 from 10: needed when generating a large number of points. - ### Fixed - Occasinally, when generating a `point_on_variety` with multi-precision complex (`mpc`) the `lex_groebner_basis` computation can return the unit ideal, due to precision loss. Introduced a new `RootPrecisionError` exception and added this to the retry logic. @@ -40,6 +47,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Basic interface functions for `Ring`, `QuotientRing` and `Ideal`. - Primality test, `Ideal.test_primality`. -[unreleased]: https://github.com/GDeLaurentis/syngular/compare/v0.2.0...HEAD +[unreleased]: https://github.com/GDeLaurentis/syngular/compare/v0.2.1...HEAD +[0.2.1]: https://github.com/GDeLaurentis/syngular/compare/v0.2.0...v0.2.1 [0.2.0]: https://github.com/GDeLaurentis/syngular/compare/v0.1.3...v0.2.0 [0.1.3]: https://github.com/GDeLaurentis/syngular/releases/tag/v0.1.3 diff --git a/README.md b/README.md index c2a8178..b8f6983 100644 --- a/README.md +++ b/README.md @@ -5,15 +5,17 @@ [![PyPI Downloads](https://img.shields.io/pypi/dm/syngular.svg?label=PyPI%20downloads)](https://pypi.org/project/syngular/) [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/GDeLaurentis/syngular/HEAD) +The `syngular` library is a Python 3 package for algebraic geometry computations. It provides an intuitive and object-oriented interface to [Singular](https://www.singular.uni-kl.de/). Furthermore, it extends the numerical capabilities of Singular, providing a numerical solver for arbitrary systems of polynomial equations in tandem with [pyadic](https://github.com/GDeLaurentis/pyadic), and its applicaibility to physics computations, where generic algorithms may be insufficient. + ## Interface -- Ideals, Rings, Quotient Rings functions +Python classes for 'Ideal', 'Ring' and 'QuotientRing'. Several related functions accessible as attributes or methods. Intuitive operations through magic methods, e.g. Ideal addition '+' and intersection '&'. ## Extension ### Points on varieties over $\mathbb{F}_p$, $\mathbb{Q}_p$ and $\mathbb{C}$. -The function `ideal.point_on_variety` allows generate solutions to arbirary systems of polynomial equations in arbitrary polynomial quotient rings, over any of the three above mentioned fields. The system of equations may be underconstrained, i.e. the ideal may have any dimension. The $p$-adic and complex solutions can be requested as not exact. I.e. the point may lie close to but not exactly on the associated variety. This is essential for numerical computations where otherwise division-by-zero erros may occur. The limitation is that Singular must be able to compute an indepednent set for the ideal, in order to reduce it to a zero dimensional sub-variety. +The function `ideal.point_on_variety` allows generate numerical solutions to arbirary systems of polynomial equations in arbitrary polynomial quotient rings, over any of the three above mentioned fields. The system of equations may be underconstrained, i.e. the ideal may have any dimension. The $p$-adic and complex solutions can be requested as not exact. I.e. the point may lie close to but not exactly on the associated variety. This is essential for numerical computations where otherwise division-by-zero erros may occur. The limitation is that Singular must be able to compute an indepednent set for the ideal, in order to reduce it to a zero dimensional sub-variety. ### Primality test (lighter than a primary decomposition).