Skip to content

v4.1.0 (2 June 2021)

Compare
Choose a tag to compare
@serban-nicusor-toptal serban-nicusor-toptal released this 02 Jun 18:50
· 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 and long types with apply_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)
  • 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 and identity_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 from matrix_cl and TriangularMapCL enum. .triangularTranspose() is replaced by symmetrize_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 and unit_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 and exp_mod_normal_lccdf.(#2449)
    • Added OpenCL implementations for functions exponential_cdf, exponential_lcdf, exponential_lccdf, frechet_cdf, frechet_lcdf and frechet_lccdf.(#2450)
    • Added OpenCL implementations for functions gumbel_cdf, gumbel_lcdf, gumbel_lccdf, logistic_cdf, logistic_lcdf and logistic_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, and pareto_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 and skew_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 and uniform_lcdf.(#2459)
    • Added OpenCL implementations for functions weibull_cdf, weibull_lccdf and weibull_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 for gp_dot_prod_cov.(#2471)
    • Added reference (ref_type) for kernel generator expressions.(#2404)
    • Added typecast operation to kernel generator.(#2472)