1 #ifndef STAN_MATH_PRIM_SCAL_ERR_CHECK_SIZE_MATCH_HPP 2 #define STAN_MATH_PRIM_SCAL_ERR_CHECK_SIZE_MATCH_HPP 23 template <
typename T_size1,
typename T_size2>
25 T_size1 i,
const char* name_j, T_size2 j) {
26 if (i == static_cast<T_size1>(j))
29 std::ostringstream msg;
30 msg <<
") and " << name_j <<
" (" << j <<
") must match in size";
31 std::string msg_str(msg.str());
48 template <
typename T_size1,
typename T_size2>
50 const char* name_i, T_size1 i,
const char* expr_j,
51 const char* name_j, T_size2 j) {
52 if (i == static_cast<T_size1>(j))
54 std::ostringstream updated_name;
55 updated_name << expr_i << name_i;
56 std::string updated_name_str(updated_name.str());
57 std::ostringstream msg;
58 msg <<
") and " << expr_j << name_j <<
" (" << j <<
") must match in size";
59 std::string msg_str(msg.str());
60 invalid_argument(
function, updated_name_str.c_str(), i,
"(", msg_str.c_str());
void check_size_match(const char *function, const char *name_i, T_size1 i, const char *name_j, T_size2 j)
Check if the provided sizes match.
void invalid_argument(const char *function, const char *name, const T &y, const char *msg1, const char *msg2)
Throw an invalid_argument exception with a consistently formatted message.