| 1161 | |
| 1162 | template<int _OtherRows, int _OtherColumns, int _OtherBatches> |
| 1163 | void deepCloneImpl_directTranspose(Matrix<_Scalar, _OtherRows, _OtherColumns, _OtherBatches, TransposedFlags>& mat, std::integral_constant<bool, true>) const |
| 1164 | { |
| 1165 | //optimized path: direct transpose |
| 1166 | CUMAT_STATIC_ASSERT(CUMAT_IMPLIES(_Rows!=Dynamic && _OtherRows!=Dynamic, _Rows == _OtherRows), |
| 1167 | "unable to assign a matrix to another matrix with a different compile time row count"); |
| 1168 | CUMAT_STATIC_ASSERT(CUMAT_IMPLIES(_Columns!=Dynamic && _OtherColumns!=Dynamic, _Columns == _OtherColumns), |
| 1169 | "unable to assign a matrix to another matrix with a different compile time column count"); |
| 1170 | CUMAT_STATIC_ASSERT(CUMAT_IMPLIES(_Batches!=Dynamic && _OtherBatches!=Dynamic, _Batches == _OtherBatches), |
| 1171 | "unable to assign a matrix to another matrix with a different compile time row count"); |
| 1172 | |
| 1173 | CUMAT_ASSERT(rows() == mat.rows()); |
| 1174 | CUMAT_ASSERT(cols() == mat.cols()); |
| 1175 | CUMAT_ASSERT(batches() == mat.batches()); |
| 1176 | |
| 1177 | Index m = CUMAT_IS_ROW_MAJOR(Flags) ? rows() : cols(); |
| 1178 | Index n = CUMAT_IS_ROW_MAJOR(Flags) ? cols() : rows(); |
| 1179 | internal::directTranspose<_Scalar>(mat.data(), data(), m, n, batches()); |
| 1180 | } |
| 1181 | template<int _OtherRows, int _OtherColumns, int _OtherBatches> |
| 1182 | void deepCloneImpl_directTranspose(Matrix<_Scalar, _OtherRows, _OtherColumns, _OtherBatches, TransposedFlags>& mat, std::integral_constant<bool, false>) const |
| 1183 | { |