fpclassify3tcl
Floating point number classification of tcl values
Usage
package require tcl 9.0
fpclassify value
Overview
The fpclassify command takes a floating point number, value, and returns one of the following strings that describe it:
zero-
value is a floating point zero.
subnormal-
value is the result of a gradual underflow.
normal-
value is an ordinary floating-point number (not zero, subnormal, infinite, nor NaN).
infinite-
value is a floating-point infinity.
nan-
value is Not-a-Number.
The fpclassify command throws an error if value is not a floating-point value and cannot be converted to one.
Examples
This shows how to check whether the result of a computation is numerically safe or not. (Note however that it does not guard against numerical errors; just against representational problems.)
set value [command-that-computes-a-value]
switch [fpclassify $value] {
normal - zero {
puts "Result is $value"
}
infinite {
puts "Result is infinite"
}
subnormal {
puts "Result is $value - WARNING! precision lost"
}
nan {
puts "Computation completely failed"
}
}
Keywords
floating point