checked.defs.hh File Reference

#include <iostream>
#include <gmpxx.h>
#include "Rounding_Dir.defs.hh"
#include "Numeric_Format.defs.hh"
#include "checked.inlines.hh"
#include "checked_int.inlines.hh"
#include "checked_float.inlines.hh"
#include "checked_mpz.inlines.hh"
#include "checked_mpq.inlines.hh"
#include "checked_ext.inlines.hh"

Include dependency graph for checked.defs.hh:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  Parma_Polyhedra_Library
namespace  Parma_Polyhedra_Library::Checked

Classes

struct  Parma_Polyhedra_Library::Checked::Check_Overflow_Policy
 A policy checking for overflows. More...
struct  Parma_Polyhedra_Library::Minus_Infinity
struct  Parma_Polyhedra_Library::Plus_Infinity
struct  Parma_Polyhedra_Library::Not_A_Number

Defines

#define PPL_checked_defs_hh   1
#define FUNCTION_CLASS(name)   name ## _function_struct
#define DECLARE_FUN1_0_0(name, ret_type, qual, type)
#define DECLARE_FUN1_0_1(name, ret_type, qual, type, after1)
#define DECLARE_FUN1_0_2(name, ret_type, qual, type, after1, after2)
#define DECLARE_FUN1_0_3(name, ret_type, qual, type, after1, after2, after3)
#define DECLARE_FUN1_1_1(name, ret_type, before1, qual, type, after1)
#define DECLARE_FUN1_1_2(name, ret_type, before1, qual, type, after1, after2)
#define DECLARE_FUN1_2_2(name, ret_type, before1, before2, qual, type, after1, after2)
#define DECLARE_FUN2_0_0(name, ret_type, qual1, type1, qual2, type2)
#define DECLARE_FUN2_0_1(name, ret_type, qual1, type1, qual2, type2, after1)
#define DECLARE_FUN2_0_2(name, ret_type, qual1, type1, qual2, type2, after1, after2)
#define DECLARE_FUN3_0_1(name, ret_type, qual1, type1, qual2, type2, qual3, type3, after1)
#define DECLARE_FUN5_0_1(name, ret_type,qual1, type1, qual2, type2, qual3, type3, qual4, type4, qual5, type5,after1)
#define SPECIALIZE_FUN1_0_0(name, suf, ret_type, qual, type)
#define SPECIALIZE_FUN1_0_1(name, suf, ret_type, qual, type, after1)
#define SPECIALIZE_FUN1_0_2(name, suf, ret_type, qual, type, after1, after2)
#define SPECIALIZE_FUN1_0_3(name, suf, ret_type, qual, type, after1, after2, after3)
#define SPECIALIZE_FUN1_1_1(name, suf, ret_type, before1, qual, type, after1)
#define SPECIALIZE_FUN1_1_2(name, suf, ret_type, before1, qual, type, after1, after2)
#define SPECIALIZE_FUN1_2_2(name, suf, ret_type, before1, before2, qual, type, after1, after2)
#define SPECIALIZE_FUN2_0_0(name, suf, ret_type, qual1, type1, qual2, type2)
#define SPECIALIZE_FUN2_0_1(name, suf, ret_type, qual1, type1, qual2, type2, after1)
#define SPECIALIZE_FUN2_0_2(name, suf, ret_type, qual1, type1, qual2, type2, after1, after2)
#define SPECIALIZE_FUN3_0_1(name, suf, ret_type, qual1, type1, qual2, type2, qual3, type3, after1)
#define SPECIALIZE_FUN5_0_1(name, suf, ret_type,qual1, type1, qual2, type2, qual3, type3, qual4, type4, qual5, type5, after1)
#define nonconst
#define SPECIALIZE_COPY(suf, Type)   SPECIALIZE_FUN2_0_0(copy, suf, void, nonconst, Type, const, Type)
#define SPECIALIZE_SGN(suf, From)   SPECIALIZE_FUN1_0_0(sgn, suf, Result, const, From)
#define SPECIALIZE_CMP(suf, Type1, Type2)   SPECIALIZE_FUN2_0_0(cmp, suf, Result, const, Type1, const, Type2)
#define SPECIALIZE_SET_SPECIAL(suf, Type)   SPECIALIZE_FUN1_0_1(set_special, suf, Result, nonconst, Type, Result)
#define SPECIALIZE_CLASSIFY(suf, Type)   SPECIALIZE_FUN1_0_3(classify, suf, Result, const, Type, bool, bool, bool)
#define SPECIALIZE_IS_NAN(suf, Type)   SPECIALIZE_FUN1_0_0(is_nan, suf, bool, const, Type)
#define SPECIALIZE_IS_MINF(suf, Type)   SPECIALIZE_FUN1_0_0(is_minf, suf, bool, const, Type)
#define SPECIALIZE_IS_PINF(suf, Type)   SPECIALIZE_FUN1_0_0(is_pinf, suf, bool, const, Type)
#define SPECIALIZE_IS_INT(suf, Type)   SPECIALIZE_FUN1_0_0(is_int, suf, bool, const, Type)
#define SPECIALIZE_CONSTRUCT(suf, To, From)   SPECIALIZE_FUN2_0_1(construct, suf, Result, nonconst, To, const, From, Rounding_Dir)
#define SPECIALIZE_ASSIGN(suf, To, From)   SPECIALIZE_FUN2_0_1(assign, suf, Result, nonconst, To, const, From, Rounding_Dir)
#define SPECIALIZE_NEG(suf, To, From)   SPECIALIZE_FUN2_0_1(neg, suf, Result, nonconst, To, const, From, Rounding_Dir)
#define SPECIALIZE_ABS(suf, To, From)   SPECIALIZE_FUN2_0_1(abs, suf, Result, nonconst, To, const, From, Rounding_Dir)
#define SPECIALIZE_SQRT(suf, To, From)   SPECIALIZE_FUN2_0_1(sqrt, suf, Result, nonconst, To, const, From, Rounding_Dir)
#define SPECIALIZE_ADD(suf, To, From1, From2)   SPECIALIZE_FUN3_0_1(add, suf, Result, nonconst, To, const, From1, const, From2, Rounding_Dir)
#define SPECIALIZE_SUB(suf, To, From1, From2)   SPECIALIZE_FUN3_0_1(sub, suf, Result, nonconst, To, const, From1, const, From2, Rounding_Dir)
#define SPECIALIZE_MUL(suf, To, From1, From2)   SPECIALIZE_FUN3_0_1(mul, suf, Result, nonconst, To, const, From1, const, From2, Rounding_Dir)
#define SPECIALIZE_DIV(suf, To, From1, From2)   SPECIALIZE_FUN3_0_1(div, suf, Result, nonconst, To, const, From1, const, From2, Rounding_Dir)
#define SPECIALIZE_REM(suf, To, From1, From2)   SPECIALIZE_FUN3_0_1(rem, suf, Result, nonconst, To, const, From1, const, From2, Rounding_Dir)
#define SPECIALIZE_MUL2EXP(suf, To, From)   SPECIALIZE_FUN2_0_2(mul2exp, suf, Result, nonconst, To, const, From, int, Rounding_Dir)
#define SPECIALIZE_DIV2EXP(suf, To, From)   SPECIALIZE_FUN2_0_2(div2exp, suf, Result, nonconst, To, const, From, int, Rounding_Dir)
#define SPECIALIZE_ADD_MUL(suf, To, From1, From2)   SPECIALIZE_FUN3_0_1(add_mul, suf, Result, nonconst, To, const, From1, const, From2, Rounding_Dir)
#define SPECIALIZE_SUB_MUL(suf, To, From1, From2)   SPECIALIZE_FUN3_0_1(sub_mul, suf, Result, nonconst, To, const, From1, const, From2, Rounding_Dir)
#define SPECIALIZE_GCD(suf, To, From1, From2)   SPECIALIZE_FUN3_0_1(gcd, suf, Result, nonconst, To, const, From1, const, From2, Rounding_Dir)
#define SPECIALIZE_GCDEXT(suf, To1, From1, From2, To2, To3)
#define SPECIALIZE_LCM(suf, To, From1, From2)   SPECIALIZE_FUN3_0_1(lcm, suf, Result, nonconst, To, const, From1, const, From2, Rounding_Dir)
#define SPECIALIZE_INPUT(suf, Type)   SPECIALIZE_FUN1_0_2(input, suf, Result, nonconst, Type, std::istream&, Rounding_Dir)
#define SPECIALIZE_OUTPUT(suf, Type)   SPECIALIZE_FUN1_1_2(output, suf, Result, std::ostream&, const, Type, const Numeric_Format&, Rounding_Dir)
#define CHECK_P(cond, check)   ((cond) ? (check) : (assert(!(check)), false))

