v3.2.0 (22 April 2020)
Math 3.2.0 Release Notes
Feature summary:
- Added new
reduce_sumutility for parallelizing calculations over multiple cores of one computer - Sundials upgrade to version 5.2.0
- Support for size 0 matrices [Ben: This needs checked by someone in release candidate, it might be just a Math-facing feature]
- discrete_range_lpmf/lcdf/lccdf/rngs/etc. added for uniform discrete random variable
- Added row vector, array and int_array construction utilities
- Adds reverse function for vectors, row vectors, and std::vectors
- Added release notes section to pull request to make assembling release notes easier (this must be filled out for new pulls)
- Added apply operator (standin for C++17 apply)
- Added support for complex numbers at all levels of the autodiff library
Bugfix summary:
- Fixed problems with vectorizing neg_binomial_* functions that lead to wrong answers
- Improved lbeta to be more numerically stable with one large and one small argument
- Improved numerical stability with binomial_coefficient_log, neg_binomial_2_lpmf, and neg_binomial_2_log_lpmf computations
- Fixed problem with wrong gradients for large arguments to log_sum_exp
- Fixed bug where normal_id_glm did not work with a sigma is not an autodiff type
- Fixed problem with makefiles on Windows
- Fix ode gradients with respect to t0
There were also extensive work in various parts of the Math library adding docs, cleaning up distribution functions, adding tests, generalizing functions to work with special Eigen temporary types, working with new template functions (return_type_t, etc.), and otherwise making quality of life improvements.
Thanks to everyone who submitted and reviewed pull requests! The list of pull request submitters for this release are (in no particular order): @t4c1, @mcol, @martinmodrak, @rok-cesnovar, @serban-nicusor-toptal, @SteveBronder, @kedartal, @wds15, @bob-carpenter, @peterwicksstringfield, @andrjohns, @pgree, @IvanYashchuk, and @bbbales2.
Pull request details:
| Contributor | Title |
|---|---|
| t4c1 : (#1824) | Add unary operations minus and logical negation to kernel generator |
| wds15 : (#1819) | Feature/issue 1818 upgrade sundials 520 |
| SteveBronder : (#1813) | adds reduce_sum and tests |
| t4c1 : (#1802) | Add extended kernel generator docs |
| t4c1 : (#1801) | Add support for device functions to kernel generator |
| SteveBronder : (#1800) | Adds auxilary functions needed for reduce_sum |
| t4c1 : (#1797) | Add broadcasting to kernel generator |
| SteveBronder : (#1791) | adds an apply function and cleans adj_jac_apply to use it |
| peterwicksstringfield : (#1780) | Feature/elementwise check |
| bob-carpenter : (#1774) | Feature/0123 complex funs |
| t4c1 : (#1769) | Add transposition to kernel generator |
| t4c1 : (#1767) | avoid redundant buffer allocations in kernel generator |
| t4c1 : (#1751) | Allow kernel generator to calculate multiple outputs in single kernel |
| t4c1 : (#1740) | Add colwise reductions to kernel generator |
| bob-carpenter : (#1736) | Feature/1734 return scalar meta |
| andrjohns : (#1727) | Eigen::Map and elementwise functions |
| t4c1 : (#1726) | Bugfix common subexpression elimination in kernel generator |
| bob-carpenter : (#1720) | Feature/0123 complex spec |
| mcol : (#1716) | Add discrete_range_cdf, discrete_range_lcdf and discrete_range_lccdf |
| martinmodrak : (#1706) | Using local_nested_autodiff for all instances of nested autodiff |
| mcol : (#1680) | Add discrete_range_rng(lower, upper) and discrete_range_lpmf |
| wds15 : (#1675) | avoid vari on chain-stack if var is constructed from an arithmetic type |
| martinmodrak : (#1657) | Improved behavior of expect_near_rel |
| mcol : (#1650) | Add reverse |
| mcol : (#1636) | Add row vector, array and int_array construction utilities |
| t4c1 : (#1623) | Add rowwise reductions to kernel generator |
| martinmodrak : (#1575) | Additional tests for distributions |
| martinmodrak : (#1830) | More stable implementation of neg_binomial_2_log_lpmf |
Fixes
| Contributor | Title |
|---|---|
| mitzimorris : (#1842) | Bugfix/1839 make shell linux |
| bob-carpenter : (#1837) | return value type for complex abs; fixes #1836 |
| bbbales2 : (#1834) | Fix ode gradients with respect to t0 (Issue #1833) |
| rok-cesnovar : (#1825) | Add licensing info to log_modified_bessel_first_kind |
| bbbales2 : (#1810) | Added arithmetic version of pow (Fixes: #1809) |
| t4c1 : (#1807) | fixed normal_id_glm for const sigma |
| rok-cesnovar : (#1795) | Makefiles: Add $(strip) to findfiles function |
| SteveBronder : (#1794) | Cleanup requires with macros |
| rok-cesnovar : (#1789) | Reorganize Jenkins test stages |
| rok-cesnovar : (#1786) | Add a release notes section in the pull request template |
| rok-cesnovar : (#1784) | Makefiles: strip newlines in findiles and fix runChecks call |
| serban-nicusor-toptal : (#1777) | Moved verify changes Jenkins step to shared libraries. |
| pgree : (#1772) | Changed calculation of log_sum_exp(x1, x2) |
| peterwicksstringfield : (#1771) | More documentation fixups. |
| SteveBronder : (#1768) | [WIP][WIP] Add docs and generic value type signatures for reduce_sum |
| rok-cesnovar : (#1765) | Cleanup duplicated overloads of scalar std:: functions |
| mcol : (#1762) | Remove fwd versions of qr_Q and qr_R |
| mcol : (#1761) | Move size_zero() calls after other consistency checks (L-Z) |
| mcol : (#1758) | Move size_zero() calls after other consistency checks (A-I) |
| peterwicksstringfield : (#1756) | Documentation fixups |
| t4c1 : (#1754) | Generalize */fun starting with cr-d |
| t4c1 : (#1747) | Generalize */fun startimg with chole-cov |
| mcol : (#1744) | Reuse intermediate computations in distributions part 1 |
| rok-cesnovar : (#1743) | Update license.md year to 2020 |
| t4c1 : (#1732) | Generalize */fun starting with a-chol2 |
| mcol : (#1730) | Avoid 'Blocked loading mixed active content' errors |
| mcol : (#1728) | Keep computations in log space and simplify expressions in beta binomial_*cdf |
| serban-nicusor-toptal : (#1724) | Run CI/CD only on Source Code |
| pgree : (#1722) | remove discontinuity in lub_constrain; fixes #1441 |
| mcol : (#1718) | Remove size zero checks from check_multiplicable |
| mcol : (#1717) | Remove promote_common and common_type |
| mcol : (#1715) | Cleanup mdivide_* and tests |
| rok-cesnovar : (#1712) | fix develop |
| rok-cesnovar : (#1711) | Bugfix/include what you use in /prim/fun |
| rok-cesnovar : (#1707) | Add namespace qualifiers to size() |
| mcol : (#1705) | Check for positive definiteness only after computing the LLT factors |
| mcol : (#1701) | Don't throw when computing the inverse of a size zero matrix |
| mcol : (#1698) | Improve tests and documentation for quad_form and quad_form_sym |
| mcol : (#1688) | Add positive definite checks to mdivide_left_spd |
| mcol : (#1685) | Allow multiply for size 0 inputs |
| kedartal : (#1684) | Explicitly call stan::math::size (fix ambiguous call versus std::size) |
| mcol : (#1682) | Check for consistent sizes before comparing arguments |
| mcol : (#1678) | Reorganize files after flatten |
| mcol : (#1673) | Remove Boost deprecation warning |
| mcol : (#1665) | make develop build again |
| mcol : (#1663) | correctness fixes in neg_binomial_* functions |
| mcol : (#1661) | Move vectorize files to meta folder |
| t4c1 : (#1660) | Generalize view and size functions |
| mcol : (#1655) | Cleanup in poisson_cdf, poisson_lccdf and poisson_lcdf |
| serban-nicusor-toptal : (#1653) | Fix permission denied in Jenkins pipeline |
| mcol : (#1649) | Clean up code to use index_type_t, return_type_t and partials_return_t |
| t4c1 : (#1628) | Generalize operator-like functions |
| martinmodrak : (#1614) | Improved numerical stability of binomial_coefficient_log |
| rok-cesnovar : (#1567) | Cleanup the use of find in makefile |
| SteveBronder : (#1525) | Generic var templates for operators and std::iterator_trait var/fvar specialization |
| martinmodrak : (#1497) | Fixing negative binomial phi cutoff |
| t4c1 : (#1796) | Bugfix: make kernel generator wait for events on matrices |
| mcol : (#1674) | Document template parameters in /prim |
| mcol : (#1668) | Rename spaced_* to linspaced_* |
| wds15 : (#1821) | clarify README.md |