Actual source code: petscblaslapack_c.h

petsc-3.6.4 2016-04-12
Report Typos and Errors
  1: /*
  2:       This file deals with unmangled BLAS/LAPACK naming convention on systems that do not modify BLAS/LAPACK function names
  3:       adding an underscore at the end or changing to CAPS. IBM is one such compiler.
  4: */
  5: #if !defined(_BLASLAPACK_C_H)
  6: #define _BLASLAPACK_C_H

  8: #if !defined(PETSC_USE_COMPLEX)
  9: # if defined(PETSC_USE_REAL_SINGLE)
 10: /* Real single precision with no character string arguments */
 11: #  define LAPACKgeqrf_ sgeqrf
 12: #  define LAPACKungqr_ sorgqr
 13: #  define LAPACKgetrf_ sgetrf
 14: #  define LAPACKgetri_ sgetri
 15: #  define BLASdot_     sdot
 16: #  define BLASdotu_    sdot
 17: #  define BLASnrm2_    snrm2
 18: #  define BLASscal_    sscal
 19: #  define BLAScopy_    scopy
 20: #  define BLASswap_    sswap
 21: #  define BLASaxpy_    saxpy
 22: #  define BLASasum_    sasum
 23: #  define LAPACKpttrf_ spttrf /* factorization of a spd tridiagonal matrix */
 24: #  define LAPACKpttrs_ spttrs /* solve a spd tridiagonal matrix system */
 25: #  define LAPACKstein_ sstein /* eigenvectors of real symm tridiagonal matrix */
 26: #  define LAPACKgesv_  sgesv
 27: #  define LAPACKgelss_ sgelss
 28: #  define LAPACKgerfs_ sgerfs
 29: #  define LAPACKtgsen_ stgsen
 30: /* Real single precision with character string arguments. */
 31: #  define LAPACKpotrf_ spotrf
 32: #  define LAPACKpotri_ spotri
 33: #  define LAPACKpotrs_ spotrs
 34: #  define LAPACKpotri_ spotri
 35: #  define LAPACKsytrf_ ssytrf
 36: #  define LAPACKsytrs_ ssytrs
 37: #  define LAPACKsytri_ ssytri
 38: #  define BLASgemv_    sgemv
 39: #  define LAPACKgetrs_ sgetrs
 40: #  define BLAStrmv_    strmv
 41: #  define BLASgemm_    sgemm
 42: #  define BLASsymm_    ssymm
 43: #  define BLAStrsm_    strsm
 44: #  define LAPACKgesvd_ sgesvd
 45: #  define LAPACKgeev_  sgeev
 46: #  define LAPACKsyev_  ssyev  /* eigenvalues and eigenvectors of a symm matrix */
 47: #  define LAPACKsyevx_ ssyevx /* selected eigenvalues and eigenvectors of a symm matrix */
 48: #  define LAPACKsygv_  ssygv
 49: #  define LAPACKsygvx_ ssygvx
 50: #  define LAPACKstebz_ sstebz /* eigenvalues of symm tridiagonal matrix */
 51: #  define LAPACKsteqr_ ssteqr  /* eigenvalues and eigenvectors of symm tridiagonal */
 52: #  define LAPACKhseqr_ shseqr
 53: #  define LAPACKgges_  sgges
 54: #  define LAPACKtrsen_ strsen
 55: #  define LAPACKormqr_ sormqr
 56: #  define LAPACKhgeqz_ shgeqz
 57: #  define LAPACKtrtrs_ strtrs
 58: # else
 59: /* Real double precision with no character string arguments */
 60: #  define LAPACKgeqrf_ dgeqrf
 61: #  define LAPACKungqr_ dorgqr
 62: #  define LAPACKgetrf_ dgetrf
 63: #  define LAPACKgetri_ dgetri
 64: #  define BLASdot_     ddot
 65: #  define BLASdotu_    ddot
 66: #  define BLASnrm2_    dnrm2
 67: #  define BLASscal_    dscal
 68: #  define BLAScopy_    dcopy
 69: #  define BLASswap_    dswap
 70: #  define BLASaxpy_    daxpy
 71: #  define BLASasum_    dasum
 72: #  define LAPACKpttrf_ dpttrf
 73: #  define LAPACKpttrs_ dpttrs
 74: #  define LAPACKstein_ dstein
 75: #  define LAPACKgesv_  dgesv
 76: #  define LAPACKgelss_ dgelss
 77: #  define LAPACKgerfs_ dgerfs
 78: #  define LAPACKtgsen_ dtgsen
 79: /* Real double precision with character string arguments. */
 80: #  define LAPACKpotrf_ dpotrf
 81: #  define LAPACKpotri_ dpotri
 82: #  define LAPACKpotrs_ dpotrs
 83: #  define LAPACKpotri_ dpotri
 84: #  define LAPACKsytrf_ dsytrf
 85: #  define LAPACKsytrs_ dsytrs
 86: #  define LAPACKsytri_ dsytri
 87: #  define BLASgemv_    dgemv
 88: #  define LAPACKgetrs_ dgetrs
 89: #  define BLAStrmv_    dtrmv
 90: #  define BLASgemm_    dgemm
 91: #  define BLASsymm_    dsymm
 92: #  define BLAStrsm_    dtrsm
 93: #  define LAPACKgesvd_ dgesvd
 94: #  define LAPACKgeev_  dgeev
 95: #  define LAPACKsyev_  dsyev
 96: #  define LAPACKsyevx_ dsyevx
 97: #  define LAPACKsygv_  dsygv
 98: #  define LAPACKsygvx_ dsygvx
 99: #  define LAPACKstebz_ dstebz
