CAPD DynSys Library  5.2.0
capd::intervals Namespace Reference

Interval arithmetics. More...

Classes

class  Interval
 Definition of template class Interval. More...
 
class  IntervalError
 Instation of the IntervalError class is throwed by the Interval class on error. More...
 
class  IntervalIOTraits
 
class  IntervalIOTraits< double >
 
class  IntervalIOTraits< float >
 
class  IntervalIOTraits< MpReal >
 
class  IntervalTraits
 
class  IntervalTraits< double >
 
class  IntervalTraits< float >
 
class  IntervalTraits< long double >
 

Typedefs

typedef capd::intervals::Interval< double, capd::rounding::DoubleRoundingDoubleInterval
 
template<typename T >
using IComplex = capd::fields::Complex< T >
 Definition for backward compatibility. More...
 
typedef capd::multiPrec::MpReal MpReal
 
typedef capd::multiPrec::MpReal MpfrClass
 
typedef Interval< MpReal, MpRealMpInterval
 

Functions

template<typename T_Bound , typename T_Rnd >
Interval< T_Bound, T_Rnd > diam (const Interval< T_Bound, T_Rnd > &A_iVal)
 upper bound for a diameter of an interval More...
 
template<typename T_Bound , typename T_Rnd >
T_Bound width (const Interval< T_Bound, T_Rnd > &A_iVal)
 non-rigorous diameter of an interval More...
 
template<typename T_Bound , typename T_Rnd >
Interval< T_Bound, T_Rnd > mid (const Interval< T_Bound, T_Rnd > &A_iv)
 
template<typename T_Bound , typename T_Rnd >
bool intersection (Interval< T_Bound, T_Rnd > A_iv1, Interval< T_Bound, T_Rnd > A_iv2, Interval< T_Bound, T_Rnd > &A_rInter)
 Intersection of two intervals. More...
 
template<typename T_Bound , typename T_Rnd >
Interval< T_Bound, T_Rnd > intervalHull (const Interval< T_Bound, T_Rnd > &A_iv1, const Interval< T_Bound, T_Rnd > &A_iv2)
 returns an interval containing A_iv1 and A_iv2 More...
 
template<typename T_Bound , typename T_Rnd >
void split (Interval< T_Bound, T_Rnd > &A_iv, Interval< T_Bound, T_Rnd > &A_rMid, T_Bound &A_diam)
 On output: $ iv \subset Mid + [-diam , diam] $. More...
 
template<typename T_Bound , typename T_Rnd >
void split (Interval< T_Bound, T_Rnd > &A_rIv, T_Bound &A_diam)
 
template<typename T_Bound , typename T_Rnd >
bool isSingular (const Interval< T_Bound, T_Rnd > &A_x)
 
template<typename T_Bound , typename T_Rnd >
Interval< T_Bound, T_Rnd > power (const Interval< T_Bound, T_Rnd > &base, int exponent)
 a computation of base^{exponent} More...
 
template<typename T_Bound , typename T_Rnd >
Interval< T_Bound, T_Rnd > power (const Interval< T_Bound, T_Rnd > &a, const Interval< T_Bound, T_Rnd > &b)
 a computation of a^b More...
 
template<typename T_Bound , typename T_Rnd >
Interval< T_Bound, T_Rnd > sqrt (const Interval< T_Bound, T_Rnd > &x)
 square root of x More...
 
template<typename T_Bound , typename T_Rnd >
Interval< T_Bound, T_Rnd > sin (const Interval< T_Bound, T_Rnd > &x)
 sinus of x More...
 
template<typename T_Bound , typename T_Rnd >
Interval< T_Bound, T_Rnd > cos (const Interval< T_Bound, T_Rnd > &x)
 cosinus of x More...
 
template<typename T_Bound , typename T_Rnd >
Interval< T_Bound, T_Rnd > tan (const Interval< T_Bound, T_Rnd > &x)
 tangens of x More...
 
template<typename T_Bound , typename T_Rnd >
Interval< T_Bound, T_Rnd > cot (const Interval< T_Bound, T_Rnd > &x)
 cotangens of x More...
 
template<typename T_Bound , typename T_Rnd >
Interval< T_Bound, T_Rnd > atan (const Interval< T_Bound, T_Rnd > &x)
 arctangens of x More...
 
