Re: higher precision doubles
On 8/8/2011 12:05 AM, Jan Burse wrote:
Eric Sosman schrieb:
I would like for whatever reason work with 80bit
floats as defined above in Java. I am interested
in the full set of arithmetic functions, I/O and
trigonometric functions. How could I do that?
You have already said "So pointing me to JLS is like turning
cycles, only confirming that Java has only float and double." That
is, the JLS has already given you an answer -- but you don't like
the answer, and keep asking for a different one. Do you really
think your persistent rejection of "No" is productive?
You are the first one that says "no". One could of
course do something along the following lines:
public class DoubleExt {
private long mantissa;
private short exponent;
}
And then make a package that interfaces with some
of the known C libs for 80bit floats.
But would this be considered the best practice?
Whether it is best practice, or even practical, depends on the
characteristics of the code that needs extended precision.
If the extended precision arithmetic comes in fairly isolated chunks, so
that you can afford significant overhead for each chunk, you could
indeed write some part of the application in Java and still do the
extended precision arithmetic in another language.
For comparison, my doctoral dissertation research used a program that
did a lot of general computation that I needed to be able to change
rapidly, and some big blocks of linear algebra. I did the linear algebra
in Matlab, because it had exactly the functions I needed, but the rest
of the program was in Java.
If the extended precision arithmetic is scattered uniformly throughout
the program, and there is too much of it to do it in software emulation,
you need to write the whole program in a language that
supports hardware extended precision.
This is why I have been trying to find out more about the application or
applications that need the extended precision arithmetic - it is
difficult to suggest solutions without knowing a bit about the requirements.
Patricia