// Copyright (c) 2002,2003 // Utrecht University (The Netherlands), // ETH Zurich (Switzerland), // INRIA Sophia-Antipolis (France), // Max-Planck-Institute Saarbruecken (Germany), // and Tel-Aviv University (Israel). All rights reserved. // // This file is part of CGAL (www.cgal.org) // // $URL: https://github.com/CGAL/cgal/blob/v5.1/Number_types/include/CGAL/gmpxx.h $ // $Id: gmpxx.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // // Author(s) : Sylvain Pion // This file gathers the necessary adaptors so that the following // C++ number types that come with GMP can be used by CGAL : // - mpz_class (see #include ) // - mpq_class (see #include ) // - mpf_class support is commented out until to_interval() is implemented. // It is probably not very useful with CGAL anyway. // Note that GMP++ use the expression template mechanism, which makes things // a little bit complicated in order to make square(x+y) work for example. // Reading gmpxx.h shows that ::__gmp_expr is the mp[zqf]_class proper, // while ::__gmp_expr is the others "expressions". #ifndef CGAL_GMPXX_H #define CGAL_GMPXX_H #include // needed by GMP 4.1.4 since misses it. #include #include #include #include #include namespace CGAL { template < typename T, typename U > class Algebraic_structure_traits< ::__gmp_expr > : public Algebraic_structure_traits< ::__gmp_expr >{}; template < typename T, typename U > class Real_embeddable_traits< ::__gmp_expr > : public Real_embeddable_traits< ::__gmp_expr >{}; } //namespace CGAL #include #endif // CGAL_GMPXX_H