Browse Source

AlmostEqualUlps in double is needed

pre-master-46
dwarning 19 years ago
parent
commit
b22a7666c1
  1. 2
      src/include/missing_math.h
  2. 8
      src/misc/missing_math.c
  3. 2
      src/misc/missing_math.h

2
src/include/missing_math.h

@ -8,7 +8,7 @@ Copyright 1999 Emmanuel Rouat
#ifndef MISSING_MATH_H_INCLUDED
#define MISSING_MATH_H_INCLUDED
bool AlmostEqualUlps(float, float, int);
bool AlmostEqualUlps(double, double, long int);
#ifndef HAVE_ERFC
extern double erfc(double);

8
src/misc/missing_math.c

@ -13,15 +13,15 @@ $Id$
/* Initial AlmostEqualULPs version - fast and simple, but */
/* some limitations. */
bool AlmostEqualUlps(float A, float B, int maxUlps)
bool AlmostEqualUlps(double A, double B, long int maxUlps)
{
int intDiff;
assert(sizeof(float) == sizeof(int));
long int intDiff;
assert(sizeof(double) == sizeof(long int));
if (A == B)
return TRUE;
intDiff = abs(*(int*)&A - *(int*)&B);
intDiff = abs(*(long int*)&A - *(long int*)&B);
if (intDiff <= maxUlps)
return TRUE;

2
src/misc/missing_math.h

@ -6,7 +6,7 @@
#ifndef MISSING_MATH_H_INCLUDED
#define MISSING_MATH_H_INCLUDED
bool AlmostEqualUlps(float, float, int);
bool AlmostEqualUlps(double, double, long int);
#ifndef HAVE_ERFC
double erfc(double);

Loading…
Cancel
Save