https://github.com/aguennecjacq/split_quaternion

Split Quaternion numpy package

https://github.com/aguennecjacq/split_quaternion

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
Last synced: 10 months ago · JSON representation

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
Created over 1 year ago · Last pushed over 1 year ago
Metadata Files
Readme License

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

phd @ institut de Mathématique de Bordeaux

GitHub Events

Total
  • Push event: 9
  • Create event: 2
Last Year
  • Push event: 9
  • Create event: 2