From a7a180366686298fa7f7aae686152e5a759d3a89 Mon Sep 17 00:00:00 2001 From: Sebastian Rasmussen Date: Thu, 16 Feb 2012 01:08:05 +0100 Subject: Take care of boundary conditions in ps function evaluation. Floating point numbers are now clamped, division by zero is approximated by minimum or maximum value and NaN results in 1.0. --- fitz/fitz.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'fitz') diff --git a/fitz/fitz.h b/fitz/fitz.h index 594bc4e9..d80204f0 100644 --- a/fitz/fitz.h +++ b/fitz/fitz.h @@ -15,7 +15,7 @@ #include #include #include /* INT_MAX & co */ -#include /* FLT_EPSILON */ +#include /* FLT_EPSILON, FLT_MAX & co */ #include /* O_RDONLY & co */ #include @@ -46,6 +46,7 @@ #define MIN(a,b) ( (a) < (b) ? (a) : (b) ) #define MAX(a,b) ( (a) > (b) ? (a) : (b) ) #define CLAMP(x,a,b) ( (x) > (b) ? (b) : ( (x) < (a) ? (a) : (x) ) ) +#define DIV_BY_ZERO(a, b, min, max) (((a) < 0) ^ ((b) < 0) ? (min) : (max)) /* * Some differences in libc can be smoothed over @@ -62,6 +63,7 @@ int gettimeofday(struct timeval *tv, struct timezone *tz); #define snprintf _snprintf +#define isnan _isnan #else /* Unix or close enough */ -- cgit v1.2.3