Version française
Home     About     Download     Resources     Contact us    
Browse thread
[Caml-list] float numbers problem (CVS version of ocamlopt)
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Sebastien Briais <sebastien.briais@e...>
Subject: [Caml-list] float numbers problem (CVS version of ocamlopt)
Hello,

when doing a little program in ocaml that uses float numbers,
I found something that sounds like a bug in the native compiler.

I have a PC (Pentium IV) with a RedHat 8.0 and the CVS version of ocaml 
: 3.06+34

I reduce the bug to the following file:

-- start of file toto.ml

let square x = x *. x

let _ =
  let x = 1.84066666666666823 in
  let x0 = 1.16666666666666674 in
  let dx = 0.674000000000001487 in
    print_float (x -. x0);
    print_newline();
    print_float (square (x -. x0));
    print_newline();
    print_float dx;
    print_newline();
    print_float (square dx);
    print_newline();

-- end of file

now, I compile this file with the bytecode compiler and then the native 
compiler
(and execute the resulting file)

bash-2.05b$ ocamlc -o toto toto.ml
bash-2.05b$ ./toto
0.674000000000001487
0.454276000000002012
0.674000000000001487
0.454276000000002012

bash-2.05b$ ocamlopt -o toto.opt toto.ml
bash-2.05b$ ./toto.opt
0.674000000000001487
nan.
0.674000000000001487
nan.

The results obtained with the native code compiler are very strange, 
aren't they ?
Does anyone else has this problem ?

I have to say that I also tried with the official release 3.06 of ocaml 
and this worked perfectly.
So, this strange behaviour has appeared after the latest official 
release of ocaml (3.06).
(That's why I did not post to the bug tracker since it is not a bug of 
an official release)

Regards

Sébastien



-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners