1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
|
// Copyright (c) 2006-2009 Max-Planck-Institute Saarbruecken (Germany).
// All rights reserved.
//
// This file is part of CGAL (www.cgal.org)
//
// $URL: https://github.com/CGAL/cgal/blob/v6.1/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/Bitstream_coefficient_kernel.h $
// $Id: include/CGAL/Algebraic_kernel_d/Bitstream_coefficient_kernel.h b26b07a1242 $
// SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial
//
//
// Author(s) : Michael Kerber <mkerber@mpi-inf.mpg.de>
//
// ==========================================================================
#ifndef CGAL_BITSTREAM_COEFFICIENT_KERNEL_H
#define CGAL_BITSTREAM_COEFFICIENT_KERNEL_H 1
#include <CGAL/Algebraic_structure_traits.h>
#include <CGAL/convert_to_bfi.h>
namespace CGAL {
namespace internal {
template <typename Coefficient_> struct Bitstream_coefficient_kernel {
typedef Coefficient_ Coefficient;
typedef typename
CGAL::Get_arithmetic_kernel<Coefficient_>::Arithmetic_kernel
Arithmetic_kernel;
typedef typename Arithmetic_kernel::Bigfloat_interval Bigfloat_interval;
typedef typename Arithmetic_kernel::Integer Integer;
typedef typename Arithmetic_kernel::Rational Bound;
typedef typename CGAL::Algebraic_structure_traits<Coefficient>
::Is_zero Is_zero;
Is_zero is_zero_object() const {
return Is_zero();
}
struct Convert_to_bfi : public CGAL::cpp98::unary_function
<Coefficient,Bigfloat_interval> {
Bigfloat_interval operator() (Coefficient c) const {
return CGAL::convert_to_bfi(c);
}
};
Convert_to_bfi convert_to_bfi_object() const {
return Convert_to_bfi();
}
}; // of class Bitstream_coefficient_kernel
} // namespace internal
} //namespace CGAL
#endif // CGAL_BITSTREAM_COEFFICIENT_KERNEL_H
|