class gpr::linalg::detail::CusolverLibΒΆ

#include <CusolverBackend.h>
 
class CusolverLib {
public:
    // typedefs
 
    typedef cusolverStatus_t(*)(cusolverDnHandle_t*) DnCreate_t;
    typedef cusolverStatus_t(*)(cusolverDnHandle_t, cublasFillMode_t, int, double*, int, int*) DnDpotrf_bufferSize_t;
    typedef cusolverStatus_t(*)(cusolverDnHandle_t, cublasFillMode_t, int, double*, int, double*, int, int*) DnDpotrf_t;
    typedef cusolverStatus_t(*)(cusolverDnHandle_t, cublasFillMode_t, int, double*, int, int*) DnDpotri_bufferSize_t;
    typedef cusolverStatus_t(*)(cusolverDnHandle_t, cublasFillMode_t, int, double*, int, double*, int, int*) DnDpotri_t;
 
    // fields
 
    DnCreate_t cusolverDnCreate = nullptr;
    DnDpotrf_bufferSize_t cusolverDnDpotrf_bufferSize = nullptr;
    DnDpotrf_t cusolverDnDpotrf = nullptr;
    DnDpotri_bufferSize_t cusolverDnDpotri_bufferSize = nullptr;
    DnDpotri_t cusolverDnDpotri = nullptr;
 
    // methods
 
    static CusolverLib& instance();
};