You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

config.h 6.7 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208
  1. #ifndef RELAPACK_CONFIG_H
  2. #define RELAPACK_CONFIG_H
  3. // ReLAPACK configuration file.
  4. // See also config.md
  5. ///////////////////////////////
  6. // BLAS/LAPACK obect symbols //
  7. ///////////////////////////////
  8. // BLAS routines linked against have a trailing underscore
  9. #define BLAS_UNDERSCORE 1
  10. // LAPACK routines linked against have a trailing underscore
  11. #define LAPACK_UNDERSCORE BLAS_UNDERSCORE
  12. // Complex BLAS/LAPACK routines return their result in the first argument
  13. // This option must be enabled when linking to MKL for ctrsyl and ztrsyl to
  14. // work.
  15. #define COMPLEX_FUNCTIONS_AS_ROUTINES 0
  16. #ifdef F_INTERFACE_INTEL
  17. #define COMPLEX_FUNCTIONS_AS_ROUTINES 1
  18. #endif
  19. #define BLAS_COMPLEX_FUNCTIONS_AS_ROUTINES COMPLEX_FUNCTIONS_AS_ROUTINES
  20. #define LAPACK_BLAS_COMPLEX_FUNCTIONS_AS_ROUTINES COMPLEX_FUNCTIONS_AS_ROUTINES
  21. // The BLAS-like extension xgemmt is provided by an external library.
  22. #define HAVE_XGEMMT 0
  23. ////////////////////////////
  24. // Use malloc in ReLAPACK //
  25. ////////////////////////////
  26. #define ALLOW_MALLOC 1
  27. // allow malloc in xsygst for improved performance
  28. #define XSYGST_ALLOW_MALLOC ALLOW_MALLOC
  29. // allow malloc in xsytrf if the passed work buffer is too small
  30. //#define XSYTRF_ALLOW_MALLOC ALLOW_MALLOC
  31. #define XSYTRF_ALLOW_MALLOC 0
  32. ////////////////////////////////
  33. // LAPACK routine replacement //
  34. ////////////////////////////////
  35. // The following macros specify which routines are included in the library under
  36. // LAPACK's symbol names: 1 included, 0 not included
  37. #define INCLUDE_ALL 1
  38. #define INCLUDE_XLAUUM INCLUDE_ALL
  39. #define INCLUDE_SLAUUM INCLUDE_XLAUUM
  40. #define INCLUDE_DLAUUM INCLUDE_XLAUUM
  41. #define INCLUDE_CLAUUM INCLUDE_XLAUUM
  42. #define INCLUDE_ZLAUUM INCLUDE_XLAUUM
  43. #define INCLUDE_XSYGST INCLUDE_ALL
  44. #define INCLUDE_SSYGST INCLUDE_XSYGST
  45. #define INCLUDE_DSYGST INCLUDE_XSYGST
  46. #define INCLUDE_CHEGST INCLUDE_XSYGST
  47. #define INCLUDE_ZHEGST INCLUDE_XSYGST
  48. #define INCLUDE_XTRTRI INCLUDE_ALL
  49. #define INCLUDE_STRTRI INCLUDE_XTRTRI
  50. #define INCLUDE_DTRTRI INCLUDE_XTRTRI
  51. #define INCLUDE_CTRTRI INCLUDE_XTRTRI
  52. #define INCLUDE_ZTRTRI INCLUDE_XTRTRI
  53. #define INCLUDE_XPOTRF INCLUDE_ALL
  54. #define INCLUDE_SPOTRF INCLUDE_XPOTRF
  55. #define INCLUDE_DPOTRF INCLUDE_XPOTRF
  56. #define INCLUDE_CPOTRF INCLUDE_XPOTRF
  57. #define INCLUDE_ZPOTRF INCLUDE_XPOTRF
  58. #define INCLUDE_XPBTRF INCLUDE_ALL
  59. #define INCLUDE_SPBTRF INCLUDE_XPBTRF
  60. #define INCLUDE_DPBTRF INCLUDE_XPBTRF
  61. #define INCLUDE_CPBTRF INCLUDE_XPBTRF
  62. #define INCLUDE_ZPBTRF INCLUDE_XPBTRF
  63. #define INCLUDE_XSYTRF INCLUDE_ALL
  64. #define INCLUDE_SSYTRF INCLUDE_XSYTRF
  65. #define INCLUDE_DSYTRF INCLUDE_XSYTRF
  66. #define INCLUDE_CSYTRF INCLUDE_XSYTRF
  67. #define INCLUDE_CHETRF INCLUDE_XSYTRF
  68. #define INCLUDE_ZSYTRF INCLUDE_XSYTRF
  69. #define INCLUDE_ZHETRF INCLUDE_XSYTRF
  70. #define INCLUDE_SSYTRF_ROOK INCLUDE_SSYTRF
  71. #define INCLUDE_DSYTRF_ROOK INCLUDE_DSYTRF
  72. #define INCLUDE_CSYTRF_ROOK INCLUDE_CSYTRF
  73. #define INCLUDE_CHETRF_ROOK INCLUDE_CHETRF
  74. #define INCLUDE_ZSYTRF_ROOK INCLUDE_ZSYTRF
  75. #define INCLUDE_ZHETRF_ROOK INCLUDE_ZHETRF
  76. #define INCLUDE_XGETRF INCLUDE_ALL
  77. #define INCLUDE_SGETRF INCLUDE_XGETRF
  78. #define INCLUDE_DGETRF INCLUDE_XGETRF
  79. #define INCLUDE_CGETRF INCLUDE_XGETRF
  80. #define INCLUDE_ZGETRF INCLUDE_XGETRF
  81. #define INCLUDE_XGBTRF INCLUDE_ALL
  82. #define INCLUDE_SGBTRF INCLUDE_XGBTRF
  83. #define INCLUDE_DGBTRF INCLUDE_XGBTRF
  84. #define INCLUDE_CGBTRF INCLUDE_XGBTRF
  85. #define INCLUDE_ZGBTRF INCLUDE_XGBTRF
  86. #define INCLUDE_XTRSYL INCLUDE_ALL
  87. #define INCLUDE_STRSYL INCLUDE_XTRSYL
  88. #define INCLUDE_DTRSYL INCLUDE_XTRSYL
  89. #define INCLUDE_CTRSYL INCLUDE_XTRSYL
  90. #define INCLUDE_ZTRSYL INCLUDE_XTRSYL
  91. #define INCLUDE_XTGSYL INCLUDE_ALL
  92. #define INCLUDE_STGSYL INCLUDE_XTGSYL
  93. #define INCLUDE_DTGSYL INCLUDE_XTGSYL
  94. #define INCLUDE_CTGSYL INCLUDE_XTGSYL
  95. #define INCLUDE_ZTGSYL INCLUDE_XTGSYL
  96. #define INCLUDE_XGEMMT 1
  97. #define INCLUDE_SGEMMT INCLUDE_XGEMMT
  98. #define INCLUDE_DGEMMT INCLUDE_XGEMMT
  99. #define INCLUDE_CGEMMT INCLUDE_XGEMMT
  100. #define INCLUDE_ZGEMMT INCLUDE_XGEMMT
  101. /////////////////////
  102. // crossover sizes //
  103. /////////////////////
  104. // default crossover size
  105. #define CROSSOVER 24
  106. // individual crossover sizes
  107. #define CROSSOVER_XLAUUM CROSSOVER
  108. #define CROSSOVER_SLAUUM CROSSOVER_XLAUUM
  109. #define CROSSOVER_DLAUUM CROSSOVER_XLAUUM
  110. #define CROSSOVER_CLAUUM CROSSOVER_XLAUUM
  111. #define CROSSOVER_ZLAUUM CROSSOVER_XLAUUM
  112. #define CROSSOVER_XSYGST CROSSOVER
  113. #define CROSSOVER_SSYGST CROSSOVER_XSYGST
  114. #define CROSSOVER_DSYGST CROSSOVER_XSYGST
  115. #define CROSSOVER_CHEGST CROSSOVER_XSYGST
  116. #define CROSSOVER_ZHEGST CROSSOVER_XSYGST
  117. #define CROSSOVER_XTRTRI CROSSOVER
  118. #define CROSSOVER_STRTRI CROSSOVER_XTRTRI
  119. #define CROSSOVER_DTRTRI CROSSOVER_XTRTRI
  120. #define CROSSOVER_CTRTRI CROSSOVER_XTRTRI
  121. #define CROSSOVER_ZTRTRI CROSSOVER_XTRTRI
  122. #define CROSSOVER_XPOTRF CROSSOVER
  123. #define CROSSOVER_SPOTRF CROSSOVER_XPOTRF
  124. #define CROSSOVER_DPOTRF CROSSOVER_XPOTRF
  125. #define CROSSOVER_CPOTRF CROSSOVER_XPOTRF
  126. #define CROSSOVER_ZPOTRF CROSSOVER_XPOTRF
  127. #define CROSSOVER_XPBTRF CROSSOVER
  128. #define CROSSOVER_SPBTRF CROSSOVER_XPBTRF
  129. #define CROSSOVER_DPBTRF CROSSOVER_XPBTRF
  130. #define CROSSOVER_CPBTRF CROSSOVER_XPBTRF
  131. #define CROSSOVER_ZPBTRF CROSSOVER_XPBTRF
  132. #define CROSSOVER_XSYTRF CROSSOVER
  133. #define CROSSOVER_SSYTRF CROSSOVER_XSYTRF
  134. #define CROSSOVER_DSYTRF CROSSOVER_XSYTRF
  135. #define CROSSOVER_CSYTRF CROSSOVER_XSYTRF
  136. #define CROSSOVER_CHETRF CROSSOVER_XSYTRF
  137. #define CROSSOVER_ZSYTRF CROSSOVER_XSYTRF
  138. #define CROSSOVER_ZHETRF CROSSOVER_XSYTRF
  139. #define CROSSOVER_SSYTRF_ROOK CROSSOVER_SSYTRF
  140. #define CROSSOVER_DSYTRF_ROOK CROSSOVER_DSYTRF
  141. #define CROSSOVER_CSYTRF_ROOK CROSSOVER_CSYTRF
  142. #define CROSSOVER_CHETRF_ROOK CROSSOVER_CHETRF
  143. #define CROSSOVER_ZSYTRF_ROOK CROSSOVER_ZSYTRF
  144. #define CROSSOVER_ZHETRF_ROOK CROSSOVER_ZHETRF
  145. #define CROSSOVER_XGETRF CROSSOVER
  146. #define CROSSOVER_SGETRF CROSSOVER_XGETRF
  147. #define CROSSOVER_DGETRF CROSSOVER_XGETRF
  148. #define CROSSOVER_CGETRF CROSSOVER_XGETRF
  149. #define CROSSOVER_ZGETRF CROSSOVER_XGETRF
  150. #define CROSSOVER_XGBTRF CROSSOVER
  151. #define CROSSOVER_SGBTRF CROSSOVER_XGBTRF
  152. #define CROSSOVER_DGBTRF CROSSOVER_XGBTRF
  153. #define CROSSOVER_CGBTRF CROSSOVER_XGBTRF
  154. #define CROSSOVER_ZGBTRF CROSSOVER_XGBTRF
  155. #define CROSSOVER_XTRSYL CROSSOVER
  156. #define CROSSOVER_STRSYL CROSSOVER_XTRSYL
  157. #define CROSSOVER_DTRSYL CROSSOVER_XTRSYL
  158. #define CROSSOVER_CTRSYL CROSSOVER_XTRSYL
  159. #define CROSSOVER_ZTRSYL CROSSOVER_XTRSYL
  160. #define CROSSOVER_XTGSYL CROSSOVER
  161. #define CROSSOVER_STGSYL CROSSOVER_XTGSYL
  162. #define CROSSOVER_DTGSYL CROSSOVER_XTGSYL
  163. #define CROSSOVER_CTGSYL CROSSOVER_XTGSYL
  164. #define CROSSOVER_ZTGSYL CROSSOVER_XTGSYL
  165. // sytrf helper routine
  166. #define CROSSOVER_XGEMMT CROSSOVER_XSYTRF
  167. #define CROSSOVER_SGEMMT CROSSOVER_XGEMMT
  168. #define CROSSOVER_DGEMMT CROSSOVER_XGEMMT
  169. #define CROSSOVER_CGEMMT CROSSOVER_XGEMMT
  170. #define CROSSOVER_ZGEMMT CROSSOVER_XGEMMT
  171. #endif /* RELAPACK_CONFIG_H */