intblas Namespace Reference

This is the namespace under which all the library members reside. More...


Classes

struct  INTERVAL_EXCEPTION
 This struct is the type of exception thrown by all the members of this library. More...
class  Interval
 This class is the fundamental type used by this library. More...
class  IntervalMatrix
 This class represents a matrix whose elements are intervals. More...
class  IntervalMatrixT
 This class adds strong type checking to matrix operations. More...
class  IntervalVector
 This class represents a vector whose elements are intervals. More...
class  IntervalVectorT
 This class adds strong type checking to vector operations. More...

Enumerations

enum  NORMTYPE {
  NORM1, NORM2, NORMF, NORMMAX,
  NORMINF
}
 Normalization functions take a parameter of this type to define what type of normalization to perform. More...
enum  TRIMAT_TYPE { LTR_TOP, LTR_BOT, RTL_TOP, RTL_BOT }
 This enumaeration defines what type of triangle is passed in when using the triangularMult() function for IntervalMatrix's. More...

Functions

ostream & operator<< (ostream &out, const INTERVAL_EXCEPTION &ie)
 This is a convenience operator for outputting an the error message.
void roundOut (Interval &x, bool lower=true, bool upper=true)
 This function is used to create an interval enclosure of the interval x.
void INIT_INTERVAL ()
 This function initializes the library for use.
char skipws (istream &in)
int rround (double r)
Interval rrpower (double in, int exp)
Interval rsqrt (const Interval &x)
Interval rcos (const Interval &x)
Interval rexp (Interval x)
Interval rlog (Interval x)
Interval anser (const Interval &x, bool over)
Interval s (const Interval &x, bool even)
Interval rbatan (const Interval &xx, bool even)
ostream & operator<< (ostream &out, Interval const &a)
 This is a convenience operator for outputting an interval into an output stream.
istream & operator>> (istream &in, Interval &i)
 This operator reads an interval from the stream.
Interval operator/ (double r, const Interval &b)
 This operator divides a scalar by an interval.
Interval cancel (const Interval &a, const Interval &b)
 This method cancels the addition of b to a.
Interval operator- (double r, const Interval &b)
 This operator performs scalar subtraction with r.
Interval isqrt (const Interval &x)
 This function calculates the square root of an interval.
Interval iexp (const Interval &x)
 This function calculate $e^{x}$.
Interval ilog (const Interval &x)
 This function calculates the natrual logarithm of the interval x.
double iabs (const Interval &x)
 This function returns the maximum absolute value of this interval.
Interval ipow (const Interval &x, const Interval &y)
 This operator raises an interval to the power of y.
Interval ipow (const Interval &x, int exp)
 Raises the interval x to the power exp.
double midpoint (const Interval &a)
 This function calculates the midpoint of interval a.
Interval intervalHull (const Interval &a, const Interval &b)
 This function calculates the convex hull of a and b.
double width (const Interval &a)
 This function calculates the width of the interval a.
bool isEmpty (const Interval &v)
 This function returns true if the interval is empty.
Interval isin (const Interval &x)
 This function calculates the sine interval enclosure of an interval.
Interval icos (const Interval &x)
 This function calculates the cosine interval enclosure of an interval.
Interval itan (const Interval &x)
 This function calculates the tangent interval enclosure of an interval.
Interval iasin (const Interval &xx)
 This function calculates the arc sine interval enclosure of an interval.
Interval iacos (const Interval &x)
 This function calculates the arc cosine interval enclosure of an interval.
Interval iatan (const Interval &x)
 This function calculates the arc tangent interval enclosure of an interval.
void swap (IntervalMatrix &a, IntervalMatrix &b)
 This function efficiently swaps two matrices.
IntervalMatrix getIdentity (unsigned int rows, unsigned int cols)
 This function returns an identity matrix of the size rows x cols.
IntervalMatrixoperator+ (const Interval &scalar, IntervalMatrix &a)
IntervalMatrixoperator- (const Interval &scalar, IntervalMatrix &a)
 This operator subtracts a scalar value from a.
IntervalMatrixneg (IntervalMatrix &a)
 This function takes the negation of the matrix.
IntervalMatrixoperator * (const Interval &scalar, IntervalMatrix &a)
 This operator multiplies the scalar by matrix a.
IntervalVectoroperator * (IntervalVector &v, IntervalMatrix &a)
 This operator multiplies this matrix by a vector.
IntervalMatrixtranspose (IntervalMatrix &a)
 Transpose the matrix a.
double norm (IntervalMatrix &a, NORMTYPE n)
 This function calculates the norm of matrix a.
IntervalMatrixdiagonalScale (IntervalMatrix &a, IntervalMatrix &d, bool side)
 This function multiplies a by the diagonal matrix d.
IntervalMatrixdiagonalScale (IntervalMatrix &a, IntervalMatrix &b, IntervalMatrix &d)
 This function multiplies b by the diagonal matrix d, and adds the result to a.
IntervalMatrixtriangularMult (IntervalMatrix &a, IntervalMatrix &t, const Interval &alpha, TRIMAT_TYPE tt, bool side)
 This function efficently multiplies a matrix against a square triangular matrix of the same dimension.
IntervalMatrixdiagonalScale2 (IntervalMatrix &a, IntervalMatrix &d1, IntervalMatrix &d2)
 This function efficiently performs two sided diagonal scaling on a matrix.
IntervalMatrixscaledAccumulation (IntervalMatrix &a, IntervalMatrix &b, const Interval &alpha, const Interval &beta)
 This function is provided to efficiently calculate an accumulate and scale formula.
IntervalMatrixaccTranspose (IntervalMatrix &a, IntervalMatrix &b, const Interval &alpha, const Interval &beta)
 This function is provided to efficiently calculate an accumulate and scale formula.
IntervalVectorscaledVectorMult (IntervalMatrix &a, IntervalVector &x, IntervalVector &y, const Interval &alpha, const Interval &beta, bool transpose_a)
 This function performs scaled vector multiplication.
IntervalMatrixscaledMatrixMult (IntervalMatrix &a, IntervalMatrix &b, IntervalMatrix &c, bool a_transpose, bool b_transpose, const Interval &alpha, const Interval &beta)
 This function performs multiple scaled matrix multiplication formulas.
IntervalMatrixrankOneUpdate (IntervalMatrix &a, IntervalVector &x, IntervalVector &y, const Interval &alpha, const Interval &beta)
 This function performs a rank one update on matrix a.
IntervalMatrixpermute (IntervalMatrix &a, int p[])
 This function moves rows from their original index to the index proveded in p.
bool encloses (IntervalMatrix &v, IntervalMatrix &y)
 Tests to see if the elements of v enclose the elements of y.
bool interior (IntervalMatrix &v, IntervalMatrix &y)
 Tests to see if the elements of y are on the interior of v.
bool disjoint (IntervalMatrix &v, IntervalMatrix &y)
 Tests to see if the elements of y are disjoint to the elements of v.
IntervalMatrixintervalHull (IntervalMatrix &v, IntervalMatrix &y)
 This function calculates the convex interval hull of v and y.
IntervalMatrixintervalIntersection (IntervalMatrix &v, IntervalMatrix &y)
 This method calculates the intersection of this matrix v and y.
