Re: infinities reformulated Chongkai Zhu (31 May 2005 07:17 UTC)
Re: infinities reformulated Aubrey Jaffer (31 May 2005 23:47 UTC)
Re: infinities reformulated Thomas Bushnell BSG (02 Jun 2005 15:23 UTC)
Re: infinities reformulated Aubrey Jaffer (02 Jun 2005 16:12 UTC)
Re: infinities reformulated Thomas Bushnell BSG (02 Jun 2005 16:16 UTC)
string->number Aubrey Jaffer (02 Jun 2005 19:10 UTC)
Re: string->number Thomas Bushnell BSG (02 Jun 2005 20:05 UTC)
Re: string->number Aubrey Jaffer (03 Jun 2005 01:59 UTC)
Re: string->number Thomas Bushnell BSG (03 Jun 2005 02:09 UTC)
Re: string->number Aubrey Jaffer (15 Jun 2005 21:10 UTC)
Re: string->number Thomas Bushnell BSG (16 Jun 2005 15:28 UTC)
Re: string->number bear (16 Jun 2005 16:59 UTC)
Re: string->number Aubrey Jaffer (17 Jun 2005 02:16 UTC)
Re: infinities reformulated bear (04 Jun 2005 16:42 UTC)
Re: infinities reformulated Aubrey Jaffer (17 Jun 2005 02:22 UTC)
Re: infinities reformulated bear (19 Jun 2005 17:19 UTC)
Re: infinities reformulated Aubrey Jaffer (20 Jun 2005 03:10 UTC)
Re: infinities reformulated bear (20 Jun 2005 05:46 UTC)
precise-numbers Aubrey Jaffer (26 Jun 2005 01:50 UTC)

Re: infinities reformulated Aubrey Jaffer 20 Jun 2005 03:10 UTC

 | Date: Sun, 19 Jun 2005 10:19:29 -0700 (PDT)
 | From: bear <xxxxxx@sonic.net>
 |
 | On Thu, 16 Jun 2005, Aubrey Jaffer wrote:
 |
 | > Can you give an example of a calculation where you expect
 | > that choosing a reduced precision will reap a large
 | > benefit?
 |
 | Reduction in precision beyond the level of a small float
 | size supported by the hardware is rarely useful, even when
 | performing binary tricks, but:
 |
 | It often happens in neural networks (read: my day job) that
 | being able to store a bunch of floats compactly (level-2
 | cache size) results in dramatic speedups, and in such cases
 | (in C) I use arrays of 32-bit floats rather than 64-bit
 | doubles.

Implementations supporting SRFI-47 or SRFI-63 can provide arrays of
32-bit floats.

 | Since R5RS strongly recommends "precision equal to
 | or greater than the most precise flonum format supported by
 | the hardware," and further because in scheme I can't in
 | general rely on a particular hardware representation without
 | indirections, tag bits, and other encapsulating structures
 | which will blow the cache, I can't really do this in R5RS
 | scheme.

That is why SRFI-47 (and SRFI-63) was created.  A homogeneous array
can be stored as a contiguous block which has just one tag identifying
its type.  SCM and SLIB/Guile do this.

 | I can do it using implementation- specific extensions in Chicken
 | and Bigloo, and I can do it in Stalin, another Lisp-1 dialect
 | that's largely similar to scheme.

You could also do it with SCM or SLIB/Guile (using SRFI-47 or
SRFI-63).

 | But a couple of years ago, I had a (toy) project where I was
 | simulating orbits several centuries into the future in a
 | game where the objective was to get a hypothetical
 | spacecraft from L3/Earth to pluto using only 100 m/s of
 | delta-vee plus orbital mechanics.  And in that project,
 | having 512-bit precise reals (thanks to Chicken which
 | allowed itself to be recompiled with alternate real
 | precision) was *NECESSARY*, since even with scaling, using
 | "doubles" would have lost crucial information in the
 | underflow.  Of course, it took a long long time to find a
 | good solution, but search strategies for a good solution
 | were what the game was about.

Would weakening the "most precise" requirement to a recommendation
improve Scheme as a platform for such arithmetics?