PaStiX Handbook  6.3.2
c_nan_check.h
Go to the documentation of this file.
1 /**
2  * @file c_nan_check.h
3  *
4  * @copyright 2016-2023 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
5  * Univ. Bordeaux. All rights reserved.
6  *
7  * @brief Manage nancheck for lowrank kernels.
8  * This header describes all the LAPACKE functions used for low-rank kernels,
9  * as well as some macros to manage nancheck.
10  *
11  * @version 6.3.2
12  * @author Mathieu Faverge
13  * @author Gregoire Pichon
14  * @date 2023-07-21
15  * @generated from /builds/solverstack/pastix/kernels/z_nan_check.h, normal z -> c, Wed Dec 13 12:09:05 2023
16  *
17  */
18 #ifndef _c_nan_check_h_
19 #define _c_nan_check_h_
20 
21 #ifndef DOXYGEN_SHOULD_SKIP_THIS
22 // #endif /* DOXYGEN_SHOULD_SKIP_THIS */
23 
24 #if defined(PASTIX_DEBUG_LR_NANCHECK)
25 #define LAPACKE_clacpy_work LAPACKE_clacpy
26 #define LAPACKE_claset_work LAPACKE_claset
27 
28 #define LAPACKE_cunmlq_work( _layout_, _side_, _trans_, _m_, _n_, _k_, _a_, _lda_, _tau_, _c_, _ldc_, _w_, _ldw_ ) \
29  LAPACKE_cunmlq( _layout_, _side_, _trans_, _m_, _n_, _k_, _a_, _lda_, _tau_, _c_, _ldc_ )
30 #define LAPACKE_cunmqr_work( _layout_, _side_, _trans_, _m_, _n_, _k_, _a_, _lda_, _tau_, _c_, _ldc_, _w_, _ldw_ ) \
31  LAPACKE_cunmqr( _layout_, _side_, _trans_, _m_, _n_, _k_, _a_, _lda_, _tau_, _c_, _ldc_ )
32 
33 #define LAPACKE_cgeqrf_work( _layout_, _m_, _n_, _a_, _lda_, _tau_, _w_, _ldw_ ) \
34  LAPACKE_cgeqrf( _layout_, _m_, _n_, _a_, _lda_, _tau_ )
35 #define LAPACKE_cgelqf_work( _layout_, _m_, _n_, _a_, _lda_, _tau_, _w_, _ldw_ ) \
36  LAPACKE_cgelqf( _layout_, _m_, _n_, _a_, _lda_, _tau_ )
37 
38 #if defined(PRECISION_z) || defined(PRECISION_c)
39 #define MYLAPACKE_cgesvd_work( _layout_, _jobu_, jobv_, _m_, _n_, _a_, _lda_, _s_, _u_, _ldu_, _v_, _ldv_, _w_, _ldw_, _rw_ ) \
40  LAPACKE_cgesvd( _layout_, _jobu_, jobv_, _m_, _n_, _a_, _lda_, _s_, _u_, _ldu_, _v_, _ldv_, (float*)(_w_) )
41 #else
42 #define MYLAPACKE_cgesvd_work( _layout_, _jobu_, jobv_, _m_, _n_, _a_, _lda_, _s_, _u_, _ldu_, _v_, _ldv_, _w_, _ldw_, _rw_ ) \
43  LAPACKE_cgesvd( _layout_, _jobu_, jobv_, _m_, _n_, _a_, _lda_, _s_, _u_, _ldu_, _v_, _ldv_, (float*)(_w_) )
44 #endif
45 
46 #else
47 
48 #if defined(PRECISION_z) || defined(PRECISION_c)
49 #define MYLAPACKE_cgesvd_work( _layout_, _jobu_, jobv_, _m_, _n_, _a_, _lda_, _s_, _u_, _ldu_, _v_, _ldv_, _w_, _ldw_, _rw_ ) \
50  LAPACKE_cgesvd_work( _layout_, _jobu_, jobv_, _m_, _n_, _a_, _lda_, _s_, _u_, _ldu_, _v_, _ldv_, _w_, _ldw_, _rw_ )
51 #else
52 #define MYLAPACKE_cgesvd_work( _layout_, _jobu_, jobv_, _m_, _n_, _a_, _lda_, _s_, _u_, _ldu_, _v_, _ldv_, _w_, _ldw_, _rw_ ) \
53  LAPACKE_cgesvd_work( _layout_, _jobu_, jobv_, _m_, _n_, _a_, _lda_, _s_, _u_, _ldu_, _v_, _ldv_, _w_, _ldw_ )
54 #endif
55 
56 #endif /* defined(PASTIX_DEBUG_LR_NANCHECK) */
57 
58 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
59 
60 #endif /* _c_nan_check_h_ */