|
1 | 1 | Stan Math Library Release Notes
|
2 | 2 |
|
| 3 | +====================================================================== |
| 4 | +v4.1.0 (2 June 2021) |
| 5 | +====================================================================== |
| 6 | + |
| 7 | + - Added the Cash-Karp numerical integrator to improve numerical integration of ODEs with semi-stiffness and/or rapid oscillations.(#2336) |
| 8 | + - Added the quantile function.(#2398) |
| 9 | + - Added custom reverse mode for diag_pre_multiply() and diag_post_multiply() functions.(#2405, #2453) |
| 10 | + - Optimized `multi_normal_cholesky` for non-autodiff covariance. (#2439) |
| 11 | + - Updated Sundials to 5.7.0.(#2441) |
| 12 | + - Improved memory safety of nested paralellism.(#2445) |
| 13 | + - Updated TBB to 2020.3.(#2447) |
| 14 | + - Added the `STAN_NO_RANGE_CHECKS` macro which turns off bounds and range checks.(#2423, #2437) |
| 15 | + - Optimized `gp_*_cov` functions, especially for large amount of data.(#2464) |
| 16 | + - Fixed compilation errors when using `unsigned` and `long` types with `apply_scalar_unary`.(#2469) |
| 17 | + - Added the implementation of the loglogistic probability density function.(#2477) |
| 18 | + - Adds reverse mode specialization for `csr_matrix_times_vector(sparse data, dense parameter).(#2462) |
| 19 | + - Allow tbb init to set the number of threads by an argument.(#2455) |
| 20 | + - Fixed a bug with expressions in poisson distribution functions.(#2414) |
| 21 | + - Fixed the off by one error in set_zero_all_adjoints_nested.(#2399) |
| 22 | + - Fixed bug with printing Eigen expressions.(#2436) |
| 23 | + - Refactored operands and partials to avoid extra allocations.(#2418) |
| 24 | + - Tidied up distributions C++ code.(#2352) |
| 25 | + - Updated the integrate_1d internal interface updated in preparation for closures(#2397) |
| 26 | + - Added docs for new contributors with a getting started guide and docs for contributing new distributions.(#2350, #2466) |
| 27 | + - Added an ODE testing framework.(#2432) |
| 28 | + - Replaced the finite difference approximation of the Hessian from one that is based on function calls to one that is based on gradients.(#2348) |
| 29 | + - Updated code generation for expression tests.(#2419) |
| 30 | + - Fixed a bug in expression tests and benchmark generation, where downloading `stanc.exe` did not work on Windows.(#2480) |
| 31 | +- Varmat: |
| 32 | + - Add `rep_*` utility functions for new matrix type(#2358) |
| 33 | + - `var<Matrix>` overloads for digamma, distance, Phi, inv_Phi, Phi_approx, sqrt, tail, tgamma, rows_dot_self, fma, offset_multiplier, bessel first and second kind, beta, binary log loss, ceil, erf, erfc, exp2, expm1, falling_factorial and floor (#2362, #2378, #2396, #2461) |
| 34 | + - Added lb/ub/lub_constrain specializations.(#2373, #2382, #2387, #2379) |
| 35 | + - Added script to automatically check stanc3 signatures for varmat compatibility.(#2434) |
| 36 | +- OpenCL: |
| 37 | + - Fixed OpenCL implementations of distributions mostly not working with row vectors.(#2360) |
| 38 | + - Added prim and rev OpenCL implementations for `to_matrix`, `to_vector`, `to_row_vector`, `to_array_1d`, `to_array_2d`, `append_array`, `reverse`, `symmetrize_from_lower_tri`, `symmetrize_from_upper_tri` `trace`.(#2377, #2383, #2388) |
| 39 | + - Added OpenCL functions `rep_matrix`, `rep_vector`, `rep_row_vector`, `rep_array` and `identity_matrix`.(#2388) |
| 40 | + - Added operator %.() |
| 41 | + - Reorganized how work is distributed between threads in generated kernels that use colwise reductions (including all distributions), significantly improving GPU preformance.(#2392) |
| 42 | + - Removed `.triangularTranspose()` member funtion from `matrix_cl` and `TriangularMapCL` enum. `.triangularTranspose()` is replaced by `symmetrize_from_lower_tri()`.(#2393) |
| 43 | + - Added support for two dimensional reductions to kernel generator.(#2403) |
| 44 | + - Added OpenCL implementations for functions `log_mix`, `log_softmax`, `log_sum_exp`, `rank`, `sd`, `softmax` and `˙variance`.(#2426) |
| 45 | + - Added OpenCL implementations for `ub_constrain`, `lb_constrain`, `lub_constrain`, `offset_multiplier_constrain` and `unit_vector_constrain`.(#2427) |
| 46 | + - Added OpenCL implementation for `prod` function and kernel generator operation for rowwise, colwise and 2d product.(#2433) |
| 47 | + - Added OpenCL implementations for functions: `bernoulli_cdf`, `bernoulli_lcdf`, `bernoulli_lccdf`, `cauchy_cdf`, `cauchy_lcdf`, `cauchy_lccdf`.(#2446) |
| 48 | + - Added OpenCL implementations for functions `double_exponential_cdf`, `double exponential_lcd`, `double_exponential_lccdf`˙, `exp_mod_normal_cdf`, `exp_mod_normal_lcdf` and `exp_mod_normal_lccdf`.(#2449) |
| 49 | + - Added OpenCL implementations for functions `exponential_cdf`, `exponential_lcdf`, `exponential_lccdf`, `frechet_cdf`, `frechet_lcdf` and `frechet_lccdf`.(#2450) |
| 50 | + - Added OpenCL implementations for functions `gumbel_cdf`, `gumbel_lcdf`, `gumbel_lccdf`, `logistic_cdf`, `logistic_lcdf` and `logistic_lccdf`.(#2451) |
| 51 | + - Added a new kernel generator operation that allows writing custom OpenCL code.(#2454) |
| 52 | + - Added OpenCL implementations for functions `pareto_cdf`, `pareto_lccdf`, `pareto_lcdf`, `pareto_type_2_cdf`, `pareto_type_2_lccdf`, and `pareto_type_2_lcdf`.(#2456) |
| 53 | + - Added OpenCL implementations for functions: `rayleigh_cdf`, `rayleigh_lccdf`, `rayleigh_lcdf`, `skew_double_exponential_cdf`, `skew_double_exponential_lccdf`, `skew_double_exponential_lcdf` and `skew_double_exponential_lpdf`.(#2457) |
| 54 | + - Added OpenCL implementations for functions `lognormal_cdf`, `lognormal_lccdf`, `lognormal_lcdf`, `normal_cdf`, `normal_lccdf`, `normal_lcdf`.(#2458) |
| 55 | + - Added OpenCL implementations for functions `std_normal_cdf`, `std_normal_lccdf`, `std_normal_lcdf`, `uniform_cdf`, `uniform_lccdf` and `uniform_lcdf`.(#2459) |
| 56 | + - Added OpenCL implementations for functions `weibull_cdf`, `weibull_lccdf` and `weibull_lcdf`.(#2460) |
| 57 | + - Removed unused OpenCL kernels and checks.(#2463) |
| 58 | + - Added OpenCL prim implementation for functions: `gp_exponential_cov`, `gp_matern32_cov`, `matern_52_cov` and both prim and rev implementation for `gp_dot_prod_cov`.(#2471) |
| 59 | + - Added reference (`ref_type`) for kernel generator expressions.(#2404) |
| 60 | + - Added typecast operation to kernel generator.(#2472) |
| 61 | + |
3 | 62 | ======================================================================
|
4 | 63 | v4.0.1 (17 February 2021)
|
5 | 64 | ======================================================================
|
|
0 commit comments