AIntervalCategory RΒΆ

ainterval.spad line 74 [edit on github]

AIntervalCategory(R) exports operations that can be done with intervals. Although these operations should be similar to the arithmetic operations of a Ring, we do not export Ring, since the ring axioms are not fulfilled.

0: %

0 is interval(0,0).

1: %

1 is interval(1,1).

*: (%, %) -> %

x*y creates an interval such that for any u and v with contains?(x,u) and contains?(y,v) it holds contains?(x*y,u*v).

*: (Integer, %) -> %

z*x creates the interval [z * inf x, z * sup x].

*: (PositiveInteger, %) -> %

z*x creates the interval [z * inf x, z * sup x].

*: (R, %) -> %

r*x creates the interval [r * inf x, r * sup x].

+: (%, %) -> %

x+y creates the interval [inf x + inf y, sup x + sup y]. x+y creates an interval such that for any u and v with contains?(x,u) and contains?(y,v) it holds contains?(x+y,u+v).

+: (%, R) -> %

x+r creates the interval [inf x + r, sup x + x].

-: % -> %

-x creates the interval [- sup x, - inf x].

-: (%, %) -> %

x-y creates the interval x+(-y).

/: (%, %) -> % if R has Field

x/y returns x*inv(y). If positive?(x) and positive?(y), then this is equal to interval(inf(x)/sup(y),sup(x)/inf(y)).

=: (%, %) -> %

x=y returns true iff inf(x)=inf(y) and sup(x)=sup(y).

=: (%, %) -> Boolean

from BasicType

^: (%, NonNegativeInteger) -> %

x^n returns interval(1,1) if x is not zero and n=0. Otherwise it creates an interval such that for any u and v with contains?(x,u) it holds contains?(x^n,u^n).

^: (%, PositiveInteger) -> %

x^n creates an interval such that for any u and v with contains?(x,u) it holds contains?(x^n,u^n).

~=: (%, %) -> Boolean

from BasicType

abs: % -> %

abs(x) returns the tightest interval such that for all r with contains?(x,r) it holds contains?(abs(x),abs(r)).

coerce: % -> List R

coerce(x) returns [inf(x),sup(x)].

coerce: % -> OutputForm

from CoercibleTo OutputForm

contains?: (%, %) -> Boolean

contains?(x,y) returns true if inf(x)<=inf(y) and sup(y)<=sup(x) and false otherwise.

contains?: (%, R) -> Boolean

contains?(x,r) returns true if inf(x)<=r<=sup(x) and false otherwise.

error?: % -> Boolean

error?(x) returns true if the lower bound is bigger than the upper bound. That can happen it such an interval is created by the qinterval function.

inf: % -> R

inf(x) returns the infinum of x.

interval: (R, R) -> %

interval(x,y) creates a new interval [x,y], if x<=y and $[y,x], if y<x.

inv: % -> % if R has Field

inv(x) returns interval(1/sup(x),1/inf(x)) if not contains?(x,0). It is an error, if the interval contains 0.

latex: % -> String

from SetCategory

negative?: % -> Boolean

negative?(u) returns true if every element of u is negative, false otherwise.

one?: % -> Boolean

one?(x) returns true if x=interval(1,1).

positive?: % -> Boolean

positive?(x) returns true if every element of u is positive, false otherwise.

qinterval: (R, R) -> %

qinterval(inf,sup) creates a new interval without checking the ordering on the elements.

sup: % -> R

sup(x) returns the supremum of x.

unit?: % -> Boolean if R has Field

unit?(x) returns true if every element in x can be inverted, i.e. if not contains?(x,0).

width: % -> R

width(x) returns sup(x) - inf(x).

zero?: % -> Boolean

zero?(x) returns true if x=interval(0,0).

BasicType

CoercibleTo OutputForm

SetCategory