unofficial mirror of guile-devel@gnu.org 
 help / color / mirror / Atom feed
From: Marius Vollmer <mvo@zagadka.de>
Cc: guile-devel@gnu.org
Subject: Re: ratio implementation
Date: Tue, 07 Oct 2003 17:24:16 +0200	[thread overview]
Message-ID: <87u16lcbq7.fsf@zagadka.ping.de> (raw)
In-Reply-To: <3F66F68B.3070100@ccrma.stanford.edu> (Bill Schottstaedt's message of "Tue, 16 Sep 2003 04:39:55 -0700")

Bill Schottstaedt <bil@ccrma.Stanford.EDU> writes:

>  > That is, instead of using "long", I'd say we simply use "SCM" and
>  > instead of "+", "==", etc, we use use "scm_sum", "scm_num_eq_p", etc.
>  > Also, instead of mallocing scm_t_ratio, we can use double cells, which
>  > should be more efficient.
>  >
>  > Any takers?
>
> Looks straightforward, but I may not get around to it right away.
> Should I wait for Dirk's type-related changes?

No, I don't think that is needed.  Dirk, what do you think?

> Also, I haven't looked closely at double cells, though I assume
> (from a glance at the scm_t_double stuff) that I can include my
> "reduce" flag as well as the numerator and denominator.

Yes, double cells are just like ordinary cells, they only have four
slots instead of two.  One (half) slot is taken for type information,
leaving three for the fraction stuff.  There are unused bits in the
first slot, and you could put your 'reduce' flag there as well.

>  > (Also I didn't really check whether your rationals behave like R5RS
>  > demands it.  Did you?  We should be sure to follow R5RS.)
>
> Yes, I think it follows R5RS.  See test-ratios.scm for some tests.
> I could make these fit into 'make check'.

That would be good.

>  > A ratio is exact, while a real is not.  Thus, I'd say that ratio? is
>  > not really necessary.  There should be no reason to add anything eyond
>  > R5RS for ratios.
>
> Ok -- "exact?" used to return #f for 3/4 -- hence the confusion.

Yes, but only because we didn't have exact rationals, right?

>  >> An alternative would be to make "rational?"  rational.
>  > That would violate R5RS, wouldn't it?
>
> I don't think so.  You are allowed to make rational? be the same
> as real?, but you can also distinguish them.  My druthers would
> be for rational? to return #t for a ratio, #f for a float.
> Why have it at all if it is just a synonym for "real?"?

Hmmm, I see.  My take would be that our floats are always inexact
rationals.  An example for a real that wouldn't also be a rational
would be an exact representation of pi, I'd say.  But I also agree
that this way lays madness and that you'd probably need a full blown
symbolic algebra system for this to actually be useful.

-- 
GPG: D5D4E405 - 2F9B BCCC 8527 692A 04E3  331E FAF8 226A D5D4 E405


_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://mail.gnu.org/mailman/listinfo/guile-devel


      parent reply	other threads:[~2003-10-07 15:24 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-07-28 11:24 ratio implementation Bill Schottstaedt
2003-07-28 12:08 ` Han-Wen Nienhuys
2003-07-29  0:41 ` Kevin Ryde
2003-07-29 11:57   ` Bill Schottstaedt
2003-07-30 22:42     ` Kevin Ryde
2003-09-15 10:35 ` Marius Vollmer
2003-09-15 16:19   ` Rob Browning
2003-09-15 22:06   ` Dirk Herrmann
2003-09-15 22:59     ` Kevin Ryde
2003-09-16 11:39     ` Bill Schottstaedt
2003-09-16 21:36       ` Rob Browning
2003-09-18 21:09       ` Dirk Herrmann
2003-10-07 15:26         ` Marius Vollmer
2003-10-13 10:58           ` Bill Schottstaedt
2003-10-14  8:57             ` Marius Vollmer
2004-02-18 14:25               ` fractions.test Bill Schottstaedt
2003-10-14 12:39             ` ratio implementation Marius Vollmer
2003-10-14 22:56               ` Kevin Ryde
2003-10-14 13:03             ` Marius Vollmer
2003-10-14 23:37               ` Kevin Ryde
2003-10-16 11:49                 ` Bill Schottstaedt
2003-10-17 10:09                 ` Marius Vollmer
2003-10-17 11:47                   ` Bill Schottstaedt
2003-10-17 15:04                   ` Rob Browning
2003-10-18  0:45                   ` Kevin Ryde
2003-10-15 12:57               ` Bill Schottstaedt
2003-10-17 10:20                 ` Marius Vollmer
2003-10-17 15:14                   ` Rob Browning
2003-10-17 15:42                     ` Marius Vollmer
2003-10-14 23:01             ` Kevin Ryde
2003-10-18  0:55               ` ash using shifts (was: ratio implementation) Kevin Ryde
2003-10-07 15:24       ` Marius Vollmer [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/guile/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87u16lcbq7.fsf@zagadka.ping.de \
    --to=mvo@zagadka.de \
    --cc=guile-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).