Subject: bug#69725: closed (Re: bug#69725: Incorrect comapration between exact and inexact numbers)

From: [email-masked] (GNU bug Tracking System)
Date: Tue, 19 Mar 2024 17:31:02 +0000

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 [email-masked].

-- 
69725: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=69725
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#69725: Incorrect comapration between exact and inexact numbers
From: lloda <[email-masked]>
To: Maciej <[email-masked]>
Cc: [email-masked]
Date: Tue, 19 Mar 2024 18:29:48 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

Patch committed to 54c4753dd3f7506bee2778b36d7263b613ffd579, with a couple extra tests.

Thanks

	Daniel

Subject: Incorrect comapration between exact and inexact numbers
From: Maciej <[email-masked]>
To: [email-masked]
Date: Mon, 11 Mar 2024 08:46:16 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

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