Skip to content

Releases: stan-dev/math

v5.0.0 (10 December 2024)

10 Dec 12:42
Compare
Choose a tag to compare

Breaking changes:

  • Removed deprecated _log() probability functions. (#2995)
  • Moved constraint transforms to their own folder. (#3039)
  • Updated arena_matrix to use move semantics. (#2928)
  • Un-vendored a great many unused boost libraries. (#3129)
  • C++17 is now required.

Other changes:

  • Added sum_to_zero_constrain, sum_to_zero_free, and check_sum_to_zero. (#3101)
  • Added beta_neg_binomial_lpmf. Allows modeling heavy-tail count data. (#3108)
  • Added beta_neg_binomial_lccdf. (#3114, #3118)
  • Added beta_neg_binomial_lcdf. (#3116)
  • Added beta_neg_binomial_cdf. (#3120)
  • Added beta_neg_binomial_rng. (#3126)
  • Added overloads for tuples of bounds to lub_free and lub_constrain. (#3087)
  • Added error checking functions for row/column stochastic matrices. (#3095)
  • Added constructor to vari for passing initial values and adjoints. (#3089)
  • Improved efficiency of finite_diff_gradient_auto. (#3096)
  • Functions concerned with the number of entries in a container (size, cols, rows, ...) now consistently use long int as their return type. (#3086)
  • Removed support for adding makefile variables in ~/.config/stan/make.local. Use the make/local file in the Math directory instead. (#3090)
  • Fixed an indexing bug inside gp_matern32_cov. (#3084)
  • Fixed the new wiener_lpdf overloads evaluating their expression template arguments more than once. (#3112)
  • Fixed some failures to compile calls to pow when using libc++ 19. (#3110)
  • Updated templated complex functions in the Stan math library to be better candidates than the standard library functions during ADL. (#3122)
  • Fixed a warning about a mismatched struct/class declaration from clang 18. (#3091)
  • Fixed compilation of fabs with Apple Clang 15. (#3093)
  • Fix Eigen issue 2852 so that Eigen's kronecker product type works with value_type_t. (#3124)

v5.0.0-rc1 (25 November 2024)

25 Nov 11:31
Compare
Choose a tag to compare
Pre-release
Tagging v5.0.0-rc1

v4.9.0 (3 June 2024)

03 Jun 15:02
Compare
Choose a tag to compare
  • 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 with static 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 of domain_error and runtime_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 at x=0. Allows distance(x,y) to work for x=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 and weibull_lcdf functions for numerical stability as well as correct handling of y == 0.0. (#3037)
  • Improved speed of inv_Phi and std_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)

23 May 09:39
ce63b87
Compare
Choose a tag to compare
Pre-release
Tagging v4.9.0-rc2

v4.9.0-rc1 (13 May 2024)

13 May 11:42
Compare
Choose a tag to compare
Pre-release
Tagging v4.9.0-rc1

v4.8.1 (23 January 2024)

23 Jan 12:55
Compare
Choose a tag to compare
  • The distributions defined over cholesky factors now check that their arguments are in support (#3007)
  • Fixed an issue with the inv_wishart_cholesky_rng function (#3007)

v4.8.0 (16 January 2024)

16 Jan 12:28
Compare
Choose a tag to compare
  • 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::vectors for read/write events in matrix_cl with tbb::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)

08 Jan 19:52
Compare
Choose a tag to compare
Pre-release
Tagging v4.8.0-rc1

v4.7.0 (5 September 2023)

05 Sep 13:45
Compare
Choose a tag to compare
  • Improved accuracy of matrix_exp_multiply. (#2619)
  • Added framework for vectorising ternary functions (#2642)
  • Added select() function for vectorised ternary operations, as well as the any() and all() 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 remains 1E-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, and csr_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)

22 Aug 11:50
Compare
Choose a tag to compare
Pre-release
Tagging v4.7.0-rc1