[][src]Trait alga::general::AbstractModule

pub trait AbstractModule<OpGroup: Operator = Additive, OpAdd: Operator = Additive, OpMul: Operator = Multiplicative>: AbstractGroupAbelian<OpGroup> {
    type AbstractRing: AbstractRingCommutative<OpAdd, OpMul>;
    fn multiply_by(&self, r: Self::AbstractRing) -> Self;
}

A module combines two sets: one with an abelian group structure and another with a commutative ring structure.

OpGroup denotes the abelian group operator (usually the addition). In addition, and external multiplicative law noted is defined. Let S be the ring with multiplicative operator OpMul noted ×, multiplicative identity element noted 1, and additive operator OpAdd. Then:

∀ a, b ∈ S
∀ x, y ∈ Self

a ∘ (x + y) = (a ∘ x) + (a ∘ y)
(a + b) ∘ x = (a ∘ x) + (b ∘ x)
(a × b) ∘ x = a ∘ (b ∘ x)
1 ∘ x       = x

Associated Types

The underlying scalar field.

Required Methods

Multiplies an element of the ring with an element of the module.

Implementors