Stan  2.5.0
probability, sampling & optimization
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
get_base1_lhs.hpp
Go to the documentation of this file.
1 #ifndef STAN__MATH__MATRIX__GET_BASE1_LHS_HPP
2 #define STAN__MATH__MATRIX__GET_BASE1_LHS_HPP
3 
4 #include <vector>
7 
8 namespace stan {
9  namespace math {
10 
25  template <typename T>
26  inline
27  T& get_base1_lhs(std::vector<T>& x,
28  size_t i,
29  const char* error_msg,
30  size_t idx) {
31  check_range(x.size(),i,error_msg,idx);
32  return x[i - 1];
33  }
34 
50  template <typename T>
51  inline
52  T& get_base1_lhs(std::vector<std::vector<T> >& x,
53  size_t i1,
54  size_t i2,
55  const char* error_msg,
56  size_t idx) {
57  check_range(x.size(),i1,error_msg,idx);
58  return get_base1_lhs(x[i1 - 1],i2,error_msg,idx+1);
59  }
60 
77  template <typename T>
78  inline
79  T& get_base1_lhs(std::vector<std::vector<std::vector<T> > >& x,
80  size_t i1,
81  size_t i2,
82  size_t i3,
83  const char* error_msg,
84  size_t idx) {
85  check_range(x.size(),i1,error_msg,idx);
86  return get_base1_lhs(x[i1 - 1],i2,i3,error_msg,idx+1);
87  }
88 
106  template <typename T>
107  inline
108  T& get_base1_lhs(std::vector<std::vector<std::vector<std::vector<T> > > >& x,
109  size_t i1,
110  size_t i2,
111  size_t i3,
112  size_t i4,
113  const char* error_msg,
114  size_t idx) {
115  check_range(x.size(),i1,error_msg,idx);
116  return get_base1_lhs(x[i1 - 1],i2,i3,i4,error_msg,idx+1);
117  }
118 
137  template <typename T>
138  inline
139  T& get_base1_lhs(std::vector<std::vector<std::vector<std::vector<std::vector<T> > > > >& x,
140  size_t i1,
141  size_t i2,
142  size_t i3,
143  size_t i4,
144  size_t i5,
145  const char* error_msg,
146  size_t idx) {
147  check_range(x.size(),i1,error_msg,idx);
148  return get_base1_lhs(x[i1 - 1],i2,i3,i4,i5,error_msg,idx+1);
149  }
150 
170  template <typename T>
171  inline
172  T& get_base1_lhs(std::vector<std::vector<std::vector<std::vector<std::vector<std::vector<T> > > > > >& x,
173  size_t i1,
174  size_t i2,
175  size_t i3,
176  size_t i4,
177  size_t i5,
178  size_t i6,
179  const char* error_msg,
180  size_t idx) {
181  check_range(x.size(),i1,error_msg,idx);
182  return get_base1_lhs(x[i1 - 1],i2,i3,i4,i5,i6,error_msg,idx+1);
183  }
184 
185 
206  template <typename T>
207  inline
208  T& get_base1_lhs(std::vector<std::vector<std::vector<std::vector<std::vector<std::vector<std::vector<T> > > > > > >& x,
209  size_t i1,
210  size_t i2,
211  size_t i3,
212  size_t i4,
213  size_t i5,
214  size_t i6,
215  size_t i7,
216  const char* error_msg,
217  size_t idx) {
218  check_range(x.size(),i1,error_msg,idx);
219  return get_base1_lhs(x[i1 - 1],i2,i3,i4,i5,i6,i7,error_msg,idx+1);
220  }
221 
222 
244  template <typename T>
245  inline
246  T& get_base1_lhs(std::vector<std::vector<std::vector<std::vector<std::vector<std::vector<std::vector<std::vector<T> > > > > > > >& x,
247  size_t i1,
248  size_t i2,
249  size_t i3,
250  size_t i4,
251  size_t i5,
252  size_t i6,
253  size_t i7,
254  size_t i8,
255  const char* error_msg,
256  size_t idx) {
257  check_range(x.size(),i1,error_msg,idx);
258  return get_base1_lhs(x[i1 - 1],i2,i3,i4,i5,i6,i7,i8,error_msg,idx+1);
259  }
260 
261 
262 
282  template <typename T>
283  inline
284  Eigen::Block<Eigen::Matrix<T,Eigen::Dynamic,Eigen::Dynamic> >
285  get_base1_lhs(Eigen::Matrix<T,Eigen::Dynamic,Eigen::Dynamic>& x,
286  size_t m,
287  const char* error_msg,
288  size_t idx) {
289  check_range(x.rows(),m,error_msg,idx);
290  return x.block(m-1,0,1,x.cols());
291  }
292 
309  template <typename T>
310  inline
311  T& get_base1_lhs(Eigen::Matrix<T,Eigen::Dynamic,Eigen::Dynamic>& x,
312  size_t m,
313  size_t n,
314  const char* error_msg,
315  size_t idx) {
316  check_range(x.rows(),m,error_msg,idx);
317  check_range(x.cols(),n,error_msg,idx + 1);
318  return x(m - 1, n - 1);
319  }
320 
335  template <typename T>
336  inline
337  T& get_base1_lhs(Eigen::Matrix<T,Eigen::Dynamic,1>& x,
338  size_t m,
339  const char* error_msg,
340  size_t idx) {
341  check_range(x.size(),m,error_msg,idx);
342  return x(m - 1);
343 
344  }
345 
360  template <typename T>
361  inline
362  T& get_base1_lhs(Eigen::Matrix<T,1,Eigen::Dynamic>& x,
363  size_t n,
364  const char* error_msg,
365  size_t idx) {
366  check_range(x.size(),n,error_msg,idx);
367  return x(n - 1);
368  }
369 
370  }
371 }
372 #endif
void check_range(size_t max, size_t i, const char *msg, size_t idx)
Definition: check_range.hpp:30
T & get_base1_lhs(std::vector< T > &x, size_t i, const char *error_msg, size_t idx)
Return a reference to the value of the specified vector at the specified base-one index...

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