#ifndef INPUT_TRAITS_H
#define INPUT_TRAITS_H
template <class My_NT>
struct Input_traits {};
/*! int */
template <>
struct Input_traits<int> {
typedef int Input_int_type;
typedef float Input_float_type;
typedef int Input_rat_type;
};
/*! float */
template <>
struct Input_traits<float> {
typedef int Input_int_type;
typedef float Input_float_type;
typedef float Input_rat_type;
};
/*! double */
template <>
struct Input_traits<double> {
typedef int Input_int_type;
typedef double Input_float_type;
typedef double Input_rat_type;
};
#ifdef CGAL_MP_FLOAT_H
/*! CGAL::MP_Float */
template <>
struct Input_traits<CGAL::MP_Float> {
typedef CGAL::MP_Float Input_int_type;
typedef CGAL::MP_Float Input_float_type;
typedef CGAL::MP_Float Input_rat_type;
};
#endif
#ifdef __GMP_PLUSPLUS__
/*! ::mpz_class */
template <>
struct Input_traits<::mpz_class> {
typedef ::mpz_class Input_int_type;
typedef ::mpz_class Input_float_type;
typedef ::mpz_class Input_rat_type;
};
#endif
/*! CGAL::Gmpz */
template <>
struct Input_traits<CGAL::Gmpz> {
typedef CGAL::Gmpz Input_int_type;
typedef CGAL::Gmpz Input_float_type;
typedef CGAL::Gmpz Input_rat_type;
};
/*! leda_integer */
template <>
struct Input_traits<leda_integer> {
typedef leda_integer Input_int_type;
typedef leda_integer Input_float_type;
typedef leda_integer Input_rat_type;
};
#ifdef _CORE_BIGINT_H_
/*! CORE::BigInt */
template <>
struct Input_traits<CORE::BigInt> {
typedef CORE::BigInt Input_int_type;
typedef CORE::BigInt Input_float_type;
typedef CORE::BigInt Input_rat_type;
};
#endif
#ifdef CGAL_MP_FLOAT_H
/*! CGAL::Quotient<CGAL::MP_Float> */
template <>
struct Input_traits<CGAL::Quotient<CGAL::MP_Float> > {
typedef CGAL::MP_Float Input_int_type;
typedef CGAL::MP_Float Input_float_type;
typedef CGAL::Quotient<CGAL::MP_Float> Input_rat_type;
};
#endif
#ifdef __GMP_PLUSPLUS__
/*! CGAL::Quotient<::mpz_struct> */
template <>
struct Input_traits<CGAL::Quotient<::mpz_struct> > {
typedef ::mpz_struct Input_int_type;
typedef ::mpz_struct Input_float_type;
typedef ::mpz_struct Input_rat_type;
};
#endif
/*! CGAL::Quotient<CGAL::Gmpz> */
template <>
struct Input_traits<CGAL::Quotient<CGAL::Gmpz> > {
typedef CGAL::Gmpz Input_int_type;
typedef CGAL::Gmpz Input_float_type;
typedef CGAL::Gmpz Input_rat_type;
};
#ifdef __GMP_PLUSPLUS__
/*! ::mpq_struct */
template <>
struct Input_traits<::mpq_struct> {
typedef ::mpz_struct Input_int_type;
typedef ::mpz_struct Input_float_type;
typedef ::mpz_struct Input_rat_type;
};
#endif
/*! CGAL::Gmpq */
template <>
struct Input_traits<CGAL::Gmpq> {
typedef CGAL::Gmpz Input_int_type;
typedef CGAL::Gmpz Input_float_type;
typedef CGAL::Gmpz Input_rat_type;
};
/*! leda_rational */
template <>
struct Input_traits<leda_rational> {
typedef leda_integer Input_int_type;
typedef leda_integer Input_float_type;
typedef leda_integer Input_rat_type;
};
#ifdef CGAL_LAZY_EXACT_NT_H
/*! CGAL::Lazy_exact_nt<leda_rational> */
template <>
struct Input_traits<CGAL::Lazy_exact_nt<leda_rational> > {
typedef leda_integer Input_int_type;
typedef leda_integer Input_float_type;
typedef leda_integer Input_rat_type;
};
/*! CGAL::Lazy_exact_nt<leda_rational> */
template <>
struct Input_traits<CGAL::Lazy_exact_nt<CGAL::Quotient<CGAL::MP_Float> > > {
typedef CGAL::MP_Float Input_int_type;
typedef CGAL::MP_Float Input_float_type;
typedef CGAL::Quotient<CGAL::MP_Float> Input_rat_type;
typedef CGAL::Lazy_exact_nt<CGAL::Quotient<CGAL::MP_Float> > Output_type;
};
#endif
#endif
syntax highlighted by Code2HTML, v. 0.9.1