RE: Epsilon calculation



Here is what allegro common lisp on a pentium says:

  (list (setq x (+ 1.0d0 (expt 2 -52)))
  (setq y (- x 1))
  (setq z (+ 1 (* y .500001d0)))
  (- z 1.0d0)) ==>
(1.0000000000000002d0 2.220446049250313d-16 1.0000000000000002d0
  2.220446049250313d-16)


(list (setq x (+ 1.0d0 (expt 2 -52)))
  (setq y (- x 1))
  (setq z (+ 1 (* y .50000d0)))  ;; note change here
  (- z 1.0d0)) ==>

(1.0000000000000002d0 2.220446049250313d-16 1.0d0 0.0d0)

Note that the use of  1.0d0  etc  if you want double precision
in every CL.


I don't know what C is doing.
RJF