1 #ifndef __STAN__MATH__ERROR_HANDLING__CHECK_NONNEGATIVE_HPP__
2 #define __STAN__MATH__ERROR_HANDLING__CHECK_NONNEGATIVE_HPP__
12 template <
typename T_y,
17 static bool check(
const char*
function,
24 if (!boost::is_unsigned<T_y>::value && !(y >= 0))
26 " is %1%, but must be >= 0!",
"",
32 template <
typename T_y,
35 struct nonnegative<T_y, T_result, Policy, true> {
36 static bool check(
const char*
function,
42 for (
size_t n = 0; n <
length(y); n++) {
43 if (!boost::is_unsigned<typename T_y::value_type>::value
46 " is %1%, but must be >= 0!",
"",
53 template <
typename T_y,
typename T_result,
class Policy>
59 return nonnegative<T_y,T_result,Policy,
61 ::check(
function, y, name, result, Policy());
63 template <
typename T_y,
typename T_result>
70 template <
typename T_y>
74 return check_nonnegative<T_y,typename scalar_type<T_y>::type *>