1 #ifndef __STAN__IO__READER_HPP__
2 #define __STAN__IO__READER_HPP__
9 #include <boost/throw_exception.hpp>
49 std::vector<T>& data_r_;
50 std::vector<int>& data_i_;
54 inline T& scalar_ptr() {
55 return data_r_.at(pos_);
58 inline T& scalar_ptr_increment(
size_t m) {
60 return data_r_.at(pos_ - m);
63 inline int& int_ptr() {
64 return data_i_.at(int_pos_);
67 inline int& int_ptr_increment(
size_t m) {
69 return data_i_.at(int_pos_ - m);
95 std::vector<int>& data_i)
113 return data_r_.size() - pos_;
122 return data_i_.size() - int_pos_;
131 if (int_pos_ >= data_i_.size())
132 BOOST_THROW_EXCEPTION(
133 std::runtime_error(
"no more integers to read."));
134 return data_i_[int_pos_++];
167 if (pos_ >= data_r_.size())
168 BOOST_THROW_EXCEPTION(std::runtime_error(
"no more scalars to read"));
169 return data_r_[pos_++];
207 T& start = scalar_ptr_increment(m);
208 vec.insert(vec.begin(), &start, &scalar_ptr());
345 BOOST_THROW_EXCEPTION(
346 std::runtime_error(
"required value greater than or equal to lb"));
388 BOOST_THROW_EXCEPTION(
389 std::runtime_error(
"required value less than or equal to ub"));
434 BOOST_THROW_EXCEPTION(
435 std::runtime_error(
"lower bound must be less than or equal to ub"));
437 BOOST_THROW_EXCEPTION(
438 std::runtime_error(
"required value greater than or equal to lb"));
440 BOOST_THROW_EXCEPTION(
441 std::runtime_error(
"required value less than or equal to ub"));
486 "Constrained scalar");
527 template <
typename TL>
531 x, lb,
"Constrained scalar");
546 template <
typename TL>
562 template <
typename TL>
581 template <
typename TU>
599 template <
typename TU>
615 template <
typename TU>
634 template <
typename TL,
typename TU>
654 template <
typename TL,
typename TU>
672 template <
typename TL,
typename TU>
990 template <
typename TL>
993 for (
int i = 0; i < m; ++i)
997 template <
typename TL>
1000 for (
int i = 0; i < m; ++i)
1004 template <
typename TL>
1007 for (
int i = 0; i < m; ++i)
1012 template <
typename TL>
1015 for (
int i = 0; i < m; ++i)
1019 template <
typename TL>
1022 for (
int i = 0; i < m; ++i)
1026 template <
typename TL>
1029 for (
int i = 0; i < m; ++i)
1034 template <
typename TL>
1037 for (
int i = 0; i < m; ++i)
1038 for (
int j = 0; j < n; ++j)
1042 template <
typename TL>
1045 for (
int i = 0; i < m; ++i)
1046 for (
int j = 0; j < n; ++j)
1050 template <
typename TL>
1053 for (
int i = 0; i < m; ++i)
1054 for (
int j = 0; j < n; ++j)
1061 template <
typename TU>
1064 for (
int i = 0; i < m; ++i)
1068 template <
typename TU>
1071 for (
int i = 0; i < m; ++i)
1075 template <
typename TU>
1078 for (
int i = 0; i < m; ++i)
1083 template <
typename TU>
1086 for (
int i = 0; i < m; ++i)
1090 template <
typename TU>
1093 for (
int i = 0; i < m; ++i)
1097 template <
typename TU>
1100 for (
int i = 0; i < m; ++i)
1105 template <
typename TU>
1108 for (
int i = 0; i < m; ++i)
1109 for (
int j = 0; j < n; ++j)
1113 template <
typename TU>
1116 for (
int i = 0; i < m; ++i)
1117 for (
int j = 0; j < n; ++j)
1121 template <
typename TU>
1124 for (
int i = 0; i < m; ++i)
1125 for (
int j = 0; j < n; ++j)
1131 template <
typename TL,
typename TU>
1134 for (
int i = 0; i < m; ++i)
1138 template <
typename TL,
typename TU>
1141 for (
int i = 0; i < m; ++i)
1145 template <
typename TL,
typename TU>
1148 for (
int i = 0; i < m; ++i)
1153 template <
typename TL,
typename TU>
1156 for (
int i = 0; i < m; ++i)
1160 template <
typename TL,
typename TU>
1163 for (
int i = 0; i < m; ++i)
1167 template <
typename TL,
typename TU>
1170 for (
int i = 0; i < m; ++i)
1175 template <
typename TL,
typename TU>
1178 for (
int i = 0; i < m; ++i)
1179 for (
int j = 0; j < n; ++j)
1183 template <
typename TL,
typename TU>
1186 for (
int i = 0; i < m; ++i)
1187 for (
int j = 0; j < n; ++j)
1191 template <
typename TL,
typename TU>
1194 for (
int i = 0; i < m; ++i)
1195 for (
int j = 0; j < n; ++j)