clifford.MultiVector

class clifford.MultiVector(layout, value=None, string=None, *, dtype: numpy.dtype = <class 'numpy.float64'>)[source]

An element of the algebra

Parameters
  • layout (instance of clifford.Layout) – the layout of the algebra

  • value (sequence of length layout.gaDims) – the coefficients of the base blades

Notes

The following operators are overloaded:

  • A * B : geometric product

  • A ^ B : outer product

  • A | B : inner product

  • A << B : left contraction

  • ~M : reversion

  • M(N) : grade or subspace projection

  • M[N] : blade projection

Attributes

I

Returns a MultiVector that is the pseudoscalar of this space.

blades_list

ordered list of blades present in this MV

even

Even part of this multivector

odd

Odd part of this mulitvector

pseudoScalar

Returns a MultiVector that is the pseudoscalar of this space.

Methods

__init__

Constructor.

adjoint

Adjoint / reversion, \(\tilde M\)

anticommutator

The anti-commutator product of two multivectors, \((MN + NM)/2\)

as_array

astype

Change the underlying scalar type of this vector.

basis

Finds a vector basis of this subspace.

clean

Sets coefficients whose absolute value is < eps to exactly 0.

commutator

The commutator product of two multivectors.

conjugate

The Clifford conjugate (reversion and grade involution).

dual

The dual of the multivector against the given subspace I, \(\tilde M = MI^{-1}\)

exp

factorise

Factorises a blade into basis vectors and an overall scale.

gradeInvol

The grade involution of the multivector.

grades

Return the grades contained in the multivector.

inv

invPS

Returns the inverse of the pseudoscalar of the algebra.

isBlade

Returns true if multivector is a blade.

isScalar

Returns true iff self is a scalar.

isVersor

Returns true if multivector is a versor.

join

The join of two blades.

lc

The left-contraction of two multivectors, \(M\rfloor N\)

leftInv

Return left-inverse using a computational linear algebra method proposed by Christian Perwass.

leftLaInv

Return left-inverse using a computational linear algebra method proposed by Christian Perwass.

left_complement

mag2

Magnitude (modulus) squared, \({|M|}^2\)

meet

The meet of two blades.

normal

Return the (mostly) normalized multivector.

normalInv

The inverse of itself if \(M \tilde M = |M|^2\).

project

Projects the multivector onto the subspace represented by this blade.

rightInv

Return left-inverse using a computational linear algebra method proposed by Christian Perwass.

right_complement

round

Rounds all coefficients according to Python’s rounding rules.

vee

Vee product \(A \vee B\).

x

The commutator product of two multivectors.