check_simplex makes sure the elements of a vector sum to 1. When constructing a vector, I get a value that slightly off from 1 – not quite sury why.
double p1_init = 0.65; Eigen::VectorXd rho(n_states); rho << p1_init, 1 - p1_init;
and later using this as an argument
density = hmm_marginal_lpdf(log_omegas, Gamma, rho);
Produces the following error message
C++ exception with description "hmm_marginal_lpdf: rho is not a valid simplex. sum(rho) = 1.000001, but should be 1" thrown in the test body.
By construction, however
rho should be a simplex. Is arithmetic error introduced by a simple subtraction?