TwoSidedModule

Trait TwoSidedModule 

Source
pub trait TwoSidedModule: LeftModule + RightModule {
    type Ring: Ring;
}
Expand description

A trait representing a two-sided module over a ring.

A two-sided module is a generalization of a vector space, where the scalars lie in a ring rather than a field. This trait combines the requirements for an Abelian group with scalar multiplication by elements of the ring on both the left and right.

Required Associated Types§

Source

type Ring: Ring

The ring over which this module is defined.

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§

Source§

impl TwoSidedModule for Boolean

Source§

impl<F: Field + Copy + Mul<Self>> TwoSidedModule for DynamicVector<F>

Source§

type Ring = F

Source§

impl<F: Field + Copy + Debug + Mul<Self>, const N: usize> TwoSidedModule for CliffordAlgebraElement<'_, F, N>
where [(); { _ }]:,

Source§

type Ring = F

Source§

impl<R: Ring + Mul<Self>> TwoSidedModule for TrivialModule<R>

Source§

type Ring = R

Source§

impl<const M: usize, F: Field + Copy + Mul<Self>> TwoSidedModule for FixedVector<M, F>

Source§

type Ring = F