pub struct Bivector<const P: usize, const Q: usize, const R: usize> {
pub mv: Multivector<P, Q, R>,
}Expand description
Bivector type - wrapper around Multivector with only grade 2
Fields§
§mv: Multivector<P, Q, R>Implementations§
Source§impl<const P: usize, const Q: usize, const R: usize> Bivector<P, Q, R>
impl<const P: usize, const Q: usize, const R: usize> Bivector<P, Q, R>
pub fn from_components(xy: f64, xz: f64, yz: f64) -> Bivector<P, Q, R>
pub fn e12() -> Bivector<P, Q, R>
pub fn e13() -> Bivector<P, Q, R>
pub fn e23() -> Bivector<P, Q, R>
pub fn from_multivector(mv: &Multivector<P, Q, R>) -> Bivector<P, Q, R>
pub fn geometric_product(&self, other: &Vector<P, Q, R>) -> Multivector<P, Q, R>
Sourcepub fn geometric_product_with_bivector(
&self,
other: &Bivector<P, Q, R>,
) -> Multivector<P, Q, R>
pub fn geometric_product_with_bivector( &self, other: &Bivector<P, Q, R>, ) -> Multivector<P, Q, R>
Geometric product with another bivector
pub fn magnitude(&self) -> f64
Sourcepub fn inner_product(&self, other: &Bivector<P, Q, R>) -> Multivector<P, Q, R>
pub fn inner_product(&self, other: &Bivector<P, Q, R>) -> Multivector<P, Q, R>
Inner product with another bivector
Sourcepub fn inner_product_with_vector(
&self,
other: &Vector<P, Q, R>,
) -> Multivector<P, Q, R>
pub fn inner_product_with_vector( &self, other: &Vector<P, Q, R>, ) -> Multivector<P, Q, R>
Inner product with a vector
Sourcepub fn outer_product(&self, other: &Bivector<P, Q, R>) -> Multivector<P, Q, R>
pub fn outer_product(&self, other: &Bivector<P, Q, R>) -> Multivector<P, Q, R>
Outer product with another bivector
Sourcepub fn outer_product_with_vector(
&self,
other: &Vector<P, Q, R>,
) -> Multivector<P, Q, R>
pub fn outer_product_with_vector( &self, other: &Vector<P, Q, R>, ) -> Multivector<P, Q, R>
Outer product with a vector
Sourcepub fn right_contraction(&self, other: &Vector<P, Q, R>) -> Multivector<P, Q, R>
pub fn right_contraction(&self, other: &Vector<P, Q, R>) -> Multivector<P, Q, R>
Right contraction with vector
Trait Implementations§
impl<const P: usize, const Q: usize, const R: usize> StructuralPartialEq for Bivector<P, Q, R>
Auto Trait Implementations§
impl<const P: usize, const Q: usize, const R: usize> Freeze for Bivector<P, Q, R>
impl<const P: usize, const Q: usize, const R: usize> RefUnwindSafe for Bivector<P, Q, R>
impl<const P: usize, const Q: usize, const R: usize> Send for Bivector<P, Q, R>
impl<const P: usize, const Q: usize, const R: usize> Sync for Bivector<P, Q, R>
impl<const P: usize, const Q: usize, const R: usize> Unpin for Bivector<P, Q, R>
impl<const P: usize, const Q: usize, const R: usize> UnwindSafe for Bivector<P, Q, R>
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<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.