template<typename T_Bound , typename T_Rnd >
Interval< T_Bound, T_Rnd > asin (const Interval< T_Bound, T_Rnd > &x)
 
template<typename T_Bound , typename T_Rnd >
Interval< T_Bound, T_Rnd > acos (const Interval< T_Bound, T_Rnd > &x)
 
template<typename T_Bound , typename T_Rnd >
Interval< T_Bound, T_Rnd > sinh (const Interval< T_Bound, T_Rnd > &x)
 sinh More...
 
template<typename T_Bound , typename T_Rnd >
Interval< T_Bound, T_Rnd > cosh (const Interval< T_Bound, T_Rnd > &x)
 cosh More...
 
template<typename T_Bound , typename T_Rnd >
Interval< T_Bound, T_Rnd > tanh (const Interval< T_Bound, T_Rnd > &x)
 tanh More...
 
template<typename T_Bound , typename T_Rnd >
Interval< T_Bound, T_Rnd > coth (const Interval< T_Bound, T_Rnd > &x)
 coth More...
 
template<typename T_Bound , typename T_Rnd >
Interval< T_Bound, T_Rnd > exp (const Interval< T_Bound, T_Rnd > &x)
 returns exp(x) More...
 
template<typename T_Bound , typename T_Rnd >
Interval< T_Bound, T_Rnd > log (const Interval< T_Bound, T_Rnd > &x)
 computes natural logarithm of x, x>0 More...
 
template<typename T_Bound , typename T_Rnd >
Interval< T_Bound, T_Rnd > solveAffineInclusion (const Interval< T_Bound, T_Rnd > &a, const Interval< T_Bound, T_Rnd > &p, const Interval< T_Bound, T_Rnd > &c)
 solves inclusion $ a+[0,t]*p\subset c for t $ More...
 
template<typename T_Bound , typename T_Rnd >
Interval< T_Bound, T_Rnd > solveAffineInclusion (const Interval< T_Bound, T_Rnd > &a, const Interval< T_Bound, T_Rnd > &p, const Interval< T_Bound, T_Rnd > &c, int &dir)
 
template<typename T_Bound , typename T_Rnd >
Interval< T_Bound, T_Rnd > sqr (const Interval< T_Bound, T_Rnd > &x)
 
template<typename T_Bound , typename T_Rnd >
Interval< T_Bound, T_Rnd > nonnegativePart (const Interval< T_Bound, T_Rnd > &iv)
 returns nonnegative part of interval More...
 
template<typename T_Bound , typename T_Rnd >
Interval< T_Bound, T_Rnd > ball (const Interval< T_Bound, T_Rnd > &iv, const Interval< T_Bound, T_Rnd > &r)
 Ball with center iv and radius r. More...
 
template<typename T_Bound , typename T_Rnd >
Interval< T_Bound, T_Rnd > ball (const Interval< T_Bound, T_Rnd > &iv, const T_Bound &r)
 Ball with center iv and radius r. More...
 
template<typename T_Bound , typename T_Rnd >
intervals::Interval< T_Bound, T_Rnd > iabs (const intervals::Interval< T_Bound, T_Rnd > &A_inter)
 an absolute value More...
 
template<typename T_Bound , typename T_Rnd >
intervals::Interval< T_Bound, T_Rnd > imax (const intervals::Interval< T_Bound, T_Rnd > &A_iv1, const intervals::Interval< T_Bound, T_Rnd > &A_iv2)
 maximum More...
 
template<typename T_Bound , typename T_Rnd >
intervals::Interval< T_Bound, T_Rnd > imin (const intervals::Interval< T_Bound, T_Rnd > &A_iv1, const intervals::Interval< T_Bound, T_Rnd > &A_iv2)
 minimum More...
 
template<typename T_Bound , typename T_Rnd >
bool isinf (const Interval< T_Bound, T_Rnd > &r)
 returns true if any of endpoints is infinite More...
 
template<typename T_Bound , typename T_Rnd >
bool isnan (const capd::intervals::Interval< T_Bound, T_Rnd > &r)
 returns true if any of endpoints is a NaN More...
 
