Eigen  3.4.90 (git rev 5a9f66fb35d03a4da9ef8976e67a61b30aa16dcf)
 
Loading...
Searching...
No Matches
ReshapedMethods.inc
1
2#ifdef EIGEN_PARSED_BY_DOXYGEN
3
29template <int Order = ColMajor, typename NRowsType, typename NColsType>
30EIGEN_DEVICE_FUNC inline Reshaped<Derived, ...> reshaped(NRowsType nRows, NColsType nCols);
31
33template <int Order = ColMajor, typename NRowsType, typename NColsType>
34EIGEN_DEVICE_FUNC inline const Reshaped<const Derived, ...> reshaped(NRowsType nRows, NColsType nCols) const;
35
58template <int Order = ColMajor>
59EIGEN_DEVICE_FUNC inline Reshaped<Derived, ...> reshaped();
60
62template <int Order = ColMajor>
63EIGEN_DEVICE_FUNC inline const Reshaped<const Derived, ...> reshaped() const;
64
65#else
66
67// This file is automatically included twice to generate const and non-const versions
68
69#ifndef EIGEN_RESHAPED_METHOD_2ND_PASS
70#define EIGEN_RESHAPED_METHOD_CONST const
71#else
72#define EIGEN_RESHAPED_METHOD_CONST
73#endif
74
75#ifndef EIGEN_RESHAPED_METHOD_2ND_PASS
76
77// This part is included once
78
79#endif
80
81template <typename NRowsType, typename NColsType>
82EIGEN_DEVICE_FUNC inline Reshaped<
83 EIGEN_RESHAPED_METHOD_CONST Derived,
84 internal::get_compiletime_reshape_size<NRowsType, NColsType, SizeAtCompileTime>::value,
85 internal::get_compiletime_reshape_size<NColsType, NRowsType, SizeAtCompileTime>::value>
86reshaped(NRowsType nRows, NColsType nCols) EIGEN_RESHAPED_METHOD_CONST {
87 return Reshaped<EIGEN_RESHAPED_METHOD_CONST Derived,
88 internal::get_compiletime_reshape_size<NRowsType, NColsType, SizeAtCompileTime>::value,
89 internal::get_compiletime_reshape_size<NColsType, NRowsType, SizeAtCompileTime>::value>(
90 derived(), internal::get_runtime_reshape_size(nRows, internal::get_runtime_value(nCols), size()),
91 internal::get_runtime_reshape_size(nCols, internal::get_runtime_value(nRows), size()));
92}
93
94template <int Order, typename NRowsType, typename NColsType>
95EIGEN_DEVICE_FUNC inline Reshaped<
96 EIGEN_RESHAPED_METHOD_CONST Derived,
97 internal::get_compiletime_reshape_size<NRowsType, NColsType, SizeAtCompileTime>::value,
98 internal::get_compiletime_reshape_size<NColsType, NRowsType, SizeAtCompileTime>::value,
99 internal::get_compiletime_reshape_order(Flags, Order)>
100reshaped(NRowsType nRows, NColsType nCols) EIGEN_RESHAPED_METHOD_CONST {
101 return Reshaped<EIGEN_RESHAPED_METHOD_CONST Derived,
102 internal::get_compiletime_reshape_size<NRowsType, NColsType, SizeAtCompileTime>::value,
103 internal::get_compiletime_reshape_size<NColsType, NRowsType, SizeAtCompileTime>::value,
104 internal::get_compiletime_reshape_order(Flags, Order)>(
105 derived(), internal::get_runtime_reshape_size(nRows, internal::get_runtime_value(nCols), size()),
106 internal::get_runtime_reshape_size(nCols, internal::get_runtime_value(nRows), size()));
107}
108
109// Views as linear vectors
110
111EIGEN_DEVICE_FUNC inline Reshaped<EIGEN_RESHAPED_METHOD_CONST Derived, SizeAtCompileTime, 1> reshaped()
112 EIGEN_RESHAPED_METHOD_CONST {
113 return Reshaped<EIGEN_RESHAPED_METHOD_CONST Derived, SizeAtCompileTime, 1>(derived(), size(), 1);
114}
115
116template <int Order>
117EIGEN_DEVICE_FUNC inline Reshaped<EIGEN_RESHAPED_METHOD_CONST Derived, SizeAtCompileTime, 1,
118 internal::get_compiletime_reshape_order(Flags, Order)>
119reshaped() EIGEN_RESHAPED_METHOD_CONST {
120 EIGEN_STATIC_ASSERT(Order == RowMajor || Order == ColMajor || Order == AutoOrder, INVALID_TEMPLATE_PARAMETER);
121 return Reshaped<EIGEN_RESHAPED_METHOD_CONST Derived, SizeAtCompileTime, 1,
122 internal::get_compiletime_reshape_order(Flags, Order)>(derived(), size(), 1);
123}
124
125#undef EIGEN_RESHAPED_METHOD_CONST
126
127#ifndef EIGEN_RESHAPED_METHOD_2ND_PASS
128#define EIGEN_RESHAPED_METHOD_2ND_PASS
129#include "ReshapedMethods.inc"
130#undef EIGEN_RESHAPED_METHOD_2ND_PASS
131#endif
132
133#endif // EIGEN_PARSED_BY_DOXYGEN