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 S has OrderedSet and A has OrderedAbelianMonoidSup or S has OrderedSet and A has OrderedAbelianMonoid

from PartialOrder

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

from PartialOrder

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

from BasicType

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

from PartialOrder

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

from PartialOrder

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

from BasicType

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

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 S has OrderedSet and A has OrderedAbelianMonoidSup

from OrderedAbelianMonoidSup

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

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 S has OrderedSet and A has OrderedAbelianMonoidSup or S has OrderedSet and A has OrderedAbelianMonoid

from OrderedSet

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

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 S has OrderedSet and A has OrderedAbelianMonoid or A has Comparable and S has Comparable or S has OrderedSet and A has OrderedAbelianMonoidSup

from Comparable

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

from CancellationAbelianMonoid

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

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 S has Hashable and A has Hashable or A has AbelianMonoid or A has Comparable and S has Comparable

CancellationAbelianMonoid if A has CancellationAbelianMonoid

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

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

Hashable if S has Hashable and A has Hashable

IndexedDirectProductCategory(A, S)

IndexedProductCategory(A, S)

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

OrderedAbelianMonoidSup if S has OrderedSet and A has OrderedAbelianMonoidSup

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

OrderedCancellationAbelianMonoid if S has OrderedSet and A has OrderedAbelianMonoidSup

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

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

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