template<typename T_Bound , typename T_Rnd >
Interval< T_Bound, T_Rnd > copysign (const Interval< T_Bound, T_Rnd > &x, const Interval< T_Bound, T_Rnd > &y)
 returns interval containing copysign(a, b) for each a in x and b in y More...
 
template<typename T_Bound >
T_Bound positivePower (T_Bound value, unsigned exponent)
 a computation of value^{exponent} with current rounding settings (exponent has to be positive) More...
 
template<typename T_Bound , typename T_Rnd >
Interval< T_Bound, T_Rnd > scaledSin2 (const Interval< T_Bound, T_Rnd > &x)
 a rigorous computation of sin(x) for 0 <= x <= pi More...
 
template<typename T_Bound , typename T_Rnd >
Interval< T_Bound, T_Rnd > scaledSin1 (const Interval< T_Bound, T_Rnd > &x)
 the function computes sin(x) for $ x \subset [0,\infty] $ More...
 
template<typename T_Bound , typename T_Rnd >
Interval< T_Bound, T_Rnd > scaledAtan2 (const Interval< T_Bound, T_Rnd > &x)
 a rigorous computation of atan(x) for 0 <= x <= sqrt(2)-1 More...
 
template<typename T_Bound , typename T_Rnd >
Interval< T_Bound, T_Rnd > scaledAtan1 (const Interval< T_Bound, T_Rnd > &x)
 a rigorous computation of atan(x) for 0 <= x More...
 
template<typename T_Bound , typename T_Rnd >
Interval< T_Bound, T_Rnd > scaledAsin1 (const Interval< T_Bound, T_Rnd > &x)
 A rigorous computation of asin(x) far from -1 and 1 i.e. for -0.7 <= x <= 0.7. More...
 
template<typename T_Bound , typename T_Rnd >
Interval< T_Bound, T_Rnd > scaledAsin2 (const Interval< T_Bound, T_Rnd > &x)
 A rigorous computation of asin(x) for 0.7 < x <=1. More...
 
template<typename T_Bound , typename T_Rnd >
Interval< T_Bound, T_Rnd > pointAsin (const Interval< T_Bound, T_Rnd > &x)
 
template<typename T_Bound , typename T_Rnd >
Interval< T_Bound, T_Rnd > scaledAcos (const Interval< T_Bound, T_Rnd > &x)
 A rigorous computation of acos(x) for point intervals. More...
 
template<typename T_Bound >
T_Bound scaledExp (T_Bound x, int expTaylorOrder)
 returns exp(x) for x in [0,1] with actual rounding More...
 
template<typename T_Bound >
T_Bound scaledLogUp (const T_Bound &x, int logTaylorOrder)
 computes upper bound for log(1+x) for $ x \in [0,1/2] $ More...
 
template<typename T_Bound >
T_Bound scaledLogDown (const T_Bound &x, int logTaylorOrder)
 computes lower bound for log(1+x) for $ x \in [0,1/2] $ More...
 
template<typename T_Bound , typename T_Rnd >
__INLINE__ Interval< T_Bound, T_Rnd > operator+ (const Interval< T_Bound, T_Rnd > &A_iv1, const Interval< T_Bound, T_Rnd > &A_iv2)
 
template<typename T_Bound , typename T_Rnd >
__INLINE__ Interval< T_Bound, T_Rnd > operator- (const Interval< T_Bound, T_Rnd > &A_iv1, const Interval< T_Bound, T_Rnd > &A_iv2)
 
template<typename T_Bound , typename T_Rnd >
__INLINE__ Interval< T_Bound, T_Rnd > operator* (const Interval< T_Bound, T_Rnd > &A_iv1, const Interval< T_Bound, T_Rnd > &A_iv2)
 
template<typename T_Bound , typename T_Rnd >
__INLINE__ Interval< T_Bound, T_Rnd > operator/ (const Interval< T_Bound, T_Rnd > &A_iv1, const Interval< T_Bound, T_Rnd > &A_iv2)
 
template<typename T_Bound , typename T_Rnd >
__INLINE__ std::ostream & operator<< (std::ostream &s, const Interval< T_Bound, T_Rnd > &A_iv)
 
template<typename T_Bound , typename T_Rnd >
__INLINE__ std::istream & operator>> (std::istream &inp, Interval< T_Bound, T_Rnd > &i)
 
