\section{C-XSC Staggered Precision Interval Arithmetics}
This module includes the C-XSC Staggered Precision Interval 
Arithmetics into Rascal. You can find more information about C-XSC at 
{\tt http://www.xsc.de }.

LIntervals can be constructed out of integers and doubles using the 
constructor {\tt Interval} or the bracket-notation, when at least one of the
arguments is a staggered precision LReal:

\begin{lyxcode}
>a=LInterval(1,2)

~LInterval(   1.0000000000,   2.0000000000)

>b=[LReal(3),4]

~LInterval(   3.0000000000,   4.0000000000)

>c=LInterval(.1)

~LInterval(   0.0999999999,   0.1000000001)
\end{lyxcode}

As you can see there are several ways of defining a long interval.

As with LReals the accuracy of LIntervals can be adjusted by invoking the
function {\tt Stagprec}.

You can compute the intersection of two long intervals using the \&-operator, the
convex hull using the |-operator. The relational operators <,<=,>,>= can be
used to compute the relations $\subset,\subseteq,\supset,\supseteq$.

You can access the upper and lower boundary of an long interval using the
functions {\tt sup, inf}, the middle point using {\tt mid} and the diameter
with the help of the function {\tt diam}.

\begin{lyxcode}
>sup(a)

~LReal(2.0000000000)

>mid(a)

~LReal(1.5000000000)
\end{lyxcode}

The following standard functions are defined for long intervals: {\tt abs, exp, log,
pow, sqrt, sqr, sin, cos, tan, cot, asin, acos, atan, acot, sinh, cosh, tanh, coth,
asinh, acoth, atanh, acoth}. 