Trait alga::general::AbstractModule
[−]
[src]
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
type AbstractRing: AbstractRingCommutative<OpAdd, OpMul>
The underlying scalar field.
Required Methods
fn multiply_by(&self, r: Self::AbstractRing) -> Self
Multiplies an element of the ring with an element of the module.