18#ifndef MAGICKCORE_STATISTIC_PRIVATE_H
19#define MAGICKCORE_STATISTIC_PRIVATE_H
21#if defined(__cplusplus) || defined(c_plusplus)
25#define MagickEpsilonHuLog 1.0e-30
27static inline MagickBooleanType MagickSafeSignificantError(
const double error,
30 double threshold = (fuzz > 0.0 ? fuzz : MagickEpsilon)*(1.0+MagickEpsilon);
31 return(error > threshold ? MagickTrue : MagickFalse);
34static inline double MagickSafeLog10(
const double x)
36 if (x < MagickEpsilonHuLog)
37 return(log10(MagickEpsilonHuLog));
38 if (fabs(x-1.0) < MagickEpsilonHuLog)
43static inline double MagickSafeReciprocal(
const double x)
45 if ((x > -MagickEpsilon) && (x < MagickEpsilon))
46 return(1.0/MagickEpsilon);
50#if defined(__cplusplus) || defined(c_plusplus)