[Openmcl-devel] Printing/Reading floats

Christophe Rhodes csr21 at cam.ac.uk
Mon Mar 17 17:15:32 UTC 2003


Gary Byers <gb at clozure.com> writes:

> I can't think of a more portable way to read/write floats in CL: if
> there's a CL function that does the inverse of INTEGER-DECODE-FLOAT,
> I can't remember what it's called.
>
> ? (multiple-value-call #'hypothetical-integer-encode-float
>      (integer-decode-float f))
>
> would (hypothetically) be guaranteed to be EQL to f (at least for
> normalized cases) and the integer triples could be read/written
> accurately.

IANAFPExpert, but would

(defun hypothetical-integer-encode-float (sig exp sign)
  (float (* sign (/ sig (expt 2 exp)))))

be close?  Obviously there are issues wrt single/doubleness, but...

Cheers,

Christophe  
-- 
http://www-jcsu.jesus.cam.ac.uk/~csr21/       +44 1223 510 299/+44 7729 383 757
(set-pprint-dispatch 'number (lambda (s o) (declare (special b)) (format s b)))
(defvar b "~&Just another Lisp hacker~%")    (pprint #36rJesusCollegeCambridge)

_______________________________________________
Openmcl-devel mailing list
Openmcl-devel at clozure.com
http://clozure.com/cgi-bin/mailman/listinfo/openmcl-devel



More information about the Openmcl-devel mailing list