Functions

 Parma_Polyhedra_Library::Checked::DECLARE_FUN5_0_1 (gcdext, Result, nonconst, To1, const, From1, const, From2, nonconst, To2, nonconst, To3, Rounding_Dir) template< typename Policy
To Result Parma_Polyhedra_Library::Checked::round (To &to, Result r, Rounding_Dir dir)
Result Parma_Polyhedra_Library::Checked::input_mpq (mpq_class &to, std::istream &is)


Define Documentation

#define CHECK_P ( cond,
check   )     ((cond) ? (check) : (assert(!(check)), false))

Definition at line 383 of file checked.defs.hh.

Referenced by Parma_Polyhedra_Library::Checked::abs_float(), Parma_Polyhedra_Library::Checked::add_float(), Parma_Polyhedra_Library::Checked::add_mul_float(), Parma_Polyhedra_Library::Checked::add_unsigned_int(), Parma_Polyhedra_Library::Checked::assign_float_float_exact(), Parma_Polyhedra_Library::Checked::assign_float_float_inexact(), Parma_Polyhedra_Library::Checked::assign_int_float(), Parma_Polyhedra_Library::Checked::assign_signed_int_signed_int(), Parma_Polyhedra_Library::Checked::assign_signed_int_unsigned_int(), Parma_Polyhedra_Library::Checked::assign_unsigned_int_mpz(), Parma_Polyhedra_Library::Checked::assign_unsigned_int_signed_int(), Parma_Polyhedra_Library::Checked::assign_unsigned_int_unsigned_int(), Parma_Polyhedra_Library::Checked::div_float(), Parma_Polyhedra_Library::Checked::div_mpq(), Parma_Polyhedra_Library::Checked::div_mpz(), Parma_Polyhedra_Library::Checked::div_signed_int(), Parma_Polyhedra_Library::Checked::div_unsigned_int(), Parma_Polyhedra_Library::Checked::mul_float(), Parma_Polyhedra_Library::Checked::neg_float(), Parma_Polyhedra_Library::Checked::neg_signed_int(), Parma_Polyhedra_Library::Checked::neg_unsigned_int(), Parma_Polyhedra_Library::Checked::rem_float(), Parma_Polyhedra_Library::Checked::rem_int(), Parma_Polyhedra_Library::Checked::rem_mpq(), Parma_Polyhedra_Library::Checked::rem_mpz(), Parma_Polyhedra_Library::Checked::sqrt_float(), Parma_Polyhedra_Library::Checked::sqrt_mpq(), Parma_Polyhedra_Library::Checked::sqrt_mpz(), Parma_Polyhedra_Library::Checked::sqrt_signed_int(), Parma_Polyhedra_Library::Checked::sub_float(), Parma_Polyhedra_Library::Checked::sub_mul_float(), and Parma_Polyhedra_Library::Checked::sub_unsigned_int().