template<typename T_Bound , typename T_Rnd >
std::ostream & bitWrite (std::ostream &out, const Interval< T_Bound, T_Rnd > &iv)
 
template<typename T_Bound , typename T_Rnd >
std::istream & bitRead (std::istream &inp, Interval< T_Bound, T_Rnd > &iv)
 
template<typename T_Bound , typename T_Rnd >
std::ostream & hexWrite (std::ostream &out, const Interval< T_Bound, T_Rnd > &iv)
 
template<typename T_Bound , typename T_Rnd >
std::istream & hexRead (std::istream &inp, Interval< T_Bound, T_Rnd > &iv)
 
template<typename T_Bound , typename T_Rnd >
std::ostream & binWrite (std::ostream &out, const Interval< T_Bound, T_Rnd > &iv)
 
template<typename T_Bound , typename T_Rnd >
std::istream & binRead (std::istream &in, Interval< T_Bound, T_Rnd > &iv)
 
template<typename T_Bound , typename T_Rnd >
__INLINE__ Interval< T_Bound, T_Rnd > add (const Interval< T_Bound, T_Rnd > &A_iv, const T_Bound &A_x)
 
template<typename T_Bound , typename T_Rnd >
__INLINE__ Interval< T_Bound, T_Rnd > substract (const Interval< T_Bound, T_Rnd > &A_iv, const T_Bound &A_x)
 
template<typename T_Bound , typename T_Rnd >
__INLINE__ Interval< T_Bound, T_Rnd > substract (const T_Bound &A_x, const Interval< T_Bound, T_Rnd > &A_iv)
 
template<typename T_Bound , typename T_Rnd >
__INLINE__ Interval< T_Bound, T_Rnd > multiply (const Interval< T_Bound, T_Rnd > &A_iv, const T_Bound &A_x)
 
template<typename T_Bound , typename T_Rnd >
__INLINE__ Interval< T_Bound, T_Rnd > divide (const Interval< T_Bound, T_Rnd > &A_iv, const T_Bound &A_x)
 
template<typename T_Bound , typename T_Rnd >
__INLINE__ Interval< T_Bound, T_Rnd > divide (const T_Bound &A_x, const Interval< T_Bound, T_Rnd > &A_iv)
 
template<class T >
void ignore_unused (T &)
 Function for a debugging purposes. Function checkInterval helps to get rid of many "ifdef's". If DEBUGGING options is set it checks if ends of the interval are in the right order. Otherwise it does nothing. More...
 
template<typename T_Bound >
void checkInterval (const char *A_msg, const T_Bound &A_left, const T_Bound &A_right)
 
void testNaN (const MpInterval &x)
 
template<>
MpInterval sin (const MpInterval &x)
 
template<>
MpInterval cos (const MpInterval &x)
 
template<>
MpInterval tan (const MpInterval &x)
 
template<>
MpInterval log (const MpInterval &x)
 
template<>
MpInterval exp (const MpInterval &x)
 
template<>
MpInterval sqrt (const MpInterval &z)
 
template<>
MpInterval power (const MpInterval &a, const MpInterval &b)
 
template<>
MpInterval power (const MpInterval &value, int exponent)
 
Interval< MpReal >::BoundType quadrant (const Interval< MpReal >::BoundType &x)
 
int modulo4 (MpReal x)
 
template double width< double, DoubleRounding > (const DoubleInterval &)
 
template DoubleInterval diam< double, DoubleRounding > (const DoubleInterval &)
 
template bool intersection< double, DoubleRounding > (DoubleInterval A_iv1, DoubleInterval A_iv2, DoubleInterval &A_rIntersection)
 
template DoubleInterval intervalHull< double, DoubleRounding > (const DoubleInterval &A_iv1, const DoubleInterval &A_iv2)
 
template void split< double, DoubleRounding > (DoubleInterval &A_iv, DoubleInterval &A_rMid, double &A_diam)
 
template DoubleInterval power< double, DoubleRounding > (const DoubleInterval &x, int n)
 
template DoubleInterval power< double, DoubleRounding > (const DoubleInterval &a, const DoubleInterval &b)
 
template DoubleInterval sqrt< double, DoubleRounding > (const DoubleInterval &x)
 
