Are there any fully compliant IEEE754r implementations available for Java that offer support for all the features Java chose to omit (or rather high level languages in general like to omit):
- Traps
- Sticky flags
- Directed rounding modes
- Extended/long double
- Quad precision
- DPD (densly packed decimals)
Clarification before anyone gets it wrong: I'm not looking for the JVM to offer any support for the above, just some classes that do implement the types and operations in software, basically something in the style of the already existing primitve wrapper classes Float/Double.
This with the following source implemented functions below:
"All of these routines also have float variants, differing only in argument and return types. The class is org.dosereality.util.IEEE754"
Sun bug reference 2003
No, there does not exist a fully compliant IEEE754R implementation. Not only in Java, but in all currently available languages (Status July 2012).
EDIT: The poster asked for IEEE754 R support which is identical to IEEE 754-2008. If I want to add all reasons why there is no such thing, this would be long.
Traps: No, calling own routines with OVERFLOW, UNDERFLOW, INEXACT etc. with SIGFPE is not a trap. See IEEE754 (the old one) p. 21 for what constitutes a trap. Signaling NaNs. NaN payload access. Flag access. Enumerate languages which can do that.
Rounding modes: The new standard defines roundTiesToAway (p. 16) as new rounding mode. Unfortunately there are AFAIK no processors which supports this mode and no software emulation either.
Quad precision: Only supported in very few compilers and even less compilers which are not broken.
Densely packed Decimals: Will probably only supported in languages which use decimals, e.g. COBOL.
Intersection of all sets: Empty set. None. Nothing.