# DirectProductModule(n, R, S)ΒΆ

- n: NonNegativeInteger
- R: Ring
- S: LeftModule R

This constructor provides a direct product of `R`

-modules with an `R`

-module view.

- 0: %
- from AbelianMonoid
- 1: % if S has Monoid
- from MagmaWithUnit
- #: % -> NonNegativeInteger
- from Aggregate
- *: (%, %) -> % if S has SemiGroup
- from Magma
- *: (%, S) -> % if S has SemiGroup
- from DirectProductCategory(n, S)
- *: (Integer, %) -> %
- from AbelianGroup
- *: (NonNegativeInteger, %) -> %
- from AbelianMonoid
- *: (PositiveInteger, %) -> %
- from AbelianSemiGroup
- *: (R, %) -> %
- from LeftModule R
- *: (S, %) -> % if S has SemiGroup
- from DirectProductCategory(n, S)
- +: (%, %) -> %
- from AbelianSemiGroup
- -: % -> %
- from AbelianGroup
- -: (%, %) -> %
- from AbelianGroup
- /: (%, S) -> % if S has Field
- from VectorSpace S
- <: (%, %) -> Boolean if S has OrderedSet
- from PartialOrder
- <=: (%, %) -> Boolean if S has OrderedSet
- from PartialOrder
- =: (%, %) -> Boolean
- from BasicType
- >: (%, %) -> Boolean if S has OrderedSet
- from PartialOrder
- >=: (%, %) -> Boolean if S has OrderedSet
- from PartialOrder
- ^: (%, NonNegativeInteger) -> % if S has Monoid
- from MagmaWithUnit
- ^: (%, PositiveInteger) -> % if S has SemiGroup
- from Magma
- ~=: (%, %) -> Boolean
- from BasicType
- annihilate?: (%, %) -> Boolean if S has Ring
- from Rng
- antiCommutator: (%, %) -> % if S has SemiRng
- from NonAssociativeSemiRng
- any?: (S -> Boolean, %) -> Boolean
- from HomogeneousAggregate S
- associator: (%, %, %) -> % if S has Ring
- from NonAssociativeRng
- characteristic: () -> NonNegativeInteger if S has Ring
- from NonAssociativeRing
- coerce: % -> % if S has CommutativeRing
- from Algebra %
- coerce: % -> OutputForm
- from CoercibleTo OutputForm
- coerce: % -> Vector S
- from CoercibleTo Vector S
- coerce: Fraction Integer -> % if S has RetractableTo Fraction Integer
- from RetractableTo Fraction Integer
- coerce: Integer -> % if S has Ring or S has RetractableTo Integer
- from NonAssociativeRing
- coerce: S -> %
- from RetractableTo S
- commutator: (%, %) -> % if S has Ring
- from NonAssociativeRng
- convert: % -> InputForm if S has Finite
- from ConvertibleTo InputForm
- copy: % -> %
- from Aggregate
- count: (S -> Boolean, %) -> NonNegativeInteger
- from HomogeneousAggregate S
- count: (S, %) -> NonNegativeInteger
- from HomogeneousAggregate S
- D: % -> % if S has DifferentialRing and S has Ring
- from DifferentialRing
- D: (%, List Symbol) -> % if S has PartialDifferentialRing Symbol and S has Ring
- from PartialDifferentialRing Symbol
- D: (%, List Symbol, List NonNegativeInteger) -> % if S has PartialDifferentialRing Symbol and S has Ring
- from PartialDifferentialRing Symbol
- D: (%, NonNegativeInteger) -> % if S has DifferentialRing and S has Ring
- from DifferentialRing
- D: (%, S -> S) -> % if S has Ring
- from DifferentialExtension S
- D: (%, S -> S, NonNegativeInteger) -> % if S has Ring
- from DifferentialExtension S
- D: (%, Symbol) -> % if S has PartialDifferentialRing Symbol and S has Ring
- from PartialDifferentialRing Symbol
- D: (%, Symbol, NonNegativeInteger) -> % if S has PartialDifferentialRing Symbol and S has Ring
- from PartialDifferentialRing Symbol
- differentiate: % -> % if S has DifferentialRing and S has Ring
- from DifferentialRing
- differentiate: (%, List Symbol) -> % if S has PartialDifferentialRing Symbol and S has Ring
- from PartialDifferentialRing Symbol
- differentiate: (%, List Symbol, List NonNegativeInteger) -> % if S has PartialDifferentialRing Symbol and S has Ring
- from PartialDifferentialRing Symbol
- differentiate: (%, NonNegativeInteger) -> % if S has DifferentialRing and S has Ring
- from DifferentialRing
- differentiate: (%, S -> S) -> % if S has Ring
- from DifferentialExtension S
- differentiate: (%, S -> S, NonNegativeInteger) -> % if S has Ring
- from DifferentialExtension S
- differentiate: (%, Symbol) -> % if S has PartialDifferentialRing Symbol and S has Ring
- from PartialDifferentialRing Symbol
- differentiate: (%, Symbol, NonNegativeInteger) -> % if S has PartialDifferentialRing Symbol and S has Ring
- from PartialDifferentialRing Symbol
- dimension: () -> CardinalNumber if S has Field
- from VectorSpace S
- directProduct: Vector S -> %
- from DirectProductCategory(n, S)
- dot: (%, %) -> S if S has SemiRng
- from DirectProductCategory(n, S)
- elt: (%, Integer) -> S
- from Eltable(Integer, S)
- elt: (%, Integer, S) -> S
- from EltableAggregate(Integer, S)
- empty: () -> %
- from Aggregate
- empty?: % -> Boolean
- from Aggregate
- entries: % -> List S
- from IndexedAggregate(Integer, S)
- entry?: (S, %) -> Boolean
- from IndexedAggregate(Integer, S)
- enumerate: () -> List % if S has Finite
- from Finite
- eq?: (%, %) -> Boolean
- from Aggregate
- eval: (%, Equation S) -> % if S has Evalable S
- from Evalable S
- eval: (%, List Equation S) -> % if S has Evalable S
- from Evalable S
- eval: (%, List S, List S) -> % if S has Evalable S
- from InnerEvalable(S, S)
- eval: (%, S, S) -> % if S has Evalable S
- from InnerEvalable(S, S)
- every?: (S -> Boolean, %) -> Boolean
- from HomogeneousAggregate S
- first: % -> S
- from IndexedAggregate(Integer, S)
- hash: % -> SingleInteger
- from SetCategory
- hashUpdate!: (HashState, %) -> HashState
- from SetCategory
- index: PositiveInteger -> % if S has Finite
- from Finite
- index?: (Integer, %) -> Boolean
- from IndexedAggregate(Integer, S)
- indices: % -> List Integer
- from IndexedAggregate(Integer, S)
- latex: % -> String
- from SetCategory
- leftPower: (%, NonNegativeInteger) -> % if S has Monoid
- from MagmaWithUnit
- leftPower: (%, PositiveInteger) -> % if S has SemiGroup
- from Magma
- leftRecip: % -> Union(%, failed) if S has Monoid
- from MagmaWithUnit
- less?: (%, NonNegativeInteger) -> Boolean
- from Aggregate
- lookup: % -> PositiveInteger if S has Finite
- from Finite
- map: (S -> S, %) -> %
- from HomogeneousAggregate S
- max: (%, %) -> % if S has OrderedSet
- from OrderedSet
- maxIndex: % -> Integer
- from IndexedAggregate(Integer, S)
- member?: (S, %) -> Boolean
- from HomogeneousAggregate S
- members: % -> List S
- from HomogeneousAggregate S
- min: (%, %) -> % if S has OrderedSet
- from OrderedSet
- minIndex: % -> Integer
- from IndexedAggregate(Integer, S)
- more?: (%, NonNegativeInteger) -> Boolean
- from Aggregate
- one?: % -> Boolean if S has Monoid
- from MagmaWithUnit
- opposite?: (%, %) -> Boolean
- from AbelianMonoid
- parts: % -> List S
- from HomogeneousAggregate S
- qelt: (%, Integer) -> S
- from EltableAggregate(Integer, S)
- random: () -> % if S has Finite
- from Finite
- recip: % -> Union(%, failed) if S has Monoid
- from MagmaWithUnit
- reducedSystem: (Matrix %, Vector %) -> Record(mat: Matrix Integer, vec: Vector Integer) if S has LinearlyExplicitOver Integer and S has Ring
- from LinearlyExplicitOver Integer
- reducedSystem: (Matrix %, Vector %) -> Record(mat: Matrix S, vec: Vector S) if S has Ring
- from LinearlyExplicitOver S
- reducedSystem: Matrix % -> Matrix Integer if S has LinearlyExplicitOver Integer and S has Ring
- from LinearlyExplicitOver Integer
- reducedSystem: Matrix % -> Matrix S if S has Ring
- from LinearlyExplicitOver S
- retract: % -> Fraction Integer if S has RetractableTo Fraction Integer
- from RetractableTo Fraction Integer
- retract: % -> Integer if S has RetractableTo Integer
- from RetractableTo Integer
- retract: % -> S
- from RetractableTo S
- retractIfCan: % -> Union(Fraction Integer, failed) if S has RetractableTo Fraction Integer
- from RetractableTo Fraction Integer
- retractIfCan: % -> Union(Integer, failed) if S has RetractableTo Integer
- from RetractableTo Integer
- retractIfCan: % -> Union(S, failed)
- from RetractableTo S
- rightPower: (%, NonNegativeInteger) -> % if S has Monoid
- from MagmaWithUnit
- rightPower: (%, PositiveInteger) -> % if S has SemiGroup
- from Magma
- rightRecip: % -> Union(%, failed) if S has Monoid
- from MagmaWithUnit
- sample: %
- from AbelianMonoid
- size: () -> NonNegativeInteger if S has Finite
- from Finite
- size?: (%, NonNegativeInteger) -> Boolean
- from Aggregate
- smaller?: (%, %) -> Boolean if S has Finite or S has OrderedSet
- from Comparable
- subtractIfCan: (%, %) -> Union(%, failed)
- from CancellationAbelianMonoid
- sup: (%, %) -> % if S has OrderedAbelianMonoidSup
- from OrderedAbelianMonoidSup
- unitVector: PositiveInteger -> % if S has Monoid
- from DirectProductCategory(n, S)
- zero?: % -> Boolean
- from AbelianMonoid

