UniversalSegment SΒΆ

seg.spad line 288 [edit on github]

This domain provides segments which may be half open. That is, ranges of the form a.. or a..b.

+: (%, S) -> % if S has AbelianSemiGroup

from SegmentCategory S

+: (S, %) -> % if S has AbelianSemiGroup

from SegmentCategory S

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

from SegmentCategory S

=: (%, %) -> Boolean if S has SetCategory

from BasicType

~=: (%, %) -> Boolean if S has SetCategory

from BasicType

BY: (%, Integer) -> %

from SegmentCategory S

coerce: % -> OutputForm if S has SetCategory

from CoercibleTo OutputForm

coerce: Segment S -> %

coerce(x) allows Segment values to be used as %.

convert: % -> InputForm if S has ConvertibleTo InputForm

from ConvertibleTo InputForm

convert: S -> %

from SegmentCategory S

expand: % -> Stream S if S has OrderedRing

from SegmentExpansionCategory(S, Stream S)

expand: List % -> Stream S if S has OrderedRing

from SegmentExpansionCategory(S, Stream S)

hasHi: % -> Boolean

hasHi(s) tests whether the segment s has an upper bound.

high: % -> S

from SegmentCategory S

incr: % -> Integer

from SegmentCategory S

latex: % -> String if S has SetCategory

from SetCategory

low: % -> S

from SegmentCategory S

map: (S -> S, %) -> Stream S if S has OrderedRing

from SegmentExpansionCategory(S, Stream S)

reverse: % -> % if S has OrderedRing

from SegmentCategory S

segment: (S, S) -> %

from SegmentCategory S

SEGMENT: (S, S) -> %

from SegmentCategory S

segment: S -> %

segment(l) is an alternate way to construct the segment l...

SEGMENT: S -> %

l.. produces a half open segment, that is, one with no upper bound.

BasicType if S has SetCategory

CoercibleTo OutputForm if S has SetCategory

ConvertibleTo InputForm if S has ConvertibleTo InputForm

SegmentCategory S

SegmentExpansionCategory(S, Stream S) if S has OrderedRing

SetCategory if S has SetCategory