Main Page   Packages   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Search  

C:/temp/src/j2k/Beta/Math/Number/NbVerify.hpp File Reference

Go to the source code of this file.

Functions

void verify (MathState s, TYPE temp)
MathState verify (TYPE n)
MathState getState (const char *s)


Function Documentation

MathState getState const char *    s [static]
 

Definition at line 73 of file NbVerify.hpp.

Referenced by Double::Double(), Float::Float(), and Integer::Integer().

00074   {
00075     if ( s == NULL ) return Zero; 
00076     if ( strlen(s) < 2 ) return Valid;  
00077 
00078     char* sUp = strupr( strdup( s ) );  
00079     char* sPosInf  = "POSITIVE INFINITE POSINFINITE +INFINITE"; 
00080     char* sNegInf  = "NEGATIVE INFINITE NEGINFINITE -INFINITE"; 
00081     char* sNaN = "NAN NaN"; 
00082     char* sFPError = "FPERROR FLOATING-POINT ERROR FLOAT ERROR";
00083 
00084     char* f1 = strstr( sPosInf,  sUp ); 
00085     char* f2 = strstr( sNegInf,  sUp ); 
00086     char* f3 = strstr( sNaN, sUp ); 
00087     char* f4 = strstr( sFPError, sUp ); 
00088 
00089     long n1 = (long)( f1 - sUp ); 
00090     long n2 = (long)( f2 - sUp ); 
00091     long n3 = (long)( f3 - sUp ); 
00092     long n4 = (long)( f4 - sUp ); 
00093 
00094 #ifdef __J2K__DEBUG 
00095        printf("Up=[%s](%d)\n", sUp, strlen(sUp) );  
00096        printf("f1=[%s](%d)\n", f1,  n1 ); 
00097        printf("f2=[%s](%d)\n", f2,  n2 ); 
00098        printf("f3=[%s](%d)\n", f3,  n3 ); 
00099        printf("f4=[%s](%d)\n", f4,  n4 ); 
00100 #endif
00101 
00102        if ( n1 > 0 ) return PosInf;  
00103        if ( n2 > 0 ) return NegInf;  
00104        if ( n3 > 0 ) return NaN; 
00105        if ( n4 > 0 ) return FPError; 
00106 
00107        return Valid;
00108   } 

MathState verify TYPE    n [static]
 

Definition at line 66 of file NbVerify.hpp.

00067   {
00068     if ( n > ZERO ) return Pos;  
00069     if ( n < ZERO ) return Neg;  
00070     return  Zero;
00071   } 

void verify MathState    s,
TYPE    temp
 

Definition at line 57 of file NbVerify.hpp.

00058   {
00059     if ( s != Valid ) return;
00060 
00061     if      ( temp > ZERO ) {  state = Pos;  }   
00062     else if ( temp < ZERO ) {  state = Neg;  }   
00063     else                    {  state = Zero; }
00064   } 


Generated on Sun Oct 14 18:46:59 2001 for Standard J2K Library by doxygen1.2.11.1 written by Dimitri van Heesch, © 1997-2001