Skip to content

Commit

Permalink
Preparing 0.2.1 release with various fixes/improvements, before mergi…
Browse files Browse the repository at this point in the history
…ng feature_polynomials. Attempting to introduce workflow to automate pypi release. Updating README and CHANGELOG.
  • Loading branch information
GDeLaurentis committed May 4, 2024
1 parent 44b79b7 commit fb0e8f7
Show file tree
Hide file tree
Showing 3 changed files with 42 additions and 4 deletions.
28 changes: 28 additions & 0 deletions .github/workflows/pypi_release.yml
Original file line number Diff line number Diff line change
@@ -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/*
12 changes: 10 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,21 @@ 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.

### Changed

- 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.
Expand All @@ -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
6 changes: 4 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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).

Expand Down

0 comments on commit fb0e8f7

Please sign in to comment.