#define DECLARE_FUN1_0_0 ( name,
ret_type,
qual,
type   ) 

Definition at line 62 of file checked.defs.hh.

#define DECLARE_FUN1_0_1 ( name,
ret_type,
qual,
type,
after1   ) 

Definition at line 70 of file checked.defs.hh.

#define DECLARE_FUN1_0_2 ( name,
ret_type,
qual,
type,
after1,
after2   ) 

Definition at line 78 of file checked.defs.hh.

#define DECLARE_FUN1_0_3 ( name,
ret_type,
qual,
type,
after1,
after2,
after3   ) 

Definition at line 86 of file checked.defs.hh.

#define DECLARE_FUN1_1_1 ( name,
ret_type,
before1,
qual,
type,
after1   ) 

Definition at line 94 of file checked.defs.hh.

#define DECLARE_FUN1_1_2 ( name,
ret_type,
before1,
qual,
type,
after1,
after2   ) 

Definition at line 102 of file checked.defs.hh.

#define DECLARE_FUN1_2_2 ( name,
ret_type,
before1,
before2,
qual,
type,
after1,
after2   ) 

Definition at line 110 of file checked.defs.hh.

#define DECLARE_FUN2_0_0 ( name,
ret_type,
qual1,
type1,
qual2,
type2   ) 