IntervalMatrixintervalUnion (IntervalMatrix &v, IntervalMatrix &y)
 This operator calculates the union of v and y.
bool isEmpty (IntervalMatrix &v)
 This method returns true if any element is the empty interval.
IntervalMatrixlowerBounds (IntervalMatrix &v)
 This function returns a matrix containing point intervals of the lower bound of each element.
IntervalMatrixupperBounds (IntervalMatrix &v)
 This function returns a matrix containing point intervals of the upper bound of each element.
IntervalMatrixmidpoint (IntervalMatrix &v)
 This function returns a matrix containing point intervals of the midpoint of each element.
IntervalMatrixwidths (IntervalMatrix &v)
 This function returns a matrix containing point intervals of the width of each element.
void lu (IntervalMatrix &a, IntervalMatrix &lu, int *p)
 This method calculates the LU decomposition of this matrix based on the elements' midpoint.
IntervalVectorsolveLU (IntervalVector &b, IntervalMatrix &lu, int p[])
 This function solves a system of equations using an LU matrix.
IntervalMatrixinverse (IntervalMatrix &a)
 This function will invert a matrix based on the elements midpoints.
ostream & operator<< (ostream &out, const IntervalMatrix &mat)
 This is a convenience operator for outputing the matrix as a string.
istream & operator>> (istream &in, IntervalMatrix &m)
 This operator reads a matrix from an input stream The matrix must be formated as folows:
  • The matrix must begin and end with a '|' character
  • The elements can be seperated by spaces or commas.

IntervalVectoroperator- (const Interval &scalar, IntervalVector &a)
 This operator subtracts a scalar value from the vector.
IntervalVectoroperator * (const Interval &scalar, IntervalVector &a)
 This operator multiplies a scalar to a vector.
IntervalVectoroperator+ (const Interval &scalar, IntervalVector &a)
 This operator adds a vector and scalar value.
Interval dot (IntervalVector &a, IntervalVector &b)
 This function returns the dot product of a vector and and another.
Interval scaledDot (IntervalVector &a, IntervalVector &b, const Interval &r, double alpha, double beta)
 This function returns the dot product of a vector and and another.
double norm (IntervalVector &a, NORMTYPE p)
 The norm of a vector.
IntervalVectorreciprocalScale (IntervalVector &x, double alpha)
 This funtion implements the reciprocal scale of an interval vector.
IntervalVectorscaledAccumulation (IntervalVector &x, IntervalVector &y, double alpha, double beta)
 This function performs a scaled vector accumulation.
IntervalVectorscaledCancelation (IntervalVector &x, IntervalVector &y, double alpha, double beta)
 This function cancels the addition of y to the vector x.
void swap (IntervalVector &a, IntervalVector &b)
 This method swaps two vectors efficiently.
IntervalVectorpermute (IntervalVector &x, int p[])
 This function moves the elements of x to the new addresses specified in p.
bool encloses (IntervalVector &v, IntervalVector &y)
 This function test if each element in v encloses the corresponding element in y.
bool interior (IntervalVector &v, IntervalVector &y)
 This function tests if each element in v contains the corresponding element in y.
bool disjoint (IntervalVector &v, IntervalVector &y)
 This function tests if each element in v is disjoint with the corresponding element in y.
IntervalVectorintervalIntersection (IntervalVector &x, IntervalVector &y)
 This function returns the intersection of this vector and another.
IntervalVectorintervalUnion (IntervalVector &x, IntervalVector &y)
 This function returns the union of x and y.
IntervalVectorintervalHull (IntervalVector &v, IntervalVector &y)
 This function performs a convex interval hull on the elements of two vectors.
bool isEmpty (IntervalVector &v)
 This function tells whether the vector contains an empty element.
IntervalVectorlowerBounds (IntervalVector &v)
 This function returns a vector whose elements are point intervals containing the lower bounds of a vector.
IntervalVectorupperBounds (IntervalVector &v)
 This function returns a vector whose elements are point intervals containing the upper bounds of a vector.
IntervalVectormidpoint (IntervalVector &v)
 This function returns a vector whose elements are point intervals containing the midpoints of a vector.
IntervalVectorwidths (IntervalVector &v)
 This function returns a vector whose elements are point intervals containing the widths of a vector.
ostream & operator<< (ostream &out, const IntervalVector &v)
 This operator is a convenience operator for outputing vectors.
istream & operator>> (istream &in, IntervalVector &v)
 This operator reads a vector from the stream.

Variables

const Interval cEMPTY (1,-1)
double cTINY
double cTEST
double cMXULP = DBL_EPSILON
double cTTINY2
double cTINY2
double cITINY2
double cCBTEP
double cJTINY2
double cTOLO
double cMAXX
double cMAXLGM1
double cNEGINF
 This value represents negative infinity.
double cPOSINF
 This value represents positive infinity.
Interval cA
 Interval enclosure of $\frac{1}{\pi}$ .
Interval cPI
 Interval eclosure for $\pi$ .
Interval cE
 Interval eclosure for e.
Interval cESXTNT
 Interval eclosure for $e^{1/16}$ .
Interval cPI2
 Interval eclosure for $\frac{\pi}{2}$ .
Interval cPI3
 Interval eclosure for $\frac{\pi}{3}$ .
Interval cPI4
 Interval eclosure for $\frac{\pi}{4}$ .
Interval cPI6
 Interval eclosure for $\frac{\pi}{6}$ .
Interval cPI8
 Interval eclosure for $\frac{\pi}{8}$ .
Interval cE14
 Interval eclosure for $e^{1/4}$ .
Interval cOD2F
 Interval eclosure for 1 / 2.
Interval cOD3F
 Interval eclosure for 1 / 3.
Interval cOD4F
 Interval eclosure for 1 / 4.
Interval cOD5F
 Interval eclosure for 1 / 5.
Interval cOD6F
 Interval eclosure for 1 / 6.
Interval cOD7F
 Interval eclosure for 1 / 7.
Interval cOD8F
 Interval eclosure for 1 / 8.
Interval cOD9F
 Interval eclosure for 1 / 9.
Interval cOD10F
 Interval eclosure for 1 / 10.
Interval cOD11F
 Interval eclosure for 1 / 11.
Interval cOD12F
 Interval eclosure for 1 / 12.
Interval cOD14F
 Interval eclosure for 1 / 14.
Interval cSQRT3
 Interval eclosure for $\sqrt{3}$ .
Interval cSQRT10
 Interval eclosure for $\sqrt{10}$ .
Interval cODSQRT3
 Interval eclosure for $\frac{1}{\sqrt{3}}$ .
Interval cONE
 Interval eclosure for 1.0.
Interval cZERO
 Interval eclosure for 0.0.
Interval cTWO
 Interval eclosure for 2.0.
Interval cFOUR
 Interval eclosure for 4.0.
Interval cEIGHT
 Interval eclosure for 8.0.
Interval cTHIRD
 Interval eclosure for 1 / 3.
Interval cFOURTH
 Interval eclosure for 1 / 4.
Interval cFIFTH
 Interval eclosure for 1 / 5.
Interval cSIXTH
 Interval eclosure for 1 / 6.
Interval cSEVENTH
 Interval eclosure for 1 / 7.
Interval cEIGHTH
 Interval eclosure for 1 / 8.
