Out of range floating point number determination



~~~

>From the Maxima level, I would like to determine when evaluation of a 
floating point expression is out of range.  

For example: 

(%i1) fpn:1.00*10^308;
(%o1) 1.0*10^308 

The variable fpn is in the floating point model range.  

(%i2) nan:1.00*10^319;
(%o2) i.nf*10^0

but variable nan is not in the range. 

I had no luck with the predicate function numberp()

(%i3) numberp(fpn);
(%o3) true

(%i4) numberp(nan) ; 
(%o4) true            
                   
for my application numberp(nan) should be false.  

The following seem to work 

Is variable nan out of the floating point range?

(%i5) is(nan=nan/2);
(%o5) true

is variable fpn out of the floating point range?

(%i6) is(fpn=fpn/2);
(%o6) false

I had no luck finding   i.nf*10^0   in the documentation. 

q) Is there a better way of determining out of range floating point numbers.


ear 

~~~