Definition at line 118 of file checked.defs.hh.

#define DECLARE_FUN2_0_1 ( name,
ret_type,
qual1,
type1,
qual2,
type2,
after1   ) 

Definition at line 126 of file checked.defs.hh.

#define DECLARE_FUN2_0_2 ( name,
ret_type,
qual1,
type1,
qual2,
type2,
after1,
after2   ) 

Definition at line 134 of file checked.defs.hh.

#define DECLARE_FUN3_0_1 ( name,
ret_type,
qual1,
type1,
qual2,
type2,
qual3,
type3,
after1   ) 

Definition at line 142 of file checked.defs.hh.

#define DECLARE_FUN5_0_1 ( name,
ret_type,
qual1,
type1,
qual2,
type2,
qual3,
type3,
qual4,
type4,
qual5,
type5,
after1   ) 

Definition at line 153 of file checked.defs.hh.

#define FUNCTION_CLASS ( name   )     name ## _function_struct

Definition at line 60 of file checked.defs.hh.

#define nonconst

Definition at line 269 of file checked.defs.hh.

#define PPL_checked_defs_hh   1

Definition at line 24 of file checked.defs.hh.

#define SPECIALIZE_ABS ( suf,
To,
From   )     SPECIALIZE_FUN2_0_1(abs, suf, Result, nonconst, To, const, From, Rounding_Dir)

Definition at line 295 of file checked.defs.hh.

#define SPECIALIZE_ADD ( suf,
To,
From1,
From2   )     SPECIALIZE_FUN3_0_1(add, suf, Result, nonconst, To, const, From1, const, From2, Rounding_Dir)

Definition at line 299 of file checked.defs.hh.

#define SPECIALIZE_ADD_MUL ( suf,
To,
From1,
From2   )     SPECIALIZE_FUN3_0_1(add_mul, suf, Result, nonconst, To, const, From1, const, From2, Rounding_Dir)

Definition at line 313 of file checked.defs.hh.

#define SPECIALIZE_ASSIGN ( suf,
To,
From   )     SPECIALIZE_FUN2_0_1(assign, suf, Result, nonconst, To, const, From, Rounding_Dir)

Definition at line 291 of file checked.defs.hh.

#define SPECIALIZE_CLASSIFY ( suf,
Type   )     SPECIALIZE_FUN1_0_3(classify, suf, Result, const, Type, bool, bool, bool)

Definition at line 279 of file checked.defs.hh.

#define SPECIALIZE_CMP ( suf,
Type1,
Type2   )     SPECIALIZE_FUN2_0_0(cmp, suf, Result, const, Type1, const, Type2)

Definition at line 275 of file checked.defs.hh.

