This bug (which I just pushed a fix for) sometimes results in bad
behavior.
goodrich@CYBERPOWERPC:/opt/stan$ git grep -n "assert(" src/ | cat
src/stan/mcmc/adaptive_cdhmc.hpp:153: assert(x.size() == _x.size());
src/stan/mcmc/adaptive_cdhmc.hpp:154: assert(z.size() == _z.size());
src/stan/mcmc/hmc_base.hpp:142: assert(params_r->size() == model.num_params_r());
src/stan/mcmc/hmc_base.hpp:146: assert(params_i->size() == model.num_params_i());
src/stan/mcmc/hmc_base.hpp:168: assert(x.size() == this->_x.size());
src/stan/mcmc/hmc_base.hpp:169: assert(z.size() == this->_z.size());
src/stan/meta/traits.hpp:150: // assert((length(x1) == 1) || (length(x1) == result));
src/stan/meta/traits.hpp:151: // assert((length(x2) == 1) || (length(x2) == result));
src/stan/meta/traits.hpp:160: // assert((length(x1) == 1) || (length(x1) == result));
src/stan/meta/traits.hpp:161: // assert((length(x2) == 1) || (length(x2) == result));
src/stan/meta/traits.hpp:162: // assert((length(x3) == 1) || (length(x3) == result));
src/test/io/reader_test.cpp:680: assert(solver.eigenvalues()[0] > 1E-10);
src/test/io/reader_test.cpp:706: assert(solver.eigenvalues()[0] > 1E-10);
src/test/io/reader_test.cpp:769: assert(solver.eigenvalues()[0] > 1E-10); // check positive definite with smallest eigenvalue > 0
src/test/io/reader_test.cpp:795: assert(solver.eigenvalues()[0] > 1E-10); // check positive definite with smallest eigenvalue > 0