Interval cNINTH
 Interval eclosure for 1 / 9.
Interval cTENTH
 Interval eclosure for 1 / 10.
Interval cELEVTH
 Interval eclosure for 1 / 11.
Interval cTWLVTH
 Interval eclosure for 1 / 12.
Interval cTHRTTH
 Interval eclosure for 1 / 13.
Interval cSIXTNTH
 Interval eclosure for 1 / 16.
int cAMAXBITS
Interval cALPHA [54]
Interval cASCALE
const double eps = 10e-30


Detailed Description

This is the namespace under which all the library members reside.

Author:
Micheal Nooner
The purpose of this namespace is to clear up any naming conflicts with other libraries.


Enumeration Type Documentation

enum intblas::NORMTYPE
 

Normalization functions take a parameter of this type to define what type of normalization to perform.

Enumerator:
NORM1  First normalization (vectors & matrices).
NORM2  Second normalization (vectors).
NORMF  F normalization (matrices).
NORMMAX  Maximum normalization (matrices).
NORMINF  Infinite normalization (vectors & matrices).

enum intblas::TRIMAT_TYPE
 

This enumaeration defines what type of triangle is passed in when using the triangularMult() function for IntervalMatrix's.

Enumerator:
LTR_TOP  The matrix is filled above the diagonal where the diagonal proceeds from the upper left to the lower right.
LTR_BOT  The matrix is filled below the diagonal where the diagonal proceeds from the upper left to the lower right.
RTL_TOP  The matrix is filled above the diagonal where the diagonal proceeds from the upper right to the lower left.
RTL_BOT  The matrix is filled below the diagonal where the diagonal proceeds from the upper right to the lower left.


Function Documentation

IntervalMatrix& intblas::accTranspose IntervalMatrix &  a,
IntervalMatrix &  b,
const Interval &  alpha = IntervalMatrix::one,
const Interval &  beta = IntervalMatrix::one
 

This function is provided to efficiently calculate an accumulate and scale formula.

This method calculates the formula:

\[ \alpha*{\bf A}^{T} + \beta*{\bf B} \]

Parameters:
a The A matrix in the formula.
b The B matrix in the formula.
alpha The $\alpha$ in the formula.
beta The $\beta$ in the formula.
Returns:
The scaled accumulation.
Exceptions:
INTERVAL_EXCEPTION code = 300, msg = "Matrix: dimension mismatch."
INTERVAL_EXCEPTION code = 303, msg = "Matrix: this operation is only valid on square matrices."

Interval intblas::cancel const Interval &  a,
const Interval &  b
 

This method cancels the addition of b to a.

Cancellation is an operation where given some interval b which was an addend to to a previously accumulated sum a, this operation will return the sum of the other addends of a. This is calculated in the following manner:

cancel( a, b ) = $[\underline{a} - \underline{b}, \overline{a} - \overline{b}]$ if $(\underline{a} - \underline{b} ) \leq (\overline{a} - \overline{b})$ else cEMPTY
Parameters:
a The interval to perform the Cancellation on.
b The interval to cancel.
See also:
cEMPTY, Interval::cancel( const Interval& b ) const
Returns:
The Cancellation of b from a.

IntervalMatrix& intblas::diagonalScale IntervalMatrix &  a,
IntervalMatrix &  b,
IntervalMatrix &  d
 

This function multiplies b by the diagonal matrix d, and adds the result to a.

This function is faster than using the * operator. This function calculates the following formula:

\[ A + BD \]

Parameters:
a The scaling matrix to add by.
b The matrix to multiply into.
d The diagonal matrix to multiply a by.
Returns:
The diagonally scaled matrix.
Exceptions:
INTERVAL_EXCEPTION code = 300, msg = "Matrix: dimension mismatch."

IntervalMatrix& intblas::diagonalScale IntervalMatrix &  a,
IntervalMatrix &  d,
bool  side = true
 

This function multiplies a by the diagonal matrix d.

This function is faster than using the * operator.

Parameters:
a The matrix to multiply into.
d The diagonal matrix to multiply a by.
side False for d*a, or True for a*d.
Returns:
The diagonally scaled matrix.
Exceptions:
INTERVAL_EXCEPTION code = 300, msg = "Matrix: dimension mismatch."
INTERVAL_EXCEPTION code = 304, msg = "Matrix: the side parameter must be 1 or 2."

IntervalMatrix& intblas::diagonalScale2 IntervalMatrix &  a,
IntervalMatrix &  d1,
IntervalMatrix &  d2
 

This function efficiently performs two sided diagonal scaling on a matrix.

This function implments the formula:

\[ \bf{D_{1} A D_{2}} \]

Parameters:
a The matrix to scale.
d1 The first scaling matrix.
d2 The second scaling matrix.
Returns:
The matrix a after being scaled.
Exceptions:
INTERVAL_EXCEPTION code = 300, msg = "Matrix: dimension mismatch."
INTERVAL_EXCEPTION code = 303, msg = "Matrix: the operation is only valid on square matrices."

bool intblas::disjoint IntervalVector &  v,
IntervalVector &  y
 

This function tests if each element in v is disjoint with the corresponding element in y.

Parameters:
v The vector to test with.
y The vector to test against.
Returns:
True, if each element in y disjoint with the corresponding element in v.
See also:
Interval::disjoint()

bool intblas::disjoint IntervalMatrix &  v,
IntervalMatrix &  y
 

Tests to see if the elements of y are disjoint to the elements of v.

The comparison is done element wise, i.e. v[i][j].disjoint( y[i][j] ).

Parameters:
v The matrix to test with.
y The matrix to test against.
Returns:
True, if every element in y is disjoint with v.
See also:
Interval::disjoint()

Interval intblas::dot IntervalVector &  a,
IntervalVector &  b
 

This function returns the dot product of a vector and and another.

Parameters:
a The vector to take the dot product of.
b The vector to dot product with.
Returns:
The dot product of a and b.
See also:
scaledDot()
Exceptions:
INTERVAL_EXCEPTION code = 203, msg = "Vector: dimension mismatch."

bool intblas::encloses IntervalVector &  v,
IntervalVector &  y
 

This function test if each element in v encloses the corresponding element in y.

Parameters:
v The vector to test with.
y The vector to test against.
Returns:
True, if each element in v encloses the corresponding element in y.
See also:
Interval::encloses()

bool intblas::encloses IntervalMatrix &  v,
IntervalMatrix &  y
 

Tests to see if the elements of v enclose the elements of y.

The comparison is done element wise, i.e. v[i][j].encloses( y[i][j] ).

Parameters:
v The matrix to test with.
y The matrix to test against.
Returns:
True, if every element at v[i][j] encloses the element y[i][j].
See also:
Interval::encloses

IntervalMatrix intblas::getIdentity unsigned int  rows,
unsigned int  cols
 

This function returns an identity matrix of the size rows x cols.

Parameters:
rows The number of rows in the matrix.
cols The number of columns in the matrix.
Returns:
Identity matrix rows x cols.
Exceptions:
INTERVAL_EXCEPTION code = 303, msg = "Matrix: this operation is only valid on square matrices."

double intblas::iabs const Interval &  x  ) 
 

This function returns the maximum absolute value of this interval.

This function is calculated by ${\rm max}( |\underline{x}|, |\overline{x}| )$ .