template DoubleInterval sin< double, DoubleRounding > (const DoubleInterval &x)
 
template DoubleInterval cos< double, DoubleRounding > (const DoubleInterval &x)
 
template DoubleInterval tan< double, DoubleRounding > (const DoubleInterval &x)
 
template DoubleInterval cot< double, DoubleRounding > (const DoubleInterval &x)
 
template DoubleInterval atan< double, DoubleRounding > (const DoubleInterval &x)
 
template DoubleInterval asin< double, DoubleRounding > (const DoubleInterval &x)
 
template DoubleInterval acos< double, DoubleRounding > (const DoubleInterval &x)
 
template DoubleInterval sinh< double, DoubleRounding > (const DoubleInterval &x)
 
template DoubleInterval cosh< double, DoubleRounding > (const DoubleInterval &x)
 
template DoubleInterval tanh< double, DoubleRounding > (const DoubleInterval &x)
 
template DoubleInterval coth< double, DoubleRounding > (const DoubleInterval &x)
 
template DoubleInterval exp< double, DoubleRounding > (const DoubleInterval &x)
 
template DoubleInterval log< double, DoubleRounding > (const DoubleInterval &x)
 
template DoubleInterval solveAffineInclusion< double, DoubleRounding > (const DoubleInterval &a, const DoubleInterval &p, const DoubleInterval &c)
 
template DoubleInterval solveAffineInclusion< double, DoubleRounding > (const DoubleInterval &a, const DoubleInterval &p, const DoubleInterval &c, int &dir)
 
MpInterval::BoundType quadrant (const MpInterval::BoundType &x)
 returns the integer part of the division of x by Pi/2 the result is exact More...
 

Detailed Description

Interval arithmetics.

Typedef Documentation

◆ DoubleInterval

◆ IComplex

template<typename T >
using capd::intervals::IComplex = typedef capd::fields::Complex<T>

Definition for backward compatibility.

◆ MpfrClass

◆ MpInterval

◆ MpReal

Function Documentation

◆ acos< double, DoubleRounding >()

◆ add()

template<typename T_Bound , typename T_Rnd >
__INLINE__ Interval< T_Bound, T_Rnd> capd::intervals::add ( const Interval< T_Bound, T_Rnd > &  A_iv,
const T_Bound &  A_x 
)

◆ asin< double, DoubleRounding >()

◆ atan< double, DoubleRounding >()

◆ binRead()

template<typename T_Bound , typename T_Rnd >
std::istream& capd::intervals::binRead ( std::istream &  in,
Interval< T_Bound, T_Rnd > &  iv 
)

◆ binWrite()

template<typename T_Bound , typename T_Rnd >
std::ostream& capd::intervals::binWrite ( std::ostream &  out,
const Interval< T_Bound, T_Rnd > &  iv 
)

◆ bitRead()

template<typename T_Bound , typename T_Rnd >
std::istream& capd::intervals::bitRead ( std::istream &  inp,
Interval< T_Bound, T_Rnd > &  iv 
)

◆ bitWrite()

template<typename T_Bound , typename T_Rnd >
std::ostream& capd::intervals::bitWrite ( std::ostream &  out,
const Interval< T_Bound, T_Rnd > &  iv 
)

◆ checkInterval()

template<typename T_Bound >
void capd::intervals::checkInterval ( const char *  A_msg,
const T_Bound &  A_left,
const T_Bound &  A_right 
)
inline

◆ cos< double, DoubleRounding >()

◆ cosh< double, DoubleRounding >()

◆ cot< double, DoubleRounding >()

◆ coth< double, DoubleRounding >()

◆ diam< double, DoubleRounding >()

◆ divide() [1/2]

template<typename T_Bound , typename T_Rnd >
__INLINE__ Interval< T_Bound, T_Rnd> capd::intervals::divide ( const Interval< T_Bound, T_Rnd > &  A_iv,
const T_Bound &  A_x 
)

◆ divide() [2/2]

template<typename T_Bound , typename T_Rnd >
__INLINE__ Interval< T_Bound, T_Rnd> capd::intervals::divide ( const T_Bound &  A_x,
const Interval< T_Bound, T_Rnd > &  A_iv 
)

◆ exp< double, DoubleRounding >()

◆ hexRead()

