v4.1.0 (2 June 2021)
·
3263 commits
to develop
since this release
- Added the Cash-Karp numerical integrator to improve numerical integration of ODEs with semi-stiffness and/or rapid oscillations.(#2336)
- Added the quantile function.(#2398)
- Added custom reverse mode for diag_pre_multiply() and diag_post_multiply() functions.(#2405, #2453)
- Optimized
multi_normal_cholesky
for non-autodiff covariance. (#2439) - Updated Sundials to 5.7.0.(#2441)
- Improved memory safety of nested paralellism.(#2445)
- Updated TBB to 2020.3.(#2447)
- Added the
STAN_NO_RANGE_CHECKS
macro which turns off bounds and range checks.(#2423, #2437) - Optimized
gp_*_cov
functions, especially for large amount of data.(#2464) - Fixed compilation errors when using
unsigned
andlong
types withapply_scalar_unary
.(#2469) - Added the implementation of the loglogistic probability density function.(#2477)
- Adds reverse mode specialization for `csr_matrix_times_vector(sparse data, dense parameter).(#2462)
- Allow tbb init to set the number of threads by an argument.(#2455)
- Fixed a bug with expressions in poisson distribution functions.(#2414)
- Fixed the off by one error in set_zero_all_adjoints_nested.(#2399)
- Fixed bug with printing Eigen expressions.(#2436)
- Refactored operands and partials to avoid extra allocations.(#2418)
- Tidied up distributions C++ code.(#2352)
- Updated the integrate_1d internal interface updated in preparation for closures(#2397)
- Added docs for new contributors with a getting started guide and docs for contributing new distributions.(#2350, #2466)
- Added an ODE testing framework.(#2432)
- Replaced the finite difference approximation of the Hessian from one that is based on function calls to one that is based on gradients.(#2348)
- Updated code generation for expression tests.(#2419)
- Fixed a bug in expression tests and benchmark generation, where downloading
stanc.exe
did not work on Windows.(#2480) - Varmat:
- Add
rep_*
utility functions for new matrix type(#2358) 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)- Added lb/ub/lub_constrain specializations.(#2373, #2382, #2387, #2379)
- Added script to automatically check stanc3 signatures for varmat compatibility.(#2434)
- Add
- OpenCL:
- Fixed OpenCL implementations of distributions mostly not working with row vectors.(#2360)
- 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) - Added OpenCL functions
rep_matrix
,rep_vector
,rep_row_vector
,rep_array
andidentity_matrix
.(#2388) - Added operator %.()
- Reorganized how work is distributed between threads in generated kernels that use colwise reductions (including all distributions), significantly improving GPU preformance.(#2392)
- Removed
.triangularTranspose()
member funtion frommatrix_cl
andTriangularMapCL
enum..triangularTranspose()
is replaced bysymmetrize_from_lower_tri()
.(#2393) - Added support for two dimensional reductions to kernel generator.(#2403)
- Added OpenCL implementations for functions
log_mix
,log_softmax
,log_sum_exp
,rank
,sd
,softmax
and˙variance
.(#2426) - Added OpenCL implementations for
ub_constrain
,lb_constrain
,lub_constrain
,offset_multiplier_constrain
andunit_vector_constrain
.(#2427) - Added OpenCL implementation for
prod
function and kernel generator operation for rowwise, colwise and 2d product.(#2433) - Added OpenCL implementations for functions:
bernoulli_cdf
,bernoulli_lcdf
,bernoulli_lccdf
,cauchy_cdf
,cauchy_lcdf
,cauchy_lccdf
.(#2446) - Added OpenCL implementations for functions
double_exponential_cdf
,double exponential_lcd
,double_exponential_lccdf
˙,exp_mod_normal_cdf
,exp_mod_normal_lcdf
andexp_mod_normal_lccdf
.(#2449) - Added OpenCL implementations for functions
exponential_cdf
,exponential_lcdf
,exponential_lccdf
,frechet_cdf
,frechet_lcdf
andfrechet_lccdf
.(#2450) - Added OpenCL implementations for functions
gumbel_cdf
,gumbel_lcdf
,gumbel_lccdf
,logistic_cdf
,logistic_lcdf
andlogistic_lccdf
.(#2451) - Added a new kernel generator operation that allows writing custom OpenCL code.(#2454)
- Added OpenCL implementations for functions
pareto_cdf
,pareto_lccdf
,pareto_lcdf
,pareto_type_2_cdf
,pareto_type_2_lccdf
, andpareto_type_2_lcdf
.(#2456) - Added OpenCL implementations for functions:
rayleigh_cdf
,rayleigh_lccdf
,rayleigh_lcdf
,skew_double_exponential_cdf
,skew_double_exponential_lccdf
,skew_double_exponential_lcdf
andskew_double_exponential_lpdf
.(#2457) - Added OpenCL implementations for functions
lognormal_cdf
,lognormal_lccdf
,lognormal_lcdf
,normal_cdf
,normal_lccdf
,normal_lcdf
.(#2458) - Added OpenCL implementations for functions
std_normal_cdf
,std_normal_lccdf
,std_normal_lcdf
,uniform_cdf
,uniform_lccdf
anduniform_lcdf
.(#2459) - Added OpenCL implementations for functions
weibull_cdf
,weibull_lccdf
andweibull_lcdf
.(#2460) - Removed unused OpenCL kernels and checks.(#2463)
- Added OpenCL prim implementation for functions:
gp_exponential_cov
,gp_matern32_cov
,matern_52_cov
and both prim and rev implementation forgp_dot_prod_cov
.(#2471) - Added reference (
ref_type
) for kernel generator expressions.(#2404) - Added typecast operation to kernel generator.(#2472)