1 #ifndef STAN__MATH__MATRIX__CONTAINERS_CONVERSION_HPP
2 #define STAN__MATH__MATRIX__CONTAINERS_CONVERSION_HPP
18 template <
typename T,
int R,
int C>
19 inline Matrix<T, Dynamic, Dynamic>
26 inline Matrix<T, Dynamic, Dynamic>
28 size_t R = vec.size();
30 size_t C = vec[0].size();
31 Matrix<T, Dynamic, Dynamic> result(R, C);
32 T* datap = result.data();
33 for (
size_t i=0, ij=0; i < C; i++)
34 for (
size_t j=0; j < R; j++, ij++)
35 datap[ij] = vec[j][i];
38 return Matrix<T, Dynamic, Dynamic> (0, 0);
43 inline Matrix<double, Dynamic, Dynamic>
45 size_t R = vec.size();
47 size_t C = vec[0].size();
48 Matrix<double, Dynamic, Dynamic> result(R, C);
49 double* datap = result.data();
50 for (
size_t i=0, ij=0; i < C; i++)
51 for (
size_t j=0; j < R; j++, ij++)
52 datap[ij] = vec[j][i];
55 return Matrix<double, Dynamic, Dynamic> (0, 0);
62 template <
typename T,
int R,
int C>
63 inline Matrix<T, Dynamic, 1>
65 return Matrix<T, Dynamic, 1>::Map(matrix.data(), matrix.rows()*matrix.cols());
70 inline Matrix<T, Dynamic, 1>
72 return Matrix<T, Dynamic, 1>::Map(vec.data(), vec.size());
76 inline Matrix<double, Dynamic, 1>
79 Matrix<double, Dynamic, 1> result(R);
80 double* datap = result.data();
81 for (
int i=0; i < R; i++)
89 template <
typename T,
int R,
int C>
90 inline Matrix<T, 1, Dynamic>
92 return Matrix<T, 1, Dynamic>::Map(matrix.data(), matrix.rows()*matrix.cols());
97 inline Matrix<T, 1, Dynamic>
99 return Matrix<T, 1, Dynamic>::Map(vec.data(), vec.size());
103 inline Matrix<double, 1, Dynamic>
106 Matrix<double, 1, Dynamic> result(C);
107 double* datap = result.data();
108 for (
int i=0; i < C; i++)
114 template <
typename T>
115 inline vector< vector<T> >
117 const T* datap = matrix.data();
118 int C = matrix.cols();
119 int R = matrix.rows();
120 vector< vector<T> > result(R, vector<T>(C));
121 for (
int i=0, ij=0; i < C; i++)
122 for (
int j=0; j < R; j++, ij++)
123 result[j][i] = datap[ij];
130 template <
typename T,
int R,
int C>
132 const T* datap = matrix.data();
133 int size = matrix.size();
134 vector<T> result(size);
135 for (
int i=0; i <
size; i++)
136 result[i] = datap[i];
141 template <
typename T>
148 template <
typename T>
149 inline vector<typename scalar_type<T>::type>
151 size_t size1 = x.size();
155 vector<T> y(size1*size2);
156 for(
size_t i=0, ij=0; i < size1; i++)
157 for(
size_t j=0; j < size2; j++, ij++)
Matrix< T, Dynamic, 1 > to_vector(const Matrix< T, R, C > &matrix)
Matrix< T, Dynamic, Dynamic > to_matrix(Matrix< T, R, C > matrix)
vector< vector< T > > to_array_2d(const Matrix< T, Dynamic, Dynamic > &matrix)
Matrix< T, 1, Dynamic > to_row_vector(const Matrix< T, R, C > &matrix)
int size(const std::vector< T > &x)
vector< T > to_array_1d(const Matrix< T, R, C > &matrix)