Version française
Home     About     Download     Resources     Contact us    
Browse thread
[Caml-list] Integer to floating point conversion errors
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Post Office!~/sentmail <fjr6b@c...>
Subject: Re: [Caml-list] Integer to floating point conversion errors
On Sun, 11 Nov 2001, Berke Durak wrote:

Pardon me, I wasn't clear.  Since incr and mult are assumed to be
positive, seed should always be positive.  Therefore a mod of C by a
positive number should always be positive.  The problems arise like the
following:

# seeded#raw;;
- : float = -0.011235290207
# seeded#getseed;;
- : int = 12063801
# float ( seeded#getseed );;
- : float = 12063801
# float ( seeded#getseed ) /. float( 1073741824 );;
- : float = -0.011235290207
# float (1073741824);;
- : float = -1073741824

> On Fri, Nov 09, 2001 at 06:39:58PM -0500, Post Office!~/sentmail wrote:
> > I am getting negative results when I convert large integers to floating
> > point.  This happens on both i386 and my G4 laptop with OCaml 3.02.  The
> > code in question is this:
> >
> >                         method raw = (seed <- (seed*mult+incr)mod modu);
> >                                         float seed /. float modu
>
> The operator ``mod'' does not necessarily return positive values (depending
> on your platform) :
>
>         Objective Caml version 3.03 ALPHA
> # (-1) mod 5;;
> - : int = -1
> --
> Berke
>
-------------------
Bug reports: http://caml.inria.fr/bin/caml-bugs  FAQ: http://caml.inria.fr/FAQ/
To unsubscribe, mail caml-list-request@inria.fr  Archives: http://caml.inria.fr