pub struct Sl<V: Tensor<F: CField>, const N: usize>(/* private fields */);Expand description
The special linear group SL(V) — automorphisms of V with determinant one.
The determinant-one invariant is maintained by construction: there is no
raw constructor. Values arise only from the group operations (the identity,
products, inverses) and from exp
of the traceless SlAlgebra — all of which preserve det = 1
(det(AB) = det(A)det(B), det(exp X) = e^{tr X} = e^0). Since the Lie
algebra has no invalid representations either, every reachable Sl value is
genuinely in the group; membership is a theorem about reachability, not a
runtime check.
Implementations§
Trait Implementations§
impl<V: Copy + Tensor<F: CField>, const N: usize> Copy for Sl<V, N>
Source§impl<V: Tensor<F: CField>, const N: usize> Group for Sl<V, N>
impl<V: Tensor<F: CField>, const N: usize> Group for Sl<V, N>
fn identity() -> Self
fn compose(&self, other: &Self) -> Self
fn inverse(&self) -> Self
fn check_left_identity(&self) -> boolwhere
Self: PartialEq,
fn check_right_identity(&self) -> boolwhere
Self: PartialEq,
fn check_associativity(a: Self, b: Self, c: Self) -> boolwhere
Self: PartialEq,
fn check_left_inverse(&self) -> bool
fn check_right_inverse(&self) -> boolwhere
Self: PartialEq,
Source§impl<F: CField<Characteristic = NatZero>> LieGroup<SlAlgebra<F, 2, 3>> for Sl<Coords<F, 2>, 2>
impl<F: CField<Characteristic = NatZero>> LieGroup<SlAlgebra<F, 2, 3>> for Sl<Coords<F, 2>, 2>
fn identity_exp(v: SlAlgebra<F, 2, 3>) -> Self
fn identity_log(p: &Self) -> Option<SlAlgebra<F, 2, 3>>
Source§impl<R: Real> Quotient<Sl<Coords<Complex<R>, 2>, 2>, RootOfUnity<Complex<R>, 2>, SlAlgebra<Complex<R>, 2, 3>> for Lorentz<R>
impl<R: Real> Quotient<Sl<Coords<Complex<R>, 2>, 2>, RootOfUnity<Complex<R>, 2>, SlAlgebra<Complex<R>, 2, 3>> for Lorentz<R>
fn quotient_identity() -> Self
fn quotient_compose(&self, other: &Self) -> Self
fn quotient_inverse(&self) -> Self
fn quotient_identity_exp(v: V) -> Self
fn quotient_identity_log(p: &Self) -> Option<V>
Source§fn check_new_respects_coset(g: G, h: H) -> boolwhere
Self: PartialEq,
fn check_new_respects_coset(g: G, h: H) -> boolwhere
Self: PartialEq,
The sole independent Quotient axiom: new must not
distinguish elements of the same coset. Everything else
(group structure, differential structure) follows from this
plus the inherited LieGroup axioms.
Auto Trait Implementations§
impl<V, const N: usize> Freeze for Sl<V, N>
impl<V, const N: usize> RefUnwindSafe for Sl<V, N>
impl<V, const N: usize> Send for Sl<V, N>
impl<V, const N: usize> Sync for Sl<V, N>
impl<V, const N: usize> Unpin for Sl<V, N>
impl<V, const N: usize> UnsafeUnpin for Sl<V, N>
impl<V, const N: usize> UnwindSafe for Sl<V, N>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<V, S> Chart<S, V> for S
impl<V, S> Chart<S, V> for S
Source§type Global = <S as Smooth<V>>::Global
type Global = <S as Smooth<V>>::Global
The result of mapping local coordinates back onto the manifold. Read more
fn to_local(&self, point: &S) -> Option<V>
fn to_global(&self, coord: V) -> <S as Smooth<V>>::Global
fn chart_at(p: &S) -> S
Source§fn local_distance(&self, other: &P) -> Option<<V::F as Field>::Fixed>where
V: Euclidean,
fn local_distance(&self, other: &P) -> Option<<V::F as Field>::Fixed>where
V: Euclidean,
Calculates the distance between
self and other
in local coordinates, based at &self.fn check_local_inverse(p: &P) -> boolwhere
P: PartialEq,
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<𝒞, X> Equivalent<𝒞, X> for Xwhere
𝒞: Cat,
impl<𝒞, X> Equivalent<𝒞, X> for Xwhere
𝒞: Cat,
Source§impl<V, L> ExpMap<L, V> for L
impl<V, L> ExpMap<L, V> for L
fn base_point(&self) -> L
fn check_base_point_is_origin(&self) -> boolwhere
V: Form,
fn check_preservation_of_origin(&self) -> boolwhere
V: Form,
Source§impl<M> Monoid for M
impl<M> Monoid for M
fn check_left_identity(&self) -> boolwhere
Self: PartialEq,
fn check_right_identity(&self) -> boolwhere
Self: PartialEq,
fn check_associativity(a: Self, b: Self, c: Self) -> boolwhere
Self: PartialEq,
Source§impl<G> MulGroup for G
impl<G> MulGroup for G
fn check_left_inverse(&self) -> boolwhere
Self: PartialEq,
fn check_right_inverse(&self) -> boolwhere
Self: PartialEq,
Source§impl<T> OptionallyOption<T> for T
impl<T> OptionallyOption<T> for T
Source§fn into_option(self) -> Option<T>
fn into_option(self) -> Option<T>
Converts either permitted representation into
Option<T>. Read more