12#ifndef _CU_LINEAR_OPERATOR_CU_LINEAR_OPERATOR_H_
13#define _CU_LINEAR_OPERATOR_CU_LINEAR_OPERATOR_H_
20#include "../_definitions/types.h"
23#include "../_c_linear_operator/c_linear_operator_base.h"
27 #pragma warning(push, 0)
28 #include <cublas_v2.h>
30#elif defined(__INTEL_LLVM_COMPILER) || defined(__INTEL_COMPILER)
31 #pragma warning(push, 0)
32 #include <cublas_v2.h>
34#elif defined(__GNUC__) || defined(__clang__)
35 #pragma GCC diagnostic push
36 #pragma GCC diagnostic ignored "-Wswitch-enum"
37 #include <cublas_v2.h>
38 #pragma GCC diagnostic pop
40 #include <cublas_v2.h>
62template <
typename DataType>
79 const DataType* known_parameters,
80 const DataType known_eigenvalue,
81 const DataType* inquiry_parameters)
const = 0;
84 const DataType* vector,
85 DataType* product) = 0;
88 const DataType* vector,
89 DataType* product) = 0;
Base class for cLinearOperator and cuLinearOperator . This class is not templated so that both cpp an...
Base class for linear operators. This class serves as interface for all derived classes.
cuLinearOperator()
Default constructor.
void initialize_cusparse_handle()
Creates a cusparseHandle_t object, if not created already.
cublasHandle_t * cublas_handle
virtual void dot(const DataType *vector, DataType *product)=0
int query_gpu_devices() const
Before any numerical computation, this method chechs if any gpu device is available on the machine,...
cublasHandle_t get_cublas_handle() const
This function returns a reference to the cublasHandle_t object. The object will be created,...
cusparseHandle_t * cusparse_handle
bool copied_host_to_device
virtual ~cuLinearOperator()
Destructor.
virtual void transpose_dot(const DataType *vector, DataType *product)=0
void initialize_cublas_handle()
Creates a cublasHandle_t object, if not created already.
void set_parameters(DataType *parameters_)
Sets the scalar parameter this->parameters. Parameter is initialized to NULL. However,...
virtual DataType get_eigenvalue(const DataType *known_parameters, const DataType known_eigenvalue, const DataType *inquiry_parameters) const =0