Parameters:
x The interval to find the maximum absolute value for.
Returns:
The maximum absolute value of the interval x.
Exceptions:
INTERVAL_EXCEPTION code = 200, msg = "The operation cannot be performed on an empty set."

Interval intblas::iacos const Interval &  x  ) 
 

This function calculates the arc cosine interval enclosure of an interval.

If the interval passed in is a point interval, the returned interval will be slightly below and above the actual arc cosine value. Similarly, if the passed in interval is not a point interval, then the result is an interval that encloses the arc cosine values of the lower and upper bound.

Parameters:
x The interval to calculate the arc cosine of.
Returns:
The interval enclosure of the arc cosine of x.
Exceptions:
INTERVAL_EXCEPTION code = 9, msg = "Interval: Argument to inverse trig function encloses numbers greater than 1."
INTERVAL_EXCEPTION code = 10, msg = "Interval: Argument to inverse trig function encloses numbers less than -1."

Interval intblas::iasin const Interval &  xx  ) 
 

This function calculates the arc sine interval enclosure of an interval.

If the interval passed in is a point interval, the returned interval will be slightly below and above the actual arc sine value. Similarly, if the passed in interval is not a point interval, then the result is an interval that encloses the arc sine values of the lower and upper bound.

Parameters:
xx The interval to calculate the arc sine of.
Returns:
The interval enclosure of the arc sine of x.
Exceptions:
INTERVAL_EXCEPTION code = 11, msg = "Interval: Approximating series for reduced argument did not converge."
INTERVAL_EXCEPTION code = 9, msg = "Interval: Argument to inverse trig function encloses numbers greater than 1."
INTERVAL_EXCEPTION code = 10, msg = "Interval: Argument to inverse trig function encloses numbers less than -1."

Interval intblas::iatan const Interval &  x  ) 
 

This function calculates the arc tangent interval enclosure of an interval.

If the interval passed in is a point interval, the returned interval will be slightly below and above the actual arc tangent value. Similarly, if the passed in interval is not a point interval, then the result is an interval that encloses the arc tangent values of the lower and upper bound.

Note:
This function is currently broken.
Parameters:
x The interval to calculate the arc tangent of.
Returns:
The interval enclosure of the arc tangent of x.

Interval intblas::icos const Interval &  x  ) 
 

This function calculates the cosine interval enclosure of an interval.

If the interval passed in is a point interval, the returned interval will be slightly below and above the actual cosine value. Similarly, if the passed in interval is not a point interval, then the result is an interval that encloses the cosine values of the lower and upper bound.

Parameters:
x The interval to calculate the cosine of.
Returns:
The interval enclosure of the cosine of x.
Exceptions:
INTERVAL_EXCEPTION code = 5, msg = "Interval: Loss of accuracy in trig function due to argument range."

Interval intblas::iexp const Interval &  x  ) 
 

This function calculate $e^{x}$.

Parameters:
x The power to raise e to.
Returns:
e to the power of x
Exceptions:
INTERVAL_EXCEPTION code = 2, msg = "Interval: Lower bound for exp() would underflow."
INTERVAL_EXCEPTION code = 3, msg = "Interval: Lower bound for exp() would overflow."
INTERVAL_EXCEPTION code = 4, msg = "Interval: Upper bound for exp() would overflow."

Interval intblas::ilog const Interval &  x  ) 
 

This function calculates the natrual logarithm of the interval x.

Parameters:
x The interval to take the log of.
Returns:
$\log_{e}( x )$
Exceptions:
INTERVAL_EXCEPTION code = 7, msg = "Interval: Argument encloses a zero in elementary function."

void intblas::INIT_INTERVAL  )  [inline]
 

This function initializes the library for use.

This function should be called before any declarartions or function calls. Its purpose is to set the global variables, i.e. those begining with "c", To the proper value. If this function is not called the roudOut() function will not work properly.

The variables cPOSINF (positive infinity) and cNEGINF (negative infinity) are dependant on the std::numeric_limits<double>.has_infinity being true. If it is false, then cPOSINF and cNEGINF are set to std::DBL_MAX, and an exception is thrown (see below).

Exceptions:
INTERVAL_EXCEPTION code:

bool intblas::interior IntervalVector &  v,
IntervalVector &  y
 

This function tests if each element in v contains the corresponding element in y.

Parameters:
v The vector to test with.
y The vector to test against.
Returns:
True, if each element in y is on the interior of v.
See also:
Interval::interior()

bool intblas::interior IntervalMatrix &  v,
IntervalMatrix &  y
 

Tests to see if the elements of y are on the interior of v.

The comparison is done element wise, i.e. v[i][j].interior( y[i][j] ).

Parameters:
v The matrix to test with.
y The matrix to test against.
Returns:
True, if every element at y[i][j] in on the interior of v[i][j].
See also:
Interval::interior()

IntervalVector& intblas::intervalHull IntervalVector &  v,
IntervalVector &  y
 

This function performs a convex interval hull on the elements of two vectors.

Parameters:
v The vector to interval hull with.
y The vector to interval hull with.
Returns:
A vector whose elements are the convex interval hull of y and v.
Exceptions:
INTERVAL_EXCEPTION code = 203, msg = "Vector: dimension mismatch."

IntervalMatrix& intblas::intervalHull IntervalMatrix &  v,
IntervalMatrix &  y
 

This function calculates the convex interval hull of v and y.

This is done element wise, i.e. v[i][j].hull( y[i][j] ).

Parameters:
v The matrix to interval hull with.
y The matrix to interval hull with.
Returns:
The convex interval hull of v and y.
Exceptions:
INTERVAL_EXCEPTION code = 300, msg = "Matrix: dimension mismatch."
See also:
Interval::hull()

Interval intblas::intervalHull const Interval &  a,
const Interval &  b
 

This function calculates the convex hull of a and b.

The convex hull is calculates in the following way [max(a.lower, b.lower), min(a.upper, b.upper)]

Parameters:
a The interval to hull with b.
b The interval to hull with a.
Returns:
The convex hull of a and b.

IntervalVector& intblas::intervalIntersection IntervalVector &  x,
IntervalVector &  y
 

This function returns the intersection of this vector and another.

Parameters:
x A vector to intersect with.
y A vector to intersect with.
Returns:
The intersection of x and y.
See also:
Interval::operator&()
Exceptions:
INTERVAL_EXCEPTION code = 203, msg = "Vector: dimension mismatch."

IntervalMatrix& intblas::intervalIntersection IntervalMatrix &  v,
IntervalMatrix &  y
 

This method calculates the intersection of this matrix v and y.

This is done element wise, i.e. v[i][j] & y[i][j].

Parameters:
v The matrix to intersect against.
y The matrix to intersect with.
Returns:
The intersection of v and y.
Exceptions:
INTERVAL_EXCEPTION code = 300, msg = "Matrix: dimension mismatch."
See also:
Interval::operator&()

IntervalVector& intblas::intervalUnion IntervalVector &  x,
IntervalVector &  y
 

This function returns the union of x and y.

Parameters:
x A vector to union against.
y A vector to union with.
Returns:
The union of x and y.
See also:
Interval::operator|()
Exceptions:
INTERVAL_EXCEPTION code = 203, msg = "Vector: dimension mismatch."
INTERVAL_EXCEPTION code = 13, msg = "Disjoint intervals in set operation."

