mirror of https://github.com/CGAL/cgal
Add Is_one
This commit is contained in:
parent
878d90b20e
commit
1348552194
|
|
@ -9,4 +9,5 @@ if(NOT CGAL_Core_FOUND)
|
|||
return()
|
||||
endif()
|
||||
|
||||
create_single_source_cgal_program("zero-one.cpp")
|
||||
create_single_source_cgal_program("delaunay.cpp")
|
||||
|
|
|
|||
|
|
@ -0,0 +1,32 @@
|
|||
|
||||
#include <CGAL/CORE_Expr.h>
|
||||
|
||||
typedef CORE::Expr Real;
|
||||
|
||||
int main()
|
||||
{
|
||||
Real r(3.14);
|
||||
|
||||
CGAL::is_zero(r);
|
||||
|
||||
CGAL::is_one(r);
|
||||
|
||||
r = CGAL::sqrt(r);
|
||||
|
||||
|
||||
CGAL::is_zero(r);
|
||||
|
||||
CGAL::is_one(r);
|
||||
|
||||
r = r * r;
|
||||
|
||||
CGAL::is_zero(r);
|
||||
|
||||
CGAL::is_one(r);
|
||||
|
||||
r = r - r;
|
||||
|
||||
CGAL::is_zero(r);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -123,6 +123,22 @@ template <> class Algebraic_structure_traits< CORE::Expr >
|
|||
}
|
||||
};
|
||||
|
||||
class Is_one
|
||||
: public CGAL::cpp98::unary_function< Type, bool > {
|
||||
public:
|
||||
bool operator()( const Type& x ) const {
|
||||
double inf, sup;
|
||||
x.doubleInterval(inf,sup);
|
||||
if((inf > 1) || (sup < 1)){
|
||||
return false;
|
||||
}
|
||||
if((inf == 1) && (sup == 1)){
|
||||
return true;
|
||||
}
|
||||
return x.cmp(Type::getOne());
|
||||
}
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
template <> class Real_embeddable_traits< CORE::Expr >
|
||||
|
|
|
|||
Loading…
Reference in New Issue