LocARNA-1.8.11
Public Member Functions | Static Public Attributes | Friends | List of all members
LocARNA::InftyInt Class Reference

#include <infty_int.hh>

Inheritance diagram for LocARNA::InftyInt:
Inheritance graph
[legend]
Collaboration diagram for LocARNA::InftyInt:
Collaboration graph
[legend]

Public Member Functions

 InftyInt ()
 Construct empty.
 
 InftyInt (const base_type &x)
 Construct from base type. More...
 
 InftyInt (const FiniteInt &x)
 Construct from finite int. More...
 
 InftyInt (const TaintedInftyInt &x)
 Construct from potentially tainted. More...
 
InftyIntoperator= (TaintedInftyInt &x)
 Assignment from potentially tainted infty int. More...
 
InftyIntoperator+= (const FiniteInt &x)
 
InftyIntoperator-= (const FiniteInt &x)
 
- Public Member Functions inherited from LocARNA::TaintedInftyInt
 TaintedInftyInt ()
 Construct empty.
 
 TaintedInftyInt (const base_type &x)
 Construct from base type. More...
 
bool is_neg_infty () const
 
bool is_pos_infty () const
 
bool is_finite () const
 
bool is_normal () const
 
base_type finite_value () const
 Convert finite value to base type. More...
 
TaintedInftyIntoperator= (const FiniteInt &x)
 Assignment. More...
 

Static Public Attributes

static const InftyInt neg_infty
 normalized negative infinity More...
 
static const InftyInt pos_infty
 normalized positive infinity More...
 

Friends

InftyInt operator+ (const InftyInt &x, const FiniteInt &y)
 
InftyInt operator- (const InftyInt &x, const FiniteInt &y)
 

Additional Inherited Members

- Public Types inherited from LocARNA::TaintedInftyInt
typedef long int base_type
 the base type
 
- Static Public Member Functions inherited from LocARNA::TaintedInftyInt
static base_type min_finite ()
 minimum finite value More...
 
static base_type max_finite ()
 maximum finite value More...
 
- Protected Attributes inherited from LocARNA::TaintedInftyInt
base_type val
 value
 
- Static Protected Attributes inherited from LocARNA::TaintedInftyInt
static const base_type min_finity = std::numeric_limits<TaintedInftyInt::base_type>::min()/5
 minimum finite value
 
static const base_type max_finity = -(std::numeric_limits<TaintedInftyInt::base_type>::min()/5)-1
 maximum finite value
 
static const base_type min_normal_neg_infty = std::numeric_limits<TaintedInftyInt::base_type>::min()/5 * 3
 minimum normal infinite value
 
static const base_type max_normal_pos_infty = -(std::numeric_limits<TaintedInftyInt::base_type>::min()/5 * 3) -1
 maximum normal infinite value
 

Detailed Description

Potentially infinite value where finite values are integer. The representation of infinite values is normalized. Due to the normalization it is safe to add or subtract a second normal potentially infinite integer (thereby generating an non-normalized potentially infinite integer).

Constructor & Destructor Documentation

LocARNA::InftyInt::InftyInt ( const base_type x)
inlineexplicit

Construct from base type.

Parameters
xvalue of base type
LocARNA::InftyInt::InftyInt ( const FiniteInt x)
inlineexplicit

Construct from finite int.

Parameters
xvalue
LocARNA::InftyInt::InftyInt ( const TaintedInftyInt x)
inline

Construct from potentially tainted.

Parameters
xvalue
Note
used for implicit type cast, untainting

Member Function Documentation

InftyInt & LocARNA::InftyInt::operator+= ( const FiniteInt x)
inline

Add in place

Parameters
xoperand
Returns
*this after operation
InftyInt & LocARNA::InftyInt::operator-= ( const FiniteInt x)
inline

Subtract in place

Parameters
xoperand
Returns
*this after operation
InftyInt& LocARNA::InftyInt::operator= ( TaintedInftyInt x)
inline

Assignment from potentially tainted infty int.

Parameters
xvalue
Returns
*this

Friends And Related Function Documentation

InftyInt operator+ ( const InftyInt x,
const FiniteInt y 
)
friend

Add

Parameters
xoperand 1
yoperand 2
Returns
x plus y
InftyInt operator- ( const InftyInt x,
const FiniteInt y 
)
friend

Subtract

Parameters
xoperand 1
yoperand 2
Returns
x minus y

Member Data Documentation

const InftyInt LocARNA::InftyInt::neg_infty
static
Initial value:
=
InftyInt(std::numeric_limits<TaintedInftyInt::base_type>::min()/5 * 2)

normalized negative infinity

const InftyInt LocARNA::InftyInt::pos_infty
static
Initial value:
=
InftyInt(-(std::numeric_limits<TaintedInftyInt::base_type>::min()/5 * 2))

normalized positive infinity


The documentation for this class was generated from the following files: