Packages

trait Module[X, S] extends MultiplicativeAction[X, S] with AdditiveCGroup[X]

Represents a module over a ring.

A module over a ring is an additive Abelian group (poly.algebra.AdditiveCGroup) on vectors that supports a linear distributive scaling function. It is a generalization of a vector space because the scalars need only be a ring (poly.algebra.Ring).

An instance of this typeclass should satisfy the following axioms:

  • S is a ring.
  • Additive associativity: \(\forall a, b, c \in X, (a+b)+c = a+(b+c)\).
  • Additive identity: ∀a∈X, a + 0 == 0 + a == a.
  • Additive invertibility: \(\forall a\in X, \exists -a \in X, a + (-a) == (-a) + a == 0\).
  • Additive commutativity: ∀a, b∈X, a + b == b + a.
  • Compatibility: \(\forall k, l \in S, \forall a \in X, k(la) = (kl)a \).
  • Scaling identity: \(\forall a\in X, 1a = a\).
  • Distributivity of scaling w.r.t. vector addition: \(\forall k\in S, \forall a, b\in X, k(a+b) == ka + kb \).
  • Distributivity of scaling w.r.t. scalar addition: \(\forall k, l \in S, \forall a\in X, (k+l)a = ka + la. \).
Self Type
Module[X, S]
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Module
  2. AdditiveCGroup
  3. AdditiveCMonoid
  4. AdditiveCSemigroup
  5. AdditiveGroup
  6. AdditiveMonoid
  7. HasZero
  8. AdditiveSemigroup
  9. MultiplicativeAction
  10. AnyRef
  11. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Abstract Value Members

  1. abstract def add(x: X, y: X): X

    The + operation of this semigroup.

    The + operation of this semigroup.

    Definition Classes
    AdditiveSemigroup
  2. implicit abstract def scalarRing: Ring[S]

    Returns the ring structure endowed on the type of scalars.

  3. abstract def scale(x: X, k: S): X

    Scales a vector by a scalar.

    Scales a vector by a scalar.

    Definition Classes
    ModuleMultiplicativeAction
  4. abstract def zero: X

    The 0 element (additive identity) of this type.

    The 0 element (additive identity) of this type.

    Definition Classes
    HasZero

Concrete Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. def asActionWithScale: Action[X, S]
    Definition Classes
    MultiplicativeAction
  5. def asGroupWithAdd: CGroup[X]

    Casts this object to a symbol-agnostic group with the group operation +.

    Casts this object to a symbol-agnostic group with the group operation +.

    Definition Classes
    AdditiveCGroupAdditiveGroup
  6. def asIdentityWithZero: HasIdentity[X]

    Casts this object to a HasIdentity with identity 0.

    Casts this object to a HasIdentity with identity 0.

    Definition Classes
    HasZero
  7. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  8. def asMonoidWithAdd: CMonoid[X]

    Casts this object as a symbol-agnostic monoid with the operation +.

    Casts this object as a symbol-agnostic monoid with the operation +.

    Definition Classes
    AdditiveCMonoidAdditiveMonoid
  9. def asSemigroupWithAdd: CSemigroup[X]

    Casts this structure as a symbol-agnostic semigroup.

    Casts this structure as a symbol-agnostic semigroup.

    Definition Classes
    AdditiveCSemigroupAdditiveSemigroup
  10. def clone(): AnyRef
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  11. def dual: Module[(X) ⇒ S, S]

    Returns the dual space of this module.

    Returns the dual space of this module.

    Since

    0.2.7

  12. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  13. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  14. def finalize(): Unit
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  15. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
  16. def hashCode(): Int
    Definition Classes
    AnyRef → Any
  17. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  18. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  19. def neg(x: X): X

    Returns the negation (additive inverse) of an element.

    Returns the negation (additive inverse) of an element.

    Definition Classes
    ModuleAdditiveGroup
  20. final def notify(): Unit
    Definition Classes
    AnyRef
  21. final def notifyAll(): Unit
    Definition Classes
    AnyRef
  22. def sub(x: X, y: X): X

    Returns the difference of two elements.

    Returns the difference of two elements.

    Definition Classes
    AdditiveGroup
  23. def sumN(x: X, n: Int): X

    Computes the sum x + x + ··· + x with x repeated for n times.

    Computes the sum x + x + ··· + x with x repeated for n times.

    Definition Classes
    AdditiveMonoidAdditiveSemigroup
  24. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  25. def toString(): String
    Definition Classes
    AnyRef → Any
  26. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  27. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  28. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from AdditiveCGroup[X]

Inherited from AdditiveCMonoid[X]

Inherited from AdditiveCSemigroup[X]

Inherited from AdditiveGroup[X]

Inherited from AdditiveMonoid[X]

Inherited from HasZero[X]

Inherited from AdditiveSemigroup[X]

Inherited from MultiplicativeAction[X, S]

Inherited from AnyRef

Inherited from Any

Ungrouped