18template<
typename ValueType>
30 boost::optional<storm::solver::OptimizationDirection>
const&
direction = boost::none,
35 std::vector<ValueType>
const& b)
const override;
39 mutable std::unique_ptr<storm::solver::Multiplier<ValueType>> multiplier;
41 mutable boost::optional<storm::storage::SparseMatrix<ValueType>> orderedMatrix;
43 mutable boost::optional<std::vector<uint64_t>> rowGroupOrdering;
45 mutable boost::optional<std::vector<ValueType>> auxiliaryRowVector;
47 mutable boost::optional<std::vector<ValueType>> auxiliaryRowGroupVector;
49 mutable boost::optional<std::vector<uint64_t>> auxiliaryRowGroupIndexVector;
51 mutable std::vector<std::pair<uint64_t, ValueType>> bFactors;
This solver can be used on equation systems that are known to be acyclic.
virtual bool internalSolveEquations(storm::Environment const &env, OptimizationDirection d, std::vector< ValueType > &x, std::vector< ValueType > const &b) const override
AcyclicMinMaxLinearEquationSolver()
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.
virtual ~AcyclicMinMaxLinearEquationSolver()
virtual void clearCache() const override
Clears the currently cached data that has been stored during previous calls of the solver.
OptimizationDirectionSetting direction
The optimization direction to use for calls to functions that do not provide it explicitly....
bool hasInitialScheduler() const
Returns true iff an initial scheduler is set.
storm::storage::SparseMatrix< ValueType > const * A
A class that holds a possibly non-square matrix in the compressed row storage format.