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 SetWithZero

*: (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 A has OrderedAbelianSemiGroup and A has AbelianMonoid and S has OrderedSet

from PartialOrder

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

from PartialOrder

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

from BasicType

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

from PartialOrder

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

from PartialOrder

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

from BasicType

abs: % -> % if A has OrderedAbelianMonoidSup and S has OrderedSet and % has AbelianGroup or A has OrderedAbelianSemiGroup and A has AbelianMonoid and S has OrderedSet and % has AbelianGroup

from OrderedAbelianSemiGroup

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

from Hashable

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

from Hashable

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

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

from OrderedSet

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

from OrderedSet

monomial?: % -> Boolean

from IndexedProductCategory(A, S)

monomial: (A, S) -> %

from IndexedProductCategory(A, S)

negative?: % -> Boolean if S has OrderedSet and A has OrderedAbelianMonoidSup or A has OrderedAbelianSemiGroup and A has AbelianMonoid and % has SetWithZero and S has OrderedSet

from OrderedSet

numberOfMonomials: % -> NonNegativeInteger

from IndexedDirectProductCategory(A, S)

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

from AbelianMonoid

positive?: % -> Boolean if S has OrderedSet and A has OrderedAbelianMonoidSup or A has OrderedAbelianSemiGroup and A has AbelianMonoid and % has SetWithZero and S has OrderedSet

from OrderedSet

reductum: % -> % if S has Comparable

from IndexedProductCategory(A, S)

sample: % if A has AbelianMonoid

from SetWithZero

sign: % -> Integer if S has OrderedSet and A has OrderedAbelianMonoidSup or A has OrderedAbelianSemiGroup and A has AbelianMonoid and % has SetWithZero and S has OrderedSet

from OrderedSet

smaller?: (%, %) -> Boolean if A has OrderedAbelianSemiGroup and A has AbelianMonoid and S has OrderedSet 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 A has OrderedAbelianMonoidSup and S has OrderedSet

from OrderedAbelianMonoidSup

zero?: % -> Boolean if A has AbelianMonoid

from SetWithZero

AbelianGroup if A has AbelianGroup

AbelianMonoid if A has AbelianMonoid

AbelianProductCategory A

AbelianSemiGroup if A has AbelianMonoid

BasicType if A has AbelianMonoid or A has Hashable and S has Hashable 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 A has OrderedAbelianSemiGroup and A has AbelianMonoid and S has OrderedSet or A has Comparable and S has Comparable or S has OrderedSet and A has OrderedAbelianMonoidSup

Hashable if A has Hashable and S has Hashable

IndexedDirectProductCategory(A, S)

IndexedProductCategory(A, S)

OrderedAbelianMonoidSup if A has OrderedAbelianMonoidSup and S has OrderedSet

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

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

PartialOrder if S has OrderedSet and A has OrderedAbelianMonoidSup or A has OrderedAbelianSemiGroup and A has AbelianMonoid and S has OrderedSet

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

SetWithZero if A has AbelianMonoid