100: #  define LAPACKsteqr_ dsteqr
101: #  define LAPACKhseqr_ dhseqr
102: #  define LAPACKgges_  dgges
103: #  define LAPACKtrsen_ dtrsen
104: #  define LAPACKormqr_ dormqr
105: #  define LAPACKhgeqz_ dhgeqz
106: #  define LAPACKtrtrs_ dtrtrs
107: # endif
108: #else
109: # if defined(PETSC_USE_REAL_SINGLE)
110: /* Complex single precision with no character string arguments */
111: #  define LAPACKgeqrf_ cgeqrf
112: #  define LAPACKungqr_ cungqr
113: #  define LAPACKgetrf_ cgetrf
114: #  define LAPACKgetri_ cgetri
115: /* #  define BLASdot_     cdotc */
116: /* #  define BLASdotu_    cdotu */
117: #  define BLASnrm2_    scnrm2
118: #  define BLASscal_    cscal
119: #  define BLAScopy_    ccopy
120: #  define BLASswap_    cswap
121: #  define BLASaxpy_    caxpy
122: #  define BLASasum_    scasum
123: #  define LAPACKpttrf_ cpttrf
124: #  define LAPACKstein_ cstein
125: #  define LAPACKgelss_ cgelss
126: #  define LAPACKgerfs_ cgerfs
127: #  define LAPACKtgsen_ ctgsen
128: /* Complex single precision with character string arguments */
129: #  define LAPACKpotrf_ cpotrf
130: #  define LAPACKpotri_ cpotri
131: #  define LAPACKpotrs_ cpotrs
132: #  define LAPACKpotri_ cpotri
133: #  define LAPACKsytrf_ csytrf
134: #  define LAPACKsytrs_ csytrs
135: #  define LAPACKsytri_ csytri
136: #  define BLASgemv_    cgemv
137: #  define LAPACKgetrs_ cgetrs
138: #  define BLAStrmv_    ctrmv
139: #  define BLASgemm_    cgemm
140: #  define BLASsymm_    csymm
141: #  define BLAStrsm_    ctrsm
142: #  define LAPACKgesvd_ cgesvd
143: #  define LAPACKgesv_  cgesv
144: #  define LAPACKgeev_  cgeev
145: #  define LAPACKsyev_  cheev
146: #  define LAPACKsyevx_ cheevx
147: #  define LAPACKsygv_  chegv
148: #  define LAPACKsygvx_ chegvx
149: #  define LAPACKpttrs_ cpttrs
150: #  define LAPACKhseqr_ chseqr
151: #  define LAPACKgges_  cgges
152: #  define LAPACKtrsen_ ctrsen
153: #  define LAPACKormqr_ cormqr
154: #  define LAPACKhgeqz_ chgeqz
155: #  define LAPACKtrtrs_ ctrtrs
156: /* LAPACKstebz_ does not exist for complex. */
157: #  define LAPACKsteqr_ csteqr
158: # else
159: /* Complex double precision with no character string arguments */
160: #  define LAPACKgeqrf_ zgeqrf
161: #  define LAPACKungqr_ zungqr
162: #  define LAPACKgetrf_ zgetrf
163: #  define LAPACKgetri_ zgetri
164: /* #  define BLASdot_     zdotc */
165: /* #  define BLASdotu_    zdotu */
166: #  define BLASnrm2_    dznrm2
167: #  define BLASscal_    zscal
168: #  define BLAScopy_    zcopy
169: #  define BLASswap_    zswap
170: #  define BLASaxpy_    zaxpy
171: #  define BLASasum_    dzasum
172: #  define LAPACKpttrf_ zpttrf
173: #  define LAPACKstein_ zstein
174: # define LAPACKgesv_   zgesv
175: # define LAPACKgelss_  zgelss
176: #  define LAPACKgerfs_ zgerfs
177: #  define LAPACKtgsen_ ztgsen
178: /* Complex double precision with character string arguments */
179: #  define LAPACKpotrf_ zpotrf
180: #  define LAPACKpotri_ zpotri
181: #  define LAPACKpotrs_ zpotrs
182: #  define LAPACKpotri_ zpotri
183: #  define LAPACKsytrf_ zsytrf
184: #  define LAPACKsytrs_ zsytrs
185: #  define LAPACKsytri_ zsytri
186: #  define BLASgemv_    zgemv
187: #  define LAPACKgetrs_ zgetrs
188: #  define BLAStrmv_    ztrmv
189: #  define BLASgemm_    zgemm
190: #  define BLASsymm_    zsymm
191: #  define BLAStrsm_    ztrsm
192: #  define LAPACKgesvd_ zgesvd
193: #  define LAPACKgeev_  zgeev
194: #  define LAPACKsyev_  zheev
195: #  define LAPACKsyevx_ zheevx
196: #  define LAPACKsygv_  zhegv
197: #  define LAPACKsygvx_ zhegvx
198: #  define LAPACKpttrs_ zpttrs
199: #  define LAPACKhseqr_ zhseqr
200: #  define LAPACKtrsen_ ztrsen
201: #  define LAPACKgges_  zgges
202: #  define LAPACKormqr_ zormqr
203: #  define LAPACKhgeqz_ zhgeqz
204: #  define LAPACKtrtrs_ ztrtrs
205: /* LAPACKstebz_ does not exist for complex. */
206: #  define LAPACKsteqr_ zsteqr
207: # endif
208: #endif

210: #endif