24 virtual void multiply(
Environment const& env, std::vector<ValueType>
const& x, std::vector<ValueType>
const* b,
25 std::vector<ValueType>& result)
const override;
26 virtual void multiplyGaussSeidel(
Environment const& env, std::vector<ValueType>& x, std::vector<ValueType>
const* b,
bool backwards =
true)
const override;
28 std::vector<ValueType>
const& x, std::vector<ValueType>
const* b, std::vector<ValueType>& result,
29 std::vector<uint_fast64_t>* choices =
nullptr)
const override;
31 std::vector<ValueType>& x, std::vector<ValueType>
const* b, std::vector<uint_fast64_t>* choices =
nullptr,
32 bool backwards =
true)
const override;
33 virtual void multiplyRow(uint64_t
const& rowIndex, std::vector<ValueType>
const& x, ValueType& value)
const override;
37 void initialize()
const;
41 void multAdd(std::vector<ValueType>
const& x, std::vector<ValueType>
const* b, std::vector<ValueType>& result)
const;
42 void multAddParallel(std::vector<ValueType>
const& x, std::vector<ValueType>
const* b, std::vector<ValueType>& result)
const;
44 std::vector<ValueType>
const* b, std::vector<ValueType>& result, std::vector<uint64_t>* choices =
nullptr)
const;
46 std::vector<ValueType>
const* b, std::vector<ValueType>& result, std::vector<uint64_t>* choices =
nullptr,
47 bool backwards =
true)
const;
49 template<
typename Compare,
bool backwards = true>
50 void multAddReduceHelper(std::vector<uint64_t>
const& rowGroupIndices, std::vector<ValueType>
const& x, std::vector<ValueType>
const* b,
51 std::vector<ValueType>& result, std::vector<uint64_t>* choices =
nullptr)
const;
53 mutable gmm::csr_matrix<ValueType> gmmMatrix;
virtual void multiplyAndReduceGaussSeidel(Environment const &env, OptimizationDirection const &dir, std::vector< uint64_t > const &rowGroupIndices, std::vector< ValueType > &x, std::vector< ValueType > const *b, std::vector< uint_fast64_t > *choices=nullptr, bool backwards=true) const override
virtual void multiply(Environment const &env, std::vector< ValueType > const &x, std::vector< ValueType > const *b, std::vector< ValueType > &result) const override
Performs a matrix-vector multiplication x' = A*x + b.
virtual void multiplyGaussSeidel(Environment const &env, std::vector< ValueType > &x, std::vector< ValueType > const *b, bool backwards=true) const override
Performs a matrix-vector multiplication in gauss-seidel style.
virtual void multiplyAndReduce(Environment const &env, OptimizationDirection const &dir, std::vector< uint64_t > const &rowGroupIndices, std::vector< ValueType > const &x, std::vector< ValueType > const *b, std::vector< ValueType > &result, std::vector< uint_fast64_t > *choices=nullptr) const override
virtual void multiplyRow(uint64_t const &rowIndex, std::vector< ValueType > const &x, ValueType &value) const override
Multiplies the row with the given index with x and adds the result to the provided value.