mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-01-06 14:14:46 +08:00
Add support for mat(all) as an alias to mat.reshaped(mat.size(),fix<1>);
This commit is contained in:
parent
9081c8f6ea
commit
b3fc0007ae
@ -339,6 +339,8 @@ enum SideType {
|
||||
OnTheRight = 2
|
||||
};
|
||||
|
||||
|
||||
|
||||
/* the following used to be written as:
|
||||
*
|
||||
* struct NoChange_t {};
|
||||
|
@ -70,4 +70,13 @@ reshaped(NRowsType nRows, NColsType nCols, OrderType) const
|
||||
derived(), internal::get_runtime_value(nRows), internal::get_runtime_value(nCols));
|
||||
}
|
||||
|
||||
// Views as linear vectors
|
||||
|
||||
EIGEN_DEVICE_FUNC
|
||||
inline const Reshaped<const Derived,SizeAtCompileTime,1>
|
||||
operator()(const Eigen::internal::all_t&)
|
||||
{
|
||||
return Reshaped<const Derived,SizeAtCompileTime,1>(derived(),size(),1);
|
||||
}
|
||||
|
||||
#endif // EIGEN_PARSED_BY_DOXYGEN
|
||||
|
@ -73,6 +73,13 @@ void reshape4x4(MatType m)
|
||||
MatrixXi m28r1 = m.reshaped(2,8,RowOrder);
|
||||
MatrixXi m28r2 = m.transpose().reshaped(8,2,ColOrder).transpose();
|
||||
VERIFY_IS_EQUAL( m28r1, m28r2);
|
||||
|
||||
using placeholders::all;
|
||||
VERIFY_IS_EQUAL(m.reshaped(16,1), m(all));
|
||||
VERIFY_IS_EQUAL(m.reshaped(1,16), m(all).transpose());
|
||||
VERIFY_IS_EQUAL(m(all).reshaped(2,8), m.reshaped(2,8));
|
||||
VERIFY_IS_EQUAL(m(all).reshaped(4,4), m.reshaped(4,4));
|
||||
VERIFY_IS_EQUAL(m(all).reshaped(8,2), m.reshaped(8,2));
|
||||
}
|
||||
|
||||
void test_reshape()
|
||||
|
Loading…
Reference in New Issue
Block a user