https://github.com/aguennecjacq/split_quaternion
Split Quaternion numpy package
Science Score: 13.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
○.zenodo.json file
-
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (4.8%) to scientific vocabulary
Repository
Split Quaternion numpy package
Basic Info
- Host: GitHub
- Owner: aguennecjacq
- License: mit
- Language: Python
- Default Branch: main
- Size: 23.4 KB
Statistics
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
- Releases: 0
Metadata Files
README.md
(DISCLAIMER: THIS PACKAGE IS UNDERCONSTRUCTION. Hopefully one day I will find the time to package it properly and add a full documentation)
split_quaternion
Split Quaternion package, a fork of the Quaternionic library.
Quick initiation to split quaternions
Split quaternions are a 4-dimensional associative and non-commutative algebra, where each element $q\in\mathbb{S}$ is written in the form
$$\text{q} = q0 + \underbrace{q1 i + q2 j + q3 k}{vq} = sq + vq$$.
The rule of the algebra can be resumed by the formula
$$-i^2 = j^2 = k^2 = (ij)k = 1 $$.
Similarly to complex numbers, the conjugate and modulas of a split quaternion is defined as
$$\text{q}^\ast = q0 - q1 i - q2 j - q3 k = sq - vq$$ $$|\text{q}|^2 = \text{q}\text{q}^\ast = q0^2 + q1^2 - q2^2 - q3^2 $$
We define the Lorentz pseud-scalar product as
$ (x\circ y) = x1y1 - x2y2-x3y3
and the Lorentz cross-product
$$[x\otimes y] = \left(\begin{array}{c} x2y3 - x3y2 \ -x3y1 + x1y3 \ -x1 y2 + x2y1 \end{array}\right).$$
The addition and multiplication reads
$$\text{p}+\text{q} = (sp + sq) + (vp + vq)$$ $$\text{pq} = (sp + vp)(sq + vq) = sp sq + sp vq + sq vp - [vp\otimes vq] - (vp\circ vq).$$
Using the package
This package extends most numpy functionnalities with matrices of split quaternions.
import split_quaternions as sq
p1 = sq.ones((10, 10))
p2 = sq.zeros((10, 10))
q = sq.array([[1,2,3,4], [-1, -2, -3, -4]])
q.conj # equivalent to q.conjugate
q.modulus # equivalent to q.norm
Owner
- Name: Antoine Guennec
- Login: aguennecjacq
- Kind: user
- Location: Bordeaux
- Company: Institute of mathematics of Bordeaux
- Website: https://www.math.u-bordeaux.fr/~aguennecjacq/
- Repositories: 1
- Profile: https://github.com/aguennecjacq
phd @ institut de Mathématique de Bordeaux
GitHub Events
Total
- Push event: 9
- Create event: 2
Last Year
- Push event: 9
- Create event: 2