14#ifndef EIGEN_GPU_DEVICE_BLAS_EXPR_H
15#define EIGEN_GPU_DEVICE_BLAS_EXPR_H
18#include "./InternalHeaderCheck.h"
28template <
typename Scalar_,
int UpLo_>
31 using Scalar = Scalar_;
32 static constexpr int UpLo = UpLo_;
40 std::reference_wrapper<const DeviceMatrix<Scalar>> mat_;
44template <
typename Scalar_,
int UpLo_>
47 using Scalar = Scalar_;
48 static constexpr int UpLo = UpLo_;
55 std::reference_wrapper<const DeviceMatrix<Scalar>> A_;
56 std::reference_wrapper<const DeviceMatrix<Scalar>> B_;
60template <
typename Scalar_,
int UpLo_>
61class SelfAdjointView {
63 using Scalar = Scalar_;
65 static constexpr int UpLo = UpLo_;
76 std::reference_wrapper<DeviceMatrix<Scalar>> mat_;
80template <
typename Scalar_,
int UpLo_>
81class ConstSelfAdjointView {
83 using Scalar = Scalar_;
84 static constexpr int UpLo = UpLo_;
90 std::reference_wrapper<const DeviceMatrix<Scalar>> mat_;
95template <
typename Scalar_,
int UpLo_>
98 using Scalar = Scalar_;
99 static constexpr int UpLo = UpLo_;
106 std::reference_wrapper<const DeviceMatrix<Scalar>> A_;
107 std::reference_wrapper<const DeviceMatrix<Scalar>> B_;
110template <
typename S,
int UpLo>
112 return {a.matrix(), b};
114template <
typename S,
int UpLo>
115SymmExpr<S, UpLo> operator*(
const ConstSelfAdjointView<S, UpLo>& a,
const DeviceMatrix<S>& b) {
116 return {a.matrix(), b};
121template <
typename Scalar_,
int UpLo_>
124 using Scalar = Scalar_;
125 static constexpr int UpLo = UpLo_;
131 std::reference_wrapper<const DeviceMatrix<Scalar>> A_;
RAII wrapper for a dense column-major matrix in GPU device memory.
Definition DeviceMatrix.h:122
Definition DeviceBlasExpr.h:61
void rankUpdate(const DeviceMatrix< Scalar > &A, RealScalar alpha=RealScalar(1))
Definition DeviceDispatch.h:543
Definition DeviceBlasExpr.h:96
Definition DeviceBlasExpr.h:45
Namespace containing all symbols from the Eigen library.