#define SPECIALIZE_CONSTRUCT ( suf,
To,
From   )     SPECIALIZE_FUN2_0_1(construct, suf, Result, nonconst, To, const, From, Rounding_Dir)

Definition at line 289 of file checked.defs.hh.

#define SPECIALIZE_COPY ( suf,
Type   )     SPECIALIZE_FUN2_0_0(copy, suf, void, nonconst, Type, const, Type)

Definition at line 271 of file checked.defs.hh.

#define SPECIALIZE_DIV ( suf,
To,
From1,
From2   )     SPECIALIZE_FUN3_0_1(div, suf, Result, nonconst, To, const, From1, const, From2, Rounding_Dir)

Definition at line 305 of file checked.defs.hh.

#define SPECIALIZE_DIV2EXP ( suf,
To,
From   )     SPECIALIZE_FUN2_0_2(div2exp, suf, Result, nonconst, To, const, From, int, Rounding_Dir)

Definition at line 311 of file checked.defs.hh.

#define SPECIALIZE_FUN1_0_0 ( name,
suf,
ret_type,
qual,
type   ) 

Definition at line 168 of file checked.defs.hh.

#define SPECIALIZE_FUN1_0_1 ( name,
suf,
ret_type,
qual,
type,
after1   ) 

Definition at line 176 of file checked.defs.hh.

#define SPECIALIZE_FUN1_0_2 ( name,
suf,
ret_type,
qual,
type,
after1,
after2   ) 

Definition at line 184 of file checked.defs.hh.

#define SPECIALIZE_FUN1_0_3 ( name,
suf,
ret_type,
qual,
type,
after1,
after2,
after3   ) 

Definition at line 192 of file checked.defs.hh.

#define SPECIALIZE_FUN1_1_1 ( name,
suf,
ret_type,
before1,
qual,
type,
after1   ) 

Definition at line 200 of file checked.defs.hh.

#define SPECIALIZE_FUN1_1_2 ( name,
suf,
ret_type,
before1,
qual,
type,
after1,
after2   ) 

Definition at line 208 of file checked.defs.hh.

#define SPECIALIZE_FUN1_2_2 ( name,
suf,
ret_type,
before1,
before2,
qual,
type,
after1,
after2   ) 

Definition at line 216 of file checked.defs.hh.

#define SPECIALIZE_FUN2_0_0 ( name,
suf,
ret_type,
qual1,
type1,
qual2,
type2   ) 

Definition at line 224 of file checked.defs.hh.

#define SPECIALIZE_FUN2_0_1 ( name,
suf,
ret_type,
qual1,
type1,
qual2,
type2,
after1   ) 

Definition at line 232 of file checked.defs.hh.

#define SPECIALIZE_FUN2_0_2 ( name,
suf,
ret_type,
qual1,
type1,
qual2,
type2,
after1,
after2   ) 

Definition at line 240 of file checked.defs.hh.

#define SPECIALIZE_FUN3_0_1 ( name,
suf,
ret_type,
qual1,
type1,
qual2,
type2,
qual3,
type3,
after1   ) 

Definition at line 248 of file checked.defs.hh.

#define SPECIALIZE_FUN5_0_1 ( name,
suf,
ret_type,
qual1,
type1,
qual2,
type2,
qual3,
type3,
qual4,
type4,
qual5,
type5,
after1   ) 

Definition at line 258 of file checked.defs.hh.

#define SPECIALIZE_GCD ( suf,
To,
From1,
From2   )     SPECIALIZE_FUN3_0_1(gcd, suf, Result, nonconst, To, const, From1, const, From2, Rounding_Dir)

Definition at line 317 of file checked.defs.hh.

#define SPECIALIZE_GCDEXT ( suf,
To1,
From1,
From2,
To2,
To3   ) 

Value:

SPECIALIZE_FUN5_0_1(gcdext, suf, Result, nonconst, To1,         \
                      const, From1, const, From2, nonconst, To2, nonconst, To3, Rounding_Dir)

Definition at line 319 of file checked.defs.hh.

