1 #ifndef __STAN__IO__WRITER_HPP__
2 #define __STAN__IO__WRITER_HPP__
25 std::vector<T> data_r_;
26 std::vector<int> data_i_;
29 typedef Eigen::Matrix<T,Eigen::Dynamic,Eigen::Dynamic>
matrix_t;
30 typedef Eigen::Matrix<T,Eigen::Dynamic,1>
vector_t;
114 BOOST_THROW_EXCEPTION(std::runtime_error (
"y is negative"));
115 data_r_.push_back(
log(y));
131 BOOST_THROW_EXCEPTION(std::runtime_error (
"y is lower than the lower bound"));
132 data_r_.push_back(
log(y - lb));
147 BOOST_THROW_EXCEPTION(std::runtime_error (
"y is higher than the lower bound"));
148 data_r_.push_back(
log(ub - y));
164 if (y < lb || y > ub)
165 BOOST_THROW_EXCEPTION(std::runtime_error (
"y is not between the lower and upper bounds"));
180 if (y > 1.0 || y < -1.0)
181 BOOST_THROW_EXCEPTION(std::runtime_error (
"y is not between -1.0 and 1.0"));
182 data_r_.push_back(
atanh(y));
197 if (y > 1.0 || y < 0.0)
198 BOOST_THROW_EXCEPTION(std::runtime_error (
"y is not between 0.0 and 1.0"));
218 if (y.size() == 0)
return;
220 data_r_.push_back(y[0]);
222 data_r_.push_back(
log(y[i] - y[i-1]));
242 if (y.size() == 0)
return;
244 data_r_.push_back(
log(y[0]));
246 data_r_.push_back(
log(y[i] - y[i-1]));
258 data_r_.push_back(y[i]);
268 data_r_.push_back(y[i]);
279 data_r_.push_back(y(i,j));
283 for (
int i = 0; i < y.size(); ++i)
287 for (
int i = 0; i < y.size(); ++i)
291 for (
int i = 0; i < y.rows(); ++i)
292 for (
int j = 0; j < y.cols(); ++j)
297 for (
int i = 0; i < y.size(); ++i)
301 for (
int i = 0; i < y.size(); ++i)
305 for (
int i = 0; i < y.rows(); ++i)
306 for (
int j = 0; j < y.cols(); ++j)
312 for (
int i = 0; i < y.size(); ++i)
316 for (
int i = 0; i < y.size(); ++i)
320 for (
int i = 0; i < y.rows(); ++i)
321 for (
int j = 0; j < y.cols(); ++j)
345 double log_y_k =
log(y[k_minus_1]);
347 data_r_.push_back(
log(y[i]) - log_y_k);
369 size_t k_choose_2 = (k * (k-1)) / 2;
374 BOOST_THROW_EXCEPTION(std::runtime_error (
"y cannot be factorized by factor_cov_matrix"));
375 for (
size_t i = 0; i < k; ++i) {
378 BOOST_THROW_EXCEPTION(std::runtime_error (
"sds on log scale are unconstrained"));
380 for (
size_t i = 0; i < k_choose_2; ++i)
381 data_r_.push_back(cpcs[i]);
397 if (k == 0 || y.cols() != k)
398 BOOST_THROW_EXCEPTION(
399 std::runtime_error (
"y must have elements and y must be a square matrix"));
405 BOOST_THROW_EXCEPTION(std::runtime_error (
"factor_cov_matrix failed"));
407 data_r_.push_back(cpcs[i]);
409 data_r_.push_back(sds[i]);