pub mod hamilton;
pub mod dual_quaternion;
pub mod rotor;
pub mod householder;
pub mod dyadic;
pub mod planar_bank;
pub use hamilton::Quaternion;
pub use dual_quaternion::DualQuaternion;
pub use rotor::PlanarRotor;
pub use householder::{HouseholderVersor, HouseholderChain};
pub use dyadic::DyadicWalshVersor;
pub use planar_bank::PlanarSpinorBank;
pub trait VersorAction<T: ?Sized> {
fn transform_in_place(&self, target: &mut T);
fn transform(&self, target: &T) -> T
where
T: Clone + Sized,
{
let mut copy = target.clone();
self.transform_in_place(&mut copy);
copy
}
}