From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: lloda Newsgroups: gmane.lisp.guile.bugs Subject: bug#69725: Incorrect comapration between exact and inexact numbers Date: Mon, 18 Mar 2024 17:17:02 +0100 Message-ID: <787367F7-453B-4C95-B078-D4DFAA49BCF5@sarc.name> References: Mime-Version: 1.0 (Mac OS X Mail 13.4 \(3608.120.23.2.7\)) Content-Type: multipart/mixed; boundary="Apple-Mail=_3E569D94-E0E5-43BE-8DC1-49EF9EBB1B97" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="34732"; mail-complaints-to="usenet@ciao.gmane.io" Cc: 69725@debbugs.gnu.org To: Maciej Original-X-From: bug-guile-bounces+guile-bugs=m.gmane-mx.org@gnu.org Mon Mar 18 17:19:44 2024 Return-path: Envelope-to: guile-bugs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1rmFiB-0008o5-15 for guile-bugs@m.gmane-mx.org; Mon, 18 Mar 2024 17:19:43 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rmFgF-000339-Sa; Mon, 18 Mar 2024 12:17:43 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rmFfw-0002iI-5f for bug-guile@gnu.org; Mon, 18 Mar 2024 12:17:27 -0400 Original-Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1rmFfv-0004sW-Ty for bug-guile@gnu.org; Mon, 18 Mar 2024 12:17:23 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1rmFgY-0003ta-2i for bug-guile@gnu.org; Mon, 18 Mar 2024 12:18:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: lloda Original-Sender: "Debbugs-submit" Resent-CC: bug-guile@gnu.org Resent-Date: Mon, 18 Mar 2024 16:18:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 69725 X-GNU-PR-Package: guile Original-Received: via spool by 69725-submit@debbugs.gnu.org id=B69725.171077867314953 (code B ref 69725); Mon, 18 Mar 2024 16:18:02 +0000 Original-Received: (at 69725) by debbugs.gnu.org; 18 Mar 2024 16:17:53 +0000 Original-Received: from localhost ([127.0.0.1]:60613 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rmFgO-0003t4-U8 for submit@debbugs.gnu.org; Mon, 18 Mar 2024 12:17:53 -0400 Original-Received: from mta-14-4.privateemail.com ([198.54.118.206]:22514) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rmFgN-0003sn-PZ for 69725@debbugs.gnu.org; Mon, 18 Mar 2024 12:17:52 -0400 Original-Received: from mta-14.privateemail.com (localhost [127.0.0.1]) by mta-14.privateemail.com (Postfix) with ESMTP id EE8C918000A3; Mon, 18 Mar 2024 12:17:06 -0400 (EDT) Original-Received: from [192.168.1.9] (unknown [51.154.167.214]) by mta-14.privateemail.com (Postfix) with ESMTPA; Mon, 18 Mar 2024 12:17:04 -0400 (EDT) In-Reply-To: X-Mailer: Apple Mail (2.3608.120.23.2.7) X-Virus-Scanned: ClamAV using ClamSMTP X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-guile@gnu.org List-Id: "Bug reports for GUILE, GNU's Ubiquitous Extension Language" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-guile-bounces+guile-bugs=m.gmane-mx.org@gnu.org Original-Sender: bug-guile-bounces+guile-bugs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.lisp.guile.bugs:10792 Archived-At: --Apple-Mail=_3E569D94-E0E5-43BE-8DC1-49EF9EBB1B97 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=us-ascii Thanks for the report! Patch attached. regards Daniel --Apple-Mail=_3E569D94-E0E5-43BE-8DC1-49EF9EBB1B97 Content-Disposition: attachment; filename=0001-Add-missing-branch-in-scm_is_less_than.patch Content-Type: application/octet-stream; x-unix-mode=0644; name="0001-Add-missing-branch-in-scm_is_less_than.patch" Content-Transfer-Encoding: quoted-printable =46rom=20189d3acdbebde503643da3817dae3fc0dd14db7d=20Mon=20Sep=2017=20= 00:00:00=202001=0AFrom:=20Daniel=20Llorens=20=0ADate:=20= Mon,=2018=20Mar=202024=2013:53:17=20+0100=0ASubject:=20[PATCH]=20Add=20= missing=20branch=20in=20scm_is_less_than()=0A=0AFixes=20= https://debbugs.gnu.org/69725.=0A=0A*=20libguile/numbers.c=20= (scm_is_less_than):=20Add=20branch=20for=20(<=20fraction=20real).=0A*=20= test-suite/tests/numbers.test=20(<):=20New=20test.=0A---=0A=20= libguile/numbers.c=20=20=20=20=20=20=20=20=20=20=20=20|=2017=20= ++++++++++++++---=0A=20test-suite/tests/numbers.test=20|=2012=20= ++++++++++++=0A=202=20files=20changed,=2026=20insertions(+),=203=20= deletions(-)=0A=0Adiff=20--git=20a/libguile/numbers.c=20= b/libguile/numbers.c=0Aindex=2030a826f13..ae2aa7766=20100644=0A---=20= a/libguile/numbers.c=0A+++=20b/libguile/numbers.c=0A@@=20-4559,6=20= +4559,7=20@@=20scm_is_less_than=20(SCM=20x,=20SCM=20y)=0A=20=09return=20= SCM_REAL_VALUE=20(x)=20<=20SCM_REAL_VALUE=20(y);=0A=20=20=20=20=20=20=20= if=20(!SCM_FRACTIONP=20(y))=0A=20=20=20=20=20=20=20=20=20abort=20();=0A+=20= =20=20=20=20=20/*=20REALP=20x=20FRACTIONP=20y,=20see=20symmetric=20case=20= below=20=20*/=0A=20=20=20=20=20=20=20if=20(isnan=20(SCM_REAL_VALUE=20= (x)))=0A=20=20=20=20=20=20=20=20=20return=200;=0A=20=20=20=20=20=20=20if=20= (isinf=20(SCM_REAL_VALUE=20(x)))=0A@@=20-4569,9=20+4570,19=20@@=20= scm_is_less_than=20(SCM=20x,=20SCM=20y)=0A=20=20=20if=20(!SCM_FRACTIONP=20= (x))=0A=20=20=20=20=20abort=20();=0A=20=0A-=20=20/*=20"a/b=20<=20"=20= becomes=20"a=20<=20y*b"=20*/=0A-=20=20return=20scm_is_less_than=20= (SCM_FRACTION_NUMERATOR=20(x),=0A-=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20scm_product=20(y,=20= SCM_FRACTION_DENOMINATOR=20(x)));=0A+=20=20if=20(SCM_REALP=20(y))=0A+=20=20= =20=20{=0A+=20=20=20=20=20=20/*=20FRACTIONP=20x=20REALP=20y,=20see=20= symmetric=20case=20above=20*/=0A+=20=20=20=20=20=20if=20(isnan=20= (SCM_REAL_VALUE=20(y)))=0A+=20=20=20=20=20=20=20=20return=200;=0A+=20=20=20= =20=20=20if=20(isinf=20(SCM_REAL_VALUE=20(y)))=0A+=20=20=20=20=20=20=20=20= return=200.0=20<=20SCM_REAL_VALUE=20(y);=0A+=20=20=20=20=20=20return=20= scm_is_less_than=20(x,=20scm_inexact_to_exact=20(y));=0A+=20=20=20=20}=0A= +=20=20else=0A+=20=20=20=20/*=20"a/b=20<=20y"=20becomes=20"a=20<=20y*b"=20= */=0A+=20=20=20=20return=20scm_is_less_than=20(SCM_FRACTION_NUMERATOR=20= (x),=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20scm_product=20(y,=20SCM_FRACTION_DENOMINATOR=20= (x)));=0A=20}=0A=20=0A=20static=20int=0Adiff=20--git=20= a/test-suite/tests/numbers.test=20b/test-suite/tests/numbers.test=0A= index=200b80c0356..cf54f0369=20100644=0A---=20= a/test-suite/tests/numbers.test=0A+++=20b/test-suite/tests/numbers.test=0A= @@=20-266,6=20+266,18=20@@=0A=20=20=20=20=20(pass-if=20(not=20(exact?=20= -inf.0)))=0A=20=20=20=20=20(pass-if=20(not=20(exact?=20+nan.0)))))=0A=20=0A= +;;;=0A+;;;=20<=0A+;;;=0A+=0A+(with-test-prefix=20"bug=20#69725=20for=20= (<=20fraction=20float)"=0A+=0A+=20=20(let=20((diff=20= 87979703276409626918659767984710026588483269238181705613229470051144098761= 57455491955763942463275995976601372508852821189236853783634952965762508916= 18672897887455888641129758660040580125471657527501887655846743402333407472= 71748897237831831267408571020404503664565102249381236647852060317671711992= 33723760493512739790508154214346384580491966310104625083761320281466442676= 58632127872001/72282286841797234929186984345269078642575090662043951218932= 78021210580613014047268878824932966460159359034826105703033820760498583865= 83955490031061870416075735232078523284307346352926571709615036536557063178= 29105961936336695812301428062408702924067060023651957331740692177549906237= 38756234529480867893856720891635324986925185464389238701809030915193515841= 54949372291968970659168272384))=20;=201.217168231948292=0A+=20=20= (pass-if=20"<=20fraction=20float=20(I)"=0A+=20=20=20=20(not=20(<=20diff=20= 1.0)))=0A+=20=20(pass-if=20"<=20fraction=20float=20(II)"=0A+=20=20=20=20= (<=20diff=202.0))))=0A+=0A=20;;;=0A=20;;;=20exp=0A=20;;;=0A--=20=0A= 2.39.2=0A=0A= --Apple-Mail=_3E569D94-E0E5-43BE-8DC1-49EF9EBB1B97--