Go to the source code of this file.
Functions | |
void | verify (MathState s, TYPE temp) |
MathState | verify (TYPE n) |
MathState | getState (const char *s) |
|
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 } |
|
Definition at line 66 of file NbVerify.hpp. |
|
Definition at line 57 of file NbVerify.hpp. |