Trait alga::general::AbstractModule
source · pub trait AbstractModule<OpGroup: Operator = Additive, OpAdd: Operator = Additive, OpMul: Operator = Multiplicative>: AbstractGroupAbelian<OpGroup> {
type AbstractRing: AbstractRingCommutative<OpAdd, OpMul>;
// Required method
fn multiply_by(&self, r: Self::AbstractRing) -> Self;
}
Expand description
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
Required Associated Types§
sourcetype AbstractRing: AbstractRingCommutative<OpAdd, OpMul>
type AbstractRing: AbstractRingCommutative<OpAdd, OpMul>
The underlying scalar field.
Required Methods§
sourcefn multiply_by(&self, r: Self::AbstractRing) -> Self
fn multiply_by(&self, r: Self::AbstractRing) -> Self
Multiplies an element of the ring with an element of the module.
Object Safety§
This trait is not object safe.