23#include <cusp/detail/config.h>
24#include <cusp/detail/execution_policy.h>
36template <
typename DerivedPolicy,
37 typename LinearOperator,
38 typename MatrixOrVector1,
39 typename MatrixOrVector2>
40void multiply(
const thrust::detail::execution_policy_base<DerivedPolicy> &exec,
41 const LinearOperator& A,
42 const MatrixOrVector1& B,
98template <
typename LinearOperator,
99 typename MatrixOrVector1,
100 typename MatrixOrVector2>
102 const MatrixOrVector1& B,
106template <
typename DerivedPolicy,
107 typename LinearOperator,
108 typename MatrixOrVector1,
109 typename MatrixOrVector2,
110 typename UnaryFunction,
111 typename BinaryFunction1,
112 typename BinaryFunction2>
113void multiply(
const thrust::detail::execution_policy_base<DerivedPolicy> &exec,
114 const LinearOperator& A,
115 const MatrixOrVector1& B,
117 UnaryFunction initialize,
118 BinaryFunction1 combine,
119 BinaryFunction2 reduce);
187template <
typename LinearOperator,
188 typename MatrixOrVector1,
189 typename MatrixOrVector2,
190 typename UnaryFunction,
191 typename BinaryFunction1,
192 typename BinaryFunction2>
194 const MatrixOrVector1& B,
196 UnaryFunction initialize,
197 BinaryFunction1 combine,
198 BinaryFunction2 reduce);
201template <
typename DerivedPolicy,
202 typename LinearOperator,
203 typename MatrixOrVector1,
204 typename MatrixOrVector2,
205 typename UnaryFunction,
206 typename BinaryFunction1,
207 typename BinaryFunction2>
208void generalized_spgemm(
const thrust::detail::execution_policy_base<DerivedPolicy> &exec,
209 const LinearOperator& A,
210 const MatrixOrVector1& B,
212 UnaryFunction initialize,
213 BinaryFunction1 combine,
214 BinaryFunction2 reduce);
286template <
typename LinearOperator,
287 typename MatrixOrVector1,
288 typename MatrixOrVector2,
289 typename UnaryFunction,
290 typename BinaryFunction1,
291 typename BinaryFunction2>
293 const MatrixOrVector1& B,
295 UnaryFunction initialize,
296 BinaryFunction1 combine,
297 BinaryFunction2 reduce);
300template <
typename DerivedPolicy,
301 typename LinearOperator,
305 typename BinaryFunction1,
306 typename BinaryFunction2>
307void generalized_spmv(
const thrust::detail::execution_policy_base<DerivedPolicy> &exec,
308 const LinearOperator& A,
312 BinaryFunction1 combine,
313 BinaryFunction2 reduce);
379template <
typename LinearOperator,
383 typename BinaryFunction1,
384 typename BinaryFunction2>
389 BinaryFunction1 combine,
390 BinaryFunction2 reduce);
396#include <cusp/detail/multiply.inl>
void multiply(const LinearOperator &A, const MatrixOrVector1 &B, MatrixOrVector2 &C)
Implements matrix-matrix and matrix-vector multiplication.
void generalized_spmv(const LinearOperator &A, const Vector1 &x, const Vector2 &y, Vector3 &z, BinaryFunction1 combine, BinaryFunction2 reduce)
Implements generalized matrix-vector multiplication.
void generalized_spgemm(const LinearOperator &A, const MatrixOrVector1 &B, MatrixOrVector2 &C, UnaryFunction initialize, BinaryFunction1 combine, BinaryFunction2 reduce)
Implements generalized matrix-matrix multiplication.