Releases: stan-dev/math
Releases · stan-dev/math
v4.9.0 (3 June 2024)
- Stan now detects if your compiler supports C++17 and will issue a warning if it is not available. Support for pre-C++17 compilers may be removed as early as next version. (#3063)
- Added a new distribution:
wiener_full_lpdf
. (#2822) - Replaced
static const
objects withstatic constexpr
when available. (#2830) - Gradients for the
hypergeometric_pFq
function rewritten for increased speed and stability. (#2961) - Added the Hypergeometric 1F0 function and gradients. (#2962)
- Removed macro usage in the definitions of the
require_
templates. (#2965) - Added a sparse matrix implimentation for
arena_matrix
. (#2971) - Added hand-calculated derivatives for the multivariate normal lpdf. (#2980)
- Added derivatives for the
multi_student_t_cholesky_lpdf
. (#2990) - Added constrain function for creating matrices holding row or column simplexes. (#2992)
- Updated TBB Windows build rules for compatibility with RTools make. (#2999)
- Improved efficiency of
von_mises_lpdf
gradient calculation, credit to @venpopov. (#3010) - Fixed a few additional issues in checking the inputs to distributions defined over cholesky matrices. (#3012)
- Functions which are wrappers around CVODES and IDAS routines from Sundials now throw
domain_error
, rather than a mix ofdomain_error
andruntime_error
. (#3013) - Fixed the stack_allocator being able to return non-8-byte aligned pointers. (#3014)
- Upgrade bundled Boost headers to 1.84. (#3001, #3018, #3019)
- Fixed a bug where
linspaced_array
was returning its results truncated to integers. (#3023) - Fixed the return type of
max(int, int)
being a double. (#3024) - Added 'override' to built-in make variables. (#3028)
- Maded
sqrt(x)
have a finite gradient atx=0
. Allowsdistance(x,y)
to work forx=y
too. (#3033) - Improved stability of the
von_mises_lpdf
function to avoid numeric overflow. Now it's no longer necessary to use the normal_lpdf for kappa>100, allowing vectorizing of the likelihood. (#3036) - Updated the
weibull_cdf
andweibull_lcdf
functions for numerical stability as well as correct handling ofy == 0.0
. (#3037) - Improved speed of
inv_Phi
andstd_normal_qf
functions. (#3046) - Fixed spurious linker issue with
csr_matrix_times_vector
. (#3048, #3053) - Improved error messages when variables dimensions do not match in operations that require it. (#3049)
- Added support for Windows ARM64 with RTools ARM64 toolchain. (#3051)
- Fixed
clean-all
error when using external SUNDIALS libraries. (#3054) - Fixed several small floating-point accuracy issues with ARM64 platforms. (#3059)
- The RNGs for the multinomial and multinomial_logit distributions now accept a zero total count, resulting in a zero integer vector. (#3061)
- Fixed a data race in profiling in multiple threads. (#3066)
- Backported SUNDIALS bugfix for hashmap integer overflow. (#3072)
v4.9.0-rc2 (23 May 2024)
Tagging v4.9.0-rc2
v4.9.0-rc1 (13 May 2024)
Tagging v4.9.0-rc1
v4.8.1 (23 January 2024)
v4.8.0 (16 January 2024)
- Updated Boost headers to v1.81 (#2955)
- Added the Dirichlet-Multinomial distribution to the Stan Math library (dirichlet_multinomial_lpmf, dirichlet_multinomial_log, and dirichlet_multinomial_rng). (#2979)
binomial_logit_glm_lpmf
distribution added (#2946)- Improved numerical stability of Bernoulli CDF functions (#2784)
- Replaced the
std::vector
s for read/write events inmatrix_cl
withtbb::concurrent_vectors
(#2905) - Added framework for generic higher-order autodiff support through finite-differences. (#2929)
- Minor cleanup of numerical stability, constants, compound functions in OpenCL kernels (#2934)
- Fixes aliasing issue in adjoint acccumulation for OpenCL (#2943)
- Improve numerical stability of
binomial_logit
distribution (#2945) - Automatically detect UCRT toolchain use on Windows (#2948)
- Update multiple functions to delegate to the compound functions (
log1p_exp
, etc.) where possible (#2950) - Fixed the RPATH to the TBB library being passed twice on the command line (#2952)
- Split
eigendecompose
mix tests to fix CI memory issues (#2953) - Fix distribution test failures with row-vector integer inputs to bernoulli CDF functions (#2954)
- Simplified usage of ref-type deduction (#2958)
- Added OpenCL support for the
binomial_logit_glm
distribution (#2960) - Fixed a build configuration issue where the optional tbbmalloc and tbbmalloc_proxy libraries were built unconditionally. (#2969)
- Remove unused meta requires (#2976)
- Bugfix for uninitialized
var_value<Matrix>
types and assignment when the rhs of the assignment is an expression (#2978) - Invert the input matrix in-place which reduces the memory requirement for this function. (#2981)
- Fixes the rng function for the Inverse Wishart Cholesky distribution. (#2984)
- Fixed a compilation issue with the
check_symmetric
function on complex-valued inputs under LLVM 17 (#2991) - Fixed missing include guard for OpenCL rev headers (#2996)
- Add helpful context to the failure message for the ad testing framework (#2997)
v4.8.0-rc1 (8 January 2024)
Tagging v4.8.0-rc1
v4.7.0 (5 September 2023)
- Improved accuracy of
matrix_exp_multiply
. (#2619) - Added framework for vectorising ternary functions (#2642)
- Added
select()
function for vectorised ternary operations, as well as theany()
andall()
boolean reduction functions (#2853) - Added a minimum number of iterations (5) to the
grad_2f1
function to avoid early convergence (#2858) - Fixed some spelling errors in documentation (#2908)
- Added new function in
stan::math::internal
,finite_diff_hessian_vector_product_auto
(#2914) - Fixed an issue with the return type of
eigenvalues
being incorrect (#2915) - Delete jquery files from vendored Boost documentation (#2916)
- Fixed fvar/higher-order autodiff compatibility with GLM distributions (#2917)
- Fixed a type issue in the tests for inv_wishart_cholesky. (#2920)
- The constraint tolerance can now be adjusted by defining the
STAN_MATH_CONSTRAINT_TOLERANCE
macro before including Stan headers. The default value remains1E-8
. (#2921) - Use -dumpfullversion if available in makefiles (#2922)
- Vectorised binary signature for
log_sum_exp
(#2930) - Added new functions
qr_thin
,eigendecompose_sym
,eigendecompose
,complex_schur_decompose
,svd
, andcsr_extract
. Each of these is equivalent to calling several existing functions, but should be more efficient due to sharing work. For example,svd(m)
is equivalent to(svd_U(m), singular_values(m), svd_V(m))
. (#2931)
v4.7.0-rc1 (22 August 2023)
Tagging v4.7.0-rc1
v4.6.2 (15 May 2023)
Fix an issue in Stan, see release notes.
v4.6.1 (2 May 2023)
- Fix an issue when compiling with newer versions of LLVM's libc++ (#2892)