IntervalMatrix& intblas::intervalUnion IntervalMatrix &  v,
IntervalMatrix &  y
 

This operator calculates the union of v and y.

This is done element wise, i.e. v[i][j] & y[i][j].

Parameters:
v The matrix to union with.
y The matrix to union with.
Returns:
The union of v and y.
Exceptions:
INTERVAL_EXCEPTION code = 300, msg = "Matrix: dimension mismatch."
See also:
Interval::operator|()

IntervalMatrix& intblas::inverse IntervalMatrix &  a  ) 
 

This function will invert a matrix based on the elements midpoints.

This function uses midpoint LU decomposition to solve for the inverse. For reasons why to use this function as opposed to inverse(), see the documentation for intervalLU().

Parameters:
a The matrix to invert, it must be a square matrix.
Returns:
The inverse of a, based on its midpoints.
Exceptions:
INTERVAL_EXCEPTION code = 300, msg = "Matrix: dimension mismatch."
INTERVAL_EXCEPTION code = 303, msg = "Matrix: this operation is only valid on square matrices."
See also:
lu(), intervalLU()

Interval intblas::ipow const Interval &  x,
int  exp
 

Raises the interval x to the power exp.

This function is equivalent to x ^ exp.

Parameters:
x The interval to be raised.
exp The power to raise the interval to.
Returns:
$x^{exp}$
See also:
Interval::operator^()
Exceptions:
INTERVAL_EXCEPTION code = 8, msg = "Interval: Negative power of a zero containing interval, result is undefined."

Interval intblas::ipow const Interval &  x,
const Interval &  y
 

This operator raises an interval to the power of y.

Note:
This interval must be positive in order to perform this operation.
Parameters:
x The base number to be raised.
y The exponent to use.
Returns:
This interval raised to the power of y.
Exceptions:
INTERVAL_EXCEPTION code = 2, msg = "Interval: Lower bound for exp() would underflow."
INTERVAL_EXCEPTION code = 3, msg = "Interval: Lower bound for exp() would overflow."
INTERVAL_EXCEPTION code = 4, msg = "Interval: Upper bound for exp() would overflow."
INTERVAL_EXCEPTION code = 7, msg = "Interval: Argument encloses a zero in elementary function."
INTERVAL_EXCEPTION code = 14, msg = "Interval: Power function containing operands 0^0."
INTERVAL_EXCEPTION code = 15, msg = "Interval: Power function with operands of the form [0,pos]^[pos,pos]."
INTERVAL_EXCEPTION code = 16, msg = "Interval: Power function with operands of the form [neg,...]^[pos,pos]."
INTERVAL_EXCEPTION code = 200, msg = "The operation cannot be performed on an empty set."

bool intblas::isEmpty IntervalVector &  v  ) 
 

This function tells whether the vector contains an empty element.

Parameters:
v The vector to check.
Returns:
True, if at least one element in the vector is equal to cEMTPY.

bool intblas::isEmpty IntervalMatrix &  v  ) 
 

This method returns true if any element is the empty interval.

Returns:
True if any element is equal to cEMTPY.

bool intblas::isEmpty const Interval &  v  ) 
 

This function returns true if the interval is empty.

Parameters:
v The interval to test.
Returns:
True if v is equivalent to cEMPTY.

Interval intblas::isin const Interval &  x  ) 
 

This function calculates the sine interval enclosure of an interval.

If the interval passed in is a point interval, the returned interval will be slightly below and above the actual sine value. Similarly, if the passed in interval is not a point interval, then the result is an interval that encloses the sine values of the lower and upper bound.

Parameters:
x The interval to calculate the sine of.
Returns:
The interval enclosure of the sine of x.

Interval intblas::isqrt const Interval &  x  ) 
 

This function calculates the square root of an interval.

Parameters:
x The interval to take the square root of.
Returns:
An interval guaranteed to contain the square root of x.
Exceptions:
INTERVAL_EXCEPTION code = 7, msg = "Interval: Argument encloses a zero in elementary function."
INTERVAL_EXCEPTION code = 100, msg = "Interval: Argument was determined to be to large or to small."

Interval intblas::itan const Interval &  x  ) 
 

This function calculates the tangent interval enclosure of an interval.

If the interval passed in is a point interval, the returned interval will be slightly below and above the actual tangent value. Similarly, if the passed in interval is not a point interval, then the result is an interval that encloses the tangent values of the lower and upper bound.

Note:
Note: This function calculates the tangent using the sine divided by cosine method.
Parameters:
x The interval to calculate the tangent of.
Returns:
The interval enclosure of the tangent of x.

IntervalVector& intblas::lowerBounds IntervalVector &  v  ) 
 

This function returns a vector whose elements are point intervals containing the lower bounds of a vector.

Parameters:
v The vector to get the bounds of.
Returns:
A vector of point intervals of the lower bounds of v.

IntervalMatrix& intblas::lowerBounds IntervalMatrix &  v  ) 
 

This function returns a matrix containing point intervals of the lower bound of each element.

Parameters:
v The matrix to get the lower bounds from.
Returns:
A matrix containing only the lower bounds.

void intblas::lu IntervalMatrix &  a,
IntervalMatrix &  lu,
int *  p
 

This method calculates the LU decomposition of this matrix based on the elements' midpoint.

To aid in avoiding singularity and to speed up computation, only the midpoint of the constituent intervals is used. The LU matrix and an array that represents the P matrix is generated by this function. This function is the first step to solving a system of equations. To get the actual answer call solveLU() next.

Parameters:
a The matrix to find the LU decomposition of.
lu Where to store the generated LU matrix.
p Where to store the permutation array, this array must be a.m_rows long.
Exceptions:
INTERVAL_EXCEPTION code = 303, msg = "Matrix: this operation is only valid on square matrices."
See also:
solveLU()

IntervalVector& intblas::midpoint IntervalVector &  v  ) 
 

This function returns a vector whose elements are point intervals containing the midpoints of a vector.

Parameters:
v The vector to get the midpoints from.
Returns:
A vector of point intervals of the midpoints of v.

IntervalMatrix& intblas::midpoint IntervalMatrix &  v  ) 
 

This function returns a matrix containing point intervals of the midpoint of each element.

Returns:
A matrix containing only the midpoints.

double intblas::midpoint const Interval &  a  ) 
 

This function calculates the midpoint of interval a.

The midpoint is found using the formula (lower + upper) / 2

Parameters:
a The interval to find the midpoint on.
Returns:
The midpoint of the interval.
Exceptions:
INTERVAL_EXCEPTION code = 200, msg = "The operation cannot be performed on an empty set."

IntervalMatrix& intblas::neg IntervalMatrix &  a  ) 
 

This function takes the negation of the matrix.

This function flips the sign of all the elements in the matrix.

Parameters:
a The matrix to negate.
Returns:
The negated matrix.
Exceptions:
INTERVAL_EXCEPTION code = 301, msg = "Matrix: operation cannot be performed on a 0x0 matrix.", when = a is an empty matrix.

double intblas::norm IntervalVector &  a,
NORMTYPE  p
 

The norm of a vector.

