Skip to content

v3.2.0 (22 April 2020)

Choose a tag to compare

@serban-nicusor-toptal serban-nicusor-toptal released this 22 Apr 16:18

Math 3.2.0 Release Notes

Feature summary:

  • Added new reduce_sum utility 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