diff --git a/src/test/storm/modelchecker/prctl/dtmc/DtmcPrctlModelCheckerTest.cpp b/src/test/storm/modelchecker/prctl/dtmc/DtmcPrctlModelCheckerTest.cpp index 6833b5ce7..7d7e4812b 100755 --- a/src/test/storm/modelchecker/prctl/dtmc/DtmcPrctlModelCheckerTest.cpp +++ b/src/test/storm/modelchecker/prctl/dtmc/DtmcPrctlModelCheckerTest.cpp @@ -261,6 +261,23 @@ namespace { return env; } }; + + class SparseNativeOptimisticValueIterationEnvironment { + public: + static const storm::dd::DdType ddType = storm::dd::DdType::Sylvan; // unused for sparse models + static const DtmcEngine engine = DtmcEngine::PrismSparse; + static const bool isExact = false; + typedef double ValueType; + typedef storm::models::sparse::Dtmc ModelType; + static storm::Environment createEnvironment() { + storm::Environment env; + env.solver().setForceSoundness(true); + env.solver().setLinearEquationSolverType(storm::solver::EquationSolverType::Native); + env.solver().native().setMethod(storm::solver::NativeLinearEquationSolverMethod::OptimisticValueIteration); + env.solver().native().setPrecision(storm::utility::convertNumber(1e-6)); + return env; + } + }; class SparseNativeIntervalIterationEnvironment { public: @@ -553,6 +570,7 @@ namespace { SparseNativeSorEnvironment, SparseNativePowerEnvironment, SparseNativeSoundValueIterationEnvironment, + SparseNativeOptimisticValueIterationEnvironment, SparseNativeIntervalIterationEnvironment, SparseNativeRationalSearchEnvironment, SparseTopologicalEigenLUEnvironment, diff --git a/src/test/storm/solver/LinearEquationSolverTest.cpp b/src/test/storm/solver/LinearEquationSolverTest.cpp index c449b3bb1..bed9d09c5 100644 --- a/src/test/storm/solver/LinearEquationSolverTest.cpp +++ b/src/test/storm/solver/LinearEquationSolverTest.cpp @@ -39,6 +39,21 @@ namespace { } }; + class NativeDoubleOptimisticValueIterationEnvironment { + public: + typedef double ValueType; + static const bool isExact = false; + static storm::Environment createEnvironment() { + storm::Environment env; + env.solver().setForceSoundness(true); + env.solver().setLinearEquationSolverType(storm::solver::EquationSolverType::Native); + env.solver().native().setMethod(storm::solver::NativeLinearEquationSolverMethod::OptimisticValueIteration); + env.solver().native().setRelativeTerminationCriterion(false); + env.solver().native().setPrecision(storm::utility::convertNumber("1e-6")); + return env; + } + }; + class NativeDoubleIntervalIterationEnvironment { public: typedef double ValueType; @@ -294,6 +309,7 @@ namespace { typedef ::testing::Types< NativeDoublePowerEnvironment, NativeDoubleSoundValueIterationEnvironment, + NativeDoubleOptimisticValueIterationEnvironment, NativeDoubleIntervalIterationEnvironment, NativeDoubleJacobiEnvironment, NativeDoubleGaussSeidelEnvironment,