26 std::pair<std::vector<ValueType>, std::vector<ValueType>>
const&
xy;
27 std::optional<ValueType>
const a,
b;
30 void trySetLowerUpper(std::vector<ValueType>& lowerOut, std::vector<ValueType>& upperOut)
const;
33 bool checkConvergence(uint64_t& convergenceCheckState, std::function<
void()>
const& getNextConvergenceCheckState,
bool relative,
34 ValueType
const& precision)
const;
37 template<
typename BackendType>
38 SVIData SVI(std::pair<std::vector<ValueType>, std::vector<ValueType>>& xy, std::pair<std::vector<ValueType>
const*, ValueType>
const& offsets,
39 uint64_t& numIterations,
bool relative, ValueType
const& precision, BackendType&& backend,
40 std::function<
SolverStatus(
SVIData const&)>
const& iterationCallback, std::optional<storm::storage::BitVector>
const& relevantValues,
41 uint64_t convergenceCheckState = 0)
const;
43 template<storm::OptimizationDirection Dir>
44 SVIData SVI(std::pair<std::vector<ValueType>, std::vector<ValueType>>& xy, std::pair<std::vector<ValueType>
const*, ValueType>
const& offsets,
45 uint64_t& numIterations,
bool relative, ValueType
const& precision, std::optional<ValueType>
const& a, std::optional<ValueType>
const& b,
47 std::optional<storm::storage::BitVector>
const& relevantValues = {})
const;
49 SVIData
SVI(std::pair<std::vector<ValueType>, std::vector<ValueType>>& xy, std::vector<ValueType>
const& offsets, uint64_t& numIterations,
bool relative,
50 ValueType
const& precision, std::optional<storm::OptimizationDirection>
const& dir, std::optional<ValueType>
const& lowerBound,
51 std::optional<ValueType>
const& upperBound, std::function<
SolverStatus(SVIData
const&)>
const& iterationCallback,
52 std::optional<storm::storage::BitVector>
const& relevantValues = {})
const;
54 SolverStatus SVI(std::vector<ValueType>& operand, std::vector<ValueType>
const& offsets, uint64_t& numIterations,
bool relative, ValueType
const& precision,
55 std::optional<storm::OptimizationDirection>
const& dir = {}, std::optional<ValueType>
const& lowerBound = {},
56 std::optional<ValueType>
const& upperBound = {}, std::function<
SolverStatus(SVIData
const&)>
const& iterationCallback = {},
57 std::optional<storm::storage::BitVector>
const& relevantValues = {})
const;
59 SolverStatus SVI(std::vector<ValueType>& operand, std::vector<ValueType>
const& offsets,
bool relative, ValueType
const& precision,
60 std::optional<storm::OptimizationDirection>
const& dir = {}, std::optional<ValueType>
const& lowerBound = {},
61 std::optional<ValueType>
const& upperBound = {}, std::function<
SolverStatus(SVIData
const&)>
const& iterationCallback = {},
62 std::optional<storm::storage::BitVector>
const& relevantValues = {})
const;
65 std::shared_ptr<ValueIterationOperator<ValueType, TrivialRowGrouping>> viOperator;
66 uint64_t sizeOfLargestRowGroup;
SVIData SVI(std::pair< std::vector< ValueType >, std::vector< ValueType > > &xy, std::pair< std::vector< ValueType > const *, ValueType > const &offsets, uint64_t &numIterations, bool relative, ValueType const &precision, BackendType &&backend, std::function< SolverStatus(SVIData const &)> const &iterationCallback, std::optional< storm::storage::BitVector > const &relevantValues, uint64_t convergenceCheckState=0) const