![]() |
Eigen-Contrib
5.0.1
|
#include <contrib/Eigen/src/GPU/GpuSparseContext.h>
alpha * (DeviceSparseView * DeviceMatrix) + beta * addend with alpha, beta = ±1: the result of d_b - d_A * d_x, d_b + d_A * d_x, d_A * d_x + d_b and d_A * d_x - d_b, so that Eigen's iterative solver templates (residual = rhs - mat * x) compile. Evaluated by DeviceMatrix::operator=(SpMVAffineExpr): the addend is copied into the destination unless it already is the destination, then one cusparseSpMV (one column) or cusparseSpMM call runs with the given alpha and beta. No operator takes an SpMVAffineExpr, so an expression with a second addend does not compile.