1 #ifndef __STAN__IO__READER_HPP__
2 #define __STAN__IO__READER_HPP__
4 #include <boost/throw_exception.hpp>
38 std::vector<T>& data_r_;
39 std::vector<int>& data_i_;
43 inline T& scalar_ptr() {
44 return data_r_.at(pos_);
47 inline T& scalar_ptr_increment(
size_t m) {
49 return data_r_.at(pos_ - m);
52 inline int& int_ptr() {
53 return data_i_.at(int_pos_);
56 inline int& int_ptr_increment(
size_t m) {
58 return data_i_.at(int_pos_ - m);
63 typedef Eigen::Matrix<T,Eigen::Dynamic,Eigen::Dynamic>
matrix_t;
64 typedef Eigen::Matrix<T,Eigen::Dynamic,1>
vector_t;
84 std::vector<int>& data_i)
102 return data_r_.size() - pos_;
111 return data_i_.size() - int_pos_;
120 if (int_pos_ >= data_i_.size())
121 BOOST_THROW_EXCEPTION(
122 std::runtime_error(
"no more integers to read."));
123 return data_i_[int_pos_++];
156 if (pos_ >= data_r_.size())
157 BOOST_THROW_EXCEPTION(std::runtime_error(
"no more scalars to read"));
158 return data_r_[pos_++];
196 T& start = scalar_ptr_increment(m);
197 vec.insert(vec.begin(), &start, &scalar_ptr());
334 BOOST_THROW_EXCEPTION(
335 std::runtime_error(
"required value greater than or equal to lb"));
377 BOOST_THROW_EXCEPTION(
378 std::runtime_error(
"required value less than or equal to ub"));
423 BOOST_THROW_EXCEPTION(
424 std::runtime_error(
"lower bound must be less than or equal to ub"));
426 BOOST_THROW_EXCEPTION(
427 std::runtime_error(
"required value greater than or equal to lb"));
429 BOOST_THROW_EXCEPTION(
430 std::runtime_error(
"required value less than or equal to ub"));
475 "Constrained scalar");
516 template <
typename TL>
520 x, lb,
"Constrained scalar");
535 template <
typename TL>
551 template <
typename TL>
570 template <
typename TU>
588 template <
typename TU>
604 template <
typename TU>
623 template <
typename TL,
typename TU>
643 template <
typename TL,
typename TU>
661 template <
typename TL,
typename TU>
1026 template <
typename TL>
1029 for (
size_t i = 0; i < m; ++i)
1033 template <
typename TL>
1036 for (
size_t i = 0; i < m; ++i)
1040 template <
typename TL>
1043 for (
size_t i = 0; i < m; ++i)
1048 template <
typename TL>
1051 for (
size_t i = 0; i < m; ++i)
1055 template <
typename TL>
1058 for (
size_t i = 0; i < m; ++i)
1062 template <
typename TL>
1065 for (
size_t i = 0; i < m; ++i)
1070 template <
typename TL>
1073 for (
size_t j = 0; j < n; ++j)
1074 for (
size_t i = 0; i < m; ++i)
1078 template <
typename TL>
1081 for (
size_t j = 0; j < n; ++j)
1082 for (
size_t i = 0; i < m; ++i)
1086 template <
typename TL>
1089 for (
size_t j = 0; j < n; ++j)
1090 for (
size_t i = 0; i < m; ++i)
1095 template <
typename TU>
1098 for (
size_t i = 0; i < m; ++i)
1102 template <
typename TU>
1105 for (
size_t i = 0; i < m; ++i)
1109 template <
typename TU>
1112 for (
size_t i = 0; i < m; ++i)
1117 template <
typename TU>
1120 for (
size_t i = 0; i < m; ++i)
1124 template <
typename TU>
1127 for (
size_t i = 0; i < m; ++i)
1131 template <
typename TU>
1134 for (
size_t i = 0; i < m; ++i)
1139 template <
typename TU>
1142 for (
size_t j = 0; j < n; ++j)
1143 for (
size_t i = 0; i < m; ++i)
1147 template <
typename TU>
1150 for (
size_t j = 0; j < n; ++j)
1151 for (
size_t i = 0; i < m; ++i)
1155 template <
typename TU>
1158 for (
size_t j = 0; j < n; ++j)
1159 for (
size_t i = 0; i < m; ++i)
1165 template <
typename TL,
typename TU>
1168 for (
size_t i = 0; i < m; ++i)
1172 template <
typename TL,
typename TU>
1175 for (
size_t i = 0; i < m; ++i)
1179 template <
typename TL,
typename TU>
1182 for (
size_t i = 0; i < m; ++i)
1187 template <
typename TL,
typename TU>
1190 for (
size_t i = 0; i < m; ++i)
1194 template <
typename TL,
typename TU>
1197 for (
size_t i = 0; i < m; ++i)
1201 template <
typename TL,
typename TU>
1204 for (
size_t i = 0; i < m; ++i)
1209 template <
typename TL,
typename TU>
1212 for (
size_t j = 0; j < n; ++j)
1213 for (
size_t i = 0; i < m; ++i)
1217 template <
typename TL,
typename TU>
1220 for (
size_t j = 0; j < n; ++j)
1221 for (
size_t i = 0; i < m; ++i)
1225 template <
typename TL,
typename TU>
1228 for (
size_t j = 0; j < n; ++j)
1229 for (
size_t i = 0; i < m; ++i)