GNU bug report logs -
#69725
Incorrect comapration between exact and inexact numbers
Previous Next
Reported by: Maciej <m.kalandyk <at> outlook.com>
Date: Mon, 11 Mar 2024 07:53:02 UTC
Severity: normal
Done: lloda <lloda <at> sarc.name>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your bug report
#69725: Incorrect comapration between exact and inexact numbers
which was filed against the guile package, has been closed.
The explanation is attached below, along with your original report.
If you require more details, please reply to 69725 <at> debbugs.gnu.org.
--
69725: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=69725
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
Patch committed to 54c4753dd3f7506bee2778b36d7263b613ffd579, with a couple extra tests.
Thanks
Daniel
[Message part 3 (message/rfc822, inline)]
description:
script(named main.scm):
(use-modules (srfi srfi-11))
(define* (newton-sqrt x #:optional (tolerance 0.001) (guess 1))
(if (< (abs (- x (* guess guess)))
tolerance)
(values guess (abs (- x (* guess guess))) tolerance)
(newton-sqrt x tolerance (/ (+ guess (/ x guess)) 2))))
(let-values ([(root diff tolerance)
(newton-sqrt 1000)])
(display (exact->inexact diff)) ;; 1.217168231948292
(newline)
(display tolerance) ;; 0.001
(newline)
;; bug here 1.217 in exact form apparently is smaller than 0.001
(display (< diff tolerance)) ;; #t
(newline)
(display (< diff (inexact->exact tolerance))) ;; #f
(newline)
(display (< (exact->inexact diff) tolerance)) ;; #f
(newline))
guile version:
guile --version
guile (GNU Guile) 3.0.9
machine-type:
./config.guess
x86_64-pc-linux-gnu
system package:
guix package -V guile
guix package (GNU Guix) f18d13b5f89c161c6ee88d15ecdaa8d973ee4503
additional system info:
guix channels.scm
(list (channel
(name 'guix)
(url "https://git.savannah.gnu.org/git/guix.git")
(branch "master")
(commit
"aeb494322ca9dec4a4d66a7d063239c8536bd538")
(introduction
(make-channel-introduction
"9edb3f66fd807b096b48283debdcddccfea34bad"
(openpgp-fingerprint
"BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA")))))
what i ran to run the script:
guix time-machine -C channels.scm -- shell --pure guile -- ./main.scm
1.217168231948292
0.001
#t
#f
#f
This bug report was last modified 1 year and 63 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.