Skip to main content

Algebra

CI Coverage Status Latest Docs Code style: black

Algebraic structures

Note: Algebra requires Python 3.6 or higher.

Requirements and Installation

pip install algebra

See also the instructions here.

Algebra

This package provides an algebra where the elements can be manipulated in a natural way, with basic algebraic simplifications happening automatically. It also support equality checking, which is conservative: if x == y, then x is equal to y; but if x != y, then either x is different from y, or it could not be proven that x is equal to y.

As an example, let's create numbered elements.

from algebra import Element


class Numbered(Element):
    total = 0
    
    def __init__(self):
        self.num = Numbered.total
        Numbered.total += 1
    
    def render(self, formatter):
        return f'x{self.num}'

Then instances of Numbered can be manipulated as follows.

>>> x0 = Numbered()

>>> x1 = Numbered()

>>> x0 == x0
True

>>> x0 == x1
False

>>> x0 + x1
x0 + x1

>>> x0 + x0
2 * x0

>>> x0 + x1 == x1 + x0
True

>>> x0 - x0
0

>>> 2 + x0
2 * 1 + x0

>>> (2 + x0) * x1
(2 * 1 + x0) * x1

>>> (2 + x0) * x1 * 0
0

Create Your Own Algebra

Coming soon.

Function Algebra

Coming soon.

Create Your Own Function Algebra

Coming soon.

Metadata

Release files for algebra 1.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for algebra 1.2.1
File Size Uploaded
algebra-1.2.1.tar.gz 19.9 kB Details

Release files / algebra-1.2.1.tar.gz

Download URL algebra-1.2.1.tar.gz
Size 19.9 kB
Tags Source
SHA-256 checksum
How to use checksums
bd479a00bfb2b33120377bb6ad089c1909b1a10fa2606add0f81f4733d8ed356
BLAKE2b-256 checksum
How to use checksums
eb75d45e5e69b762a9932faa7befea68f5493eb0505f9f3579649efca1cf7ad1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.0 CPython/3.10.4

Release history Release notifications | RSS feed

This release

1.2.1 This release

1 release file

1.2.0

1 release file

1.1.0

1 release file

1.0.0

1 release file

0.3.0

1 release file

0.2.1

1 release file

0.2.0

1 release file

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page