IndexedDirectProductObject(A, S)ΒΆ

indexedp.spad line 112 [edit on github]

Indexed direct products of objects over a set A of generators indexed by an ordered set S. It currently provides the ground for, e.g. FreeModule which lies at the basis of polynomials of all sorts. All items have finite support. If A is a monoid, then only non-zero terms are stored. If A has additive structure, it is propagated coordinatewise to the product. Similarly, comparisons are propagated using lexicographic ordering.

0: % if A has AbelianMonoid

from AbelianMonoid

*: (Integer, %) -> % if A has AbelianGroup

from AbelianGroup

*: (NonNegativeInteger, %) -> % if A has AbelianMonoid

from AbelianMonoid

*: (PositiveInteger, %) -> % if A has AbelianMonoid

from AbelianSemiGroup

+: (%, %) -> % if A has AbelianMonoid

from AbelianSemiGroup

-: % -> % if A has AbelianGroup

from AbelianGroup

-: (%, %) -> % if A has AbelianGroup

from AbelianGroup

<=: (%, %) -> Boolean if A has OrderedAbelianMonoidSup and S has OrderedSet or A has OrderedAbelianMonoid and S has OrderedSet

from PartialOrder

<: (%, %) -> Boolean if A has OrderedAbelianMonoidSup and S has OrderedSet or A has OrderedAbelianMonoid and S has OrderedSet

from PartialOrder

=: (%, %) -> Boolean if A has Comparable and S has Comparable or S has Hashable and A has Hashable or A has AbelianMonoid

from BasicType

>=: (%, %) -> Boolean if A has OrderedAbelianMonoidSup and S has OrderedSet or A has OrderedAbelianMonoid and S has OrderedSet

from PartialOrder

>: (%, %) -> Boolean if A has OrderedAbelianMonoidSup and S has OrderedSet or A has OrderedAbelianMonoid and S has OrderedSet

from PartialOrder

~=: (%, %) -> Boolean if A has Comparable and S has Comparable or S has Hashable and A has Hashable or A has AbelianMonoid

from BasicType

coerce: % -> OutputForm if A has Comparable and S has Comparable or A has AbelianMonoid

from CoercibleTo OutputForm

construct: List Record(k: S, c: A) -> %

from IndexedProductCategory(A, S)

constructOrdered: List Record(k: S, c: A) -> % if S has Comparable

from IndexedProductCategory(A, S)

hash: % -> SingleInteger if S has Hashable and A has Hashable

from Hashable

hashUpdate!: (HashState, %) -> HashState if S has Hashable and A has Hashable

from Hashable

inf: (%, %) -> % if A has OrderedAbelianMonoidSup and S has OrderedSet

from OrderedAbelianMonoidSup

latex: % -> String if A has Comparable and S has Comparable or A has AbelianMonoid

from SetCategory

leadingCoefficient: % -> A if S has Comparable

from IndexedProductCategory(A, S)

leadingMonomial: % -> % if S has Comparable

from IndexedProductCategory(A, S)

leadingSupport: % -> S if S has Comparable

from IndexedProductCategory(A, S)

leadingTerm: % -> Record(k: S, c: A) if S has Comparable

from IndexedProductCategory(A, S)

listOfTerms: % -> List Record(k: S, c: A)

from IndexedDirectProductCategory(A, S)

map: (A -> A, %) -> %

from IndexedProductCategory(A, S)

max: (%, %) -> % if A has OrderedAbelianMonoidSup and S has OrderedSet or A has OrderedAbelianMonoid and S has OrderedSet

from OrderedSet

min: (%, %) -> % if A has OrderedAbelianMonoidSup and S has OrderedSet or A has OrderedAbelianMonoid and S has OrderedSet

from OrderedSet

monomial?: % -> Boolean

from IndexedProductCategory(A, S)

monomial: (A, S) -> %

from IndexedProductCategory(A, S)

numberOfMonomials: % -> NonNegativeInteger

from IndexedDirectProductCategory(A, S)

opposite?: (%, %) -> Boolean if A has AbelianMonoid

from AbelianMonoid

reductum: % -> % if S has Comparable

from IndexedProductCategory(A, S)

sample: % if A has AbelianMonoid

from AbelianMonoid

smaller?: (%, %) -> Boolean if A has OrderedAbelianMonoid and S has OrderedSet or A has OrderedAbelianMonoidSup and S has OrderedSet or A has Comparable and S has Comparable

from Comparable

subtractIfCan: (%, %) -> Union(%, failed) if A has CancellationAbelianMonoid

from CancellationAbelianMonoid

sup: (%, %) -> % if A has OrderedAbelianMonoidSup and S has OrderedSet

from OrderedAbelianMonoidSup

zero?: % -> Boolean if A has AbelianMonoid

from AbelianMonoid

AbelianGroup if A has AbelianGroup

AbelianMonoid if A has AbelianMonoid

AbelianProductCategory A

AbelianSemiGroup if A has AbelianMonoid

BasicType if A has Comparable and S has Comparable or S has Hashable and A has Hashable or A has AbelianMonoid

CancellationAbelianMonoid if A has CancellationAbelianMonoid

CoercibleTo OutputForm if A has Comparable and S has Comparable or A has AbelianMonoid

Comparable if A has OrderedAbelianMonoid and S has OrderedSet or A has OrderedAbelianMonoidSup and S has OrderedSet or A has Comparable and S has Comparable

Hashable if S has Hashable and A has Hashable

IndexedDirectProductCategory(A, S)

IndexedProductCategory(A, S)

OrderedAbelianMonoid if A has OrderedAbelianMonoidSup and S has OrderedSet or A has OrderedAbelianMonoid and S has OrderedSet

OrderedAbelianMonoidSup if A has OrderedAbelianMonoidSup and S has OrderedSet

OrderedAbelianSemiGroup if A has OrderedAbelianMonoidSup and S has OrderedSet or A has OrderedAbelianMonoid and S has OrderedSet

OrderedCancellationAbelianMonoid if A has OrderedAbelianMonoidSup and S has OrderedSet

OrderedSet if A has OrderedAbelianMonoidSup and S has OrderedSet or A has OrderedAbelianMonoid and S has OrderedSet

PartialOrder if A has OrderedAbelianMonoidSup and S has OrderedSet or A has OrderedAbelianMonoid and S has OrderedSet

SetCategory if A has Comparable and S has Comparable or A has AbelianMonoid