Class LieGroup

java.lang.Object
org.episteme.core.mathematics.algebra.groups.LieGroup
All Implemented Interfaces:
Group<Matrix<Complex>>, Magma<Matrix<Complex>>, Monoid<Matrix<Complex>>, Set<Matrix<Complex>>

public class LieGroup extends Object implements Group<Matrix<Complex>>
A Lie group is a group that is also a differentiable manifold. In this implementation, elements are represented by square matrices over Complex numbers. The group is generated by a set of generators (matrices) from its corresponding Lie Algebra.
Since:
1.0
Author:
Silvere Martin-Michiellot, Gemini AI (Google DeepMind)
  • Constructor Details

    • LieGroup

      @SafeVarargs public LieGroup(Matrix<Complex>... generators)
      Constructs a Lie Group from a set of generators.
      Parameters:
      generators - the generators of the group (from Lie Algebra)
      Throws:
      IllegalArgumentException - if generators is empty or not square
  • Method Details

    • dimension

      public int dimension()
      Returns the dimension of the Lie Group (number of generators).
      Returns:
      the dimension
    • getElement

      public Matrix<Complex> getElement(Vector<Real> v)
      Generates a group element near the identity using the exponential map approximation.

      element = I + i * sum(v_k * G_k) This is a linearization valid for small v.

      Parameters:
      v - the vector of coefficients (must match dimension)
      Returns:
      the group element (Matrix)
    • operate

      public Matrix<Complex> operate(Matrix<Complex> a, Matrix<Complex> b)
      Description copied from interface: Magma
      Performs 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)

      Specified by:
      operate in interface Magma<Matrix<Complex>>
      Parameters:
      a - the first operand
      b - the second operand
      Returns:
      the result of a ∗ b
      See Also:
    • identity

      public Matrix<Complex> identity()
      Description copied from interface: Monoid
      Returns the identity element of this monoid.

      Satisfies: e ∗ a = a ∗ e = a for all a.

      Specified by:
      identity in interface Monoid<Matrix<Complex>>
      Returns:
      the identity element
    • inverse

      public Matrix<Complex> inverse(Matrix<Complex> element)
      Description copied from interface: Group
      Returns the inverse of the given element.

      For element a, returns a⁻¹ such that: a ∗ a⁻¹ = a⁻¹ ∗ a = e (identity).

      Specified by:
      inverse in interface Group<Matrix<Complex>>
      Parameters:
      element - the element to invert
      Returns:
      the inverse element
    • isCommutative

      public boolean isCommutative()
      Description copied from interface: Group
      Tests whether this is an abelian (commutative) group.
      Specified by:
      isCommutative in interface Group<Matrix<Complex>>
      Specified by:
      isCommutative in interface Magma<Matrix<Complex>>
      Returns:
      true if this group is abelian
    • description

      public String description()
      Description copied from interface: Set
      Returns a human-readable description of this set.

      Examples:

      • "ℝ (Real Numbers)"
      • "ℤ/12ℤ (Integers modulo 12)"
      • "{1, 2, 3, 4, 5}"

      Specified by:
      description in interface Set<Matrix<Complex>>
      Returns:
      a description of this set
    • isEmpty

      public boolean isEmpty()
      Description copied from interface: Set
      Returns true if this set contains no elements.

      The empty set (∅) is a fundamental concept in set theory. It is the unique set containing no elements.

      Specified by:
      isEmpty in interface Set<Matrix<Complex>>
      Returns:
      true if this set is empty
    • contains

      public boolean contains(Matrix<Complex> element)
      Description copied from interface: Set
      Tests whether this set contains the specified element.

      This is the fundamental operation of a set - membership testing.

      Specified by:
      contains in interface Set<Matrix<Complex>>
      Parameters:
      element - the element to test for membership
      Returns:
      true if this set contains the element, false otherwise
      See Also: