#include "globals.types.hh"
#include "meta_programming.hh"
#include "C_Integer.hh"
#include <cassert>
Go to the source code of this file.
Namespaces | |
namespace | Parma_Polyhedra_Library |
namespace | Parma_Polyhedra_Library::Checked |
Classes | |
struct | Parma_Polyhedra_Library::Checked::Safe_Conversion< T1, T2 > |
struct | Parma_Polyhedra_Library::Checked::Safe_Conversion< T, T > |
struct | Parma_Polyhedra_Library::Checked::Safe_Int_Comparison< T1, T2, Enable > |
struct | Parma_Polyhedra_Library::Checked::Safe_Int_Comparison< T1, T2, typename Enable_If<(C_Integer< T1 >::value &&C_Integer< T2 >::value)>::type > |
Defines | |
#define | safe_conversion(To, From) template <> struct Safe_Conversion<To, From> : public True { } |
#define | COPY_GMP |
Functions | |
Parma_Polyhedra_Library::Checked::safe_conversion (signed short, signed char) | |
Parma_Polyhedra_Library::Checked::safe_conversion (signed long long, signed char) | |
Parma_Polyhedra_Library::Checked::safe_conversion (signed long long, signed short) | |
Parma_Polyhedra_Library::Checked::safe_conversion (unsigned short, unsigned char) | |
Parma_Polyhedra_Library::Checked::safe_conversion (unsigned long, unsigned char) | |
Parma_Polyhedra_Library::Checked::safe_conversion (unsigned long long, unsigned char) | |
Parma_Polyhedra_Library::Checked::safe_conversion (double, float) | |
Parma_Polyhedra_Library::Checked::safe_conversion (long double, float) | |
Parma_Polyhedra_Library::Checked::safe_conversion (long double, double) | |
Parma_Polyhedra_Library::Checked::safe_conversion (mpz_class, signed char) | |
Parma_Polyhedra_Library::Checked::safe_conversion (mpz_class, unsigned char) | |
Parma_Polyhedra_Library::Checked::safe_conversion (mpq_class, signed char) | |
Parma_Polyhedra_Library::Checked::safe_conversion (mpq_class, unsigned char) | |
Parma_Polyhedra_Library::Checked::safe_conversion (mpq_class, float) | |
Parma_Polyhedra_Library::Checked::safe_conversion (mpq_class, double) | |
template<typename Policy, typename Type> | |
struct | Parma_Polyhedra_Library::Checked::FUNCTION_CLASS (construct)< Policy |
template<typename To_Policy, typename To> | |
struct | Parma_Polyhedra_Library::Checked::FUNCTION_CLASS (construct_special) |
template<typename To_Policy, typename From_Policy, typename To, typename From> | |
Result | Parma_Polyhedra_Library::Checked::assign_exact (To &to, const From &from, Rounding_Dir) |
template<typename To_Policy, typename From_Policy, typename Type> | |
Enable_If< Is_Same< To_Policy, From_Policy >::value, void > ::type | Parma_Polyhedra_Library::Checked::copy_generic (Type &to, const Type &from) |
template<typename To_Policy, typename From_Policy, typename To, typename From> | |
Result | Parma_Polyhedra_Library::Checked::abs_generic (To &to, const From &from, Rounding_Dir dir) |
Result | Parma_Polyhedra_Library::Checked::neg (Result r) |
Result | Parma_Polyhedra_Library::Checked::add (Result r1, Result r2) |
Result | Parma_Polyhedra_Library::Checked::sub (Result r1, Result r2) |
template<typename To_Policy, typename From1_Policy, typename From2_Policy, typename To, typename From> | |
void | Parma_Polyhedra_Library::Checked::gcd_exact_noabs (To &to, const From &x, const From &y) |
template<typename To_Policy, typename From1_Policy, typename From2_Policy, typename To, typename From1, typename From2> | |
Result | Parma_Polyhedra_Library::Checked::gcd_exact (To &to, const From1 &x, const From2 &y, Rounding_Dir dir) |
template<typename To1_Policy, typename To2_Policy, typename To3_Policy, typename From1_Policy, typename From2_Policy, typename To1, typename To2, typename To3, typename From1, typename From2> | |
Result | Parma_Polyhedra_Library::Checked::gcdext_exact (To1 &to, To2 &s, To3 &t, const From1 &x, const From2 &y, Rounding_Dir dir) |
template<typename To_Policy, typename From1_Policy, typename From2_Policy, typename To, typename From1, typename From2> | |
Result | Parma_Polyhedra_Library::Checked::lcm_gcd_exact (To &to, const From1 &x, const From2 &y, Rounding_Dir dir) |
template<typename Policy, typename Type> | |
Result | Parma_Polyhedra_Library::Checked::sgn_generic (const Type &x) |
template<typename T1, typename T2> | |
Enable_If<(Safe_Int_Comparison < T1, T2 >::value||Safe_Conversion < T1, T2 >::value||Safe_Conversion < T2, T1 >::value), bool > ::type | Parma_Polyhedra_Library::Checked::lt (const T1 &x, const T2 &y) |
template<typename T1, typename T2> | |
Enable_If<(Safe_Int_Comparison < T1, T2 >::value||Safe_Conversion < T1, T2 >::value||Safe_Conversion < T2, T1 >::value), bool > ::type | Parma_Polyhedra_Library::Checked::le (const T1 &x, const T2 &y) |
template<typename T1, typename T2> | |
Enable_If<(Safe_Int_Comparison < T1, T2 >::value||Safe_Conversion < T1, T2 >::value||Safe_Conversion < T2, T1 >::value), bool > ::type | Parma_Polyhedra_Library::Checked::eq (const T1 &x, const T2 &y) |
template<typename S, typename U> | |
Enable_If <(!Safe_Int_Comparison< S, U > ::value &&C_Integer< U > ::value &&C_Integer< S > ::is_signed), bool >::type | Parma_Polyhedra_Library::Checked::lt (const S &x, const U &y) |
template<typename U, typename S> | |
Enable_If <(!Safe_Int_Comparison< S, U > ::value &&C_Integer< U > ::value &&C_Integer< S > ::is_signed), bool >::type | Parma_Polyhedra_Library::Checked::lt (const U &x, const S &y) |
template<typename S, typename U> | |
Enable_If <(!Safe_Int_Comparison< S, U > ::value &&C_Integer< U > ::value &&C_Integer< S > ::is_signed), bool >::type | Parma_Polyhedra_Library::Checked::le (const S &x, const U &y) |
template<typename U, typename S> | |
Enable_If <(!Safe_Int_Comparison< S, U > ::value &&C_Integer< U > ::value &&C_Integer< S > ::is_signed), bool >::type | Parma_Polyhedra_Library::Checked::le (const U &x, const S &y) |
template<typename S, typename U> | |
Enable_If <(!Safe_Int_Comparison< S, U > ::value &&C_Integer< U > ::value &&C_Integer< S > ::is_signed), bool >::type | Parma_Polyhedra_Library::Checked::eq (const S &x, const U &y) |
template<typename U, typename S> | |
Enable_If <(!Safe_Int_Comparison< S, U > ::value &&C_Integer< U > ::value &&C_Integer< S > ::is_signed), bool >::type | Parma_Polyhedra_Library::Checked::eq (const U &x, const S &y) |
template<typename Policy1, typename Policy2, typename Type1, typename Type2> | |
bool | Parma_Polyhedra_Library::Checked::lt_p (const Type1 &x, const Type2 &y) |
template<typename Policy1, typename Policy2, typename Type1, typename Type2> | |
bool | Parma_Polyhedra_Library::Checked::le_p (const Type1 &x, const Type2 &y) |
template<typename Policy1, typename Policy2, typename Type1, typename Type2> | |
bool | Parma_Polyhedra_Library::Checked::eq_p (const Type1 &x, const Type2 &y) |
template<typename Policy1, typename Policy2, typename Type1, typename Type2> | |
Result | Parma_Polyhedra_Library::Checked::cmp_generic (const Type1 &x, const Type2 &y) |
template<typename Policy, typename Type> | |
Result | Parma_Polyhedra_Library::Checked::input_generic (Type &to, std::istream &is, Rounding_Dir dir) |
#define COPY_GMP |
#define safe_conversion | ( | To, | |||
From | ) | template <> struct Safe_Conversion<To, From> : public True { } |
Definition at line 39 of file checked.inlines.hh.