syngular


Namesyngular JSON
Version 0.2.1 PyPI version JSON
download
home_pagehttps://github.com/GDeLaurentis/syngular
SummaryAn Object-Oriented Python Interface to Singular
upload_time2024-05-04 18:30:04
maintainerNone
docs_urlNone
authorGiuseppe De Laurentis
requires_pythonNone
licenseGNU General Public License v3.0
keywords syngular singular algebraic geometry
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # A Python Interface \& Extension to [Singular](https://www.singular.uni-kl.de/)

[![Continuous Integration Status](https://github.com/GDeLaurentis/syngular/actions/workflows/continuous_integration.yml/badge.svg)](https://github.com/GDeLaurentis/syngular/actions)
[![Coverage](https://img.shields.io/badge/Coverage-86%25-greenyellow?labelColor=2a2f35)](https://github.com/GDeLaurentis/syngular/actions)
[![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

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 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).

The function `ideal.test_primality` allows to test whether an ideal is prime or not, without performing a full primary decomposition. The algorithm can run also with successively looser degree bounds. It returns True if the idea is prime, False if it is not, or raises an `Inconclusive` exception if it cannot decide. The latter case happens, for instance, if the ideal is not radical, since the algorithm may not be able to find a linear projection. Inconclusive cases include when the ideal is primary but not prime.


## Requirements
```
numpy, sympy, mutableint, Singular
```


## Installation
```
pip install -e path/to/repo
```

## Testing

```
pytest --cov syngular/ --cov-report html tests/ --verbose
```

## Quick Start

```
from syngular import Ideal, Ring
I = Ideal(Ring('0', ('x1', 'x2'), 'dp'), ['x1*x2'])
```

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/GDeLaurentis/syngular",
    "name": "syngular",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": "syngular, singular, algebraic geometry",
    "author": "Giuseppe De Laurentis",
    "author_email": "g.dl@hotmail.it",
    "download_url": "https://files.pythonhosted.org/packages/26/3a/7b9db7e7677d20300cd80d58381c951f3fed539b0a1e3e4e838bcbb1fd0a/syngular-0.2.1.tar.gz",
    "platform": null,
    "description": "# A Python Interface \\& Extension to [Singular](https://www.singular.uni-kl.de/)\n\n[![Continuous Integration Status](https://github.com/GDeLaurentis/syngular/actions/workflows/continuous_integration.yml/badge.svg)](https://github.com/GDeLaurentis/syngular/actions)\n[![Coverage](https://img.shields.io/badge/Coverage-86%25-greenyellow?labelColor=2a2f35)](https://github.com/GDeLaurentis/syngular/actions)\n[![PyPI Downloads](https://img.shields.io/pypi/dm/syngular.svg?label=PyPI%20downloads)](https://pypi.org/project/syngular/)\n[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/GDeLaurentis/syngular/HEAD)\n\nThe `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.\n\n## Interface\n\nPython 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 '&'.\n\n## Extension\n\n### Points on varieties over $\\mathbb{F}_p$, $\\mathbb{Q}_p$ and $\\mathbb{C}$.\n\nThe 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.\n\n### Primality test (lighter than a primary decomposition).\n\nThe function `ideal.test_primality` allows to test whether an ideal is prime or not, without performing a full primary decomposition. The algorithm can run also with successively looser degree bounds. It returns True if the idea is prime, False if it is not, or raises an `Inconclusive` exception if it cannot decide. The latter case happens, for instance, if the ideal is not radical, since the algorithm may not be able to find a linear projection. Inconclusive cases include when the ideal is primary but not prime.\n\n\n## Requirements\n```\nnumpy, sympy, mutableint, Singular\n```\n\n\n## Installation\n```\npip install -e path/to/repo\n```\n\n## Testing\n\n```\npytest --cov syngular/ --cov-report html tests/ --verbose\n```\n\n## Quick Start\n\n```\nfrom syngular import Ideal, Ring\nI = Ideal(Ring('0', ('x1', 'x2'), 'dp'), ['x1*x2'])\n```\n",
    "bugtrack_url": null,
    "license": "GNU General Public License v3.0",
    "summary": "An Object-Oriented Python Interface to Singular",
    "version": "0.2.1",
    "project_urls": {
        "Download": "https://github.com/GDeLaurentis/syngular/archive/v0.2.0.tar.gz",
        "Homepage": "https://github.com/GDeLaurentis/syngular"
    },
    "split_keywords": [
        "syngular",
        " singular",
        " algebraic geometry"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "47268f3b6a769c856ab428af1d943865bb26b12356e447041a2625db5d7949ef",
                "md5": "c5c1d67e7b1eb46c74b18dcc2492e036",
                "sha256": "6781db3a56366fc449bd3e94ae43e4aaed72881378057b0d79bc0d9e45270a33"
            },
            "downloads": -1,
            "filename": "syngular-0.2.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "c5c1d67e7b1eb46c74b18dcc2492e036",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 29420,
            "upload_time": "2024-05-04T18:30:03",
            "upload_time_iso_8601": "2024-05-04T18:30:03.174341Z",
            "url": "https://files.pythonhosted.org/packages/47/26/8f3b6a769c856ab428af1d943865bb26b12356e447041a2625db5d7949ef/syngular-0.2.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "263a7b9db7e7677d20300cd80d58381c951f3fed539b0a1e3e4e838bcbb1fd0a",
                "md5": "42001ffc2b125ef90c947febded285d4",
                "sha256": "e8babf778abf126d093b13339e61f59a0f54524331c45e6d5241b0350a079c78"
            },
            "downloads": -1,
            "filename": "syngular-0.2.1.tar.gz",
            "has_sig": false,
            "md5_digest": "42001ffc2b125ef90c947febded285d4",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 30797,
            "upload_time": "2024-05-04T18:30:04",
            "upload_time_iso_8601": "2024-05-04T18:30:04.900514Z",
            "url": "https://files.pythonhosted.org/packages/26/3a/7b9db7e7677d20300cd80d58381c951f3fed539b0a1e3e4e838bcbb1fd0a/syngular-0.2.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-05-04 18:30:04",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "GDeLaurentis",
    "github_project": "syngular",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "syngular"
}
        
Elapsed time: 0.25267s