Hi,
I am looking for a reference implementation of IEEE-754 operations. Is there such a thing?
Hi,
I am looking for a reference implementation of IEEE-754 operations. Is there such a thing?
A rather confusing question; in C++ it is assumed this sort of detail is taken care of by the hardware or the compiler. So, in C++ floating-point addition would be
float a = 1.0;
float b = 2.0;
float c = a + b;
I'm sure this is not what you actually meant; perhaps you'd benefit from this page which tries to emulate IEEE-754-compliant hardware in javascript?
I believe the C libraries SoftFloat and fdlibm are suitable for what you are looking for. Others include Linux (GNU libc, glibc) or *BSD libc's math functions. Finally, CRlibm should also be of interest to you.
Ulrich Drepper has a interesting look at different math libraries, that might be also worth reading through.
I must disappoint you: There is practically none.
While technically there are IEEE-754 compliant systems because they do not implement non-required features described in the standard, a reference implementation allowing
does not exist in the standard languages. This causes recurring woes of William Kahan, the main force behind the standard and its adaption on the Intel processors.
I don't know if there are some esoteric languages which do support them, but I can rule out Java, C#, C++, Fortran.
EDIT: While there is a lack of compiler support, I advise Hausers SoftFloat implementation given by mctylr. Hauser knows what he is doing.