Skip to main content

Rotor

Trait Rotor 

Source
pub trait Rotor: Copy + Mul<Output = Self> {
    type Bivector: Bivector<Rotor = Self>;
    type Vector: Copy;

    // Required methods
    fn identity() -> Self;
    fn inverse(self) -> Self;
    fn apply(&self, v: Self::Vector) -> Self::Vector;
    fn log(self) -> Self::Bivector;
}
Expand description

Rotor operations require unit elements of Spin(N); public fields do not enforce this.

Required Associated Types§

Source

type Bivector: Bivector<Rotor = Self>

Source

type Vector: Copy

Required Methods§

Source

fn identity() -> Self

Source

fn inverse(self) -> Self

Source

fn apply(&self, v: Self::Vector) -> Self::Vector

Source

fn log(self) -> Self::Bivector

Inverse of Bivector::exp; Rotor4 takes the shorter rotation, so its result may generate −self.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§