Algebra % if S has CommutativeRing

Algebra S if S has CommutativeRing

BiModule(%, %) if S has SemiRng

BiModule(S, S) if S has SemiRng

CommutativeRing if S has CommutativeRing

CommutativeStar if S has CommutativeRing

Comparable if S has Finite or S has OrderedSet

ConvertibleTo InputForm if S has Finite

DifferentialExtension S if S has Ring

DifferentialRing if S has DifferentialRing and S has Ring

DirectProductCategory(n, S)

Evalable S if S has Evalable S

FullyLinearlyExplicitOver S if S has Ring

InnerEvalable(S, S) if S has Evalable S

LeftModule % if S has SemiRng

LeftModule S if S has SemiRng

LinearlyExplicitOver Integer if S has LinearlyExplicitOver Integer and S has Ring

LinearlyExplicitOver S if S has Ring

MagmaWithUnit if S has Monoid

Module % if S has CommutativeRing

Module S if S has CommutativeRing

NonAssociativeRing if S has Ring

NonAssociativeRng if S has Ring

NonAssociativeSemiRing if S has Ring

NonAssociativeSemiRng if S has SemiRng

OrderedAbelianMonoid if S has OrderedAbelianMonoidSup

OrderedAbelianMonoidSup if S has OrderedAbelianMonoidSup

OrderedAbelianSemiGroup if S has OrderedAbelianMonoidSup

OrderedCancellationAbelianMonoid if S has OrderedAbelianMonoidSup

OrderedSet if S has OrderedSet

PartialDifferentialRing Symbol if S has PartialDifferentialRing Symbol and S has Ring

PartialOrder if S has OrderedSet

RetractableTo Fraction Integer if S has RetractableTo Fraction Integer

RetractableTo Integer if S has RetractableTo Integer

RightModule % if S has SemiRng

RightModule S if S has SemiRng

TwoSidedRecip if S has CommutativeRing

unitsKnown if S has unitsKnown

VectorSpace S if S has Field