66 SolverStatus solveEquations(std::vector<ValueType>& lowerX, std::vector<ValueType>& upperX,
const std::vector<ValueType>& b, uint64_t& numIterations,
67 ValueType precision, std::optional<storm::solver::OptimizationDirection> dir,
71 std::shared_ptr<ValueIterationOperator<ValueType, TrivialRowGrouping>> viOperator;
73 std::vector<ValueType> guessLower, guessUpper;
74 gviinternal::IndexType selectRowGroupToGuess(std::vector<ValueType>& lowerX, std::vector<ValueType>& upperX);
76 template<OptimizationDirection Dir>
77 SolverStatus solveEquations(std::vector<ValueType>& lowerX, std::vector<ValueType>& upperX,
const std::vector<ValueType>& b, uint64_t& numIterations,
80 template<OptimizationDirection Dir>
81 void applyInPlace(std::vector<ValueType>& lowerX, std::vector<ValueType>& upperX,
const std::vector<ValueType>& b,
GVIBackend<ValueType, Dir>& backend);
83 template<OptimizationDirection Dir>
84 std::pair<gviinternal::VerifyResult, SolverStatus> tryVerify(std::vector<ValueType>& lowerX, std::vector<ValueType>& upperX,
85 const std::vector<ValueType>& b, uint64_t& numIterations,
89 template<OptimizationDirection Dir>
90 SolverStatus doIterations(std::vector<ValueType>& lowerX, std::vector<ValueType>& upperX,
const std::vector<ValueType>& b, uint64_t& numIterations,
91 std::optional<uint64_t> maxIterations,
const ValueType& precision,
SolverStatus solveEquations(std::vector< ValueType > &lowerX, std::vector< ValueType > &upperX, const std::vector< ValueType > &b, uint64_t &numIterations, ValueType precision, std::optional< storm::solver::OptimizationDirection > dir, std::function< SolverStatus(GVIData< ValueType > const &)> const &iterationCallback)