Conversation
|
thanks! I'll take a look tomorrow and then we'll probably want @SteveBronder to look it over too |
Jenkins Console Log Machine informationNo LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 20.04.3 LTS Release: 20.04 Codename: focalCPU: G++: Clang: |
Summary
This pr closes #3257. The
gamma_lccdfexperiences numerical instability for alpha approximately greater than 30. It’s due to gamma_q or grad_reg_inc_gamma. This pr rewrites the code to use gamma_p and grad_reg_lower_inc_gamma, which avoids potential instability in a tgamma(alpha) and digamma(alpha) call. It seems to sample a bit faster than just wrappinggamma_lcdfwithlog1m_exp.This fixes the reverted PR: #3272.
cc: @spinkney
Tests
New probability tests in the problematic regime.
Release notes
The
gamma_lccdfis made more robust for alpha values. The issue was overflow in the derivatives when alpha was greater than 30.Checklist
Copyright holder: Publicis Groupe, Daniel Lee
The copyright holder is typically you or your assignee, such as a university or company. By submitting this pull request, the copyright holder is agreeing to the license the submitted work under the following licenses:
- Code: BSD 3-clause (https://opensource.org/licenses/BSD-3-Clause)
- Documentation: CC-BY 4.0 (https://creativecommons.org/licenses/by/4.0/)
the basic tests are passing
./runTests.py test/unit)make test-headers)make test-math-dependencies)make doxygen)make cpplint)the code is written in idiomatic C++ and changes are documented in the doxygen
the new changes are tested