PaStiX Handbook  6.3.2
z_nan_check.h
Go to the documentation of this file.
1 /**
2  * @file z_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 -> z, Wed Dec 13 12:09:05 2023
16  *
17  */
18 #ifndef _z_nan_check_h_
19 #define _z_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_zlacpy_work LAPACKE_zlacpy
26 #define LAPACKE_zlaset_work LAPACKE_zlaset
27 
28 #define LAPACKE_zunmlq_work( _layout_, _side_, _trans_, _m_, _n_, _k_, _a_, _lda_, _tau_, _c_, _ldc_, _w_, _ldw_ ) \
29  LAPACKE_zunmlq( _layout_, _side_, _trans_, _m_, _n_, _k_, _a_, _lda_, _tau_, _c_, _ldc_ )
30 #define LAPACKE_zunmqr_work( _layout_, _side_, _trans_, _m_, _n_, _k_, _a_, _lda_, _tau_, _c_, _ldc_, _w_, _ldw_ ) \
31  LAPACKE_zunmqr( _layout_, _side_, _trans_, _m_, _n_, _k_, _a_, _lda_, _tau_, _c_, _ldc_ )
32 
33 #define LAPACKE_zgeqrf_work( _layout_, _m_, _n_, _a_, _lda_, _tau_, _w_, _ldw_ ) \
34  LAPACKE_zgeqrf( _layout_, _m_, _n_, _a_, _lda_, _tau_ )
35 #define LAPACKE_zgelqf_work( _layout_, _m_, _n_, _a_, _lda_, _tau_, _w_, _ldw_ ) \
36  LAPACKE_zgelqf( _layout_, _m_, _n_, _a_, _lda_, _tau_ )
37 
38 #if defined(PRECISION_z) || defined(PRECISION_c)
39 #define MYLAPACKE_zgesvd_work( _layout_, _jobu_, jobv_, _m_, _n_, _a_, _lda_, _s_, _u_, _ldu_, _v_, _ldv_, _w_, _ldw_, _rw_ ) \
40  LAPACKE_zgesvd( _layout_, _jobu_, jobv_, _m_, _n_, _a_, _lda_, _s_, _u_, _ldu_, _v_, _ldv_, (double*)(_w_) )
41 #else
42 #define MYLAPACKE_zgesvd_work( _layout_, _jobu_, jobv_, _m_, _n_, _a_, _lda_, _s_, _u_, _ldu_, _v_, _ldv_, _w_, _ldw_, _rw_ ) \
43  LAPACKE_zgesvd( _layout_, _jobu_, jobv_, _m_, _n_, _a_, _lda_, _s_, _u_, _ldu_, _v_, _ldv_, (double*)(_w_) )
44 #endif
45 
46 #else
47 
48 #if defined(PRECISION_z) || defined(PRECISION_c)
49 #define MYLAPACKE_zgesvd_work( _layout_, _jobu_, jobv_, _m_, _n_, _a_, _lda_, _s_, _u_, _ldu_, _v_, _ldv_, _w_, _ldw_, _rw_ ) \
50  LAPACKE_zgesvd_work( _layout_, _jobu_, jobv_, _m_, _n_, _a_, _lda_, _s_, _u_, _ldu_, _v_, _ldv_, _w_, _ldw_, _rw_ )
51 #else
52 #define MYLAPACKE_zgesvd_work( _layout_, _jobu_, jobv_, _m_, _n_, _a_, _lda_, _s_, _u_, _ldu_, _v_, _ldv_, _w_, _ldw_, _rw_ ) \
53  LAPACKE_zgesvd_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 /* _z_nan_check_h_ */