TRIQS/nda 1.3.0
Multi-dimensional array library for C++
Loading...
Searching...
No Matches
cusolver_interface.hpp
Go to the documentation of this file.
1// Copyright (c) 2022-2023 Simons Foundation
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0.txt
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14//
15// Authors: Miguel Morales, Nils Wentzell
16
17/**
18 * @file
19 * @brief Provides a C++ interface for the GPU versions of various LAPACK routines.
20 */
21
22#pragma once
23
24#include "../../blas/tools.hpp"
25
26namespace nda::lapack::device {
27
28 void gesvd(char JOBU, char JOBVT, int M, int N, double *A, int LDA, double *S, double *U, int LDU, double *VT, int LDVT, double *WORK, int LWORK,
29 double *RWORK, int &INFO);
30 void gesvd(char JOBU, char JOBVT, int M, int N, dcomplex *A, int LDA, double *S, dcomplex *U, int LDU, dcomplex *VT, int LDVT, dcomplex *WORK,
31 int LWORK, double *RWORK, int &INFO);
32
33 void getrf(int M, int N, double *A, int LDA, int *ipiv, int &info);
34 void getrf(int M, int N, dcomplex *A, int LDA, int *ipiv, int &info);
35
36 void getri(int N, double *A, int LDA, int *ipiv, double *WORK, int LWORK, int &info);
37 void getri(int N, dcomplex *A, int LDA, int *ipiv, dcomplex *WORK, int LWORK, int &info);
38
39 void getrs(char op, int N, int NRHS, double const *A, int LDA, int const *ipiv, double *B, int LDB, int &info);
40 void getrs(char op, int N, int NRHS, dcomplex const *A, int LDA, int const *ipiv, dcomplex *B, int LDB, int &info);
41
42} // namespace nda::lapack::device
#define CUSOLVER_CHECK(X, info,...)
#define NDA_RUNTIME_ERROR
#define AS_STRING(...)
Definition macros.hpp:31