GNU bug report logs -
#25786
[PATCH] use of abs() in numbers.c: should be labs()
Previous Next
Reported by: Matt Wette <matt.wette <at> gmail.com>
Date: Sat, 18 Feb 2017 17:47:02 UTC
Severity: normal
Tags: patch
Done: Andy Wingo <wingo <at> pobox.com>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
In libguile/numbers.c abs() is used for long argument where labs() should be used.
A patch is included below for guile-2.1.7.
/* Returns log(n/d), for exact non-zero integers n and d */
static SCM
log_of_fraction (SCM n, SCM d)
{
long n_size = scm_to_long (scm_integer_length (n));
long d_size = scm_to_long (scm_integer_length (d));
if (abs (n_size - d_size) > 1)
return (scm_difference (log_of_exact_integer (n),
log_of_exact_integer (d)));
--- libguile/numbers.c.orig 2017-02-18 08:29:52.000000000 -0800
+++ libguile/numbers.c 2017-02-18 08:30:23.000000000 -0800
@@ -9951,7 +9951,7 @@
long n_size = scm_to_long (scm_integer_length (n));
long d_size = scm_to_long (scm_integer_length (d));
- if (abs (n_size - d_size) > 1)
+ if (labs (n_size - d_size) > 1)
return (scm_difference (log_of_exact_integer (n),
log_of_exact_integer (d)));
else if (scm_is_false (scm_negative_p (n)))
[Message part 2 (text/html, inline)]
This bug report was last modified 8 years and 89 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.