FreeModuleCategory(R, S)
poly.spad line 19
[edit on github]
A domain of this category implements formal linear combinations of elements from a domain Basis
with coefficients in a domain R
. The domain Basis
needs only to belong to the category SetCategory and R
to the category Ring. Thus the coefficient ring may be non-commutative. See the XDistributedPolynomial constructor for examples of domains built with the FreeModuleCategory category constructor. Author: Michel Petitot (petitot@lifl.fr
) Note (Franz Lehner, June 2009): FreeModule
originally was not of FreeModuleCategory. Some functions (like support
, coefficients
, monomials
, ...) from here could be moved to IndexedDirectProductCategory
but at the moment there is no need for this.
- * : (%, R) -> %
- from RightModule(R)
- * : (R, %) -> %
- from LeftModule(R)
- * : (Integer, %) -> % if R has AbelianGroup
- from AbelianGroup
- * : (NonNegativeInteger, %) -> %
- from AbelianMonoid
- * : (PositiveInteger, %) -> %
- from AbelianSemiGroup
- + : (%, %) -> %
- from AbelianSemiGroup
- - : % -> % if R has AbelianGroup
- from AbelianGroup
- - : (%, %) -> % if R has AbelianGroup
- from AbelianGroup
- 0 : () -> %
- from AbelianMonoid
- = : (%, %) -> Boolean
- from BasicType
- coefficient : (%, S) -> R
coefficient(x, s)
returns the coefficient of the basis element s
- coefficients : % -> List(R)
coefficients(x)
returns the list of coefficients of x
.
- coerce : % -> OutputForm
- from CoercibleTo(OutputForm)
- construct : List(Record(k : S, c : R)) -> %
- from IndexedProductCategory(R, S)
- constructOrdered : List(Record(k : S, c : R)) -> % if S has Comparable
- from IndexedProductCategory(R, S)
- latex : % -> String
- from SetCategory
- leadingCoefficient : % -> R if S has Comparable
- from IndexedProductCategory(R, S)
- leadingMonomial : % -> % if S has Comparable
- from IndexedProductCategory(R, S)
- leadingSupport : % -> S if S has Comparable
- from IndexedProductCategory(R, S)
- leadingTerm : % -> Record(k : S, c : R) if S has Comparable
- from IndexedProductCategory(R, S)
- linearExtend : (Mapping(R, S), %) -> R if R has CommutativeRing
linearExtend: (f, x)
returns the linear extension of a map defined on the basis applied to a linear combination
- listOfTerms : % -> List(Record(k : S, c : R))
- from IndexedDirectProductCategory(R, S)
- map : (Mapping(R, R), %) -> %
- from IndexedProductCategory(R, S)
- monomial : (R, S) -> %
- from IndexedProductCategory(R, S)
- monomial? : % -> Boolean
- from IndexedProductCategory(R, S)
- monomials : % -> List(%)
monomials(x)
returns the list of r_i*b_i
whose sum is x
.
- numberOfMonomials : % -> NonNegativeInteger
- from IndexedDirectProductCategory(R, S)
- opposite? : (%, %) -> Boolean
- from AbelianMonoid
- reductum : % -> % if S has Comparable
- from IndexedProductCategory(R, S)
- sample : () -> %
- from AbelianMonoid
- smaller? : (%, %) -> Boolean if R has Comparable and S has Comparable
- from Comparable
- subtractIfCan : (%, %) -> Union(%, "failed")
- from CancellationAbelianMonoid
- support : % -> List(S)
support(x)
returns the list of basis elements with nonzero coefficients.
- zero? : % -> Boolean
- from AbelianMonoid
- ~= : (%, %) -> Boolean
- from BasicType
IndexedDirectProductCategory(R, S)
IndexedProductCategory(R, S)
BiModule(R, R)
CancellationAbelianMonoid
AbelianProductCategory(R)
LeftModule(R)
RightModule(R)
Module(R)
AbelianGroup
AbelianSemiGroup
SetCategory
Comparable
AbelianMonoid
BasicType
CoercibleTo(OutputForm)