\( \newcommand{\E}{\mathrm{E}} \) \( \newcommand{\A}{\mathrm{A}} \) \( \newcommand{\R}{\mathrm{R}} \) \( \newcommand{\N}{\mathrm{N}} \) \( \newcommand{\Q}{\mathrm{Q}} \) \( \newcommand{\Z}{\mathrm{Z}} \) \( \def\ccSum #1#2#3{ \sum_{#1}^{#2}{#3} } \def\ccProd #1#2#3{ \sum_{#1}^{#2}{#3} }\)
CGAL 4.14 - Number Types
CGAL::Number_type_checker< NT1, NT2, Comparator > Class Template Reference

#include <CGAL/Number_type_checker.h>

Definition

Number_type_checker is a number type whose instances store two numbers of types NT1 and NT2.

It forwards all arithmetic operations to them, and calls the binary predicate Comparator to check the equality of the instances after each modification, as well as for each comparison.

This is a debugging tool which is useful when dealing with number types.

Template Parameters
NT1,NT2must be a model of the same algebraic structure concept and they must be FromDoubleConstructible.
Comparatormust be a model of a binary predicate taking NT1 as first argument, and NT2 as second. The Comparator parameter has a default value which is a functor calling operator== between the two arguments.
Is Model Of:

IntegralDomainWithoutDivision (same as NT1)

RealEmbeddable

Operations

Some operations have a particular behavior documented here.

Related Functions

(Note that these are not member functions.)

std::ostream & operator<< (std::ostream &out, const Number_type_checker &c)
 writes c.n1() to the ostream out.
 
std::istream & operator>> (std::istream &in, Number_type_checker &c)
 reads an NT1 from in, then converts it to an NT2, so a conversion from NT1 to NT2 is required here.
 

Creation

 Number_type_checker ()
 introduces an uninitialized variable c.
 
 Number_type_checker (int i)
 introduces the integral value i.
 
 Number_type_checker (double d)
 introduces the floating point value d.
 
 Number_type_checker (const NT1 &n1, const NT2 &n2)
 introduces a variable storing the pair n1, n2.
 

Operations

const NT1 & n1 () const
 returns a const reference to the object of type NT1.
 
const NT2 & n2 () const
 returns a const reference to the object of type NT2.
 
NT1 & n1 ()
 returns a reference to the object of type NT1.
 
NT2 & n2 ()
 returns a reference to the object of type NT2.
 
bool is_valid () const
 calls the Comparator binary predicate on the two stored objects and returns its result.