On 12/3/10 8:06 AM, "David Kastrup" <[email protected]> wrote: > Mark Polesky <[email protected]> writes: > >> David Kastrup wrote: >>>> mm = #1.0 >>>> cm = #(* 10 mm) >>>> in = #(* 25.4 mm) >>>> pt = #(/ in 72.27) >>> >>> Wouldn't pt = #(/ (* 2540 mm) 7227) have smaller absolute >>> error? The current definition of pt has to round 25.4 to >>> the nearest presentable number, 72.27 to the nearest >>> presentable number, and then round the result of the >>> division again. >> >> No, I don't think so. Isn't scheme a little smarter than >> that? > > No, it isn't. > >> Consider the following: >> >> $ guile >> guile> (define mm 1.0) >> guile> (define in (* 25.4 mm)) >> guile> (define pt (/ in 72.27)) >> guile> (equal? pt (/ (* 2540 mm) 7227)) >> #t > > Platform dependent luck.
We can define all of these as exact quantities: guile> (define mm 1) guile> (define cm (* 10 mm)) guile> (define in (* 254 (/ mm 10))) guile> (define pt (/ (* 100 in) 7227)) guile> (exact? mm) #t guile> (exact? cm) #t guile> (exact? in) #t guile> (exact? pt) #t Thanks, Carl _______________________________________________ lilypond-devel mailing list [email protected] http://lists.gnu.org/mailman/listinfo/lilypond-devel
