[ieeefp-tests-devel] Re: [ieeefp-tests-cvs] CVS update: ieeefp-tests/ieeefp-tests.lisp
Raymond Toy
toy at rtp.ericsson.se
Tue Jun 15 23:14:23 UTC 2004
>>>>> "Christophe" == Christophe Rhodes <csr21 at cam.ac.uk> writes:
Christophe> Raymond Toy <rtoy at common-lisp.net> writes:
>> o Add support for hypot. This is used to test Lisp's ABS function on
>> complex values.
Christophe> Cool. I have ucblib-style input files for trunc()/FTRUNCATE in single
Christophe> and double precision. Do you think they should go into ucb/ucblib/,
Christophe> or should we treat that as pristine and place additions somewhere
Christophe> else?
My preference is to keep ucblib pristine. But if you don't that's ok.
Christophe> Perhaps this allows me to bring up a couple of ideas for things which
Christophe> should live in the IEEE754 package? Ideas:
Christophe> * specialised condition types: IEEE754:DIVISION-BY-ZERO and
Christophe> friends. The standard document says that it would be nice for
Christophe> programs to be able to find the faulting instruction and the
Christophe> operands from the handler; it would be nice to attempt to support
Christophe> this, at least for the IEEE-specified operations (+, -, *, /, sqrt
Christophe> and round-to-integer);
This is a good idea. CMUCL/sparc already supports this, I think, but
doesn't give the address of the faulting instruction, although it
could.
It's a problem with x86 since the exceptions happen at the NEXT FP
instruction, so the operands could have been destroyed before then. I
think I tried to implement this for x86 long ago, but it didn't seem
to work very well for some reason that I can't recall.
Christophe> * functions to get at the individual bits in the fields:
Christophe> IEEE:DOUBLE-FLOAT-EXPONENT and friends. (I'm aware that the
Christophe> exponent field is biased; that makes design interesting)
Provide both, perhaps? I note that cmucl's idea of the bias value is
off by one from the bias value I see in most documents about IEEE754.
Christophe> * (maybe) implementations of functions which don't have any
Christophe> corresponding analogue in CL: IEEE754:LOG10? IEEE754:HYPOT?
Christophe> Maybe inspiration could be drawn from the C99 and C0X standards in
Christophe> this regard.
Yes. From a peek at glibc's log10, it looks reasonably
straight-forward. I think hypot could be done using complex-sqrt
that's already in cmucl/sbcl. At least the hypot tests all pass, and
we use complex-sqrt for abs of a complex number.
Should we provide for nextafter and copysign? Well, copysign is the
same as Lisp's float-sign, with the args in the opposite order.
There's also scalb (basically scale-float) and log2. We should
provide those as well, I guess.
Ray
More information about the Ieeefp-tests-devel
mailing list