template<typename T_Bound , typename T_Rnd >
std::istream& capd::intervals::hexRead ( std::istream &  inp,
Interval< T_Bound, T_Rnd > &  iv 
)

◆ hexWrite()

template<typename T_Bound , typename T_Rnd >
std::ostream& capd::intervals::hexWrite ( std::ostream &  out,
const Interval< T_Bound, T_Rnd > &  iv 
)

◆ ignore_unused()

template<class T >
void capd::intervals::ignore_unused ( T &  )

Function for a debugging purposes. Function checkInterval helps to get rid of many "ifdef's". If DEBUGGING options is set it checks if ends of the interval are in the right order. Otherwise it does nothing.

Author
Tomasz Kapela
Date
11-01-2006

◆ intersection< double, DoubleRounding >()

template bool capd::intervals::intersection< double, DoubleRounding > ( DoubleInterval  A_iv1,
DoubleInterval  A_iv2,
DoubleInterval A_rIntersection 
)

◆ intervalHull< double, DoubleRounding >()

◆ log< double, DoubleRounding >()

◆ multiply()

template<typename T_Bound , typename T_Rnd >
__INLINE__ Interval< T_Bound, T_Rnd> capd::intervals::multiply ( const Interval< T_Bound, T_Rnd > &  A_iv,
const T_Bound &  A_x 
)

◆ operator*()

template<typename T_Bound , typename T_Rnd >
__INLINE__ Interval< T_Bound, T_Rnd> capd::intervals::operator* ( const Interval< T_Bound, T_Rnd > &  A_iv1,
const Interval< T_Bound, T_Rnd > &  A_iv2 
)

◆ operator+()

template<typename T_Bound , typename T_Rnd >
__INLINE__ Interval< T_Bound, T_Rnd> capd::intervals::operator+ ( const Interval< T_Bound, T_Rnd > &  A_iv1,
const Interval< T_Bound, T_Rnd > &  A_iv2 
)

◆ operator-()

template<typename T_Bound , typename T_Rnd >
__INLINE__ Interval< T_Bound, T_Rnd> capd::intervals::operator- ( const Interval< T_Bound, T_Rnd > &  A_iv1,
const Interval< T_Bound, T_Rnd > &  A_iv2 
)

◆ operator/()

template<typename T_Bound , typename T_Rnd >
__INLINE__ Interval< T_Bound, T_Rnd> capd::intervals::operator/ ( const Interval< T_Bound, T_Rnd > &  A_iv1,
const Interval< T_Bound, T_Rnd > &  A_iv2 
)

◆ operator<<()

template<typename T_Bound , typename T_Rnd >
__INLINE__ std::ostream& capd::intervals::operator<< ( std::ostream &  s,
const Interval< T_Bound, T_Rnd > &  A_iv 
)

◆ operator>>()

template<typename T_Bound , typename T_Rnd >
__INLINE__ std::istream& capd::intervals::operator>> ( std::istream &  inp,
Interval< T_Bound, T_Rnd > &  i 
)

◆ pointAsin()

template<typename T_Bound , typename T_Rnd >
Interval< T_Bound, T_Rnd> capd::intervals::pointAsin ( const Interval< T_Bound, T_Rnd > &  x)

◆ positivePower()

template<typename T_Bound >
T_Bound capd::intervals::positivePower ( T_Bound  value,
unsigned  exponent 
)

a computation of value^{exponent} with current rounding settings (exponent has to be positive)

◆ power()

template<>
MpInterval capd::intervals::power ( const MpInterval a,
const MpInterval b 
)
inline

◆ power< double, DoubleRounding >() [1/2]

◆ power< double, DoubleRounding >() [2/2]

◆ quadrant()

Interval<MpReal>::BoundType capd::intervals::quadrant ( const Interval< MpReal >::BoundType &  x)

◆ scaledAcos()

template<typename T_Bound , typename T_Rnd >
Interval< T_Bound, T_Rnd> capd::intervals::scaledAcos ( const Interval< T_Bound, T_Rnd > &  x)

A rigorous computation of acos(x) for point intervals.

Remarks
we expect x to be a point interval

◆ scaledAsin1()

template<typename T_Bound , typename T_Rnd >
Interval< T_Bound, T_Rnd> capd::intervals::scaledAsin1 ( const Interval< T_Bound, T_Rnd > &  x)
inline

