Releases: stan-dev/math
Releases · stan-dev/math
v4.5.0-rc1 (8 November 2022)
Tagging v4.5.0-rc1
v4.4.0 (1 July 2022)
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\lupdfis available along withinv_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
sizeandapplycalls for C++17 compatibility. (#2693) - Enabled address sanitizer and fix it when running inside Docker in Flatiron CI. (#2702)
- Made
arena_allocatorusable for all std containers. (#2708) - Added gradient calculation for the a2 input in stan-math for the
grad_2F1function and fixes incorrect return values whenzis between -1 and 0. (#2721) - Updated the signatures of
eigenvaluesandeigenvectorsto use our pseudo-concept require templates.(#2728) norm1andnorm2were extended with theapply_vector_unaryto 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
yingamma_lpdfso 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)
Tagging v4.4.0-rc1
v4.3.2 (25 March 2022)
- Fixed template error for fma with matrix inputs.
- Fixed bug that did not allow for
var<Matrix>types with different compile-time rows/cols to be assigned to one another.
v4.3.1 (2 March 2022)
- Fixed a bug with to_matrix(row_vector) and to_matrix(vector) that cause compile-time issues when the result was not stored in a temporary variable.
v4.3.0 (14 February 2022)
- Changed constants to
static constexprfor efficiency, added Euler's Gamma constant. (#2478) - Added lmultiply function that parallels multiply_log so that the language doesn't have to rename. (#2596)
- Cleaned up tests to include <CL/opencl.hpp> instead of <CL/cl2.hpp>. (#2610)
- Added missing implementations of that shadow the signatures of math functions in the
std::namespace. (#2612) - Bugfix for the bug where 2x2 matrix exponential function outputs NaN for matrices with large eigenvalues. (#2616)
- Add compiler flag
-D_BOOST_LGAMMAto allow users to force use of Boostlgammaimplementation. (#2618) - More informative error messages for ODE solvers. (#2620)
- Force linker to respect rpath set at compile time. (#2627)
- Upgraded Sundials to 6.0.0. (#2629)
- Added
norm1()andnorm2(). (#2636) - Add missing
von_mises_cdf_logandvon_mises_ccdf_logsignatures. (#2640) - Refactored the DAE solver.(#2644)
- Added the inverse of the complementary error function -
inv_erfc(). (#2645) - Updated member functions for accessing tangents in scalar
fvartypes. (#2652) - Added support for the new matrix type for GLM functions. (#2655)
v4.3.0-rc1 (31 January 2022)
Tagging v4.3.0-rc1
v4.2.1 (21 October 2021)
- Fixed issues with Adjoint ODE memory management
- Fixed included OpenCL headers
v4.2.0 (5 October 2021)
Miscellaneous:
- Updated Powell and Newton solvers to use an adjoint method to propagate derivatives in reverse mode which should result in modest speed-up. Added variadic interfaces (
algebra_solver_powell_implandalgebra_solver_newton_impl). (#2421) - Cleanup unused local typedefs. (#2505)
- Fix tbb initialization so that if STAN_THREADS is not defined then the number of threads is set to 1. (#2514)
- Bugfix for range checks not overriding STAN_THREADS. (#2530)
- Bugfix for vectorized log include order. (#2542)
- Added vectorized checks called by the stanc compiler. (#2556)
- Adds an overload for the constrain functions on whether to accumulate jacobians into log probability argument.(#2559)
- Updated algorithm for inv_Phi which is approximately 2x faster with precision of 16 digits. Based on the Fortran algorithm described in Wichura, M. J. (1988) Algorithm AS 241: The percentage points of the normal distribution. Applied Statistics, 37, 477–484.(#2566)
- Vectorized unconstrain and constraing functions. (#2574, #2580)
- Fixed generalized inverse so that it works for less than full rank symmetric matrices. (#2577)
Varmat:
- Added
var<Matrix>overloads forappend_row(),append_col(),rep_vector(),rep_row_vector(),to_vector(),divide(). (#2484, #2487, #2521, #2557) - Added nested vectorized functions for the new matrix type. (#2502)
- Added support for basic slicing and dimension queries operators support var types. (#2507)
- Added several unary functions for
var<Matrix>as well as division.(#2527) - Allow accumulator to accept
var<Matrix>matrix types(#2535)
Complex:
- Unary vectorized functions support containers of complex numbers(#2549)
- Added complex scalar functions get_real(), get_imag(), and to_complex.(#2554)
OpenCL:
- Added prim-only OpenCL implementations for
qr_Q,qr_R,qr_thin_Q,qr_thin_R. (#2479) - Fixed a bug for kernel generator operation
block,eigenvalues_sym,eigenvectors_sym. (#2479, #2512) - Added OpenCL implementation for
cumulative_sum. (#2483) - Fixed a bug that made OpenCL
identity_matrixunusable. (#2499) - Added reverse mode for indexing.(#2511)
- Fixed a number of bugs related to conversions of
arena_matrix_clintomatrix_cl. Before this PR such a conversion invoked kernel generator and made a copy of data. Now only references to data are updated.(#2538) - Fixes kernel generator allocating more local memory than it needed.(#2541)
- Added OpenCL implementation of sorting (
sort_ascandsort_desc).(#2550) - Bugfix OpenCL kernels so that they can no longer modify a const
matrix_cl.(#2553)
v4.2.0-rc1
Tagging v4.2.0-rc1