11template<
typename ValueType>
17template<
typename ValueType,
bool TrivialRowGrouping,
typename SolutionType = ValueType>
23 virtual void multiply(
Environment const& env, std::vector<SolutionType>
const& x, std::vector<ValueType>
const* b,
24 std::vector<SolutionType>& result)
const override;
26 bool backwards =
true)
const override;
28 std::vector<SolutionType>
const& x, std::vector<ValueType>
const* b, std::vector<SolutionType>& result,
30 std::vector<uint_fast64_t>* choices =
nullptr)
const override;
32 std::vector<SolutionType>& x, std::vector<ValueType>
const* b, std::vector<uint_fast64_t>* choices =
nullptr,
33 bool backwards =
true)
const override;
39 ViOpT& initialize()
const;
40 ViOpT& initialize(
bool backwards)
const;
44 mutable std::unique_ptr<ViOpT> viOperatorFwd, viOperatorBwd;
Multiplier(storm::storage::SparseMatrix< ValueType > const &matrix)
storm::storage::SparseMatrix< ValueType > const & matrix
virtual void multiplyAndReduceGaussSeidel(Environment const &env, OptimizationDirection const &dir, std::vector< uint64_t > const &rowGroupIndices, std::vector< SolutionType > &x, std::vector< ValueType > const *b, std::vector< uint_fast64_t > *choices=nullptr, bool backwards=true) const override
virtual void multiplyAndReduce(Environment const &env, OptimizationDirection const &dir, std::vector< uint64_t > const &rowGroupIndices, std::vector< SolutionType > const &x, std::vector< ValueType > const *b, std::vector< SolutionType > &result, UncertaintyResolutionMode const &uncertaintyResolutionMode=UncertaintyResolutionMode::Unset, std::vector< uint_fast64_t > *choices=nullptr) const override
virtual void multiply(Environment const &env, std::vector< SolutionType > const &x, std::vector< ValueType > const *b, std::vector< SolutionType > &result) const override
ViOperatorMultiplier(storm::storage::SparseMatrix< ValueType > const &matrix)
virtual void multiplyGaussSeidel(Environment const &env, std::vector< SolutionType > &x, std::vector< ValueType > const *b, bool backwards=true) const override
virtual void clearCache() const override
virtual ~ViOperatorMultiplier()=default
This class represents the Value Iteration Operator (also known as Bellman operator).
A class that holds a possibly non-square matrix in the compressed row storage format.
UncertaintyResolutionMode