blob: 8d2688600485b857ace1db2b86089a6744647152 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
/* epsilon-equal.c: define a error resist compare. */
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif /* Def: HAVE_CONFIG_H */
#include "types.h"
#include "epsilon-equal.h"
#include <math.h>
/* Numerical errors sometimes make a floating point number just slightly
larger or smaller than its TRUE value. When it matters, we need to
compare with some tolerance, REAL_EPSILON, defined in kbase.h. */
gboolean epsilon_equal(gfloat v1, gfloat v2)
{
if (v1 == v2 /* Usually they'll be exactly equal, anyway. */
|| fabs(v1 - v2) <= REAL_EPSILON)
return TRUE;
return FALSE;
}
|