Stan Dev Math Versions Save

The Stan Math Library is a C++ template library for automatic differentiation of any order using forward, reverse, and mixed modes. It includes a range of built-in functions for probabilistic modeling, linear algebra, and equation solving.

v4.8.1

3 months ago
  • 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

3 months ago
  • 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

3 months ago

v4.7.0

7 months ago
  • 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

8 months ago

v4.6.2

11 months ago

Fix an issue in Stan, see release notes.

v4.6.1

1 year ago
  • Fix an issue when compiling with newer versions of LLVM's libc++ (#2892)

v4.6.0

1 year ago
  • Updated to Eigen 3.4 (#2583)
  • operands_and_partials expanded to accept 8 parameters. (#2833)
  • Added new multidimensional integration routine hcubature. (#2838)
  • Added eigenvalues and eigenvectors overloads which accept matrices with complex values. (#2846)
  • Allowed Sundials to be linked to separately installed version. (#2861)
  • Fixed is_nan to compile under the Microsoft compiler suite. (#2870)
  • Fixed csr_to_dense_matrix to work in case of matrix with empty first row. (#2877)
  • Fixed a bug where eigenvalues_sym would return a matrix with a dynamic number of rows equal to 1, rather than a vector. (#2884)
  • Updated eigenvalues_sym return type for RcppEigen compatibility. (#2887)
  • Various testing improvements. (#2832, #2864, #2869, #2878, #2880)
  • Fixed an issue with building TBB on gcc 13. (#2890)

v4.6.0-rc1

1 year ago

v4.5.0

1 year ago
  • Added the generalised hypergeometric function. (#2510)
  • Added var<Matrix> overloads for pow(), owens_t(), log_inv_logit . (#2546, #2787, #2806)
  • Add tuple overload and cleanup code for promote_scalar. (#2706)
  • New gradient function allows evaluated gradient to be stored into an array, enabling memory reuse when stan/math called via a FFI. (#2743)
  • Added function for casting double and std::vector<double> types to int and std::vector<int> types(#2771)
  • Added hypergeometric_2F1 function. (#2792)
  • Fix bug with vectorised pow() incorrectly forcing Eigen::Matrix return instead of Eigen::Array. (#2793)
  • Exposed the hypergeometric_3F2 function and improved its numerical stability. (#2797)
  • Fixed incorrect return from log_inv_logit_diff with positive infinity first argument. (#2798)
  • Added reverse-mode specializations for fft2 and inv_fft2. (#2800)
  • Removed the cause of the out-of-order initializer compiler warning.(#2808)
  • Vectorized atan2().(#2812)
  • Added complex_schur_decompose_t and complex_schur_decompose_u.(#2814)
  • Vectroized the conj() function. (#2817)
  • Stan's algebraic solvers now support variadic arguments. (#2820)
  • Fixed forward mode autodiff for FFT functions. (#2821)
  • Added log_sum_exp_signed function for computing log_sum_exp while respecting signs of arguments and tracking the sign of the result. (#2829)
  • stan_print can now print std::tuple types. (#2835)
  • stan::math::minus can now accept std::vector. (#2840)