Browse Source

Replaced all calls to Matrix->toEigenSparseMatrix with calls to the adapter.

tempestpy_adaptions
PBerger 12 years ago
parent
commit
02cb1a2418
  1. 7
      src/modelChecker/EigenDtmcPrctlModelChecker.h
  2. 3
      test/storage/SparseMatrixTest.cpp

7
src/modelChecker/EigenDtmcPrctlModelChecker.h

@ -18,6 +18,7 @@
#include "Eigen/Sparse" #include "Eigen/Sparse"
#include "Eigen/src/IterativeLinearSolvers/BiCGSTAB.h" #include "Eigen/src/IterativeLinearSolvers/BiCGSTAB.h"
#include "src/adapters/EigenAdapter.h"
#include "gmm/gmm_matrix.h" #include "gmm/gmm_matrix.h"
#include "gmm/gmm_iter_solvers.h" #include "gmm/gmm_iter_solvers.h"
@ -54,7 +55,7 @@ public:
tmpMatrix.makeRowsAbsorbing((~*leftStates | *rightStates) | *rightStates); tmpMatrix.makeRowsAbsorbing((~*leftStates | *rightStates) | *rightStates);
// Transform the transition probability matrix to the eigen format to use its arithmetic. // Transform the transition probability matrix to the eigen format to use its arithmetic.
Eigen::SparseMatrix<Type, 1, int_fast32_t>* eigenMatrix = tmpMatrix.toEigenSparseMatrix();
Eigen::SparseMatrix<Type, 1, int_fast32_t>* eigenMatrix = storm::adapters::EigenAdapter::toEigenSparseMatrix(tmpMatrix);
// Create the vector with which to multiply. // Create the vector with which to multiply.
uint_fast64_t stateCount = this->getModel().getNumberOfStates(); uint_fast64_t stateCount = this->getModel().getNumberOfStates();
@ -88,7 +89,7 @@ public:
storm::storage::BitVector* nextStates = this->checkStateFormula(formula.getChild()); storm::storage::BitVector* nextStates = this->checkStateFormula(formula.getChild());
// Transform the transition probability matrix to the eigen format to use its arithmetic. // Transform the transition probability matrix to the eigen format to use its arithmetic.
Eigen::SparseMatrix<Type, 1, int_fast32_t>* eigenMatrix = this->getModel().getTransitionProbabilityMatrix()->toEigenSparseMatrix();
Eigen::SparseMatrix<Type, 1, int_fast32_t>* eigenMatrix = storm::adapters::EigenAdapter::toEigenSparseMatrix(this->getModel().getTransitionProbabilityMatrix());
// Create the vector with which to multiply and initialize it correctly. // Create the vector with which to multiply and initialize it correctly.
std::vector<Type> x(this->getModel().getNumberOfStates()); std::vector<Type> x(this->getModel().getNumberOfStates());
@ -154,7 +155,7 @@ public:
submatrix->convertToEquationSystem(); submatrix->convertToEquationSystem();
// Transform the submatric matrix to the eigen format to use its solvers // Transform the submatric matrix to the eigen format to use its solvers
Eigen::SparseMatrix<Type, 1, int_fast32_t>* eigenSubMatrix = submatrix->toEigenSparseMatrix();
Eigen::SparseMatrix<Type, 1, int_fast32_t>* eigenSubMatrix = storm::adapters::EigenAdapter::toEigenSparseMatrix(submatrix);
delete submatrix; delete submatrix;
// Initialize the x vector with 0.5 for each element. This is the initial guess for // Initialize the x vector with 0.5 for each element. This is the initial guess for

3
test/storage/SparseMatrixTest.cpp

@ -2,6 +2,7 @@
#include "src/storage/SparseMatrix.h" #include "src/storage/SparseMatrix.h"
#include "src/exceptions/InvalidArgumentException.h" #include "src/exceptions/InvalidArgumentException.h"
#include "src/exceptions/OutOfRangeException.h" #include "src/exceptions/OutOfRangeException.h"
#include "src/adapters/EigenAdapter.h"
TEST(SparseMatrixTest, ZeroRowsTest) { TEST(SparseMatrixTest, ZeroRowsTest) {
storm::storage::SparseMatrix<int> *ssm = new storm::storage::SparseMatrix<int>(0); storm::storage::SparseMatrix<int> *ssm = new storm::storage::SparseMatrix<int>(0);
@ -322,7 +323,7 @@ TEST(SparseMatrixTest, ConversionToSparseEigen_RowMajor_SparseMatrixTest) {
ASSERT_NO_THROW(ssm->finalize()); ASSERT_NO_THROW(ssm->finalize());
ASSERT_EQ(ssm->getState(), storm::storage::SparseMatrix<int>::MatrixStatus::ReadReady); ASSERT_EQ(ssm->getState(), storm::storage::SparseMatrix<int>::MatrixStatus::ReadReady);
Eigen::SparseMatrix<int, Eigen::RowMajor, int_fast32_t>* esm = ssm->toEigenSparseMatrix();
Eigen::SparseMatrix<int, Eigen::RowMajor, int_fast32_t>* esm = storm::adapters::EigenAdapter::toEigenSparseMatrix<int>(*ssm);
for (uint_fast32_t row = 0; row < 10; ++row) { for (uint_fast32_t row = 0; row < 10; ++row) {
for (uint_fast32_t col = 0; col < 10; ++col) { for (uint_fast32_t col = 0; col < 10; ++col) {

Loading…
Cancel
Save