#define SPECIALIZE_INPUT ( suf,
Type   )     SPECIALIZE_FUN1_0_2(input, suf, Result, nonconst, Type, std::istream&, Rounding_Dir)

Definition at line 324 of file checked.defs.hh.

#define SPECIALIZE_IS_INT ( suf,
Type   )     SPECIALIZE_FUN1_0_0(is_int, suf, bool, const, Type)

Definition at line 287 of file checked.defs.hh.

#define SPECIALIZE_IS_MINF ( suf,
Type   )     SPECIALIZE_FUN1_0_0(is_minf, suf, bool, const, Type)

Definition at line 283 of file checked.defs.hh.

#define SPECIALIZE_IS_NAN ( suf,
Type   )     SPECIALIZE_FUN1_0_0(is_nan, suf, bool, const, Type)

Definition at line 281 of file checked.defs.hh.

#define SPECIALIZE_IS_PINF ( suf,
Type   )     SPECIALIZE_FUN1_0_0(is_pinf, suf, bool, const, Type)

Definition at line 285 of file checked.defs.hh.

#define SPECIALIZE_LCM ( suf,
To,
From1,
From2   )     SPECIALIZE_FUN3_0_1(lcm, suf, Result, nonconst, To, const, From1, const, From2, Rounding_Dir)

Definition at line 322 of file checked.defs.hh.

#define SPECIALIZE_MUL ( suf,
To,
From1,
From2   )     SPECIALIZE_FUN3_0_1(mul, suf, Result, nonconst, To, const, From1, const, From2, Rounding_Dir)

Definition at line 303 of file checked.defs.hh.

#define SPECIALIZE_MUL2EXP ( suf,
To,
From   )     SPECIALIZE_FUN2_0_2(mul2exp, suf, Result, nonconst, To, const, From, int, Rounding_Dir)

Definition at line 309 of file checked.defs.hh.

#define SPECIALIZE_NEG ( suf,
To,
From   )     SPECIALIZE_FUN2_0_1(neg, suf, Result, nonconst, To, const, From, Rounding_Dir)

Definition at line 293 of file checked.defs.hh.

#define SPECIALIZE_OUTPUT ( suf,
Type   )     SPECIALIZE_FUN1_1_2(output, suf, Result, std::ostream&, const, Type, const Numeric_Format&, Rounding_Dir)

Definition at line 326 of file checked.defs.hh.

#define SPECIALIZE_REM ( suf,
To,
From1,
From2   )     SPECIALIZE_FUN3_0_1(rem, suf, Result, nonconst, To, const, From1, const, From2, Rounding_Dir)

Definition at line 307 of file checked.defs.hh.

#define SPECIALIZE_SET_SPECIAL ( suf,
Type   )     SPECIALIZE_FUN1_0_1(set_special, suf, Result, nonconst, Type, Result)

Definition at line 277 of file checked.defs.hh.

#define SPECIALIZE_SGN ( suf,
From   )     SPECIALIZE_FUN1_0_0(sgn, suf, Result, const, From)

Definition at line 273 of file checked.defs.hh.

#define SPECIALIZE_SQRT ( suf,
To,
From   )     SPECIALIZE_FUN2_0_1(sqrt, suf, Result, nonconst, To, const, From, Rounding_Dir)

Definition at line 297 of file checked.defs.hh.

#define SPECIALIZE_SUB ( suf,
To,
From1,
From2   )     SPECIALIZE_FUN3_0_1(sub, suf, Result, nonconst, To, const, From1, const, From2, Rounding_Dir)

Definition at line 301 of file checked.defs.hh.

#define SPECIALIZE_SUB_MUL ( suf,
To,
From1,
From2   )     SPECIALIZE_FUN3_0_1(sub_mul, suf, Result, nonconst, To, const, From1, const, From2, Rounding_Dir)

Definition at line 315 of file checked.defs.hh.


Generated on Wed Jul 16 22:54:36 2008 for PPL by  doxygen 1.5.6