pub enum ProductKind {
Show 15 variants
Geometric,
Antigeometric,
Wedge,
LeftContraction,
RightContraction,
Antiwedge,
BulkContraction,
WeightContraction,
BulkExpansion,
WeightExpansion,
Dot,
Antidot,
Scalar,
Project,
Antiproject,
}Expand description
The kind of product to compute symbolically.
Product naming follows Rigid Geometric Algebra conventions.
Variants§
Geometric
Geometric product (full product).
Antigeometric
Geometric antiproduct (complement(complement(a) × complement(b))). Used for versor composition with antisandwich-based transformations.
Wedge
Wedge product (∧, exterior, grade-raising).
LeftContraction
Left contraction (a ⌋ b, grade gb - ga when ga <= gb).
RightContraction
Right contraction (a ⌊ b, grade ga - gb when gb <= ga).
Antiwedge
Antiwedge product (∨, regressive/meet).
BulkContraction
Bulk contraction (a ∨ b★).
WeightContraction
Weight contraction (a ∨ b☆).
BulkExpansion
Bulk expansion (a ∧ b★).
WeightExpansion
Weight expansion (a ∧ b☆).
Dot
Dot product (• metric inner, same-grade only, returns scalar).
Antidot
Antidot product (⊚ metric antiproduct inner, same-antigrade only, returns scalar).
Scalar
Scalar product (grade-0 projection of geometric product).
Project
Projection: target ∨ (self ∧ target☆).
Antiproject
Antiprojection: target ∧ (self ∨ target☆).
Trait Implementations§
Source§impl Clone for ProductKind
impl Clone for ProductKind
Source§fn clone(&self) -> ProductKind
fn clone(&self) -> ProductKind
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ProductKind
impl Debug for ProductKind
Source§impl PartialEq for ProductKind
impl PartialEq for ProductKind
impl Copy for ProductKind
impl Eq for ProductKind
impl StructuralPartialEq for ProductKind
Auto Trait Implementations§
impl Freeze for ProductKind
impl RefUnwindSafe for ProductKind
impl Send for ProductKind
impl Sync for ProductKind
impl Unpin for ProductKind
impl UnwindSafe for ProductKind
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
Source§impl<T> CheckedAs for T
impl<T> CheckedAs for T
Source§fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
Source§impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
Source§fn checked_cast_from(src: Src) -> Option<Dst>
fn checked_cast_from(src: Src) -> Option<Dst>
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more