1 /* Copyright (C) 2001-2010 Roberto Bagnara <bagnara@cs.unipr.it> 2 Copyright (C) 2010-2016 BUGSENG srl (http://bugseng.com) 3 4 This file is free software; as a special exception the author gives 5 unlimited permission to copy and/or distribute it, with or without 6 modifications, as long as this notice is preserved. 7 8 This program is distributed in the hope that it will be useful, but 9 WITHOUT ANY WARRANTY, to the extent permitted by law; without even the 10 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 11 PURPOSE. */ 12 13 #ifndef PPL_GMP_Integer_types_hh 14 #define PPL_GMP_Integer_types_hh 1 15 16 #include "Coefficient_traits_template.hh" 17 #include "mp_std_bits_defs.hh" 18 #include <gmpxx.h> 19 20 namespace Parma_Polyhedra_Library { 21 22 /*! \class Parma_Polyhedra_Library::GMP_Integer 23 \brief 24 Unbounded integers as provided by the GMP library. 25 26 \ingroup PPL_CXX_interface 27 GMP_Integer is an alias for the <CODE>mpz_class</CODE> type 28 defined in the C++ interface of the GMP library. 29 For more information, see <CODE>http://gmplib.org/</CODE> 30 */ 31 typedef mpz_class GMP_Integer; 32 33 #ifdef PPL_DOXYGEN_INCLUDE_IMPLEMENTATION_DETAILS 34 //! Coefficient traits specialization for unbounded integers. 35 /*! \ingroup PPL_CXX_interface */ 36 #endif // defined(PPL_DOXYGEN_INCLUDE_IMPLEMENTATION_DETAILS) 37 template <> 38 struct Coefficient_traits_template<GMP_Integer> { 39 //! The type used for references to const unbounded integers. 40 typedef const GMP_Integer& const_reference; 41 }; 42 43 } // namespace Parma_Polyhedra_Library 44 45 #endif // !defined(PPL_GMP_Integer_types_hh) 46