Digg StumbleUpon LinkedIn YouTube Flickr Facebook Twitter RSS Reset

Macro ‘fpclassify ( x )’ pour vérifier si une valeur est un nombre à virgule flottante normal ou l’un de plusieurs des catégories spéciales de valeurs


{filelink=13273}

/*
Valeurs de retour possible:
 
FP_INFINITE
FP_NAN
FP_NORMAL
FP_SUBNORMAL
FP_ZERO
 
*/
 
#include <stdio.h>
#include
<math.h>
 
//fonction pour trouver le minimum et le maximum
 
 double minimum( double x, double y )
{
  register int aclass = fpclassify( x );
  register int bclass = fpclassify( y );
 
  if ( aclass == FP_NAN || bclass == FP_NAN )
    return NAN;
 
  if ( aclass == FP_INFINITE )
    return ( signbit( a ) ? a : b );  
 
  if ( bclass == FP_INFINITE )
    return ( signbit( b ) ? b : a );
 
  return ( a < b ? a : b );
}

No comments yet.

Leave a Comment