13 msg +=
"\n(should be ";
14 msg += std::to_string(
sz);
16 msg += std::to_string(
v.size());
18 throw std::invalid_argument(
msg);
26 }
else if (
v->size() !=
sz) {
27 msg +=
"\n(should be ";
28 msg += std::to_string(
sz);
30 msg += std::to_string(
v->size());
32 throw std::invalid_argument(
msg);
36template <Config Conf,
class V>
38 name +=
": dimension mismatch";
44 if (m.cols() != cols || m.rows() != rows) {
45 msg +=
"\n(should be ";
46 msg += std::to_string(rows);
48 msg += std::to_string(cols);
50 msg += std::to_string(m.rows());
52 msg += std::to_string(m.cols());
54 throw std::invalid_argument(
msg);
60 name +=
": dimension mismatch";
void check_dim(std::string name, V &&v, auto sz)
void check_dim_msg(crvec< Conf > v, auto sz, std::string msg)
typename Conf::crmat crmat
typename Conf::crvec crvec