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

Author:


Download

/*
Valeurs de retour possible:

FP_INFINITE
FP_NAN
FP_NORMAL
FP_SUBNORMAL
FP_ZERO

*/

#include 
#include


//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 );
}

Leave a Reply

Your email address will not be published. Required fields are marked *