[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

*To*: lucier@xxxxxxxxxxxxxxx*Subject*: Re: Two specific suggestions.*From*: Aubrey Jaffer <agj@xxxxxxxxxxxx>*Date*: Wed, 18 May 2005 23:30:51 -0400 (EDT)*Cc*: srfi-70@xxxxxxxxxxxxxxxxx*Delivered-to*: srfi-70@xxxxxxxxxxxxxxxxx*In-reply-to*: <y9lvf5gfevh.fsf@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> (message from Bradley Lucier on Wed, 18 May 2005 22:39:14 +0200)*References*: <y9lvf5gfevh.fsf@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>

| From: Bradley Lucier <lucier@xxxxxxxxxxxxxxx> | Date: Wed, 18 May 2005 22:39:14 +0200 | | 1. I believe that every numerical value should have an external | representation. Is not-a-number numerical? SRFI-70 specifies notation for the two unique real infinities. It also specs a single (optional) notation for 0/0, but is not as emphatic about its uniqueness. Reading and writing 0/0 is not very useful, because it is an error waiting to happen. | There are many different NaNs (the only requirement is that the | biased exponent field should be a maximum and the mantissa field be | nonzero), so it should be possible to specify or determine this | information about a NaN from its external representation. The previous implementation of SCM was transparent to IEEE floats. This lead to strange numbers like 0/0+3i which have no sensible mathematical interpretation. That period of experimentation over, SRFI-70 reins in infinities to just three, two of which are very compatible with standard analytical use. That the mathematical limit can be implemented as a procedure is evidence of the power of this paradigm. Just because more codes are available in IEEE-754 format does not mean that using them will have more fidelity with mathematics. | 2. If Scheme really wants to get serious about floating-point | arithmetic, one should be able to specify the precision of | floating- point operations. "One-precision-fits-all" doesn't cut | it for serious code. For i686 platforms "gcc -O3" compiles floating point calculations to use 80-bit float representation. Reducing the precision of scalar operands nets no speed increase from floating-point hardware. But reducing the size of arrayed floating point numbers does increase speed because of their smaller cache footprints. The homogeneous arrays of SRFI-63 provide such size reductions. Serious floating point calculations should use the vectorized floating-point units many CPUs offer. This could be accomplished by extending Scheme's arithmetic procedures to operate on the homogeneous arrays of SRFI-63. Because the overhead would be amortized over many scalar calculations, type dispatch could be done at runtime, incurring a negligible speed penalty.

**References**:**Two specific suggestions.***From:*Bradley Lucier

- Prev by Date:
**is NaN a number?** - Next by Date:
**FP Hardware** - Previous by thread:
**Two specific suggestions.** - Next by thread:
**Re: Two specific suggestions.** - Index(es):