Stan  2.5.0
probability, sampling & optimization
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
get_base1.hpp
Go to the documentation of this file.
1 #ifndef STAN__MATH__MATRIX__GET_BASE1_HPP
2 #define STAN__MATH__MATRIX__GET_BASE1_HPP
3 
4 #include <vector>
7 
8 namespace stan {
9  namespace math {
10 
25  template <typename T>
26  inline const T&
27  get_base1(const 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 const T&
52  get_base1(const 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(x[i1 - 1],i2,error_msg,idx+1);
59  }
60 
77  template <typename T>
78  inline const T&
79  get_base1(const 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(x[i1 - 1],i2,i3,error_msg,idx+1);
87  }
88 
106  template <typename T>
107  inline const T&
108  get_base1(const 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(x[i1 - 1],i2,i3,i4,error_msg,idx+1);
117  }
118 
137  template <typename T>
138  inline const T&
139  get_base1(const 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(x[i1 - 1],i2,i3,i4,i5,error_msg,idx+1);
149  }
150 
170  template <typename T>
171  inline const T&
172  get_base1(const 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(x[i1 - 1],i2,i3,i4,i5,i6,error_msg,idx+1);
183  }
184 
185 
206  template <typename T>
207  inline const T&
208  get_base1(const 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(x[i1 - 1],i2,i3,i4,i5,i6,i7,error_msg,idx+1);
220  }
221 
222 
244  template <typename T>
245  inline const T&
246  get_base1(const 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(x[i1 - 1],i2,i3,i4,i5,i6,i7,i8,error_msg,idx+1);
259  }
260 
261 
262 
282  template <typename T>
283  inline Eigen::Matrix<T,1,Eigen::Dynamic>
284  get_base1(const Eigen::Matrix<T,Eigen::Dynamic,Eigen::Dynamic>& x,
285  size_t m,
286  const char* error_msg,
287  size_t idx) {
288  check_range(x.rows(),m,error_msg,idx);
289  return x.block(m-1,0,1,x.cols());
290  }
291 
308  template <typename T>
309  inline const T&
310  get_base1(const Eigen::Matrix<T,Eigen::Dynamic,Eigen::Dynamic>& x,
311  size_t m,
312  size_t n,
313  const char* error_msg,
314  size_t idx) {
315  check_range(x.rows(),m,error_msg,idx);
316  check_range(x.cols(),n,error_msg,idx + 1);
317  return x(m - 1, n - 1);
318  }
319 
334  template <typename T>
335  inline
336  const T& get_base1(const Eigen::Matrix<T,Eigen::Dynamic,1>& x,
337  size_t m,
338  const char* error_msg,
339  size_t idx) {
340  check_range(x.size(),m,error_msg,idx);
341  return x(m - 1);
342  }
343 
358  template <typename T>
359  inline const T&
360  get_base1(const Eigen::Matrix<T,1,Eigen::Dynamic>& x,
361  size_t n,
362  const char* error_msg,
363  size_t idx) {
364  check_range(x.size(),n,error_msg,idx);
365  return x(n - 1);
366  }
367 
368  }
369 }
370 #endif
const T & get_base1(const 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...
Definition: get_base1.hpp:27
void check_range(size_t max, size_t i, const char *msg, size_t idx)
Definition: check_range.hpp:30

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