Skip to content

Releases: stan-dev/math

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

v4.6.2 (15 May 2023)

15 May 19:59
Compare
Choose a tag to compare

Fix an issue in Stan, see release notes.

v4.6.1 (2 May 2023)

02 May 12:09
Compare
Choose a tag to compare
  • Fix an issue when compiling with newer versions of LLVM's libc++ (#2892)

v4.6.0 (20 April 2023)

20 Apr 17:12
Compare
Choose a tag to compare
  • 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 (10 April 2023)

10 Apr 15:17
Compare
Choose a tag to compare
Pre-release
Tagging v4.6.0-rc1

v4.5.0 (21 November 2022)

21 Nov 16:09
Compare
Choose a tag to compare
  • Added the generalised hypergeometric function. (#2510)
  • Added var 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)

v4.5.0-rc1 (8 November 2022)

08 Nov 09:55
Compare
Choose a tag to compare
Pre-release
Tagging v4.5.0-rc1

v4.4.0 (1 July 2022)

01 Jul 14:43
Compare
Choose a tag to compare

Complex:

  • Added fast Fourier transform (FFT) implementations of 1D and 2D discrete Fourier transform and their inverses. (#2686, #2750)
  • Added type traits for detecting whether a type has a value type that is complex. (#2694)
  • Added vectorized versions of get_real and get_imag. (#2700)
  • Vectorized complex abs(), to_complex. (#2737, #2749)

New functions:

  • Added the incomplete beta function inverse. (#2637)
  • Added the wishart_cholesky_lpdf, which is the Cholesky parameterization of the Wishart distribution of both the input matrix and the scale matrix. (#2710)
  • Added the inverse Wishart Cholesky parameterization lpdf\lupdf is available along with inv_wishart_cholesky_rng. (#2713)
  • Added the Cholesky parameterization of the multivariate Student's T distribution. (#2715)
  • Added the quantile function of the standard normal density function with log input. (#2744)

Misc:

  • Upgraded Sundials to version 6.1.1. (#2692)
  • Updated Boost to 1.78.0. (#2725)
  • Added namespace qualifiers to size and apply calls for C++17 compatibility. (#2693)
  • Enabled address sanitizer and fix it when running inside Docker in Flatiron CI. (#2702)
  • Made arena_allocator usable for all std containers. (#2708)
  • Added gradient calculation for the a2 input in stan-math for the grad_2F1 function and fixes incorrect return values when z is between -1 and 0. (#2721)
  • Updated the signatures of eigenvalues and eigenvectors to use our pseudo-concept require templates.(#2728)
  • norm1 and norm2 were extended with the apply_vector_unary to accept general std::vectors as well as the Eigen vectors previously supported. (#2742)
  • Cleaned up compiler warnings for unused variables and non-consistent use of class and struct for ops_partials_edge. (#2757)
  • Fixed the check for y in gamma_lpdf so that it now errors if y is not a positive finite value. (#2758)
  • Improved numerical stability of gamma_lcdf gradients (#2767)

v4.4.0-rc1 (21 June 2022)

21 Jun 16:52
882cd22
Compare
Choose a tag to compare
Pre-release
Tagging v4.4.0-rc1