40#ifndef GEOGRAM_NUMERICS_PCK
41#define GEOGRAM_NUMERICS_PCK
99 class GEOGRAM_API PredicateStats {
101 PredicateStats(
const char* name);
112 static void show_all_stats();
114 static PredicateStats* first_;
115 PredicateStats* next_;
117 std::atomic<Numeric::int64> invoke_count_;
118 std::atomic<Numeric::int64> exact_count_;
119 std::atomic<Numeric::int64> SOS_count_;
133 static void show_all_stats() {
134 Logger::out(
"Stats") <<
"Compiled without PCK_STAT (no stats)"
145#define SOS_result(x) [&]()->Sign { return Sign(x); }
170 class POINT,
class COMPARE,
171 class FUNC1,
class FUNC2,
class FUNC3,
class FUNC4
174 const POINT& p1, FUNC1 sos_p1,
175 const POINT& p2, FUNC2 sos_p2,
176 const POINT& p3, FUNC3 sos_p3,
177 const POINT& p4, FUNC4 sos_p4
179 static constexpr int N = 4;
181 const POINT* p[N] = {&p1, &p2, &p3, &p4};
184 [compare](
const POINT* A,
const POINT* B)->
bool{
185 return compare(*A,*B);
188 for(
int i=0; i<N; ++i) {
#define geo_assert_not_reached
Sets a non reachable point in the program.
Common include file, providing basic definitions. Should be included before anything else by all head...
Logs statistics for predicates. The statistics are displayed on exit if the command line flag "sys:st...
Generic logging mechanism.
Sign SOS(COMPARE compare, const POINT &p1, FUNC1 sos_p1, const POINT &p2, FUNC2 sos_p2, const POINT &p3, FUNC3 sos_p3, const POINT &p4, FUNC4 sos_p4)
template for writing symbolic perturbation in predicates
void show_stats()
Displays statistics about the current process.
Global Vorpaline namespace.
void geo_argused(const T &)
Suppresses compiler warnings about unused parameters.
Sign
Integer constants that represent the sign of a value.
Types and functions for numbers manipulation.