Stan Math Library  2.20.0
reverse mode automatic differentiation
std_numeric_limits.hpp
Go to the documentation of this file.
1 #ifndef STAN_MATH_REV_CORE_STD_NUMERIC_LIMITS_HPP
2 #define STAN_MATH_REV_CORE_STD_NUMERIC_LIMITS_HPP
3 
5 #include <limits>
6 
7 namespace std {
8 
15 template <>
16 struct numeric_limits<stan::math::var> {
17  static const bool is_specialized = true;
20  static const int digits = numeric_limits<double>::digits;
21  static const int digits10 = numeric_limits<double>::digits10;
22  static const bool is_signed = numeric_limits<double>::is_signed;
24  static const bool is_exact = numeric_limits<double>::is_exact;
25  static const int radix = numeric_limits<double>::radix;
26  static stan::math::var epsilon() { return numeric_limits<double>::epsilon(); }
28  return numeric_limits<double>::round_error();
29  }
30 
31  static const int min_exponent = numeric_limits<double>::min_exponent;
32  static const int min_exponent10 = numeric_limits<double>::min_exponent10;
33  static const int max_exponent = numeric_limits<double>::max_exponent;
34  static const int max_exponent10 = numeric_limits<double>::max_exponent10;
35 
36  static const bool has_infinity = numeric_limits<double>::has_infinity;
37  static const bool has_quiet_NaN = numeric_limits<double>::has_quiet_NaN;
38  static const bool has_signaling_NaN
39  = numeric_limits<double>::has_signaling_NaN;
40  static const float_denorm_style has_denorm
41  = numeric_limits<double>::has_denorm;
42  static const bool has_denorm_loss = numeric_limits<double>::has_denorm_loss;
44  return numeric_limits<double>::infinity();
45  }
47  return numeric_limits<double>::quiet_NaN();
48  }
50  return numeric_limits<double>::signaling_NaN();
51  }
53  return numeric_limits<double>::denorm_min();
54  }
55 
56  static const bool is_iec559 = numeric_limits<double>::is_iec559;
57  static const bool is_bounded = numeric_limits<double>::is_bounded;
58  static const bool is_modulo = numeric_limits<double>::is_modulo;
59 
60  static const bool traps = numeric_limits<double>::traps;
61  static const bool tinyness_before = numeric_limits<double>::tinyness_before;
62  static const float_round_style round_style
63  = numeric_limits<double>::round_style;
64 };
65 
66 } // namespace std
67 #endif
int min(const std::vector< int > &x)
Returns the minimum coefficient in the specified column vector.
Definition: min.hpp:20
Independent (input) and dependent (output) variables for gradients.
Definition: var.hpp:33
int max(const std::vector< int > &x)
Returns the maximum coefficient in the specified column vector.
Definition: max.hpp:21
bool is_integer(T x)
Returns true if the input is an integer and false otherwise.
Definition: is_integer.hpp:17

     [ Stan Home Page ] © 2011–2018, Stan Development Team.