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. |
1.2.11.1 written by Dimitri van Heesch,
© 1997-2001