1 /* Definitions of specializations of std::numeric_limits objects for 2 multi-precision types. 3 Copyright (C) 2001-2010 Roberto Bagnara <bagnara@cs.unipr.it> 4 Copyright (C) 2010-2016 BUGSENG srl (http://bugseng.com) 5 6 This file is part of the Parma Polyhedra Library (PPL). 7 8 The PPL is free software; you can redistribute it and/or modify it 9 under the terms of the GNU General Public License as published by the 10 Free Software Foundation; either version 3 of the License, or (at your 11 option) any later version. 12 13 The PPL is distributed in the hope that it will be useful, but WITHOUT 14 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 15 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 16 for more details. 17 18 You should have received a copy of the GNU General Public License 19 along with this program; if not, write to the Free Software Foundation, 20 Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1307, USA. 21 22 For the most up-to-date information see the Parma Polyhedra Library 23 site: http://bugseng.com/products/ppl/ . */ 24 25 #include "ppl-config.h" 26 #include "mp_std_bits_defs.hh" 27 28 #if __GNU_MP_VERSION < 5 \ 29 || (__GNU_MP_VERSION == 5 && __GNU_MP_VERSION_MINOR < 1) 30 31 const bool std::numeric_limits<mpz_class>::is_specialized; 32 const int std::numeric_limits<mpz_class>::digits; 33 const int std::numeric_limits<mpz_class>::digits10; 34 const bool std::numeric_limits<mpz_class>::is_signed; 35 const bool std::numeric_limits<mpz_class>::is_integer; 36 const bool std::numeric_limits<mpz_class>::is_exact; 37 const int std::numeric_limits<mpz_class>::radix; 38 const int std::numeric_limits<mpz_class>::min_exponent; 39 const int std::numeric_limits<mpz_class>::min_exponent10; 40 const int std::numeric_limits<mpz_class>::max_exponent; 41 const int std::numeric_limits<mpz_class>::max_exponent10; 42 const bool std::numeric_limits<mpz_class>::has_infinity; 43 const bool std::numeric_limits<mpz_class>::has_quiet_NaN; 44 const bool std::numeric_limits<mpz_class>::has_signaling_NaN; 45 const std::float_denorm_style std::numeric_limits<mpz_class>::has_denorm; 46 const bool std::numeric_limits<mpz_class>::has_denorm_loss; 47 const bool std::numeric_limits<mpz_class>::is_iec559; 48 const bool std::numeric_limits<mpz_class>::is_bounded; 49 const bool std::numeric_limits<mpz_class>::is_modulo; 50 const bool std::numeric_limits<mpz_class>::traps; 51 const bool std::numeric_limits<mpz_class>::tinyness_before; 52 const std::float_round_style std::numeric_limits<mpz_class>::round_style; 53 54 const bool std::numeric_limits<mpq_class>::is_specialized; 55 const int std::numeric_limits<mpq_class>::digits; 56 const int std::numeric_limits<mpq_class>::digits10; 57 const bool std::numeric_limits<mpq_class>::is_signed; 58 const bool std::numeric_limits<mpq_class>::is_integer; 59 const bool std::numeric_limits<mpq_class>::is_exact; 60 const int std::numeric_limits<mpq_class>::radix; 61 const int std::numeric_limits<mpq_class>::min_exponent; 62 const int std::numeric_limits<mpq_class>::min_exponent10; 63 const int std::numeric_limits<mpq_class>::max_exponent; 64 const int std::numeric_limits<mpq_class>::max_exponent10; 65 const bool std::numeric_limits<mpq_class>::has_infinity; 66 const bool std::numeric_limits<mpq_class>::has_quiet_NaN; 67 const bool std::numeric_limits<mpq_class>::has_signaling_NaN; 68 const std::float_denorm_style std::numeric_limits<mpq_class>::has_denorm; 69 const bool std::numeric_limits<mpq_class>::has_denorm_loss; 70 const bool std::numeric_limits<mpq_class>::is_iec559; 71 const bool std::numeric_limits<mpq_class>::is_bounded; 72 const bool std::numeric_limits<mpq_class>::is_modulo; 73 const bool std::numeric_limits<mpq_class>::traps; 74 const bool std::numeric_limits<mpq_class>::tinyness_before; 75 const std::float_round_style std::numeric_limits<mpq_class>::round_style; 76 77 #endif // __GNU_MP_VERSION < 5 78 // || (__GNU_MP_VERSION == 5 && __GNU_MP_VERSION_MINOR < 1) 79