PaStiX Handbook  6.3.2
d_nan_check.h
Go to the documentation of this file.
1 /**
2  * @file d_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 -> d, Wed Dec 13 12:09:05 2023
16  *
17  */
18 #ifndef _d_nan_check_h_
19 #define _d_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_dlacpy_work LAPACKE_dlacpy
26 #define LAPACKE_dlaset_work LAPACKE_dlaset
27 
28 #define LAPACKE_dormlq_work( _layout_, _side_, _trans_, _m_, _n_, _k_, _a_, _lda_, _tau_, _c_, _ldc_, _w_, _ldw_ ) \
29  LAPACKE_dormlq( _layout_, _side_, _trans_, _m_, _n_, _k_, _a_, _lda_, _tau_, _c_, _ldc_ )
30 #define LAPACKE_dormqr_work( _layout_, _side_, _trans_, _m_, _n_, _k_, _a_, _lda_, _tau_, _c_, _ldc_, _w_, _ldw_ ) \
31  LAPACKE_dormqr( _layout_, _side_, _trans_, _m_, _n_, _k_, _a_, _lda_, _tau_, _c_, _ldc_ )
32 
33 #define LAPACKE_dgeqrf_work( _layout_, _m_, _n_, _a_, _lda_, _tau_, _w_, _ldw_ ) \
34  LAPACKE_dgeqrf( _layout_, _m_, _n_, _a_, _lda_, _tau_ )
35 #define LAPACKE_dgelqf_work( _layout_, _m_, _n_, _a_, _lda_, _tau_, _w_, _ldw_ ) \
36  LAPACKE_dgelqf( _layout_, _m_, _n_, _a_, _lda_, _tau_ )
37 
38 #if defined(PRECISION_z) || defined(PRECISION_c)
39 #define MYLAPACKE_dgesvd_work( _layout_, _jobu_, jobv_, _m_, _n_, _a_, _lda_, _s_, _u_, _ldu_, _v_, _ldv_, _w_, _ldw_, _rw_ ) \
40  LAPACKE_dgesvd( _layout_, _jobu_, jobv_, _m_, _n_, _a_, _lda_, _s_, _u_, _ldu_, _v_, _ldv_, (double*)(_w_) )
41 #else
42 #define MYLAPACKE_dgesvd_work( _layout_, _jobu_, jobv_, _m_, _n_, _a_, _lda_, _s_, _u_, _ldu_, _v_, _ldv_, _w_, _ldw_, _rw_ ) \
43  LAPACKE_dgesvd( _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_dgesvd_work( _layout_, _jobu_, jobv_, _m_, _n_, _a_, _lda_, _s_, _u_, _ldu_, _v_, _ldv_, _w_, _ldw_, _rw_ ) \
50  LAPACKE_dgesvd_work( _layout_, _jobu_, jobv_, _m_, _n_, _a_, _lda_, _s_, _u_, _ldu_, _v_, _ldv_, _w_, _ldw_, _rw_ )
51 #else
52 #define MYLAPACKE_dgesvd_work( _layout_, _jobu_, jobv_, _m_, _n_, _a_, _lda_, _s_, _u_, _ldu_, _v_, _ldv_, _w_, _ldw_, _rw_ ) \
53  LAPACKE_dgesvd_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 /* _d_nan_check_h_ */