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