Re: [AC21.5] Texinfo manual kilo-patch

Jeff Mincy <[email protected]> Fri, 30 Apr 2004 09:29:13 -0400
Newsgroups gmane.emacs.xemacs.design
Message-ID <[email protected]>
On Fri, 30 Apr 2004, [email protected] wrote:

> On Fri, Apr 30, 2004 at 08:31:36PM +0900, Stephen J. Turnbull wrote:
>> Let's move this to xemacs-design
> 
> Agreed.
> 
>> >>>>> "Hrvoje" == Hrvoje Niksic <[email protected]> writes:
>> 
>>     Hrvoje> Non-bignum XEmacs basically does what C does, which sets
>>     Hrvoje> the expectation quite low.  I was wondering if a bignum
>>     Hrvoje> XEmacs could do better for floating point operations, like
>>     Hrvoje> it does better for integers.
>> 
>> Yes, it can, but not automatically and reliably.  Assuming that
>> mantissas of bigfloats are not represented in a base evenly divisible
>> by 3, what precision should
>> 
>>     (* 1.0 1/3)
>> 
>> have?
> 
> Good point.  Which reminds me: now that we have rationals, do we
> even want to do floating point contagion?  Think of it this way:
> any FP number can be converted to a rational without loss of
> precision, while the reverse doesn't hold.  

Yep, this is true, floating point numbers can be converted to rational:

In clisp, the conversion can be done by using either rational or rationalize:

  * (rational (float 1/3))
  11184811/33554432

  * (rationalize (float 1/3))
  1/3

  *(= (float 11184811/33554432) (float 1/3))
  T

> In other words, would
> anything break if (* 1.0 1/3) converted 1.0 to 1/1 and returned
> 1/3?

Yes, this would break compatibility with common lisp.

   CMU Common Lisp 18d..
   * (* 1.0 1/3)

   0.33333334

-jeff