Closed WardBrian closed 1 month ago
Name | Old Result | New Result | Ratio | Performance change( 1 - new / old ) |
---|---|---|---|---|
arma/arma.stan | 0.34 | 0.28 | 1.19 | 16.09% faster |
low_dim_corr_gauss/low_dim_corr_gauss.stan | 0.01 | 0.01 | 1.04 | 3.7% faster |
gp_regr/gen_gp_data.stan | 0.03 | 0.02 | 1.19 | 15.96% faster |
gp_regr/gp_regr.stan | 0.12 | 0.09 | 1.31 | 23.68% faster |
sir/sir.stan | 72.78 | 72.53 | 1.0 | 0.35% faster |
irt_2pl/irt_2pl.stan | 4.01 | 4.17 | 0.96 | -4.07% slower |
eight_schools/eight_schools.stan | 0.06 | 0.06 | 0.99 | -1.23% slower |
pkpd/sim_one_comp_mm_elim_abs.stan | 0.25 | 0.26 | 0.94 | -6.31% slower |
pkpd/one_comp_mm_elim_abs.stan | 19.73 | 20.24 | 0.97 | -2.6% slower |
garch/garch.stan | 0.44 | 0.41 | 1.07 | 6.75% faster |
low_dim_gauss_mix/low_dim_gauss_mix.stan | 2.72 | 2.6 | 1.04 | 4.21% faster |
arK/arK.stan | 1.8 | 1.75 | 1.03 | 2.71% faster |
gp_pois_regr/gp_pois_regr.stan | 2.83 | 2.76 | 1.02 | 2.4% faster |
low_dim_gauss_mix_collapse/low_dim_gauss_mix_collapse.stan | 8.79 | 8.43 | 1.04 | 4.04% faster |
performance.compilation | 198.2 | 196.74 | 1.01 | 0.74% faster |
Mean result: 1.0544108761245772
Jenkins Console Log Blue Ocean Commit hash: 3f7e09209b23151b1bc3551fb3b85a64d7f53210
Summary
This closes #3075. Commit a68fafb8c24a961123f4d55163f733a619268568 added calls to
std::move
to the internal loop of the hcubature integrator, which resulted in leaving null matrices in thems
vector. If these were revisited later, this lead to Eigen failures.Tests
I've added @andrjohns's reproducible example as a test case. It's possible we could have a more direct one, but I don't understand enough about how the box selection works in the algorithm to craft it.
Side Effects
Release notes
Fixed a use-after-move bug in
hcubature
.Checklist
[x] Copyright holder: Simons Foundation The copyright holder is typically you or your assignee, such as a university or company. By submitting this pull request, the copyright holder is agreeing to the license the submitted work under the following licenses:
[x] the basic tests are passing
./runTests.py test/unit
)make test-headers
)make test-math-dependencies
)make doxygen
)make cpplint
)[x] the code is written in idiomatic C++ and changes are documented in the doxygen
[x] the new changes are tested