Created named constructor for identity matrices

This commit is contained in:
babrodtk
2015-09-21 09:20:28 +02:00
parent 4073abeafb
commit 7f9175e046
2 changed files with 21 additions and 24 deletions

View File

@@ -74,16 +74,13 @@ namespace Opm
enum CreationType { ZeroMatrix, IdentityMatrix };
/**
AutoDiffMatrix(const CreationType t, const int num_rows) * Creates an identity matrix with num_rows_cols x num_rows_cols entries
: type_(t == ZeroMatrix ? Zero : Identity), */
rows_(num_rows), static AutoDiffMatrix createIdentity(const int num_rows_cols)
cols_(num_rows),
diag_(),
sparse_()
{ {
return AutoDiffMatrix(Identity, num_rows_cols, num_rows_cols);
} }

View File

@@ -74,9 +74,9 @@ operator ==(const Eigen::SparseMatrix<double>& A,
BOOST_AUTO_TEST_CASE(Initialization) BOOST_AUTO_TEST_CASE(Initialization)
{ {
// Setup. // Setup.
Mat z = Mat(AutoDiffMatrix::ZeroMatrix, 3); Mat z = Mat(3, 3);
Mat i = Mat(AutoDiffMatrix::IdentityMatrix, 3); Mat i = Mat::createIdentity(3);
Eigen::Array<double, Eigen::Dynamic, 1> d1(3); Eigen::Array<double, Eigen::Dynamic, 1> d1(3);
d1 << 0.2, 1.2, 13.4; d1 << 0.2, 1.2, 13.4;
@@ -93,9 +93,9 @@ BOOST_AUTO_TEST_CASE(Initialization)
BOOST_AUTO_TEST_CASE(EigenConversion) BOOST_AUTO_TEST_CASE(EigenConversion)
{ {
// Setup. // Setup.
Mat z = Mat(AutoDiffMatrix::ZeroMatrix, 3); Mat z = Mat(3, 3);
Mat i = Mat(AutoDiffMatrix::IdentityMatrix, 3); Mat i = Mat::createIdentity(3);
Eigen::Array<double, Eigen::Dynamic, 1> d1(3); Eigen::Array<double, Eigen::Dynamic, 1> d1(3);
d1 << 0.2, 1.2, 13.4; d1 << 0.2, 1.2, 13.4;
@@ -128,10 +128,10 @@ BOOST_AUTO_TEST_CASE(EigenConversion)
BOOST_AUTO_TEST_CASE(AdditionOps) BOOST_AUTO_TEST_CASE(AdditionOps)
{ {
// Setup. // Setup.
Mat z = Mat(AutoDiffMatrix::ZeroMatrix, 3); Mat z = Mat(3, 3);
Sp zs(3,3); Sp zs(3,3);
Mat i = Mat(AutoDiffMatrix::IdentityMatrix, 3); Mat i = Mat::createIdentity(3);
Sp is(Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic>::Identity(3,3).sparseView()); Sp is(Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic>::Identity(3,3).sparseView());
Eigen::Array<double, Eigen::Dynamic, 1> d1(3); Eigen::Array<double, Eigen::Dynamic, 1> d1(3);
@@ -176,10 +176,10 @@ BOOST_AUTO_TEST_CASE(AdditionOps)
BOOST_AUTO_TEST_CASE(MultOps) BOOST_AUTO_TEST_CASE(MultOps)
{ {
// Setup. // Setup.
Mat z = Mat(AutoDiffMatrix::ZeroMatrix, 3); Mat z = Mat(3, 3);
Sp zs(3,3); Sp zs(3,3);
Mat i = Mat(AutoDiffMatrix::IdentityMatrix, 3); Mat i = Mat::createIdentity(3);
Sp is(Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic>::Identity(3,3).sparseView()); Sp is(Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic>::Identity(3,3).sparseView());
Eigen::Array<double, Eigen::Dynamic, 1> d1(3); Eigen::Array<double, Eigen::Dynamic, 1> d1(3);
@@ -267,10 +267,10 @@ BOOST_AUTO_TEST_CASE(MultOps)
BOOST_AUTO_TEST_CASE(MultOpsDouble) BOOST_AUTO_TEST_CASE(MultOpsDouble)
{ {
// Setup. // Setup.
Mat z = Mat(AutoDiffMatrix::ZeroMatrix, 3); Mat z = Mat(3, 3);
Sp zs(3,3); Sp zs(3,3);
Mat i = Mat(AutoDiffMatrix::IdentityMatrix, 3); Mat i = Mat::createIdentity(3);
Sp is(Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic>::Identity(3,3).sparseView()); Sp is(Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic>::Identity(3,3).sparseView());
Eigen::Array<double, Eigen::Dynamic, 1> d1(3); Eigen::Array<double, Eigen::Dynamic, 1> d1(3);
@@ -307,10 +307,10 @@ BOOST_AUTO_TEST_CASE(MultOpsDouble)
BOOST_AUTO_TEST_CASE(DivOpsDouble) BOOST_AUTO_TEST_CASE(DivOpsDouble)
{ {
// Setup. // Setup.
Mat z = Mat(AutoDiffMatrix::ZeroMatrix, 3); Mat z = Mat(3, 3);
Sp zs(3,3); Sp zs(3,3);
Mat i = Mat(AutoDiffMatrix::IdentityMatrix, 3); Mat i = Mat::createIdentity(3);
Sp is(Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic>::Identity(3,3).sparseView()); Sp is(Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic>::Identity(3,3).sparseView());
Eigen::Array<double, Eigen::Dynamic, 1> d1(3); Eigen::Array<double, Eigen::Dynamic, 1> d1(3);
@@ -345,10 +345,10 @@ BOOST_AUTO_TEST_CASE(DivOpsDouble)
BOOST_AUTO_TEST_CASE(MultVectorXd) BOOST_AUTO_TEST_CASE(MultVectorXd)
{ {
Mat z = Mat(AutoDiffMatrix::ZeroMatrix, 3); Mat z = Mat(3, 3);
Sp zs(3,3); Sp zs(3,3);
Mat i = Mat(AutoDiffMatrix::IdentityMatrix, 3); Mat i = Mat::createIdentity(3);
Sp is(Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic>::Identity(3,3).sparseView()); Sp is(Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic>::Identity(3,3).sparseView());
Eigen::Array<double, Eigen::Dynamic, 1> d1(3); Eigen::Array<double, Eigen::Dynamic, 1> d1(3);
@@ -398,9 +398,9 @@ BOOST_AUTO_TEST_CASE(Coeff)
BOOST_AUTO_TEST_CASE(nonZeros) BOOST_AUTO_TEST_CASE(nonZeros)
{ {
Mat z = Mat(AutoDiffMatrix::ZeroMatrix, 3); Mat z = Mat(3, 3);
Mat i = Mat(AutoDiffMatrix::IdentityMatrix, 3); Mat i = Mat::createIdentity(3);
Eigen::Array<double, Eigen::Dynamic, 1> d1(3); Eigen::Array<double, Eigen::Dynamic, 1> d1(3);
d1 << 0.2, 1.2, 13.4; d1 << 0.2, 1.2, 13.4;