Parameters:
a The vector to find the norm of.
p Either NORMTYPE::NORM1, NORMTYPE::NORM2, NORMTYPE::NORMINF.
Returns:
The norm of a vector.
Exceptions:
INTERVAL_EXCEPTION code = 204, msg = "Vector: Invalid normal type."

double intblas::norm IntervalMatrix &  a,
NORMTYPE  n
 

This function calculates the norm of matrix a.

Parameters:
a The matrix to find the norm of.
n Either NORMTYPE::NORM1, NORMTYPE::NORMF, or NORMTYPE::NORMINF.
Returns:
The norm value for a.
Exceptions:
INTERVAL_EXCEPTION code = 302, msg = "Matrix: that norm is not implemented in this package."

IntervalVector& intblas::operator * const Interval &  scalar,
IntervalVector &  a
 

This operator multiplies a scalar to a vector.

Parameters:
scalar The value to multiply by a vector.
a The vector to multiply into the scalar.
Returns:
The product of a vector and a scalar.

IntervalVector& intblas::operator * IntervalVector &  v,
IntervalMatrix &  a
 

This operator multiplies this matrix by a vector.

Parameters:
v The vector to multiply this matrix by.
a The matrix to use in the multiplication.
Returns:
The product of this matrix and the vector.
Exceptions:
INTERVAL_EXCEPTION code = 300, msg = "Matrix: dimension mismatch.", when = m_cols != v.getDimension()

IntervalMatrix& intblas::operator * const Interval &  scalar,
IntervalMatrix &  a
 

This operator multiplies the scalar by matrix a.

Parameters:
scalar The value to multiply this matrix by.
a The matrix to multiply with.
Returns:
An intermediate matrix containing the product.

IntervalVector& intblas::operator+ const Interval &  scalar,
IntervalVector &  a
 

This operator adds a vector and scalar value.

Parameters:
a The vector to be added to.
scalar The value to add.
Returns:
A vector that has been added to scalar.
Exceptions:
INTERVAL_EXCEPTION code = 203 msg = "Vector: dimension mismatch"

IntervalVector& intblas::operator- const Interval &  scalar,
IntervalVector &  a
 

This operator subtracts a scalar value from the vector.

Parameters:
scalar The value to subtract from this vector.
a The vector to be subtracted from.
Returns:
The difference.

IntervalMatrix& intblas::operator- const Interval &  scalar,
IntervalMatrix &  a
 

This operator subtracts a scalar value from a.

Parameters:
a The matrix to subtract the value from.
scalar The value subtract from this matrix.
Returns:
An intermediate result matrix containing the difference.

Interval intblas::operator- double  r,
const Interval &  b
 

This operator performs scalar subtraction with r.

This is calculated by promoting r to an interval then subtracting.

Parameters:
r The scalar to subtract from this interval.
b The interval to subtract from.
Returns:
The difference of this interval with the scalar r.
See also:
scalarAdd()

Interval intblas::operator/ double  r,
const Interval &  b
 

This operator divides a scalar by an interval.

Parameters:
r The scalar to divide with.
b The interval to divide by.
Returns:
The quotient of r and b.

ostream& intblas::operator<< ostream &  out,
const IntervalVector &  v
 

This operator is a convenience operator for outputing vectors.

The outputed vector will have the following format.

  • The vector will begin with a '{' followed by the first element.
  • Every element of the vector will be displayed on a new line.
  • The last element of the vector will by followed by a '}' and a new line.
    Parameters:
    out The output stream to write to.
    v The vector to output.
    Returns:
    A reference to out.

ostream& intblas::operator<< ostream &  out,
const IntervalMatrix &  mat
 

This is a convenience operator for outputing the matrix as a string.

The format used to output the matris is as follows.

  • Each row of the matrix is surrounded by '|'
  • One row per line.
  • The elements of the row are seperated by spaces.
  • The elements are output using the Interval class's << operator.
  • There is a new line outputed after the last row.
    Parameters:
    out The output stream to write to.
    mat The matrix to write.
    Returns:
    A reference to out.

ostream& intblas::operator<< ostream &  out,
Interval const &  a
 

This is a convenience operator for outputting an interval into an output stream.

The format used for the output is simply [lowerbound, upperbound]

Parameters:
out The stream to use.
a The interval to output.
Returns:
A reference to out.

ostream & intblas::operator<< ostream &  out,
const INTERVAL_EXCEPTION &  ie
 

This is a convenience operator for outputting an the error message.

The format used for the output is: INTERVAL EXCEPTION(000) --> XXXX Where, 000 is the code, and XXXX is the exceptions message.

Parameters:
out The stream to write to.
ie The exception to output.
Returns:
A reference to out.

istream& intblas::operator>> istream &  in,
IntervalVector &  v
 

This operator reads a vector from the stream.

If the read vector is of a different dimension than v, then v is resized to the read vector's dimension. The read vector must be formated as follows:

  • The vector must begin with a '{'.
  • The elements of the vector can be separated with a ';', a ',' or just white space.
  • The vector must end with a '}'.
    Parameters:
    in The input stream to read from.
    v The vector to place the result into.
    Returns:
    A reference to in.
    Exceptions:
    INTERVAL_EXCEPTION code = 520, msg = "IntervalVector I/O: Could not read a vector from the stream"
    See also:
    operator>>(istream& in, Interval& i)

istream& intblas::operator>> istream &  in,
IntervalMatrix &  m
 

This operator reads a matrix from an input stream The matrix must be formated as folows:

  • The matrix must begin and end with a '|' character
  • The elements can be seperated by spaces or commas.

  • The rows can be termiated with either a ';' or a '|'.
  • If a '|' is used as a row terminator then a matching '|' must be the next non-white space character. If the dimensions of the read matrix is different than m, then m is resized to the read matrix's dimensions.
    Parameters:
    in The input stream to read from.
    m The matrix to place the result into.
    Returns:
    A reference to in.
    Exceptions:
    INTERVAL_EXCEPTION code = 530, msg = "IntervalMatrix I/O: Could not read a matrix from the stream"
    INTERVAL_EXCEPTION code = 531, msg = "IntervalMatrix I/O: Dimension mismatch on input, stoped reading." when = A row is read whose dimension is different than the first read row.
    See also:
    operator>>(istream& in, Interval& i)

istream& intblas::operator>> istream &  in,
Interval &  i
 

This operator reads an interval from the stream.

The read interval must have the following format,

  • The interval must begin with a '['.
  • The bounds can be serpated with a ',' or just white space.
  • The interval must end with a ']'.
  • This operator will also read an integer or decimal number and cast it into an interval.
    Parameters:
    in The input stream to read from.
    i The interval to place the result into.
    Returns:
    A reference to in.
    Exceptions:
    INTERVAL_EXCEPTION code = 510, msg = "Interval I/O: Could not read a vector from the stream."
    INTERVAL_EXCEPTION code = 510, msg = "Interval I/O: Found another character than ']' when looking for interval closure."

IntervalVector& intblas::permute IntervalVector &  x,
int  p[]
 

This function moves the elements of x to the new addresses specified in p.

Parameters:
x The vector to permute.
p[] The new addresses of the elements corresponding to each index.
Returns:
The permutated vector.

IntervalMatrix& intblas::permute IntervalMatrix &  a,
int  p[]
 

This function moves rows from their original index to the index proveded in p.

