[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug #65760] gsl_sf_log_erfc (and gsl_sf_erc) return NaN for infinite or
From: |
Leo Singer |
Subject: |
[bug #65760] gsl_sf_log_erfc (and gsl_sf_erc) return NaN for infinite or very large finite arguments |
Date: |
Sun, 19 May 2024 19:49:02 -0400 (EDT) |
URL:
<https://savannah.gnu.org/bugs/?65760>
Summary: gsl_sf_log_erfc (and gsl_sf_erc) return NaN for
infinite or very large finite arguments
Group: GNU Scientific Library
Submitter: lpsinger
Submitted: Sun 19 May 2024 11:49:02 PM UTC
Category: Accuracy problem
Severity: 3 - Normal
Operating System: Debian 12.5
Status: None
Assigned to: None
Open/Closed: Open
Release: 2.7.1
Discussion Lock: Any
_______________________________________________________
Follow-up Comments:
-------------------------------------------------------
Date: Sun 19 May 2024 11:49:02 PM UTC By: Leo Singer <lpsinger>
gsl_sf_log_erfc (and gsl_sf_erc) return NaN for infinite or very large finite
arguments. For such arguments, gsl_sf_log_erfc should return -inf and
gsl_sf_erc should return 0.
See minimal reproducer below.
/* test.c */
#include <gsl/gsl_math.h>
#include <gsl/gsl_sf_erf.h>
#include <stdio.h>
static const double x[] = {1e0, 1e1, 1e2, 1e20, 1e60, 1e80, GSL_POSINF};
int main(int argc, char **argv) {
for (int i = 0; i < sizeof(x) / sizeof(x[0]); i ++) {
double x_i = x[i];
double y_i = gsl_sf_log_erfc(x[i]);
printf("gsl_sf_log_erfc(%g) = %g\n", x_i, y_i);
}
return 0;
}
Compile and run as follows:
$ gcc test.c $(pkg-config --cflags --libs gsl)
$ ./a.out
gsl_sf_log_erfc(1) = -1.84961
gsl_sf_log_erfc(10) = -102.88
gsl_sf_log_erfc(100) = -10005.2
gsl_sf_log_erfc(1e+20) = -1e+40
gsl_sf_log_erfc(1e+60) = -inf
gsl_sf_log_erfc(1e+80) = -nan
gsl_sf_log_erfc(inf) = -nan
_______________________________________________________
Reply to this item at:
<https://savannah.gnu.org/bugs/?65760>
_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [bug #65760] gsl_sf_log_erfc (and gsl_sf_erc) return NaN for infinite or very large finite arguments,
Leo Singer <=