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>
979 template <
typename TL>
982 for (
size_t i = 0; i < m; ++i)
986 template <
typename TL>
989 for (
size_t i = 0; i < m; ++i)
993 template <
typename TL>
996 for (
size_t i = 0; i < m; ++i)
1001 template <
typename TL>
1004 for (
size_t i = 0; i < m; ++i)
1008 template <
typename TL>
1011 for (
size_t i = 0; i < m; ++i)
1015 template <
typename TL>
1018 for (
size_t i = 0; i < m; ++i)
1023 template <
typename TL>
1026 for (
size_t i = 0; i < m; ++i)
1027 for (
size_t j = 0; j < n; ++j)
1031 template <
typename TL>
1034 for (
size_t i = 0; i < m; ++i)
1035 for (
size_t j = 0; j < n; ++j)
1039 template <
typename TL>
1042 for (
size_t i = 0; i < m; ++i)
1043 for (
size_t j = 0; j < n; ++j)
1050 template <
typename TU>
1053 for (
size_t i = 0; i < m; ++i)
1057 template <
typename TU>
1060 for (
size_t i = 0; i < m; ++i)
1064 template <
typename TU>
1067 for (
size_t i = 0; i < m; ++i)
1072 template <
typename TU>
1075 for (
size_t i = 0; i < m; ++i)
1079 template <
typename TU>
1082 for (
size_t i = 0; i < m; ++i)
1086 template <
typename TU>
1089 for (
size_t i = 0; i < m; ++i)
1094 template <
typename TU>
1097 for (
size_t i = 0; i < m; ++i)
1098 for (
size_t j = 0; j < n; ++j)
1102 template <
typename TU>
1105 for (
size_t i = 0; i < m; ++i)
1106 for (
size_t j = 0; j < n; ++j)
1110 template <
typename TU>
1113 for (
size_t i = 0; i < m; ++i)
1114 for (
size_t j = 0; j < n; ++j)
1120 template <
typename TL,
typename TU>
1123 for (
size_t i = 0; i < m; ++i)
1127 template <
typename TL,
typename TU>
1130 for (
size_t i = 0; i < m; ++i)
1134 template <
typename TL,
typename TU>
1137 for (
size_t i = 0; i < m; ++i)
1142 template <
typename TL,
typename TU>
1145 for (
size_t i = 0; i < m; ++i)
1149 template <
typename TL,
typename TU>
1152 for (
size_t i = 0; i < m; ++i)
1156 template <
typename TL,
typename TU>
1159 for (
size_t i = 0; i < m; ++i)
1164 template <
typename TL,
typename TU>
1167 for (
size_t i = 0; i < m; ++i)
1168 for (
size_t j = 0; j < n; ++j)
1172 template <
typename TL,
typename TU>
1175 for (
size_t i = 0; i < m; ++i)
1176 for (
size_t j = 0; j < n; ++j)
1180 template <
typename TL,
typename TU>
1183 for (
size_t i = 0; i < m; ++i)
1184 for (
size_t j = 0; j < n; ++j)