Each element in p contains the new index for the row at that location. For example if p = [2,1,0] it would place a[0] at a[1] and a[1] at a[0]. This means that p must have the same number of elements as a has rows.

Parameters:
a The matrix to permute.
p[] The new indexes for a's rows.
Returns:
The matrix a with its rows rearranged.

IntervalMatrix& intblas::rankOneUpdate IntervalMatrix &  a,
IntervalVector &  x,
IntervalVector &  y,
const Interval &  alpha = IntervalMatrix::one,
const Interval &  beta = IntervalMatrix::one
 

This function performs a rank one update on matrix a.

This function performs the following formula.

\[ \alpha{\bf x}*{\bf y}^{T} + \beta{\bf A} \]

Parameters:
a This parameter coresponds to A in the formula.
x This parameter coresponds to x in the formula.
y This parameter coresponds to y in the formula.
alpha This parameter coresponds to $\alpha$ in the formula.
beta This parameter coresponds to $\beta$ in the formula.
Returns:
A matrix that has been updated.
Exceptions:
INTERVAL_EXCEPTION code = 300, msg = "Matrix: dimension mismatch."

IntervalVector& intblas::reciprocalScale IntervalVector &  x,
double  alpha
 

This funtion implements the reciprocal scale of an interval vector.

The reciprocalScale is defined as

\[ {\bf x} / \alpha \]

Parameters:
x The vector to scale.
alpha The value to scale by.
Returns:
The every element of x divided by alpha

void intblas::roundOut Interval &  x,
bool  lower = true,
bool  upper = true
 

This function is used to create an interval enclosure of the interval x.

This function allows directed roundings in a reasonably platform independent way. This function is called at the end of every elementary operation involving intervals.

Parameters:
x The interval to round out.
lower If true then the lower bound is rounded out.
upper If true then the upper bound is rounded out.

IntervalVector& intblas::scaledAccumulation IntervalVector &  x,
IntervalVector &  y,
double  alpha = 1.0,
double  beta = 1.0
 

This function performs a scaled vector accumulation.

This operation is defined by

\[ \alpha*{\bf x}+\beta*{\bf y} \]

Parameters:
x A vector to accumulate with.
y A vector to accumulate with.
alpha A scaling factor (default 1.0).
beta A scaling factor (default 1.0).
Returns:
The sum of the scaled vectors x and y.
Exceptions:
INTERVAL_EXCEPTION code = 203 msg = "Vector: dimension mismatch"

IntervalMatrix& intblas::scaledAccumulation IntervalMatrix &  a,
IntervalMatrix &  b,
const Interval &  alpha = IntervalMatrix::one,
const Interval &  beta = IntervalMatrix::one
 

This function is provided to efficiently calculate an accumulate and scale formula.

This function calculates the formula:

\[ \alpha*{\bf A} + \beta*{\bf B} \]

Parameters:
a The A matrix in the formula.
b The B matrix in the formula.
alpha The $\alpha$ in the formula.
beta The $\beta$ in the formula.
Returns:
The scaled accumulation.
Exceptions:
INTERVAL_EXCEPTION code = 300, msg = "Matrix: dimension mismatch."

IntervalVector& intblas::scaledCancelation IntervalVector &  x,
IntervalVector &  y,
double  alpha = 1.0,
double  beta = 1.0
 

This function cancels the addition of y to the vector x.

Scaled cancellation is calculated in the following way:

\[ \alpha{\bf x}\ominus\beta{\bf y} \]

Parameters:
x The sum.
y The addend to cancel.
alpha A scaling factor.
beta A scaling factor.
Returns:
The cancelation of y from x.
Exceptions:
INTERVAL_EXCEPTION code = 203 msg = "Vector: dimension mismatch"

Interval intblas::scaledDot IntervalVector &  a,
IntervalVector &  b,
const Interval &  r,
double  alpha = 1.0,
double  beta = 0.0
 

This function returns the dot product of a vector and and another.

The scaled vector is found using the following formula:

\[ \beta{\bf r}+\alpha{\bf a}^{T}{\bf y} \]

Parameters:
a The vector to find the dot product of.
b The vector to dot product with.
r A scalar to add to the result.
beta A scaling value
alpha A scaling value.
Returns:
The dot product of this vector and b.
See also:
scaledDot()
Exceptions:
INTERVAL_EXCEPTION code = 203, msg = "Vector: dimension mismatch."

IntervalMatrix& intblas::scaledMatrixMult IntervalMatrix &  a,
IntervalMatrix &  b,
IntervalMatrix &  c,
bool  a_transpose = false,
bool  b_transpose = false,
const Interval &  alpha = IntervalMatrix::one,
const Interval &  beta = IntervalMatrix::one
 

This function performs multiple scaled matrix multiplication formulas.

This function efficently calculates:

\[ \alpha{\bf A*B} + \beta{\bf C} \alpha{\bf A^{T}*B} + \beta{\bf C} \alpha{\bf A*B^{T}} + \beta{\bf C} \alpha{\bf A^{T}*B^{T}} + \beta{\bf C} \alpha{\bf B*A} + \beta{\bf C} \alpha{\bf B^{T}*A} + \beta{\bf C} \alpha{\bf B*A^{T}} + \beta{\bf C} \alpha{\bf B^{T}*A^{T}} + \beta{\bf C} \]

Parameters:
a The A in the formula.
b The B in the formula.
c The C in the formula.
a_transpose If true then a is transposed.
b_transpose If true then b is transposed.
alpha The $\alpha$ in the formula.
beta The $\beta$ in the formula.
Returns:
The product.

IntervalVector& intblas::scaledVectorMult IntervalMatrix &  a,
IntervalVector &  x,
IntervalVector &  y,
const Interval &  alpha = IntervalMatrix::one,
const Interval &  beta = IntervalMatrix::one,
bool  transpose_a = false
 

This function performs scaled vector multiplication.

As per the standard this function performs the following formula.

\[ \alpha{\bf A*x} + \beta{\bf y} \& \alpha{\bf A^{T}*x} + \beta{\bf y} \]

Parameters:
a This parameter corresponds to the A in the formula.
x This parameter corresponds to the x in the formula.
y This parameter corresponds to the y in the formula, further it contains the result.
alpha The $\alpha$ in the formula.
beta The $\beta$ in the formula.
transpose_a If true then matrix a is transposed
Returns:
The resulting vector.
Exceptions:
INTERVAL_EXCEPTION code = 300, msg = "Matrix: dimension mismatch."

IntervalVector& intblas::solveLU IntervalVector &  b,
IntervalMatrix &  lu,
int  p[]
 

This function solves a system of equations using an LU matrix.

This function solves the equation ${\bf A}*x = b$ . You need the LU matrix found by lu(). You will now need a vector that represents b. The LU matrix is permutated, however, b must match the row order of the original A.

Parameters:
b The b in the equation.
lu The LU matrix previously found by lu().
p The permutation array previously found by lu().
Returns:
The solution vector.
Exceptions:
INTERVAL_EXCEPTION code = 203, msg = "Vector: dimension mismatch"
INTERVAL_EXCEPTION code = 303, msg = "Matrix: dimension mismatch"
See also:
IntervalMatrix::lu()

void intblas::swap IntervalVector &  a,
IntervalVector &  b
 

