29 boost::optional<storm::solver::OptimizationDirection>
const&
direction = boost::none,
34 std::vector<ValueType>
const& b)
const override;
40 void createSortedSccDecomposition(
bool needLongestChainSize)
const;
44 void trySetSolutionBounds(
Environment const& env, std::vector<SolutionType>
const& x,
bool allSccsExact,
bool allSccsPrecise)
const;
48 bool lastSccMetPrecision(
Environment const& sccSolverEnvironment, std::vector<SolutionType>
const& sccValues)
const;
52 bool solveTrivialScc(uint64_t
const& sccState,
OptimizationDirection d, std::vector<SolutionType>& globalX, std::vector<ValueType>
const& globalB)
const;
55 std::vector<ValueType>
const& b)
const;
58 storm::storage::BitVector const& sccAsBitVector, std::vector<SolutionType>& globalX, std::vector<ValueType>
const& globalB,
59 std::optional<storm::storage::BitVector>
const& globalRelevantValues,
bool& metPrecision)
const;
62 mutable std::unique_ptr<storm::storage::StronglyConnectedComponentDecomposition<ValueType>> sortedSccDecomposition;
63 mutable boost::optional<uint64_t> longestSccChainSize;
64 mutable std::unique_ptr<storm::solver::MinMaxLinearEquationSolver<ValueType>> sccSolver;
66 mutable std::unique_ptr<storm::storage::SubmatrixBuilder<ValueType>> sccSubmatrixBuilder;
67 mutable std::unique_ptr<std::vector<ValueType>> auxiliaryRowGroupVector;
virtual MinMaxLinearEquationSolverRequirements getRequirements(Environment const &env, boost::optional< storm::solver::OptimizationDirection > const &direction=boost::none, bool const &hasInitialScheduler=false) const override
Retrieves the requirements of this solver for solving equations with the current settings.