Class CliffordAlgebra<E>
- All Implemented Interfaces:
AbelianGroup<CliffordAlgebra.Multivector<E>>, AbelianMonoid<CliffordAlgebra.Multivector<E>>, Group<CliffordAlgebra.Multivector<E>>, Magma<CliffordAlgebra.Multivector<E>>, Monoid<CliffordAlgebra.Multivector<E>>, Ring<CliffordAlgebra.Multivector<E>>, Semiring<CliffordAlgebra.Multivector<E>>, Set<CliffordAlgebra.Multivector<E>>
A Clifford Algebra is an associative algebra generated by a vector space V equipped with a quadratic form Q. It unifies scalars, vectors, bivectors, and higher-grade multivectors.
*
Reference:
Clifford, W. K. (1878). Applications of Grassmann's Extensive Algebra. American Journal of Mathematics, 1(4), 350-358.
- Since:
- 1.0
- Author:
- Silvere Martin-Michiellot, Gemini AI (Google DeepMind)
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classRepresents a Multivector. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionReturns the sum of two elements (additive notation).booleancontains(CliffordAlgebra.Multivector<E> element) Tests whether this set contains the specified element.Returns a human-readable description of this set.getBasisBlade(int bitmask) Creates a basis blade with coefficient 1.inverse(CliffordAlgebra.Multivector<E> element) Returns the inverse of the given element.booleanAbelian groups are always commutative by definition.booleanisEmpty()Returnstrueif this set contains no elements.booleanTests whether multiplication is commutative in this semiring.Returns the product of two elements.negate(CliffordAlgebra.Multivector<E> element) Returns the additive inverse (negation) of an element.one()Returns the multiplicative identity (one element).operate(CliffordAlgebra.Multivector<E> left, CliffordAlgebra.Multivector<E> right) Performs the binary operation on two elements.Creates a scalar multivector.zero()Returns the additive identity (zero element).Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface AbelianGroup
subtractMethods inherited from interface AbelianMonoid
identityMethods inherited from interface Monoid
isAssociative
-
Constructor Details
-
CliffordAlgebra
-
-
Method Details
-
getBasisBlade
Creates a basis blade with coefficient 1.- Parameters:
bitmask- the bitmask representing the blade (e.g. 3 for e1^e2)- Returns:
- the basis blade multivector
-
scalar
Creates a scalar multivector.- Parameters:
value- the scalar value- Returns:
- the multivector
-
operate
public CliffordAlgebra.Multivector<E> operate(CliffordAlgebra.Multivector<E> left, CliffordAlgebra.Multivector<E> right) Description copied from interface:MagmaPerforms the binary operation on two elements.This is the fundamental operation of a magma. The result must be an element of this magma (closure property).
Properties: None required (not necessarily associative or commutative)
-
add
public CliffordAlgebra.Multivector<E> add(CliffordAlgebra.Multivector<E> a, CliffordAlgebra.Multivector<E> b) Description copied from interface:AbelianMonoidReturns the sum of two elements (additive notation).Delegates to
Magma.operate(Object, Object).- Specified by:
addin interfaceAbelianMonoid<E>- Parameters:
a- the first addendb- the second addend- Returns:
- a + b
-
zero
Description copied from interface:AbelianMonoidReturns the additive identity (zero element).Delegates to
AbelianMonoid.identity().- Specified by:
zeroin interfaceAbelianMonoid<E>- Returns:
- the zero element
-
negate
Description copied from interface:AbelianGroupReturns the additive inverse (negation) of an element.Satisfies: a + (-a) = (-a) + a = 0
- Specified by:
negatein interfaceAbelianGroup<E>- Parameters:
element- the element to negate- Returns:
- -element
- See Also:
-
inverse
Description copied from interface:GroupReturns the inverse of the given element.For element a, returns a⻹ such that: a ∗ a⻹ = a⻹ ∗ a = e (identity).
-
multiply
public CliffordAlgebra.Multivector<E> multiply(CliffordAlgebra.Multivector<E> a, CliffordAlgebra.Multivector<E> b) Description copied from interface:SemiringReturns the product of two elements.Multiplication must be associative and distribute over addition.
-
one
-
isCommutative
public boolean isCommutative()Description copied from interface:AbelianGroupAbelian groups are always commutative by definition.- Specified by:
isCommutativein interfaceAbelianGroup<E>- Specified by:
isCommutativein interfaceAbelianMonoid<E>- Specified by:
isCommutativein interfaceGroup<E>- Specified by:
isCommutativein interfaceMagma<E>- Returns:
- always
true
-
isMultiplicationCommutative
public boolean isMultiplicationCommutative()Description copied from interface:SemiringTests whether multiplication is commutative in this semiring.- Specified by:
isMultiplicationCommutativein interfaceSemiring<E>- Returns:
trueif multiplication commutes
-
description
Description copied from interface:SetReturns a human-readable description of this set.Examples:
- "â„ (Real Numbers)"
- "ℤ/12ℤ (Integers modulo 12)"
- "{1, 2, 3, 4, 5}"
- Specified by:
descriptionin interfaceSet<E>- Returns:
- a description of this set
-
isEmpty
-
contains
Description copied from interface:SetTests whether this set contains the specified element.This is the fundamental operation of a set - membership testing.
-