This method swaps two vectors efficiently.

This method reassigns the pointers IntervalVector::a to each other. This is markedly more efficient than the elementwise copy that would occur if you used the assignment operator.

Note:
This function will swap the the vector irrespective of their dimensions. Hence, after swaping a will have b's dimension and visa versa.
Parameters:
a A vector to swap.
b A vector to swap.

void intblas::swap IntervalMatrix &  a,
IntervalMatrix &  b
 

This function efficiently swaps two matrices.

This method uses reassignes pointers, hence it runs in constant time.

Note:
a and b may be resized by this operation.
Parameters:
a The matrix to swap with b.
b The matrix to swap with a.

IntervalMatrix& intblas::transpose IntervalMatrix &  a  ) 
 

Transpose the matrix a.

Parameters:
a The matrix to transpose.
Returns:
An intermediate value that represent the transposition of a.

IntervalMatrix& intblas::triangularMult IntervalMatrix &  a,
IntervalMatrix &  t,
const Interval &  alpha = IntervalMatrix::one,
TRIMAT_TYPE  tt = LTR_TOP,
bool  side = false
 

This function efficently multiplies a matrix against a square triangular matrix of the same dimension.

This function performs the following calculations:

When tt = LTR_TOP and side = F : $T*A$
When tt = LTR_TOP and side = T : $A*T$
When tt = LTR_BOT and side = F : $T^{T}*A$
When tt = LTR_BOT and side = T : $A*T^{T}$
The same is true for RTL matrices.

Parameters:
a The matrix to multiply.
t The triangular matrix to use.
alpha A scaling factor.
tt The type of the triangular matrix.
side The side the triangular matrix is on when multiplying, either False (left default) or True (right).
Returns:
The triangularly multiplied matrix.
Exceptions:
INTERVAL_EXCEPTION code = 300, msg = "Matrix: dimension mismatch."
INTERVAL_EXCEPTION code = 303, msg = "Matrix: the operation is only valid on square matrices."
INTERVAL_EXCEPTION code = 304, msg = "Matrix: the side parameter must be 1 (left) or 2 (right)."

IntervalVector& intblas::upperBounds IntervalVector &  v  ) 
 

This function returns a vector whose elements are point intervals containing the upper bounds of a vector.

Parameters:
v The vector to get the bounds of.
Returns:
A vector of point intervals of the upper bounds of v.

IntervalMatrix& intblas::upperBounds IntervalMatrix &  v  ) 
 

This function returns a matrix containing point intervals of the upper bound of each element.

Returns:
A matrix containing only the upper bounds.

double intblas::width const Interval &  a  ) 
 

This function calculates the width of the interval a.

The width of an interval is calculated by a.upper - a.lower

Parameters:
a The interval on which to calculate the width.
Returns:
The width of interval a.
Exceptions:
INTERVAL_EXCEPTION code = 200, msg = "The operation cannot be performed on an empty set."

IntervalVector& intblas::widths IntervalVector &  v  ) 
 

This function returns a vector whose elements are point intervals containing the widths of a vector.

Parameters:
v The vector to get the widths from.
Returns:
A vector of point intervals of the widths of v.

IntervalMatrix& intblas::widths IntervalMatrix &  v  ) 
 

This function returns a matrix containing point intervals of the width of each element.

Parameters:
v The matrix to find the widths from.
Returns:
A matrix containing only the widths.


Variable Documentation

Interval intblas::cA
 

Interval enclosure of $\frac{1}{\pi}$ .

Interval intblas::cE
 

Interval eclosure for e.

Interval intblas::cE14
 

Interval eclosure for $e^{1/4}$ .

Interval intblas::cEIGHT
 

Interval eclosure for 8.0.

Interval intblas::cEIGHTH
 

Interval eclosure for 1 / 8.

Interval intblas::cELEVTH
 

Interval eclosure for 1 / 11.

Interval intblas::cESXTNT
 

Interval eclosure for $e^{1/16}$ .

Interval intblas::cFIFTH
 

Interval eclosure for 1 / 5.

Interval intblas::cFOUR
 

Interval eclosure for 4.0.

Interval intblas::cFOURTH
 

Interval eclosure for 1 / 4.

double intblas::cNEGINF
 

This value represents negative infinity.

This value is set in INIT_INTERVAL() see its documentation for a discussion on this value.

See also:
INIT_INTERVAL()

Interval intblas::cNINTH
 

Interval eclosure for 1 / 9.

Interval intblas::cOD10F
 

Interval eclosure for 1 / 10.

Interval intblas::cOD11F
 

Interval eclosure for 1 / 11.

Interval intblas::cOD12F
 

Interval eclosure for 1 / 12.

Interval intblas::cOD14F
 

Interval eclosure for 1 / 14.

Interval intblas::cOD2F
 

Interval eclosure for 1 / 2.

Interval intblas::cOD3F
 

Interval eclosure for 1 / 3.

Interval intblas::cOD4F
 

Interval eclosure for 1 / 4.

Interval intblas::cOD5F
 

Interval eclosure for 1 / 5.

Interval intblas::cOD6F
 

Interval eclosure for 1 / 6.

Interval intblas::cOD7F
 

Interval eclosure for 1 / 7.

Interval intblas::cOD8F
 

Interval eclosure for 1 / 8.

Interval intblas::cOD9F
 

Interval eclosure for 1 / 9.

Interval intblas::cODSQRT3
 

Interval eclosure for $\frac{1}{\sqrt{3}}$ .

Interval intblas::cONE
 

Interval eclosure for 1.0.

Interval intblas::cPI
 

Interval eclosure for $\pi$ .

Interval intblas::cPI2
 

Interval eclosure for $\frac{\pi}{2}$ .

Interval intblas::cPI3
 

Interval eclosure for $\frac{\pi}{3}$ .

Interval intblas::cPI4
 

Interval eclosure for $\frac{\pi}{4}$ .

Interval intblas::cPI6
 

Interval eclosure for $\frac{\pi}{6}$ .

Interval intblas::cPI8
 

Interval eclosure for $\frac{\pi}{8}$ .

double intblas::cPOSINF
 

This value represents positive infinity.

This value is set in INIT_INTERVAL() see its documentation for a discussion on this value.

See also:
INIT_INTERVAL()

Interval intblas::cSEVENTH
 

Interval eclosure for 1 / 7.

Interval intblas::cSIXTH
 

Interval eclosure for 1 / 6.

Interval intblas::cSIXTNTH
 

Interval eclosure for 1 / 16.

Interval intblas::cSQRT10
 

Interval eclosure for $\sqrt{10}$ .

Interval intblas::cSQRT3
 

Interval eclosure for $\sqrt{3}$ .

Interval intblas::cTENTH
 

Interval eclosure for 1 / 10.

Interval intblas::cTHIRD
 

Interval eclosure for 1 / 3.

Interval intblas::cTHRTTH
 

Interval eclosure for 1 / 13.

Interval intblas::cTWLVTH
 

Interval eclosure for 1 / 12.

Interval intblas::cTWO
 

Interval eclosure for 2.0.

Interval intblas::cZERO
 

Interval eclosure for 0.0.


Generated on Wed Apr 26 16:12:04 2006 for IntBLAS by  doxygen 1.4.4