A rigorous computation of asin(x) far from -1 and 1 i.e. for -0.7 <= x <= 0.7.

Remarks
we expect x to be a point interval

◆ scaledAsin2()

template<typename T_Bound , typename T_Rnd >
Interval< T_Bound, T_Rnd> capd::intervals::scaledAsin2 ( const Interval< T_Bound, T_Rnd > &  x)
inline

A rigorous computation of asin(x) for 0.7 < x <=1.

we use: asin(x) = pi/2 - atan(sqrt(1-x^2) / x)

Remarks
we expect x to be a point interval

◆ scaledAtan1()

template<typename T_Bound , typename T_Rnd >
Interval< T_Bound, T_Rnd> capd::intervals::scaledAtan1 ( const Interval< T_Bound, T_Rnd > &  x)

a rigorous computation of atan(x) for 0 <= x

Remarks
if x<0 , then we compute sin(x=0)
we expect x to be a point interval

◆ scaledAtan2()

template<typename T_Bound , typename T_Rnd >
Interval< T_Bound, T_Rnd> capd::intervals::scaledAtan2 ( const Interval< T_Bound, T_Rnd > &  x)

a rigorous computation of atan(x) for 0 <= x <= sqrt(2)-1

Remarks
if x<0 , then we compute sin(x=0)
we expect x to be a point interval

◆ scaledExp()

template<typename T_Bound >
T_Bound capd::intervals::scaledExp ( T_Bound  x,
int  expTaylorOrder 
)

returns exp(x) for x in [0,1] with actual rounding

Remarks
do not add taylor expansion errors to upper bounds.

◆ scaledLogDown()

template<typename T_Bound >
T_Bound capd::intervals::scaledLogDown ( const T_Bound &  x,
int  logTaylorOrder 
)

computes lower bound for log(1+x) for $ x \in [0,1/2] $

Remarks
the constant S_LogTaylorOrder must be even round down mode needs to be set

◆ scaledLogUp()

template<typename T_Bound >
T_Bound capd::intervals::scaledLogUp ( const T_Bound &  x,
int  logTaylorOrder 
)

computes upper bound for log(1+x) for $ x \in [0,1/2] $

Remarks
the constant S_LogTaylorOrder must be even round UP mode needs to be set

◆ scaledSin1()

template<typename T_Bound , typename T_Rnd >
Interval< T_Bound, T_Rnd> capd::intervals::scaledSin1 ( const Interval< T_Bound, T_Rnd > &  x)

the function computes sin(x) for $ x \subset [0,\infty] $

◆ scaledSin2()

template<typename T_Bound , typename T_Rnd >
Interval< T_Bound, T_Rnd> capd::intervals::scaledSin2 ( const Interval< T_Bound, T_Rnd > &  x)

a rigorous computation of sin(x) for 0 <= x <= pi

Remarks
if x<0 , then we compute sin(x=0)
we expect x to be a point interval

◆ sin< double, DoubleRounding >()

◆ sinh< double, DoubleRounding >()

◆ solveAffineInclusion< double, DoubleRounding >() [1/2]

◆ solveAffineInclusion< double, DoubleRounding >() [2/2]

◆ split< double, DoubleRounding >()

template void capd::intervals::split< double, DoubleRounding > ( DoubleInterval A_iv,
DoubleInterval A_rMid,
double A_diam 
)

◆ sqrt< double, DoubleRounding >()

◆ substract() [1/2]

template<typename T_Bound , typename T_Rnd >
__INLINE__ Interval< T_Bound, T_Rnd> capd::intervals::substract ( const Interval< T_Bound, T_Rnd > &  A_iv,
const T_Bound &  A_x 
)

◆ substract() [2/2]

template<typename T_Bound , typename T_Rnd >
__INLINE__ Interval< T_Bound, T_Rnd> capd::intervals::substract ( const T_Bound &  A_x,
const Interval< T_Bound, T_Rnd > &  A_iv 
)

◆ tan< double, DoubleRounding >()

◆ tanh< double, DoubleRounding >()

◆ testNaN()

void capd::intervals::testNaN ( const MpInterval x)
inline

◆ width< double, DoubleRounding >()