pub struct ProductsSpec {Show 16 fields
pub geometric: Vec<ProductEntry>,
pub wedge: Vec<ProductEntry>,
pub left_contraction: Vec<ProductEntry>,
pub right_contraction: Vec<ProductEntry>,
pub antiwedge: Vec<ProductEntry>,
pub scalar: Vec<ProductEntry>,
pub antigeometric: Vec<ProductEntry>,
pub antiscalar: Vec<ProductEntry>,
pub bulk_contraction: Vec<ProductEntry>,
pub weight_contraction: Vec<ProductEntry>,
pub bulk_expansion: Vec<ProductEntry>,
pub weight_expansion: Vec<ProductEntry>,
pub dot: Vec<ProductEntry>,
pub antidot: Vec<ProductEntry>,
pub project: Vec<ProductEntry>,
pub antiproject: Vec<ProductEntry>,
}Expand description
Product specifications for all product types.
Product naming follows Rigid Geometric Algebra conventions:
∧= wedge (exterior product)∨= antiwedge (regressive product)★= dual (bulk dual)☆= antidual (weight dual)•= dot (metric inner product, same-grade only)⊚= antidot (metric antiproduct inner, same-antigrade only)
Fields§
§geometric: Vec<ProductEntry>Geometric product entries (used for Mul operator on versors).
wedge: Vec<ProductEntry>Wedge product entries (∧, exterior, grade-raising).
left_contraction: Vec<ProductEntry>Left contraction entries.
right_contraction: Vec<ProductEntry>Right contraction entries.
antiwedge: Vec<ProductEntry>Antiwedge product entries (∨, regressive/meet).
scalar: Vec<ProductEntry>Scalar product entries.
antigeometric: Vec<ProductEntry>Antigeometric product entries (used for antisandwich computation).
antiscalar: Vec<ProductEntry>Antiscalar product entries.
bulk_contraction: Vec<ProductEntry>Bulk contraction entries (a ∨ b★).
weight_contraction: Vec<ProductEntry>Weight contraction entries (a ∨ b☆).
bulk_expansion: Vec<ProductEntry>Bulk expansion entries (a ∧ b★).
weight_expansion: Vec<ProductEntry>Weight expansion entries (a ∧ b☆).
dot: Vec<ProductEntry>Dot product entries (•, metric inner, same-grade only, returns scalar).
antidot: Vec<ProductEntry>Antidot product entries (⊚, metric antiproduct inner, same-antigrade only, returns scalar).
project: Vec<ProductEntry>Projection entries: b ∨ (a ∧ b☆).
antiproject: Vec<ProductEntry>Antiprojection entries: b ∧ (a ∨ b☆).
Trait Implementations§
Source§impl Clone for ProductsSpec
impl Clone for ProductsSpec
Source§fn clone(&self) -> ProductsSpec
fn clone(&self) -> ProductsSpec
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ProductsSpec
impl Debug for ProductsSpec
Source§impl Default for ProductsSpec
impl Default for ProductsSpec
Source§fn default() -> ProductsSpec
fn default() -> ProductsSpec
Auto Trait Implementations§
impl Freeze for ProductsSpec
impl RefUnwindSafe for ProductsSpec
impl Send for ProductsSpec
impl Sync for ProductsSpec
impl Unpin for ProductsSpec
impl UnwindSafe for ProductsSpec
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<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