Skip to main content

liesym

Lie Algebras using Sympy and backend powered by Rust's pyO3 and ndarray

Overview

In an effort to supply python with the same computer algebra software (CAS) capabilities, SymPy was written. This python library is well written and allows an open source alternative to proprietary choices like Mathematica/WolframLanguage and Maple. Due to the nature of how SymPy was written, certain symbolic calculation can be extremely unoptimized in python. Even using numpy could offer little speed ups as it is not geared towards rational numbers (fractions). Sympy does currently offer a liealgebras module, but due to the performance limitations, certain tradeoffs had to be made such as locking the basis for the classic lie algebras in favor of speed. This is a fair trade off, but would require anyone using a different basis to hand calculate the representations of the algebra all over again. An alternative to solve this problem would be to use a compiled backend that supports generics (and isn't a pain to build with python).

Rust has good python binding support through py03 and allows easy communication through numpy using rust-numpy as well as numpy like api inside rust using ndarray.

Install

pip install liesym

Examples

See also example notebook

import liesym as ls
from sympy import Matrix
from IPython.display import display, Markdown
from sympy.printing.str import StrPrinter

Cartan Matrix

A3 = ls.A(3)
A3.cartan_matrix

$$\displaystyle \left[\begin{matrix}2 & -1 & 0\\ -1 & 2 & -1\\0 & -1 & 2\end{matrix}\right]$$

Positive Roots

for i in A3.positive_roots():
    display(i)

$$\displaystyle \left[\begin{matrix}1 & 0 & 1\end{matrix}\right]$$

$$\displaystyle \left[\begin{matrix}-1 & 1 & 1\end{matrix}\right]$$

$$\displaystyle \left[\begin{matrix}1 & 1 & -1\end{matrix}\right]$$

$$\displaystyle \left[\begin{matrix}-1 & 2 & -1\end{matrix}\right]$$

$$\displaystyle \left[\begin{matrix}0 & -1 & 2\end{matrix}\right]$$

$$\displaystyle \left[\begin{matrix}2 & -1 & 0\end{matrix}\right]$$

Simple Roots

for i in A3.simple_roots():
    display(i)

$$\displaystyle \left[\begin{matrix}1 & -1 & 0 & 0\end{matrix}\right]$$

$$\displaystyle \left[\begin{matrix}0 & 1 & -1 & 0\end{matrix}\right]$$

$$\displaystyle \left[\begin{matrix}0 & 0 & 1 & -1\end{matrix}\right]$$

Fundamental Weights

for i in A3.fundamental_weights(): # defaulted to orthogonal basis
    display(i)

$$\displaystyle \left[\begin{matrix}\frac{3}{4} & - \frac{1}{4} & - \frac{1}{4} & - \frac{1}{4}\end{matrix}\right]$$

$$\displaystyle \left[\begin{matrix}\frac{1}{2} & \frac{1}{2} & - \frac{1}{2} & - \frac{1}{2}\end{matrix}\right]$$

$$\displaystyle \left[\begin{matrix}\frac{1}{4} & \frac{1}{4} & \frac{1}{4} & - \frac{3}{4}\end{matrix}\right]$$

Dimension of representation

table = """\
| Dim | Irrep Name | Rep (Omega) |
| :-: | :-: | :-: |
"""
for i in A3.fundamental_weights(basis="omega"):
    table += f"""\
| {A3.dim(i)} | $${A3.dim_name(i)}$$  | $${i.table(StrPrinter())}$$|
"""
Markdown(table)
Dim Irrep Name Rep (Omega)
4 $$4$$ $$[1, 0, 0]$$
6 $$6$$ $$[0, 1, 0]$$
4 $$\bar{4}$$ $$[0, 0, 1]$$

Name of rep

Commonly in literature (especially physics), names of the reps are the dimension rather than the matrix rep.

A3.dim_name(Matrix([[0, 0, 1]]))

$$\displaystyle \bar{4}$$

A3.irrep_lookup(r"\bar{4}")

$$\displaystyle \left[\begin{matrix}0 & 0 & 1\end{matrix}\right]$$

Tensor product decomps

The decomp of irreps from a product of irreps

results = A3.tensor_product_decomposition([
    Matrix([[1,0,0]]),
    Matrix([[1,0,0]]),
])

table = """\
| Rep | Dim name |
| :-: | :-: |
"""
for i in results:
    table += f"""\
| $${i.table(StrPrinter())}$$ | $${A3.dim_name(i)}$$ |  
"""
Markdown(table)
Rep Dim name
$$[0, 1, 0]$$ $$6$$
$$[2, 0, 0]$$ $$\bar{10}$$

Lie Groups

Currently supports SU(N), SO(N), Sp(N)

su2 = ls.SU(2)
su2.generators()
[Matrix([
 [  0, 1/2],
 [1/2,   0]]),
 Matrix([
 [  0, -I/2],
 [I/2,    0]]),
 Matrix([
 [1/2,    0],
 [  0, -1/2]])]
# cartan generators
su2.generators(cartan_only=True)
[Matrix([
 [1/2,    0],
 [  0, -1/2]])]

Structure constants. SU(2) structure constants are $e_{ijk}$

su2.structure_constants()

$$\displaystyle \left[\begin{matrix}\left[\begin{matrix}0 & 0 & 0\\0 & 0 & 1\\0 & -1 & 0\end{matrix}\right] & \left[\begin{matrix}0 & 0 & -1\\0 & 0 & 0\\1 & 0 & 0\end{matrix}\right] & \left[\begin{matrix}0 & 1 & 0\\ -1 & 0 & 0\\0 & 0 & 0\end{matrix}\right]\end{matrix}\right]$$

A1 = ls.A(1)
for x in A1.simple_roots(basis="omega"):
    display(x)

$$\displaystyle \left[\begin{matrix}2\end{matrix}\right]$$

Quadratic Casimir

s = ls.Sp(6)
r = s.algebra.fundamental_weights()[0]
s.quadratic_casimir(r)

$$\displaystyle \frac{7}{2}$$

Metadata

Release files for liesym 0.8.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 liesym 0.8.1
File Size Uploaded
liesym-0.8.1.tar.gz 322.5 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for liesym 0.8.1
File
liesym-0.8.1-cp38-abi3-win_amd64.whl CPython 3.8 abi3 Windows x86-64 Details
liesym-0.8.1-cp38-abi3-win32.whl CPython 3.8 abi3 Windows x86-32 Details
liesym-0.8.1-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.8 abi3 Linux glibc 2.17+ x86-64 Details
liesym-0.8.1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.8 abi3 Linux glibc 2.17+ ARM64 Details
liesym-0.8.1-cp38-abi3-manylinux_2_12_i686.manylinux2010_i686.whl CPython 3.8 abi3 Linux glibc 2.12+ x86-32 Details
liesym-0.8.1-cp38-abi3-macosx_11_0_arm64.whl CPython 3.8 abi3 macOS 11.0+ ARM64 Details
liesym-0.8.1-cp38-abi3-macosx_10_12_x86_64.whl CPython 3.8 abi3 macOS 10.12+ x86-64 Details

Total release size: 6.2 MB

Release files / liesym-0.8.1.tar.gz

Download URL liesym-0.8.1.tar.gz
Size 322.5 kB
Tags Source
SHA-256 checksum
How to use checksums
88c7aefc25b2d1cf3d6dba6de3624d574533fc11817458eef774101027d8f7ab
BLAKE2b-256 checksum
How to use checksums
36554847b5b4ea2ac853a83b484b7a11adcc05b2ad15635f5cdb4cb6f35fb724
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.4.0

Release files / liesym-0.8.1-cp38-abi3-win_amd64.whl

Download URL liesym-0.8.1-cp38-abi3-win_amd64.whl
Size 321.6 kB
Tags CPython 3.8 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
171179785ec0d62c32e7876fc4961cfdae1b623ced36c10b43a82a3b12edd14c
BLAKE2b-256 checksum
How to use checksums
0dc414e8440ec880a9b23d2df181b3f4e5565136a89691fc8eed22ba09da5d99
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.4.0

Release files / liesym-0.8.1-cp38-abi3-win32.whl

Download URL liesym-0.8.1-cp38-abi3-win32.whl
Size 313.8 kB
Tags CPython 3.8 Windows x86-32 abi3
SHA-256 checksum
How to use checksums
77409b7372c726b35fa76e16cb81b355b8f373347c81074c82c5744670691106
BLAKE2b-256 checksum
How to use checksums
c607356840cf2e12691e707ec9235b2d81871d72f2cfd4634075470a2e9a6a93
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.4.0

Release files / liesym-0.8.1-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL liesym-0.8.1-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.4 MB
Tags CPython 3.8 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
3e9fafc2cab02f44749d72cad187188485bd0be091a9516809121cc2ad06cb65
BLAKE2b-256 checksum
How to use checksums
a1a4b7e441de81bb87c012b8a6fd2ce17417ad0a96429beadd3ceeff2eba22a6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.4.0

Release files / liesym-0.8.1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL liesym-0.8.1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 1.4 MB
Tags CPython 3.8 Linux glibc 2.17+ ARM64 abi3
SHA-256 checksum
How to use checksums
08f55700b5cf787def4adee7879e4449ecad683792ec0b3683daafc05b2d02c5
BLAKE2b-256 checksum
How to use checksums
4061fb70915395a633663b457ec096d70d8a2ab6e9ac6fc545a2b9b150b0596b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.4.0

Release files / liesym-0.8.1-cp38-abi3-manylinux_2_12_i686.manylinux2010_i686.whl

Download URL liesym-0.8.1-cp38-abi3-manylinux_2_12_i686.manylinux2010_i686.whl
Size 1.5 MB
Tags CPython 3.8 Linux glibc 2.12+ x86-32 abi3
SHA-256 checksum
How to use checksums
978c39fa89d15f3dd5b8ec4b2cb0d260001dce985461782f019c6039d17bd5f9
BLAKE2b-256 checksum
How to use checksums
70d1bed486635ab06921179c44078e1e69fe352fc8c92d16836627618d1236cc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.4.0

Release files / liesym-0.8.1-cp38-abi3-macosx_11_0_arm64.whl

Download URL liesym-0.8.1-cp38-abi3-macosx_11_0_arm64.whl
Size 471.4 kB
Tags CPython 3.8 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
3e304e5ee45867f72c4698c9c66a3007a986ccc4ab3d447bd6da281cad153163
BLAKE2b-256 checksum
How to use checksums
ff285f3178ed946a6a05af6a496f053398bc581f3014ba859c757245fc3bc860
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.4.0

Release files / liesym-0.8.1-cp38-abi3-macosx_10_12_x86_64.whl

Download URL liesym-0.8.1-cp38-abi3-macosx_10_12_x86_64.whl
Size 484.8 kB
Tags CPython 3.8 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
07a0fc7cf3c3fb1b276959d5347e72d54eedaadd2b6101120a42372955e3f28e
BLAKE2b-256 checksum
How to use checksums
b72a27c92f46b2cbc790a10c33a05a83a6f3a85b7f0be5091670e8b2062ff813
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.4.0

Release history Release notifications | RSS feed

This release

0.8.1 This release

8 release files

0.8.0

8 release files

0.7.0

13 release files

0.6.0

10 release files

0.5.5

11 release files

0.5.4

4 release files

0.5.3

4 release files

0.5.2

10 release files

0.5.1

10 release files

0.5.0

10 release files

0.4.1

10 release files

0.3.0

10 release files

0.2.0

10 release files

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