[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug-gsl] Bug in vegas.c
From: |
David Zaslavsky |
Subject: |
[Bug-gsl] Bug in vegas.c |
Date: |
Sat, 21 Mar 2015 15:59:14 +0800 |
I'm fairly sure I've identified a small bug in the VEGAS implementation: in
lines 280-283 of vegas.c on the master branch,
if (var > 0) { wgt = 1.0 / var; }
very small but nonzero values of var (like 1e-322) will cause wgt to be set
to inf, and that in turn causes gsl_monte_vegas_integrate to return nan.
The logical fix seems to be to treat any value of var satisfying
1.0/var==inf as zero, i.e.
- if (var > 0)
+ if (var > 0 && gsl_finite(1.0 / var))
I don't know if that would break anything else, but I can't imagine how.
Thoughts?
I can send a proper patch file if desired (it's on my other computer).
:) David
- [Bug-gsl] Bug in vegas.c,
David Zaslavsky <=