mirror of
https://gitlab.com/libeigen/eigen.git
synced 2026-04-10 11:34:33 +08:00
Deep refactoring.
1) Kill MatrixXpr class, instead let all class inherit a common EigenBase class 2) Kill MatrixBase/Matrix/Vector classes, instead introduce a single Matrix class, a MatrixStorage class, and typedefs to emulate vectors 3) Huge code cleanup, remove large preprocessor macros, sloccount drop to ~750 down from 1100. 4) Introduce compile-time-known sizes
This commit is contained in:
@@ -38,7 +38,7 @@ template<typename MatrixType> void matrixManip(const MatrixType& m)
|
||||
a.row(i) = b.row(i);
|
||||
a.row(i) += b.row(i);
|
||||
a.minor(i, j) = b.block(1, rows-1, 1, cols-1);
|
||||
a.alias().minor(i, j) -= a.block(1, rows-1, 1, cols-1);
|
||||
//a.alias().minor(i, j) -= a.block(1, rows-1, 1, cols-1);
|
||||
}
|
||||
|
||||
void EigenTest::testMatrixManip()
|
||||
@@ -46,7 +46,7 @@ void EigenTest::testMatrixManip()
|
||||
matrixManip(Matrix<int, 2, 3>());
|
||||
matrixManip(Matrix<double, 3, 3>());
|
||||
matrixManip(Matrix<complex<float>, 4,3>());
|
||||
matrixManip(MatrixX<int>(2, 2));
|
||||
matrixManip(MatrixX<double>(3, 5));
|
||||
matrixManip(MatrixX<complex<float> >(4, 4));
|
||||
matrixManip(MatrixXi(2, 2));
|
||||
matrixManip(MatrixXd(3, 5));
|
||||
matrixManip(MatrixXcf(4, 4));
|
||||
}
|
||||
|
||||
@@ -47,7 +47,7 @@ template<typename MatrixType1,
|
||||
a.alias() = a + b;
|
||||
|
||||
a += b;
|
||||
a.alias().xpr() += b;
|
||||
a.alias() += b;
|
||||
a -= b + b;
|
||||
|
||||
MatrixType1 d(rows1, cols1);
|
||||
@@ -61,10 +61,10 @@ void EigenTest::testMatrixOps()
|
||||
matrixOps(Matrix<int, 2, 3>(), Matrix<int, 3, 1>());
|
||||
matrixOps(Matrix<double, 3, 3>(), Matrix<double, 3, 3>());
|
||||
matrixOps(Matrix<complex<float>, 4,3>(), Matrix<complex<float>, 3,4>());
|
||||
matrixOps(MatrixX<float>(1, 1), MatrixX<float>(1, 3));
|
||||
matrixOps(MatrixX<int>(2, 2), MatrixX<int>(2, 2));
|
||||
matrixOps(MatrixX<double>(3, 5), MatrixX<double>(5, 1));
|
||||
matrixOps(MatrixX<complex<float> >(4, 4), MatrixX<complex<float> >(4, 4));
|
||||
matrixOps(MatrixX<double>(3, 5), Matrix<double, 5, 1>());
|
||||
matrixOps(Matrix<complex<float>, 4, 4>(), MatrixX<complex<float> >(4, 4));
|
||||
/*matrixOps(MatrixXf(1, 1), MatrixXf(1, 3));
|
||||
matrixOps(MatrixXi(2, 2), MatrixXi(2, 2));
|
||||
matrixOps(MatrixXd(3, 5), MatrixXd(5, 1));
|
||||
matrixOps(MatrixXcf(4, 4), MatrixXcf(4, 4));
|
||||
matrixOps(MatrixXd(3, 5), Matrix<double, 5, 1>());
|
||||
matrixOps(Matrix4cf(), MatrixXcf(4, 4));*/
|
||||
}
|
||||
|
||||
@@ -46,19 +46,16 @@ template<typename VectorType> void vectorOps(const VectorType& v)
|
||||
|
||||
a += b;
|
||||
a += b + b;
|
||||
a.xpr() -= b;
|
||||
a.xpr() -= b + b;
|
||||
a.alias() += a + a;
|
||||
}
|
||||
|
||||
void EigenTest::testVectorOps()
|
||||
{
|
||||
vectorOps(Vector<float, 1>());
|
||||
vectorOps(Vector<int, 2>());
|
||||
vectorOps(Vector<double, 3>());
|
||||
vectorOps(Vector<complex<float>, 4>());
|
||||
vectorOps(VectorX<float>(1));
|
||||
vectorOps(VectorX<int>(2));
|
||||
vectorOps(VectorX<double>(3));
|
||||
vectorOps(VectorX<complex<float> >(4));
|
||||
vectorOps(Vector2i());
|
||||
vectorOps(Vector3d());
|
||||
vectorOps(Vector4cf());
|
||||
/*vectorOps(VectorXf(1));
|
||||
vectorOps(VectorXi(2));
|
||||
vectorOps(VectorXd(3));
|
||||
vectorOps(VectorXcf(4));*/
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user