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

*To*: WJL@zermatt.lcs.mit.edu*Subject*: doubling your bits*From*: "David L. Andre" <DLA@diamond.s4cc.symbolics.com>*Date*: Wed, 25 Nov 87 14:31 EST*Cc*: SLUG@zermatt.lcs.mit.edu*Character-type-mappings*: (1 0 (NIL 0) (NIL :BOLD NIL) "CPTFONTCB") (2 0 (NIL 0) (NIL :ITALIC NIL) "CPTFONTI")*Fonts*: CPTFONT, CPTFONTCB, CPTFONTI*In-reply-to*: <871125105815.2.WJL@GALEN.LCS.MIT.EDU>*Resent-date*: Wed 25 Nov 87 15:07:42-CST*Resent-from*: CMP.SLUG@r20.utexas.edu*Resent-message-id*: <12353504635.26.CMP.SLUG@R20.UTEXAS.EDU>*Resent-to*: SLUG:;*Supersedes*: <19871125191950.6.DLA@KOYAANISQATSI.S4CC.Symbolics.COM>

Date: Wed, 25 Nov 87 10:58 EST From: Bill Long <WJL@ZERMATT.LCS.MIT.EDU> I was wondering... 1) How much slower would coerce be if it added decimal zeros? eg., (coerce .1 'double-float) -> 0.1d0 It would be wrong. It depends what you would like to mean by .1. I understand that when you type .1s0, the number you are really stuck with is 0.10000000149011619... so one possible interpretation of coerce (and I take it, the IEEE sanctioned one) is to add more bits of that number. That way, (loop for n from 1 to 1000000 sum (coerce .1 'double-float)) will still give 100958.34. However, if what you really meant by .1 is decimal .1, the number .1s0 is an approximation and the 958.34 is round off 1error0. I agree with James A. Reith that what I want is (coerce .1 'double-1decimal0-float), but it doesn't exist. James A. Reith is wrong as well. I don't have time to educate either of you on this. Perhaps somebody with more patience than I can try. No, I take that back. I was being rude. COERCE of any number means to round the number to the nearest equivalent number in the new format. The nearest number to 0.100000001490116119384765625 in any format with more precision than IEEE single floats is 2not0 going to be 0.1. If you really want the nearest multiple of 1/10, then you should either use rational numbers as I suggested earlier, or explicitly do the rounding you want. It is not COERCE's contract to change the number, nor should it be, for 2any0 format of number. It seems odd to me that you are interested in double precision anyway, if the only thing you're going to do is throw away the additional precision you get by rounding to the nearest multiple of 1/10.

**Follow-Ups**:**doubling your bits***From:*"James A. Reith Sr." <reith@mead.scrc.symbolics.com>

**References**:**doubling your bits***From:*Bill Long <WJL@zermatt.lcs.mit.edu>

- Prev by Date:
**doubling your bits** - Next by Date:
**RCS** - Previous by thread:
**doubling your bits** - Next by thread:
**doubling your bits** - Index(es):