TRIQS/nda
2.0.0
Multi-dimensional array library for C++
Toggle main menu visibility
Loading...
Searching...
No Matches
cxx_interface.hpp
Go to the documentation of this file.
1
// Copyright (c) 2019--present, The Simons Foundation
2
// This file is part of TRIQS/nda and is licensed under the Apache License, Version 2.0.
3
// SPDX-License-Identifier: Apache-2.0
4
// See LICENSE in the root of this distribution for details.
5
10
11
#pragma once
12
13
#include "
../tools.hpp
"
14
15
#if defined(NDA_HAVE_CUDA)
16
#include "
./cublas_interface.hpp
"
17
#endif
// NDA_HAVE_CUDA
18
19
namespace
nda::blas::f77 {
20
21
void
axpy(
int
n,
double
alpha,
const
double
*x,
int
incx,
double
*y,
int
incy);
22
void
axpy(
int
n,
dcomplex
alpha,
const
dcomplex
*x,
int
incx,
dcomplex
*y,
int
incy);
23
24
void
copy(
int
n,
const
double
*x,
int
incx,
double
*y,
int
incy);
25
void
copy(
int
n,
const
dcomplex
*x,
int
incx,
dcomplex
*y,
int
incy);
26
27
double
dot(
int
m,
const
double
*x,
int
incx,
const
double
*y,
int
incy);
28
dcomplex
dot(
int
m,
const
dcomplex
*x,
int
incx,
const
dcomplex
*y,
int
incy);
29
dcomplex
dotc(
int
m,
const
dcomplex
*x,
int
incx,
const
dcomplex
*y,
int
incy);
30
31
void
gemm(
char
op_a,
char
op_b,
int
m,
int
n,
int
k,
double
alpha,
const
double
*a,
int
lda,
const
double
*b,
int
ldb,
double
beta,
double
*c,
32
int
ldc);
33
void
gemm(
char
op_a,
char
op_b,
int
m,
int
n,
int
k,
dcomplex
alpha,
const
dcomplex
*a,
int
lda,
const
dcomplex
*b,
int
ldb,
dcomplex
beta,
34
dcomplex
*c,
int
ldc);
35
36
void
gemm_batch(
char
op_a,
char
op_b,
int
m,
int
n,
int
k,
double
alpha,
const
double
**a,
int
lda,
const
double
**b,
int
ldb,
double
beta,
37
double
**c,
int
ldc,
int
batch_count);
38
void
gemm_batch(
char
op_a,
char
op_b,
int
m,
int
n,
int
k,
dcomplex
alpha,
const
dcomplex
**a,
int
lda,
const
dcomplex
**b,
int
ldb,
dcomplex
beta,
39
dcomplex
**c,
int
ldc,
int
batch_count);
40
41
void
gemm_vbatch(
char
op_a,
char
op_b,
int
*m,
int
*n,
int
*k,
double
alpha,
const
double
**a,
int
*lda,
const
double
**b,
int
*ldb,
double
beta,
42
double
**c,
int
*ldc,
int
batch_count);
43
void
gemm_vbatch(
char
op_a,
char
op_b,
int
*m,
int
*n,
int
*k,
dcomplex
alpha,
const
dcomplex
**a,
int
*lda,
const
dcomplex
**b,
int
*ldb,
44
dcomplex
beta,
dcomplex
**c,
int
*ldc,
int
batch_count);
45
46
void
gemm_batch_strided(
char
op_a,
char
op_b,
int
m,
int
n,
int
k,
double
alpha,
const
double
*a,
int
lda,
int
stride_a,
const
double
*b,
int
ldb,
47
int
stride_b,
double
beta,
double
*c,
int
ldc,
int
stride_c,
int
batch_count);
48
void
gemm_batch_strided(
char
op_a,
char
op_b,
int
m,
int
n,
int
k,
dcomplex
alpha,
const
dcomplex
*a,
int
lda,
int
stride_a,
const
dcomplex
*b,
49
int
ldb,
int
stride_b,
dcomplex
beta,
dcomplex
*c,
int
ldc,
int
stride_c,
int
batch_count);
50
51
void
gemv(
char
op,
int
m,
int
n,
double
alpha,
const
double
*a,
int
lda,
const
double
*x,
int
incx,
double
beta,
double
*y,
int
incy);
52
void
gemv(
char
op,
int
m,
int
n,
dcomplex
alpha,
const
dcomplex
*a,
int
lda,
const
dcomplex
*x,
int
incx,
dcomplex
beta,
dcomplex
*y,
int
incy);
53
54
void
ger(
int
m,
int
n,
double
alpha,
const
double
*x,
int
incx,
const
double
*y,
int
incy,
double
*a,
int
lda);
55
void
ger(
int
m,
int
n,
dcomplex
alpha,
const
dcomplex
*x,
int
incx,
const
dcomplex
*y,
int
incy,
dcomplex
*a,
int
lda);
56
void
gerc(
int
m,
int
n,
dcomplex
alpha,
const
dcomplex
*x,
int
incx,
const
dcomplex
*y,
int
incy,
dcomplex
*a,
int
lda);
57
58
void
scal(
int
m,
double
alpha,
double
*x,
int
incx);
59
void
scal(
int
m,
dcomplex
alpha,
dcomplex
*x,
int
incx);
60
61
void
swap(
int
n,
double
*x,
int
incx,
double
*y,
int
incy);
// NOLINT (this is a BLAS swap)
62
void
swap(
int
n,
dcomplex
*x,
int
incx,
dcomplex
*y,
int
incy);
// NOLINT (this is a BLAS swap)
63
64
}
// namespace nda::blas::f77
cublas_interface.hpp
Provides a C++ interface for the GPU versions of various BLAS routines.
nda::dcomplex
std::complex< double > dcomplex
Alias for std::complex<double> type.
Definition
tools.hpp:28
tools.hpp
Provides various traits and utilities for the BLAS interface.
nda
blas
interface
cxx_interface.hpp
Generated by
1.17.0