imate
C++/CUDA Reference
lapack_api.h
Go to the documentation of this file.
1 /*
2  * SPDX-FileCopyrightText: Copyright 2021, Siavash Ameli <sameli@berkeley.edu>
3  * SPDX-License-Identifier: BSD-3-Clause
4  * SPDX-FileType: SOURCE
5  *
6  * This program is free software: you can redistribute it and/or modify it
7  * under the terms of the license found in the LICENSE.txt file in the root
8  * directory of this source tree.
9  */
10 
11 #ifndef _C_TRACE_ESTIMATOR_LAPACK_API_H_
12 #define _C_TRACE_ESTIMATOR_LAPACK_API_H_
13 
14 // The "CYTHON_EXTERN_C" is defined in Cython>=3.0.1 by default, and is defined
15 // to "extern C++". This macro is not defined in Cython<3.0.1. However, to make
16 // sure this works in lower versions of Cython, I also defined this macro in
17 // setup.py in define_macro variable.
19 {
20  // lapack sstev
21  void lapack_sstev(char* jobz, int* n, float* d, float* e, float* z,
22  int* ldz, float* work, int* info);
23 
24  // lapack dstev
25  void lapack_dstev(char* jobz, int* n, double* d, double* e, double* z,
26  int* ldz, double* work, int* info);
27 
28  // lapack sdbsdc
29  void lapack_sbdsdc(char* uplo, char* compq, int* n, float* d, float *e,
30  float* u, int* ldu, float* vt, int* ldvt, float* q,
31  int* iq, float* work, int* iwork, int* info);
32 
33  // lapack dbdsdc
34  void lapack_dbdsdc(char* uplo, char* compq, int* n, double* d,
35  double *e, double* u, int* ldu, double* vt, int* ldvt,
36  double* q, int* iq, double* work, int* iwork,
37  int* info);
38 }
39 
40 // lapack xstev (float overload)
41 template <typename DataType>
42 void lapack_xstev(char* jobz, int* n, DataType* d, DataType* e, DataType* z,
43  int* ldz, DataType* work, int* info);
44 
45 // lapack xbdsdc (float overload)
46 template <typename DataType>
47 void lapack_xbdsdc(char* uplo, char* compq, int* n, DataType* d, DataType *e,
48  DataType* u, int* ldu, DataType* vt, int* ldvt, DataType* q,
49  int* iq, DataType* work, int* iwork, int* info);
50 
51 #endif // _C_TRACE_ESTIMATOR_LAPACK_API_H_
void lapack_xbdsdc(char *uplo, char *compq, int *n, DataType *d, DataType *e, DataType *u, int *ldu, DataType *vt, int *ldvt, DataType *q, int *iq, DataType *work, int *iwork, int *info)
void lapack_sbdsdc(char *uplo, char *compq, int *n, float *d, float *e, float *u, int *ldu, float *vt, int *ldvt, float *q, int *iq, float *work, int *iwork, int *info)
void lapack_xstev(char *jobz, int *n, DataType *d, DataType *e, DataType *z, int *ldz, DataType *work, int *info)
void lapack_dstev(char *jobz, int *n, double *d, double *e, double *z, int *ldz, double *work, int *info)
void lapack_dbdsdc(char *uplo, char *compq, int *n, double *d, double *e, double *u, int *ldu, double *vt, int *ldvt, double *q, int *iq, double *work, int *iwork, int *info)
CYTHON_EXTERN_C
Definition: lapack_api.h:19