cython_blas.pyx 64 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432
  1. # This file was generated by _generate_pyx.py.
  2. # Do not edit this file directly.
  3. # cython: boundscheck = False
  4. # cython: wraparound = False
  5. # cython: cdivision = True
  6. """
  7. BLAS Functions for Cython
  8. =========================
  9. Usable from Cython via::
  10. cimport scipy.linalg.cython_blas
  11. These wrappers do not check for alignment of arrays.
  12. Alignment should be checked before these wrappers are used.
  13. If using ``cdotu``, ``cdotc``, ``zdotu``, ``zdotc``, ``sladiv``, or ``dladiv``,
  14. the ``CYTHON_CCOMPLEX`` define must be set to 0 during compilation. For
  15. example, in a ``meson.build`` file when using Meson::
  16. py.extension_module('ext_module'
  17. 'ext_module.pyx',
  18. c_args: ['-DCYTHON_CCOMPLEX=0'],
  19. ...
  20. )
  21. Raw function pointers (Fortran-style pointer arguments):
  22. - caxpy
  23. - ccopy
  24. - cdotc
  25. - cdotu
  26. - cgbmv
  27. - cgemm
  28. - cgemv
  29. - cgerc
  30. - cgeru
  31. - chbmv
  32. - chemm
  33. - chemv
  34. - cher
  35. - cher2
  36. - cher2k
  37. - cherk
  38. - chpmv
  39. - chpr
  40. - chpr2
  41. - crotg
  42. - cscal
  43. - csrot
  44. - csscal
  45. - cswap
  46. - csymm
  47. - csyr2k
  48. - csyrk
  49. - ctbmv
  50. - ctbsv
  51. - ctpmv
  52. - ctpsv
  53. - ctrmm
  54. - ctrmv
  55. - ctrsm
  56. - ctrsv
  57. - dasum
  58. - daxpy
  59. - dcabs1
  60. - dcopy
  61. - ddot
  62. - dgbmv
  63. - dgemm
  64. - dgemv
  65. - dger
  66. - dnrm2
  67. - drot
  68. - drotg
  69. - drotm
  70. - drotmg
  71. - dsbmv
  72. - dscal
  73. - dsdot
  74. - dspmv
  75. - dspr
  76. - dspr2
  77. - dswap
  78. - dsymm
  79. - dsymv
  80. - dsyr
  81. - dsyr2
  82. - dsyr2k
  83. - dsyrk
  84. - dtbmv
  85. - dtbsv
  86. - dtpmv
  87. - dtpsv
  88. - dtrmm
  89. - dtrmv
  90. - dtrsm
  91. - dtrsv
  92. - dzasum
  93. - dznrm2
  94. - icamax
  95. - idamax
  96. - isamax
  97. - izamax
  98. - lsame
  99. - sasum
  100. - saxpy
  101. - scasum
  102. - scnrm2
  103. - scopy
  104. - sdot
  105. - sdsdot
  106. - sgbmv
  107. - sgemm
  108. - sgemv
  109. - sger
  110. - snrm2
  111. - srot
  112. - srotg
  113. - srotm
  114. - srotmg
  115. - ssbmv
  116. - sscal
  117. - sspmv
  118. - sspr
  119. - sspr2
  120. - sswap
  121. - ssymm
  122. - ssymv
  123. - ssyr
  124. - ssyr2
  125. - ssyr2k
  126. - ssyrk
  127. - stbmv
  128. - stbsv
  129. - stpmv
  130. - stpsv
  131. - strmm
  132. - strmv
  133. - strsm
  134. - strsv
  135. - zaxpy
  136. - zcopy
  137. - zdotc
  138. - zdotu
  139. - zdrot
  140. - zdscal
  141. - zgbmv
  142. - zgemm
  143. - zgemv
  144. - zgerc
  145. - zgeru
  146. - zhbmv
  147. - zhemm
  148. - zhemv
  149. - zher
  150. - zher2
  151. - zher2k
  152. - zherk
  153. - zhpmv
  154. - zhpr
  155. - zhpr2
  156. - zrotg
  157. - zscal
  158. - zswap
  159. - zsymm
  160. - zsyr2k
  161. - zsyrk
  162. - ztbmv
  163. - ztbsv
  164. - ztpmv
  165. - ztpsv
  166. - ztrmm
  167. - ztrmv
  168. - ztrsm
  169. - ztrsv
  170. """
  171. # Within SciPy, these wrappers can be used via relative or absolute cimport.
  172. # Examples:
  173. # from ..linalg cimport cython_blas
  174. # from scipy.linalg cimport cython_blas
  175. # cimport scipy.linalg.cython_blas as cython_blas
  176. # cimport ..linalg.cython_blas as cython_blas
  177. # Within SciPy, if BLAS functions are needed in C/C++/Fortran,
  178. # these wrappers should not be used.
  179. # The original libraries should be linked directly.
  180. cdef extern from "fortran_defs.h":
  181. pass
  182. from numpy cimport npy_complex64, npy_complex128
  183. cdef extern from "_blas_subroutines.h":
  184. void _fortran_caxpy "BLAS_FUNC(caxpy)"(int *n, npy_complex64 *ca, npy_complex64 *cx, int *incx, npy_complex64 *cy, int *incy) nogil
  185. cdef void caxpy(int *n, c *ca, c *cx, int *incx, c *cy, int *incy) noexcept nogil:
  186. _fortran_caxpy(n, <npy_complex64*>ca, <npy_complex64*>cx, incx, <npy_complex64*>cy, incy)
  187. cdef extern from "_blas_subroutines.h":
  188. void _fortran_ccopy "BLAS_FUNC(ccopy)"(int *n, npy_complex64 *cx, int *incx, npy_complex64 *cy, int *incy) nogil
  189. cdef void ccopy(int *n, c *cx, int *incx, c *cy, int *incy) noexcept nogil:
  190. _fortran_ccopy(n, <npy_complex64*>cx, incx, <npy_complex64*>cy, incy)
  191. cdef extern from "_blas_subroutines.h":
  192. void _fortran_cdotc "F_FUNC(cdotcwrp,CDOTCWRP)"(npy_complex64 *out, int *n, npy_complex64 *cx, int *incx, npy_complex64 *cy, int *incy) nogil
  193. cdef c cdotc(int *n, c *cx, int *incx, c *cy, int *incy) noexcept nogil:
  194. cdef c out
  195. _fortran_cdotc(<npy_complex64*>&out, n, <npy_complex64*>cx, incx, <npy_complex64*>cy, incy)
  196. return out
  197. cdef extern from "_blas_subroutines.h":
  198. void _fortran_cdotu "F_FUNC(cdotuwrp,CDOTUWRP)"(npy_complex64 *out, int *n, npy_complex64 *cx, int *incx, npy_complex64 *cy, int *incy) nogil
  199. cdef c cdotu(int *n, c *cx, int *incx, c *cy, int *incy) noexcept nogil:
  200. cdef c out
  201. _fortran_cdotu(<npy_complex64*>&out, n, <npy_complex64*>cx, incx, <npy_complex64*>cy, incy)
  202. return out
  203. cdef extern from "_blas_subroutines.h":
  204. void _fortran_cgbmv "BLAS_FUNC(cgbmv)"(char *trans, int *m, int *n, int *kl, int *ku, npy_complex64 *alpha, npy_complex64 *a, int *lda, npy_complex64 *x, int *incx, npy_complex64 *beta, npy_complex64 *y, int *incy) nogil
  205. cdef void cgbmv(char *trans, int *m, int *n, int *kl, int *ku, c *alpha, c *a, int *lda, c *x, int *incx, c *beta, c *y, int *incy) noexcept nogil:
  206. _fortran_cgbmv(trans, m, n, kl, ku, <npy_complex64*>alpha, <npy_complex64*>a, lda, <npy_complex64*>x, incx, <npy_complex64*>beta, <npy_complex64*>y, incy)
  207. cdef extern from "_blas_subroutines.h":
  208. void _fortran_cgemm "BLAS_FUNC(cgemm)"(char *transa, char *transb, int *m, int *n, int *k, npy_complex64 *alpha, npy_complex64 *a, int *lda, npy_complex64 *b, int *ldb, npy_complex64 *beta, npy_complex64 *c, int *ldc) nogil
  209. cdef void cgemm(char *transa, char *transb, int *m, int *n, int *k, c *alpha, c *a, int *lda, c *b, int *ldb, c *beta, c *c, int *ldc) noexcept nogil:
  210. _fortran_cgemm(transa, transb, m, n, k, <npy_complex64*>alpha, <npy_complex64*>a, lda, <npy_complex64*>b, ldb, <npy_complex64*>beta, <npy_complex64*>c, ldc)
  211. cdef extern from "_blas_subroutines.h":
  212. void _fortran_cgemv "BLAS_FUNC(cgemv)"(char *trans, int *m, int *n, npy_complex64 *alpha, npy_complex64 *a, int *lda, npy_complex64 *x, int *incx, npy_complex64 *beta, npy_complex64 *y, int *incy) nogil
  213. cdef void cgemv(char *trans, int *m, int *n, c *alpha, c *a, int *lda, c *x, int *incx, c *beta, c *y, int *incy) noexcept nogil:
  214. _fortran_cgemv(trans, m, n, <npy_complex64*>alpha, <npy_complex64*>a, lda, <npy_complex64*>x, incx, <npy_complex64*>beta, <npy_complex64*>y, incy)
  215. cdef extern from "_blas_subroutines.h":
  216. void _fortran_cgerc "BLAS_FUNC(cgerc)"(int *m, int *n, npy_complex64 *alpha, npy_complex64 *x, int *incx, npy_complex64 *y, int *incy, npy_complex64 *a, int *lda) nogil
  217. cdef void cgerc(int *m, int *n, c *alpha, c *x, int *incx, c *y, int *incy, c *a, int *lda) noexcept nogil:
  218. _fortran_cgerc(m, n, <npy_complex64*>alpha, <npy_complex64*>x, incx, <npy_complex64*>y, incy, <npy_complex64*>a, lda)
  219. cdef extern from "_blas_subroutines.h":
  220. void _fortran_cgeru "BLAS_FUNC(cgeru)"(int *m, int *n, npy_complex64 *alpha, npy_complex64 *x, int *incx, npy_complex64 *y, int *incy, npy_complex64 *a, int *lda) nogil
  221. cdef void cgeru(int *m, int *n, c *alpha, c *x, int *incx, c *y, int *incy, c *a, int *lda) noexcept nogil:
  222. _fortran_cgeru(m, n, <npy_complex64*>alpha, <npy_complex64*>x, incx, <npy_complex64*>y, incy, <npy_complex64*>a, lda)
  223. cdef extern from "_blas_subroutines.h":
  224. void _fortran_chbmv "BLAS_FUNC(chbmv)"(char *uplo, int *n, int *k, npy_complex64 *alpha, npy_complex64 *a, int *lda, npy_complex64 *x, int *incx, npy_complex64 *beta, npy_complex64 *y, int *incy) nogil
  225. cdef void chbmv(char *uplo, int *n, int *k, c *alpha, c *a, int *lda, c *x, int *incx, c *beta, c *y, int *incy) noexcept nogil:
  226. _fortran_chbmv(uplo, n, k, <npy_complex64*>alpha, <npy_complex64*>a, lda, <npy_complex64*>x, incx, <npy_complex64*>beta, <npy_complex64*>y, incy)
  227. cdef extern from "_blas_subroutines.h":
  228. void _fortran_chemm "BLAS_FUNC(chemm)"(char *side, char *uplo, int *m, int *n, npy_complex64 *alpha, npy_complex64 *a, int *lda, npy_complex64 *b, int *ldb, npy_complex64 *beta, npy_complex64 *c, int *ldc) nogil
  229. cdef void chemm(char *side, char *uplo, int *m, int *n, c *alpha, c *a, int *lda, c *b, int *ldb, c *beta, c *c, int *ldc) noexcept nogil:
  230. _fortran_chemm(side, uplo, m, n, <npy_complex64*>alpha, <npy_complex64*>a, lda, <npy_complex64*>b, ldb, <npy_complex64*>beta, <npy_complex64*>c, ldc)
  231. cdef extern from "_blas_subroutines.h":
  232. void _fortran_chemv "BLAS_FUNC(chemv)"(char *uplo, int *n, npy_complex64 *alpha, npy_complex64 *a, int *lda, npy_complex64 *x, int *incx, npy_complex64 *beta, npy_complex64 *y, int *incy) nogil
  233. cdef void chemv(char *uplo, int *n, c *alpha, c *a, int *lda, c *x, int *incx, c *beta, c *y, int *incy) noexcept nogil:
  234. _fortran_chemv(uplo, n, <npy_complex64*>alpha, <npy_complex64*>a, lda, <npy_complex64*>x, incx, <npy_complex64*>beta, <npy_complex64*>y, incy)
  235. cdef extern from "_blas_subroutines.h":
  236. void _fortran_cher "BLAS_FUNC(cher)"(char *uplo, int *n, s *alpha, npy_complex64 *x, int *incx, npy_complex64 *a, int *lda) nogil
  237. cdef void cher(char *uplo, int *n, s *alpha, c *x, int *incx, c *a, int *lda) noexcept nogil:
  238. _fortran_cher(uplo, n, alpha, <npy_complex64*>x, incx, <npy_complex64*>a, lda)
  239. cdef extern from "_blas_subroutines.h":
  240. void _fortran_cher2 "BLAS_FUNC(cher2)"(char *uplo, int *n, npy_complex64 *alpha, npy_complex64 *x, int *incx, npy_complex64 *y, int *incy, npy_complex64 *a, int *lda) nogil
  241. cdef void cher2(char *uplo, int *n, c *alpha, c *x, int *incx, c *y, int *incy, c *a, int *lda) noexcept nogil:
  242. _fortran_cher2(uplo, n, <npy_complex64*>alpha, <npy_complex64*>x, incx, <npy_complex64*>y, incy, <npy_complex64*>a, lda)
  243. cdef extern from "_blas_subroutines.h":
  244. void _fortran_cher2k "BLAS_FUNC(cher2k)"(char *uplo, char *trans, int *n, int *k, npy_complex64 *alpha, npy_complex64 *a, int *lda, npy_complex64 *b, int *ldb, s *beta, npy_complex64 *c, int *ldc) nogil
  245. cdef void cher2k(char *uplo, char *trans, int *n, int *k, c *alpha, c *a, int *lda, c *b, int *ldb, s *beta, c *c, int *ldc) noexcept nogil:
  246. _fortran_cher2k(uplo, trans, n, k, <npy_complex64*>alpha, <npy_complex64*>a, lda, <npy_complex64*>b, ldb, beta, <npy_complex64*>c, ldc)
  247. cdef extern from "_blas_subroutines.h":
  248. void _fortran_cherk "BLAS_FUNC(cherk)"(char *uplo, char *trans, int *n, int *k, s *alpha, npy_complex64 *a, int *lda, s *beta, npy_complex64 *c, int *ldc) nogil
  249. cdef void cherk(char *uplo, char *trans, int *n, int *k, s *alpha, c *a, int *lda, s *beta, c *c, int *ldc) noexcept nogil:
  250. _fortran_cherk(uplo, trans, n, k, alpha, <npy_complex64*>a, lda, beta, <npy_complex64*>c, ldc)
  251. cdef extern from "_blas_subroutines.h":
  252. void _fortran_chpmv "BLAS_FUNC(chpmv)"(char *uplo, int *n, npy_complex64 *alpha, npy_complex64 *ap, npy_complex64 *x, int *incx, npy_complex64 *beta, npy_complex64 *y, int *incy) nogil
  253. cdef void chpmv(char *uplo, int *n, c *alpha, c *ap, c *x, int *incx, c *beta, c *y, int *incy) noexcept nogil:
  254. _fortran_chpmv(uplo, n, <npy_complex64*>alpha, <npy_complex64*>ap, <npy_complex64*>x, incx, <npy_complex64*>beta, <npy_complex64*>y, incy)
  255. cdef extern from "_blas_subroutines.h":
  256. void _fortran_chpr "BLAS_FUNC(chpr)"(char *uplo, int *n, s *alpha, npy_complex64 *x, int *incx, npy_complex64 *ap) nogil
  257. cdef void chpr(char *uplo, int *n, s *alpha, c *x, int *incx, c *ap) noexcept nogil:
  258. _fortran_chpr(uplo, n, alpha, <npy_complex64*>x, incx, <npy_complex64*>ap)
  259. cdef extern from "_blas_subroutines.h":
  260. void _fortran_chpr2 "BLAS_FUNC(chpr2)"(char *uplo, int *n, npy_complex64 *alpha, npy_complex64 *x, int *incx, npy_complex64 *y, int *incy, npy_complex64 *ap) nogil
  261. cdef void chpr2(char *uplo, int *n, c *alpha, c *x, int *incx, c *y, int *incy, c *ap) noexcept nogil:
  262. _fortran_chpr2(uplo, n, <npy_complex64*>alpha, <npy_complex64*>x, incx, <npy_complex64*>y, incy, <npy_complex64*>ap)
  263. cdef extern from "_blas_subroutines.h":
  264. void _fortran_crotg "BLAS_FUNC(crotg)"(npy_complex64 *ca, npy_complex64 *cb, s *c, npy_complex64 *s) nogil
  265. cdef void crotg(c *ca, c *cb, s *c, c *s) noexcept nogil:
  266. _fortran_crotg(<npy_complex64*>ca, <npy_complex64*>cb, c, <npy_complex64*>s)
  267. cdef extern from "_blas_subroutines.h":
  268. void _fortran_cscal "BLAS_FUNC(cscal)"(int *n, npy_complex64 *ca, npy_complex64 *cx, int *incx) nogil
  269. cdef void cscal(int *n, c *ca, c *cx, int *incx) noexcept nogil:
  270. _fortran_cscal(n, <npy_complex64*>ca, <npy_complex64*>cx, incx)
  271. cdef extern from "_blas_subroutines.h":
  272. void _fortran_csrot "BLAS_FUNC(csrot)"(int *n, npy_complex64 *cx, int *incx, npy_complex64 *cy, int *incy, s *c, s *s) nogil
  273. cdef void csrot(int *n, c *cx, int *incx, c *cy, int *incy, s *c, s *s) noexcept nogil:
  274. _fortran_csrot(n, <npy_complex64*>cx, incx, <npy_complex64*>cy, incy, c, s)
  275. cdef extern from "_blas_subroutines.h":
  276. void _fortran_csscal "BLAS_FUNC(csscal)"(int *n, s *sa, npy_complex64 *cx, int *incx) nogil
  277. cdef void csscal(int *n, s *sa, c *cx, int *incx) noexcept nogil:
  278. _fortran_csscal(n, sa, <npy_complex64*>cx, incx)
  279. cdef extern from "_blas_subroutines.h":
  280. void _fortran_cswap "BLAS_FUNC(cswap)"(int *n, npy_complex64 *cx, int *incx, npy_complex64 *cy, int *incy) nogil
  281. cdef void cswap(int *n, c *cx, int *incx, c *cy, int *incy) noexcept nogil:
  282. _fortran_cswap(n, <npy_complex64*>cx, incx, <npy_complex64*>cy, incy)
  283. cdef extern from "_blas_subroutines.h":
  284. void _fortran_csymm "BLAS_FUNC(csymm)"(char *side, char *uplo, int *m, int *n, npy_complex64 *alpha, npy_complex64 *a, int *lda, npy_complex64 *b, int *ldb, npy_complex64 *beta, npy_complex64 *c, int *ldc) nogil
  285. cdef void csymm(char *side, char *uplo, int *m, int *n, c *alpha, c *a, int *lda, c *b, int *ldb, c *beta, c *c, int *ldc) noexcept nogil:
  286. _fortran_csymm(side, uplo, m, n, <npy_complex64*>alpha, <npy_complex64*>a, lda, <npy_complex64*>b, ldb, <npy_complex64*>beta, <npy_complex64*>c, ldc)
  287. cdef extern from "_blas_subroutines.h":
  288. void _fortran_csyr2k "BLAS_FUNC(csyr2k)"(char *uplo, char *trans, int *n, int *k, npy_complex64 *alpha, npy_complex64 *a, int *lda, npy_complex64 *b, int *ldb, npy_complex64 *beta, npy_complex64 *c, int *ldc) nogil
  289. cdef void csyr2k(char *uplo, char *trans, int *n, int *k, c *alpha, c *a, int *lda, c *b, int *ldb, c *beta, c *c, int *ldc) noexcept nogil:
  290. _fortran_csyr2k(uplo, trans, n, k, <npy_complex64*>alpha, <npy_complex64*>a, lda, <npy_complex64*>b, ldb, <npy_complex64*>beta, <npy_complex64*>c, ldc)
  291. cdef extern from "_blas_subroutines.h":
  292. void _fortran_csyrk "BLAS_FUNC(csyrk)"(char *uplo, char *trans, int *n, int *k, npy_complex64 *alpha, npy_complex64 *a, int *lda, npy_complex64 *beta, npy_complex64 *c, int *ldc) nogil
  293. cdef void csyrk(char *uplo, char *trans, int *n, int *k, c *alpha, c *a, int *lda, c *beta, c *c, int *ldc) noexcept nogil:
  294. _fortran_csyrk(uplo, trans, n, k, <npy_complex64*>alpha, <npy_complex64*>a, lda, <npy_complex64*>beta, <npy_complex64*>c, ldc)
  295. cdef extern from "_blas_subroutines.h":
  296. void _fortran_ctbmv "BLAS_FUNC(ctbmv)"(char *uplo, char *trans, char *diag, int *n, int *k, npy_complex64 *a, int *lda, npy_complex64 *x, int *incx) nogil
  297. cdef void ctbmv(char *uplo, char *trans, char *diag, int *n, int *k, c *a, int *lda, c *x, int *incx) noexcept nogil:
  298. _fortran_ctbmv(uplo, trans, diag, n, k, <npy_complex64*>a, lda, <npy_complex64*>x, incx)
  299. cdef extern from "_blas_subroutines.h":
  300. void _fortran_ctbsv "BLAS_FUNC(ctbsv)"(char *uplo, char *trans, char *diag, int *n, int *k, npy_complex64 *a, int *lda, npy_complex64 *x, int *incx) nogil
  301. cdef void ctbsv(char *uplo, char *trans, char *diag, int *n, int *k, c *a, int *lda, c *x, int *incx) noexcept nogil:
  302. _fortran_ctbsv(uplo, trans, diag, n, k, <npy_complex64*>a, lda, <npy_complex64*>x, incx)
  303. cdef extern from "_blas_subroutines.h":
  304. void _fortran_ctpmv "BLAS_FUNC(ctpmv)"(char *uplo, char *trans, char *diag, int *n, npy_complex64 *ap, npy_complex64 *x, int *incx) nogil
  305. cdef void ctpmv(char *uplo, char *trans, char *diag, int *n, c *ap, c *x, int *incx) noexcept nogil:
  306. _fortran_ctpmv(uplo, trans, diag, n, <npy_complex64*>ap, <npy_complex64*>x, incx)
  307. cdef extern from "_blas_subroutines.h":
  308. void _fortran_ctpsv "BLAS_FUNC(ctpsv)"(char *uplo, char *trans, char *diag, int *n, npy_complex64 *ap, npy_complex64 *x, int *incx) nogil
  309. cdef void ctpsv(char *uplo, char *trans, char *diag, int *n, c *ap, c *x, int *incx) noexcept nogil:
  310. _fortran_ctpsv(uplo, trans, diag, n, <npy_complex64*>ap, <npy_complex64*>x, incx)
  311. cdef extern from "_blas_subroutines.h":
  312. void _fortran_ctrmm "BLAS_FUNC(ctrmm)"(char *side, char *uplo, char *transa, char *diag, int *m, int *n, npy_complex64 *alpha, npy_complex64 *a, int *lda, npy_complex64 *b, int *ldb) nogil
  313. cdef void ctrmm(char *side, char *uplo, char *transa, char *diag, int *m, int *n, c *alpha, c *a, int *lda, c *b, int *ldb) noexcept nogil:
  314. _fortran_ctrmm(side, uplo, transa, diag, m, n, <npy_complex64*>alpha, <npy_complex64*>a, lda, <npy_complex64*>b, ldb)
  315. cdef extern from "_blas_subroutines.h":
  316. void _fortran_ctrmv "BLAS_FUNC(ctrmv)"(char *uplo, char *trans, char *diag, int *n, npy_complex64 *a, int *lda, npy_complex64 *x, int *incx) nogil
  317. cdef void ctrmv(char *uplo, char *trans, char *diag, int *n, c *a, int *lda, c *x, int *incx) noexcept nogil:
  318. _fortran_ctrmv(uplo, trans, diag, n, <npy_complex64*>a, lda, <npy_complex64*>x, incx)
  319. cdef extern from "_blas_subroutines.h":
  320. void _fortran_ctrsm "BLAS_FUNC(ctrsm)"(char *side, char *uplo, char *transa, char *diag, int *m, int *n, npy_complex64 *alpha, npy_complex64 *a, int *lda, npy_complex64 *b, int *ldb) nogil
  321. cdef void ctrsm(char *side, char *uplo, char *transa, char *diag, int *m, int *n, c *alpha, c *a, int *lda, c *b, int *ldb) noexcept nogil:
  322. _fortran_ctrsm(side, uplo, transa, diag, m, n, <npy_complex64*>alpha, <npy_complex64*>a, lda, <npy_complex64*>b, ldb)
  323. cdef extern from "_blas_subroutines.h":
  324. void _fortran_ctrsv "BLAS_FUNC(ctrsv)"(char *uplo, char *trans, char *diag, int *n, npy_complex64 *a, int *lda, npy_complex64 *x, int *incx) nogil
  325. cdef void ctrsv(char *uplo, char *trans, char *diag, int *n, c *a, int *lda, c *x, int *incx) noexcept nogil:
  326. _fortran_ctrsv(uplo, trans, diag, n, <npy_complex64*>a, lda, <npy_complex64*>x, incx)
  327. cdef extern from "_blas_subroutines.h":
  328. d _fortran_dasum "BLAS_FUNC(dasum)"(int *n, d *dx, int *incx) nogil
  329. cdef d dasum(int *n, d *dx, int *incx) noexcept nogil:
  330. return _fortran_dasum(n, dx, incx)
  331. cdef extern from "_blas_subroutines.h":
  332. void _fortran_daxpy "BLAS_FUNC(daxpy)"(int *n, d *da, d *dx, int *incx, d *dy, int *incy) nogil
  333. cdef void daxpy(int *n, d *da, d *dx, int *incx, d *dy, int *incy) noexcept nogil:
  334. _fortran_daxpy(n, da, dx, incx, dy, incy)
  335. cdef extern from "_blas_subroutines.h":
  336. d _fortran_dcabs1 "BLAS_FUNC(dcabs1)"(npy_complex128 *z) nogil
  337. cdef d dcabs1(z *z) noexcept nogil:
  338. return _fortran_dcabs1(<npy_complex128*>z)
  339. cdef extern from "_blas_subroutines.h":
  340. void _fortran_dcopy "BLAS_FUNC(dcopy)"(int *n, d *dx, int *incx, d *dy, int *incy) nogil
  341. cdef void dcopy(int *n, d *dx, int *incx, d *dy, int *incy) noexcept nogil:
  342. _fortran_dcopy(n, dx, incx, dy, incy)
  343. cdef extern from "_blas_subroutines.h":
  344. d _fortran_ddot "BLAS_FUNC(ddot)"(int *n, d *dx, int *incx, d *dy, int *incy) nogil
  345. cdef d ddot(int *n, d *dx, int *incx, d *dy, int *incy) noexcept nogil:
  346. return _fortran_ddot(n, dx, incx, dy, incy)
  347. cdef extern from "_blas_subroutines.h":
  348. void _fortran_dgbmv "BLAS_FUNC(dgbmv)"(char *trans, int *m, int *n, int *kl, int *ku, d *alpha, d *a, int *lda, d *x, int *incx, d *beta, d *y, int *incy) nogil
  349. cdef void dgbmv(char *trans, int *m, int *n, int *kl, int *ku, d *alpha, d *a, int *lda, d *x, int *incx, d *beta, d *y, int *incy) noexcept nogil:
  350. _fortran_dgbmv(trans, m, n, kl, ku, alpha, a, lda, x, incx, beta, y, incy)
  351. cdef extern from "_blas_subroutines.h":
  352. void _fortran_dgemm "BLAS_FUNC(dgemm)"(char *transa, char *transb, int *m, int *n, int *k, d *alpha, d *a, int *lda, d *b, int *ldb, d *beta, d *c, int *ldc) nogil
  353. cdef void dgemm(char *transa, char *transb, int *m, int *n, int *k, d *alpha, d *a, int *lda, d *b, int *ldb, d *beta, d *c, int *ldc) noexcept nogil:
  354. _fortran_dgemm(transa, transb, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc)
  355. cdef extern from "_blas_subroutines.h":
  356. void _fortran_dgemv "BLAS_FUNC(dgemv)"(char *trans, int *m, int *n, d *alpha, d *a, int *lda, d *x, int *incx, d *beta, d *y, int *incy) nogil
  357. cdef void dgemv(char *trans, int *m, int *n, d *alpha, d *a, int *lda, d *x, int *incx, d *beta, d *y, int *incy) noexcept nogil:
  358. _fortran_dgemv(trans, m, n, alpha, a, lda, x, incx, beta, y, incy)
  359. cdef extern from "_blas_subroutines.h":
  360. void _fortran_dger "BLAS_FUNC(dger)"(int *m, int *n, d *alpha, d *x, int *incx, d *y, int *incy, d *a, int *lda) nogil
  361. cdef void dger(int *m, int *n, d *alpha, d *x, int *incx, d *y, int *incy, d *a, int *lda) noexcept nogil:
  362. _fortran_dger(m, n, alpha, x, incx, y, incy, a, lda)
  363. cdef extern from "_blas_subroutines.h":
  364. d _fortran_dnrm2 "BLAS_FUNC(dnrm2)"(int *n, d *x, int *incx) nogil
  365. cdef d dnrm2(int *n, d *x, int *incx) noexcept nogil:
  366. return _fortran_dnrm2(n, x, incx)
  367. cdef extern from "_blas_subroutines.h":
  368. void _fortran_drot "BLAS_FUNC(drot)"(int *n, d *dx, int *incx, d *dy, int *incy, d *c, d *s) nogil
  369. cdef void drot(int *n, d *dx, int *incx, d *dy, int *incy, d *c, d *s) noexcept nogil:
  370. _fortran_drot(n, dx, incx, dy, incy, c, s)
  371. cdef extern from "_blas_subroutines.h":
  372. void _fortran_drotg "BLAS_FUNC(drotg)"(d *da, d *db, d *c, d *s) nogil
  373. cdef void drotg(d *da, d *db, d *c, d *s) noexcept nogil:
  374. _fortran_drotg(da, db, c, s)
  375. cdef extern from "_blas_subroutines.h":
  376. void _fortran_drotm "BLAS_FUNC(drotm)"(int *n, d *dx, int *incx, d *dy, int *incy, d *dparam) nogil
  377. cdef void drotm(int *n, d *dx, int *incx, d *dy, int *incy, d *dparam) noexcept nogil:
  378. _fortran_drotm(n, dx, incx, dy, incy, dparam)
  379. cdef extern from "_blas_subroutines.h":
  380. void _fortran_drotmg "BLAS_FUNC(drotmg)"(d *dd1, d *dd2, d *dx1, d *dy1, d *dparam) nogil
  381. cdef void drotmg(d *dd1, d *dd2, d *dx1, d *dy1, d *dparam) noexcept nogil:
  382. _fortran_drotmg(dd1, dd2, dx1, dy1, dparam)
  383. cdef extern from "_blas_subroutines.h":
  384. void _fortran_dsbmv "BLAS_FUNC(dsbmv)"(char *uplo, int *n, int *k, d *alpha, d *a, int *lda, d *x, int *incx, d *beta, d *y, int *incy) nogil
  385. cdef void dsbmv(char *uplo, int *n, int *k, d *alpha, d *a, int *lda, d *x, int *incx, d *beta, d *y, int *incy) noexcept nogil:
  386. _fortran_dsbmv(uplo, n, k, alpha, a, lda, x, incx, beta, y, incy)
  387. cdef extern from "_blas_subroutines.h":
  388. void _fortran_dscal "BLAS_FUNC(dscal)"(int *n, d *da, d *dx, int *incx) nogil
  389. cdef void dscal(int *n, d *da, d *dx, int *incx) noexcept nogil:
  390. _fortran_dscal(n, da, dx, incx)
  391. cdef extern from "_blas_subroutines.h":
  392. d _fortran_dsdot "BLAS_FUNC(dsdot)"(int *n, s *sx, int *incx, s *sy, int *incy) nogil
  393. cdef d dsdot(int *n, s *sx, int *incx, s *sy, int *incy) noexcept nogil:
  394. return _fortran_dsdot(n, sx, incx, sy, incy)
  395. cdef extern from "_blas_subroutines.h":
  396. void _fortran_dspmv "BLAS_FUNC(dspmv)"(char *uplo, int *n, d *alpha, d *ap, d *x, int *incx, d *beta, d *y, int *incy) nogil
  397. cdef void dspmv(char *uplo, int *n, d *alpha, d *ap, d *x, int *incx, d *beta, d *y, int *incy) noexcept nogil:
  398. _fortran_dspmv(uplo, n, alpha, ap, x, incx, beta, y, incy)
  399. cdef extern from "_blas_subroutines.h":
  400. void _fortran_dspr "BLAS_FUNC(dspr)"(char *uplo, int *n, d *alpha, d *x, int *incx, d *ap) nogil
  401. cdef void dspr(char *uplo, int *n, d *alpha, d *x, int *incx, d *ap) noexcept nogil:
  402. _fortran_dspr(uplo, n, alpha, x, incx, ap)
  403. cdef extern from "_blas_subroutines.h":
  404. void _fortran_dspr2 "BLAS_FUNC(dspr2)"(char *uplo, int *n, d *alpha, d *x, int *incx, d *y, int *incy, d *ap) nogil
  405. cdef void dspr2(char *uplo, int *n, d *alpha, d *x, int *incx, d *y, int *incy, d *ap) noexcept nogil:
  406. _fortran_dspr2(uplo, n, alpha, x, incx, y, incy, ap)
  407. cdef extern from "_blas_subroutines.h":
  408. void _fortran_dswap "BLAS_FUNC(dswap)"(int *n, d *dx, int *incx, d *dy, int *incy) nogil
  409. cdef void dswap(int *n, d *dx, int *incx, d *dy, int *incy) noexcept nogil:
  410. _fortran_dswap(n, dx, incx, dy, incy)
  411. cdef extern from "_blas_subroutines.h":
  412. void _fortran_dsymm "BLAS_FUNC(dsymm)"(char *side, char *uplo, int *m, int *n, d *alpha, d *a, int *lda, d *b, int *ldb, d *beta, d *c, int *ldc) nogil
  413. cdef void dsymm(char *side, char *uplo, int *m, int *n, d *alpha, d *a, int *lda, d *b, int *ldb, d *beta, d *c, int *ldc) noexcept nogil:
  414. _fortran_dsymm(side, uplo, m, n, alpha, a, lda, b, ldb, beta, c, ldc)
  415. cdef extern from "_blas_subroutines.h":
  416. void _fortran_dsymv "BLAS_FUNC(dsymv)"(char *uplo, int *n, d *alpha, d *a, int *lda, d *x, int *incx, d *beta, d *y, int *incy) nogil
  417. cdef void dsymv(char *uplo, int *n, d *alpha, d *a, int *lda, d *x, int *incx, d *beta, d *y, int *incy) noexcept nogil:
  418. _fortran_dsymv(uplo, n, alpha, a, lda, x, incx, beta, y, incy)
  419. cdef extern from "_blas_subroutines.h":
  420. void _fortran_dsyr "BLAS_FUNC(dsyr)"(char *uplo, int *n, d *alpha, d *x, int *incx, d *a, int *lda) nogil
  421. cdef void dsyr(char *uplo, int *n, d *alpha, d *x, int *incx, d *a, int *lda) noexcept nogil:
  422. _fortran_dsyr(uplo, n, alpha, x, incx, a, lda)
  423. cdef extern from "_blas_subroutines.h":
  424. void _fortran_dsyr2 "BLAS_FUNC(dsyr2)"(char *uplo, int *n, d *alpha, d *x, int *incx, d *y, int *incy, d *a, int *lda) nogil
  425. cdef void dsyr2(char *uplo, int *n, d *alpha, d *x, int *incx, d *y, int *incy, d *a, int *lda) noexcept nogil:
  426. _fortran_dsyr2(uplo, n, alpha, x, incx, y, incy, a, lda)
  427. cdef extern from "_blas_subroutines.h":
  428. void _fortran_dsyr2k "BLAS_FUNC(dsyr2k)"(char *uplo, char *trans, int *n, int *k, d *alpha, d *a, int *lda, d *b, int *ldb, d *beta, d *c, int *ldc) nogil
  429. cdef void dsyr2k(char *uplo, char *trans, int *n, int *k, d *alpha, d *a, int *lda, d *b, int *ldb, d *beta, d *c, int *ldc) noexcept nogil:
  430. _fortran_dsyr2k(uplo, trans, n, k, alpha, a, lda, b, ldb, beta, c, ldc)
  431. cdef extern from "_blas_subroutines.h":
  432. void _fortran_dsyrk "BLAS_FUNC(dsyrk)"(char *uplo, char *trans, int *n, int *k, d *alpha, d *a, int *lda, d *beta, d *c, int *ldc) nogil
  433. cdef void dsyrk(char *uplo, char *trans, int *n, int *k, d *alpha, d *a, int *lda, d *beta, d *c, int *ldc) noexcept nogil:
  434. _fortran_dsyrk(uplo, trans, n, k, alpha, a, lda, beta, c, ldc)
  435. cdef extern from "_blas_subroutines.h":
  436. void _fortran_dtbmv "BLAS_FUNC(dtbmv)"(char *uplo, char *trans, char *diag, int *n, int *k, d *a, int *lda, d *x, int *incx) nogil
  437. cdef void dtbmv(char *uplo, char *trans, char *diag, int *n, int *k, d *a, int *lda, d *x, int *incx) noexcept nogil:
  438. _fortran_dtbmv(uplo, trans, diag, n, k, a, lda, x, incx)
  439. cdef extern from "_blas_subroutines.h":
  440. void _fortran_dtbsv "BLAS_FUNC(dtbsv)"(char *uplo, char *trans, char *diag, int *n, int *k, d *a, int *lda, d *x, int *incx) nogil
  441. cdef void dtbsv(char *uplo, char *trans, char *diag, int *n, int *k, d *a, int *lda, d *x, int *incx) noexcept nogil:
  442. _fortran_dtbsv(uplo, trans, diag, n, k, a, lda, x, incx)
  443. cdef extern from "_blas_subroutines.h":
  444. void _fortran_dtpmv "BLAS_FUNC(dtpmv)"(char *uplo, char *trans, char *diag, int *n, d *ap, d *x, int *incx) nogil
  445. cdef void dtpmv(char *uplo, char *trans, char *diag, int *n, d *ap, d *x, int *incx) noexcept nogil:
  446. _fortran_dtpmv(uplo, trans, diag, n, ap, x, incx)
  447. cdef extern from "_blas_subroutines.h":
  448. void _fortran_dtpsv "BLAS_FUNC(dtpsv)"(char *uplo, char *trans, char *diag, int *n, d *ap, d *x, int *incx) nogil
  449. cdef void dtpsv(char *uplo, char *trans, char *diag, int *n, d *ap, d *x, int *incx) noexcept nogil:
  450. _fortran_dtpsv(uplo, trans, diag, n, ap, x, incx)
  451. cdef extern from "_blas_subroutines.h":
  452. void _fortran_dtrmm "BLAS_FUNC(dtrmm)"(char *side, char *uplo, char *transa, char *diag, int *m, int *n, d *alpha, d *a, int *lda, d *b, int *ldb) nogil
  453. cdef void dtrmm(char *side, char *uplo, char *transa, char *diag, int *m, int *n, d *alpha, d *a, int *lda, d *b, int *ldb) noexcept nogil:
  454. _fortran_dtrmm(side, uplo, transa, diag, m, n, alpha, a, lda, b, ldb)
  455. cdef extern from "_blas_subroutines.h":
  456. void _fortran_dtrmv "BLAS_FUNC(dtrmv)"(char *uplo, char *trans, char *diag, int *n, d *a, int *lda, d *x, int *incx) nogil
  457. cdef void dtrmv(char *uplo, char *trans, char *diag, int *n, d *a, int *lda, d *x, int *incx) noexcept nogil:
  458. _fortran_dtrmv(uplo, trans, diag, n, a, lda, x, incx)
  459. cdef extern from "_blas_subroutines.h":
  460. void _fortran_dtrsm "BLAS_FUNC(dtrsm)"(char *side, char *uplo, char *transa, char *diag, int *m, int *n, d *alpha, d *a, int *lda, d *b, int *ldb) nogil
  461. cdef void dtrsm(char *side, char *uplo, char *transa, char *diag, int *m, int *n, d *alpha, d *a, int *lda, d *b, int *ldb) noexcept nogil:
  462. _fortran_dtrsm(side, uplo, transa, diag, m, n, alpha, a, lda, b, ldb)
  463. cdef extern from "_blas_subroutines.h":
  464. void _fortran_dtrsv "BLAS_FUNC(dtrsv)"(char *uplo, char *trans, char *diag, int *n, d *a, int *lda, d *x, int *incx) nogil
  465. cdef void dtrsv(char *uplo, char *trans, char *diag, int *n, d *a, int *lda, d *x, int *incx) noexcept nogil:
  466. _fortran_dtrsv(uplo, trans, diag, n, a, lda, x, incx)
  467. cdef extern from "_blas_subroutines.h":
  468. d _fortran_dzasum "BLAS_FUNC(dzasum)"(int *n, npy_complex128 *zx, int *incx) nogil
  469. cdef d dzasum(int *n, z *zx, int *incx) noexcept nogil:
  470. return _fortran_dzasum(n, <npy_complex128*>zx, incx)
  471. cdef extern from "_blas_subroutines.h":
  472. d _fortran_dznrm2 "BLAS_FUNC(dznrm2)"(int *n, npy_complex128 *x, int *incx) nogil
  473. cdef d dznrm2(int *n, z *x, int *incx) noexcept nogil:
  474. return _fortran_dznrm2(n, <npy_complex128*>x, incx)
  475. cdef extern from "_blas_subroutines.h":
  476. int _fortran_icamax "BLAS_FUNC(icamax)"(int *n, npy_complex64 *cx, int *incx) nogil
  477. cdef int icamax(int *n, c *cx, int *incx) noexcept nogil:
  478. return _fortran_icamax(n, <npy_complex64*>cx, incx)
  479. cdef extern from "_blas_subroutines.h":
  480. int _fortran_idamax "BLAS_FUNC(idamax)"(int *n, d *dx, int *incx) nogil
  481. cdef int idamax(int *n, d *dx, int *incx) noexcept nogil:
  482. return _fortran_idamax(n, dx, incx)
  483. cdef extern from "_blas_subroutines.h":
  484. int _fortran_isamax "BLAS_FUNC(isamax)"(int *n, s *sx, int *incx) nogil
  485. cdef int isamax(int *n, s *sx, int *incx) noexcept nogil:
  486. return _fortran_isamax(n, sx, incx)
  487. cdef extern from "_blas_subroutines.h":
  488. int _fortran_izamax "BLAS_FUNC(izamax)"(int *n, npy_complex128 *zx, int *incx) nogil
  489. cdef int izamax(int *n, z *zx, int *incx) noexcept nogil:
  490. return _fortran_izamax(n, <npy_complex128*>zx, incx)
  491. cdef extern from "_blas_subroutines.h":
  492. bint _fortran_lsame "BLAS_FUNC(lsame)"(char *ca, char *cb) nogil
  493. cdef bint lsame(char *ca, char *cb) noexcept nogil:
  494. return _fortran_lsame(ca, cb)
  495. cdef extern from "_blas_subroutines.h":
  496. s _fortran_sasum "BLAS_FUNC(sasum)"(int *n, s *sx, int *incx) nogil
  497. cdef s sasum(int *n, s *sx, int *incx) noexcept nogil:
  498. return _fortran_sasum(n, sx, incx)
  499. cdef extern from "_blas_subroutines.h":
  500. void _fortran_saxpy "BLAS_FUNC(saxpy)"(int *n, s *sa, s *sx, int *incx, s *sy, int *incy) nogil
  501. cdef void saxpy(int *n, s *sa, s *sx, int *incx, s *sy, int *incy) noexcept nogil:
  502. _fortran_saxpy(n, sa, sx, incx, sy, incy)
  503. cdef extern from "_blas_subroutines.h":
  504. s _fortran_scasum "BLAS_FUNC(scasum)"(int *n, npy_complex64 *cx, int *incx) nogil
  505. cdef s scasum(int *n, c *cx, int *incx) noexcept nogil:
  506. return _fortran_scasum(n, <npy_complex64*>cx, incx)
  507. cdef extern from "_blas_subroutines.h":
  508. s _fortran_scnrm2 "BLAS_FUNC(scnrm2)"(int *n, npy_complex64 *x, int *incx) nogil
  509. cdef s scnrm2(int *n, c *x, int *incx) noexcept nogil:
  510. return _fortran_scnrm2(n, <npy_complex64*>x, incx)
  511. cdef extern from "_blas_subroutines.h":
  512. void _fortran_scopy "BLAS_FUNC(scopy)"(int *n, s *sx, int *incx, s *sy, int *incy) nogil
  513. cdef void scopy(int *n, s *sx, int *incx, s *sy, int *incy) noexcept nogil:
  514. _fortran_scopy(n, sx, incx, sy, incy)
  515. cdef extern from "_blas_subroutines.h":
  516. s _fortran_sdot "BLAS_FUNC(sdot)"(int *n, s *sx, int *incx, s *sy, int *incy) nogil
  517. cdef s sdot(int *n, s *sx, int *incx, s *sy, int *incy) noexcept nogil:
  518. return _fortran_sdot(n, sx, incx, sy, incy)
  519. cdef extern from "_blas_subroutines.h":
  520. s _fortran_sdsdot "BLAS_FUNC(sdsdot)"(int *n, s *sb, s *sx, int *incx, s *sy, int *incy) nogil
  521. cdef s sdsdot(int *n, s *sb, s *sx, int *incx, s *sy, int *incy) noexcept nogil:
  522. return _fortran_sdsdot(n, sb, sx, incx, sy, incy)
  523. cdef extern from "_blas_subroutines.h":
  524. void _fortran_sgbmv "BLAS_FUNC(sgbmv)"(char *trans, int *m, int *n, int *kl, int *ku, s *alpha, s *a, int *lda, s *x, int *incx, s *beta, s *y, int *incy) nogil
  525. cdef void sgbmv(char *trans, int *m, int *n, int *kl, int *ku, s *alpha, s *a, int *lda, s *x, int *incx, s *beta, s *y, int *incy) noexcept nogil:
  526. _fortran_sgbmv(trans, m, n, kl, ku, alpha, a, lda, x, incx, beta, y, incy)
  527. cdef extern from "_blas_subroutines.h":
  528. void _fortran_sgemm "BLAS_FUNC(sgemm)"(char *transa, char *transb, int *m, int *n, int *k, s *alpha, s *a, int *lda, s *b, int *ldb, s *beta, s *c, int *ldc) nogil
  529. cdef void sgemm(char *transa, char *transb, int *m, int *n, int *k, s *alpha, s *a, int *lda, s *b, int *ldb, s *beta, s *c, int *ldc) noexcept nogil:
  530. _fortran_sgemm(transa, transb, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc)
  531. cdef extern from "_blas_subroutines.h":
  532. void _fortran_sgemv "BLAS_FUNC(sgemv)"(char *trans, int *m, int *n, s *alpha, s *a, int *lda, s *x, int *incx, s *beta, s *y, int *incy) nogil
  533. cdef void sgemv(char *trans, int *m, int *n, s *alpha, s *a, int *lda, s *x, int *incx, s *beta, s *y, int *incy) noexcept nogil:
  534. _fortran_sgemv(trans, m, n, alpha, a, lda, x, incx, beta, y, incy)
  535. cdef extern from "_blas_subroutines.h":
  536. void _fortran_sger "BLAS_FUNC(sger)"(int *m, int *n, s *alpha, s *x, int *incx, s *y, int *incy, s *a, int *lda) nogil
  537. cdef void sger(int *m, int *n, s *alpha, s *x, int *incx, s *y, int *incy, s *a, int *lda) noexcept nogil:
  538. _fortran_sger(m, n, alpha, x, incx, y, incy, a, lda)
  539. cdef extern from "_blas_subroutines.h":
  540. s _fortran_snrm2 "BLAS_FUNC(snrm2)"(int *n, s *x, int *incx) nogil
  541. cdef s snrm2(int *n, s *x, int *incx) noexcept nogil:
  542. return _fortran_snrm2(n, x, incx)
  543. cdef extern from "_blas_subroutines.h":
  544. void _fortran_srot "BLAS_FUNC(srot)"(int *n, s *sx, int *incx, s *sy, int *incy, s *c, s *s) nogil
  545. cdef void srot(int *n, s *sx, int *incx, s *sy, int *incy, s *c, s *s) noexcept nogil:
  546. _fortran_srot(n, sx, incx, sy, incy, c, s)
  547. cdef extern from "_blas_subroutines.h":
  548. void _fortran_srotg "BLAS_FUNC(srotg)"(s *sa, s *sb, s *c, s *s) nogil
  549. cdef void srotg(s *sa, s *sb, s *c, s *s) noexcept nogil:
  550. _fortran_srotg(sa, sb, c, s)
  551. cdef extern from "_blas_subroutines.h":
  552. void _fortran_srotm "BLAS_FUNC(srotm)"(int *n, s *sx, int *incx, s *sy, int *incy, s *sparam) nogil
  553. cdef void srotm(int *n, s *sx, int *incx, s *sy, int *incy, s *sparam) noexcept nogil:
  554. _fortran_srotm(n, sx, incx, sy, incy, sparam)
  555. cdef extern from "_blas_subroutines.h":
  556. void _fortran_srotmg "BLAS_FUNC(srotmg)"(s *sd1, s *sd2, s *sx1, s *sy1, s *sparam) nogil
  557. cdef void srotmg(s *sd1, s *sd2, s *sx1, s *sy1, s *sparam) noexcept nogil:
  558. _fortran_srotmg(sd1, sd2, sx1, sy1, sparam)
  559. cdef extern from "_blas_subroutines.h":
  560. void _fortran_ssbmv "BLAS_FUNC(ssbmv)"(char *uplo, int *n, int *k, s *alpha, s *a, int *lda, s *x, int *incx, s *beta, s *y, int *incy) nogil
  561. cdef void ssbmv(char *uplo, int *n, int *k, s *alpha, s *a, int *lda, s *x, int *incx, s *beta, s *y, int *incy) noexcept nogil:
  562. _fortran_ssbmv(uplo, n, k, alpha, a, lda, x, incx, beta, y, incy)
  563. cdef extern from "_blas_subroutines.h":
  564. void _fortran_sscal "BLAS_FUNC(sscal)"(int *n, s *sa, s *sx, int *incx) nogil
  565. cdef void sscal(int *n, s *sa, s *sx, int *incx) noexcept nogil:
  566. _fortran_sscal(n, sa, sx, incx)
  567. cdef extern from "_blas_subroutines.h":
  568. void _fortran_sspmv "BLAS_FUNC(sspmv)"(char *uplo, int *n, s *alpha, s *ap, s *x, int *incx, s *beta, s *y, int *incy) nogil
  569. cdef void sspmv(char *uplo, int *n, s *alpha, s *ap, s *x, int *incx, s *beta, s *y, int *incy) noexcept nogil:
  570. _fortran_sspmv(uplo, n, alpha, ap, x, incx, beta, y, incy)
  571. cdef extern from "_blas_subroutines.h":
  572. void _fortran_sspr "BLAS_FUNC(sspr)"(char *uplo, int *n, s *alpha, s *x, int *incx, s *ap) nogil
  573. cdef void sspr(char *uplo, int *n, s *alpha, s *x, int *incx, s *ap) noexcept nogil:
  574. _fortran_sspr(uplo, n, alpha, x, incx, ap)
  575. cdef extern from "_blas_subroutines.h":
  576. void _fortran_sspr2 "BLAS_FUNC(sspr2)"(char *uplo, int *n, s *alpha, s *x, int *incx, s *y, int *incy, s *ap) nogil
  577. cdef void sspr2(char *uplo, int *n, s *alpha, s *x, int *incx, s *y, int *incy, s *ap) noexcept nogil:
  578. _fortran_sspr2(uplo, n, alpha, x, incx, y, incy, ap)
  579. cdef extern from "_blas_subroutines.h":
  580. void _fortran_sswap "BLAS_FUNC(sswap)"(int *n, s *sx, int *incx, s *sy, int *incy) nogil
  581. cdef void sswap(int *n, s *sx, int *incx, s *sy, int *incy) noexcept nogil:
  582. _fortran_sswap(n, sx, incx, sy, incy)
  583. cdef extern from "_blas_subroutines.h":
  584. void _fortran_ssymm "BLAS_FUNC(ssymm)"(char *side, char *uplo, int *m, int *n, s *alpha, s *a, int *lda, s *b, int *ldb, s *beta, s *c, int *ldc) nogil
  585. cdef void ssymm(char *side, char *uplo, int *m, int *n, s *alpha, s *a, int *lda, s *b, int *ldb, s *beta, s *c, int *ldc) noexcept nogil:
  586. _fortran_ssymm(side, uplo, m, n, alpha, a, lda, b, ldb, beta, c, ldc)
  587. cdef extern from "_blas_subroutines.h":
  588. void _fortran_ssymv "BLAS_FUNC(ssymv)"(char *uplo, int *n, s *alpha, s *a, int *lda, s *x, int *incx, s *beta, s *y, int *incy) nogil
  589. cdef void ssymv(char *uplo, int *n, s *alpha, s *a, int *lda, s *x, int *incx, s *beta, s *y, int *incy) noexcept nogil:
  590. _fortran_ssymv(uplo, n, alpha, a, lda, x, incx, beta, y, incy)
  591. cdef extern from "_blas_subroutines.h":
  592. void _fortran_ssyr "BLAS_FUNC(ssyr)"(char *uplo, int *n, s *alpha, s *x, int *incx, s *a, int *lda) nogil
  593. cdef void ssyr(char *uplo, int *n, s *alpha, s *x, int *incx, s *a, int *lda) noexcept nogil:
  594. _fortran_ssyr(uplo, n, alpha, x, incx, a, lda)
  595. cdef extern from "_blas_subroutines.h":
  596. void _fortran_ssyr2 "BLAS_FUNC(ssyr2)"(char *uplo, int *n, s *alpha, s *x, int *incx, s *y, int *incy, s *a, int *lda) nogil
  597. cdef void ssyr2(char *uplo, int *n, s *alpha, s *x, int *incx, s *y, int *incy, s *a, int *lda) noexcept nogil:
  598. _fortran_ssyr2(uplo, n, alpha, x, incx, y, incy, a, lda)
  599. cdef extern from "_blas_subroutines.h":
  600. void _fortran_ssyr2k "BLAS_FUNC(ssyr2k)"(char *uplo, char *trans, int *n, int *k, s *alpha, s *a, int *lda, s *b, int *ldb, s *beta, s *c, int *ldc) nogil
  601. cdef void ssyr2k(char *uplo, char *trans, int *n, int *k, s *alpha, s *a, int *lda, s *b, int *ldb, s *beta, s *c, int *ldc) noexcept nogil:
  602. _fortran_ssyr2k(uplo, trans, n, k, alpha, a, lda, b, ldb, beta, c, ldc)
  603. cdef extern from "_blas_subroutines.h":
  604. void _fortran_ssyrk "BLAS_FUNC(ssyrk)"(char *uplo, char *trans, int *n, int *k, s *alpha, s *a, int *lda, s *beta, s *c, int *ldc) nogil
  605. cdef void ssyrk(char *uplo, char *trans, int *n, int *k, s *alpha, s *a, int *lda, s *beta, s *c, int *ldc) noexcept nogil:
  606. _fortran_ssyrk(uplo, trans, n, k, alpha, a, lda, beta, c, ldc)
  607. cdef extern from "_blas_subroutines.h":
  608. void _fortran_stbmv "BLAS_FUNC(stbmv)"(char *uplo, char *trans, char *diag, int *n, int *k, s *a, int *lda, s *x, int *incx) nogil
  609. cdef void stbmv(char *uplo, char *trans, char *diag, int *n, int *k, s *a, int *lda, s *x, int *incx) noexcept nogil:
  610. _fortran_stbmv(uplo, trans, diag, n, k, a, lda, x, incx)
  611. cdef extern from "_blas_subroutines.h":
  612. void _fortran_stbsv "BLAS_FUNC(stbsv)"(char *uplo, char *trans, char *diag, int *n, int *k, s *a, int *lda, s *x, int *incx) nogil
  613. cdef void stbsv(char *uplo, char *trans, char *diag, int *n, int *k, s *a, int *lda, s *x, int *incx) noexcept nogil:
  614. _fortran_stbsv(uplo, trans, diag, n, k, a, lda, x, incx)
  615. cdef extern from "_blas_subroutines.h":
  616. void _fortran_stpmv "BLAS_FUNC(stpmv)"(char *uplo, char *trans, char *diag, int *n, s *ap, s *x, int *incx) nogil
  617. cdef void stpmv(char *uplo, char *trans, char *diag, int *n, s *ap, s *x, int *incx) noexcept nogil:
  618. _fortran_stpmv(uplo, trans, diag, n, ap, x, incx)
  619. cdef extern from "_blas_subroutines.h":
  620. void _fortran_stpsv "BLAS_FUNC(stpsv)"(char *uplo, char *trans, char *diag, int *n, s *ap, s *x, int *incx) nogil
  621. cdef void stpsv(char *uplo, char *trans, char *diag, int *n, s *ap, s *x, int *incx) noexcept nogil:
  622. _fortran_stpsv(uplo, trans, diag, n, ap, x, incx)
  623. cdef extern from "_blas_subroutines.h":
  624. void _fortran_strmm "BLAS_FUNC(strmm)"(char *side, char *uplo, char *transa, char *diag, int *m, int *n, s *alpha, s *a, int *lda, s *b, int *ldb) nogil
  625. cdef void strmm(char *side, char *uplo, char *transa, char *diag, int *m, int *n, s *alpha, s *a, int *lda, s *b, int *ldb) noexcept nogil:
  626. _fortran_strmm(side, uplo, transa, diag, m, n, alpha, a, lda, b, ldb)
  627. cdef extern from "_blas_subroutines.h":
  628. void _fortran_strmv "BLAS_FUNC(strmv)"(char *uplo, char *trans, char *diag, int *n, s *a, int *lda, s *x, int *incx) nogil
  629. cdef void strmv(char *uplo, char *trans, char *diag, int *n, s *a, int *lda, s *x, int *incx) noexcept nogil:
  630. _fortran_strmv(uplo, trans, diag, n, a, lda, x, incx)
  631. cdef extern from "_blas_subroutines.h":
  632. void _fortran_strsm "BLAS_FUNC(strsm)"(char *side, char *uplo, char *transa, char *diag, int *m, int *n, s *alpha, s *a, int *lda, s *b, int *ldb) nogil
  633. cdef void strsm(char *side, char *uplo, char *transa, char *diag, int *m, int *n, s *alpha, s *a, int *lda, s *b, int *ldb) noexcept nogil:
  634. _fortran_strsm(side, uplo, transa, diag, m, n, alpha, a, lda, b, ldb)
  635. cdef extern from "_blas_subroutines.h":
  636. void _fortran_strsv "BLAS_FUNC(strsv)"(char *uplo, char *trans, char *diag, int *n, s *a, int *lda, s *x, int *incx) nogil
  637. cdef void strsv(char *uplo, char *trans, char *diag, int *n, s *a, int *lda, s *x, int *incx) noexcept nogil:
  638. _fortran_strsv(uplo, trans, diag, n, a, lda, x, incx)
  639. cdef extern from "_blas_subroutines.h":
  640. void _fortran_zaxpy "BLAS_FUNC(zaxpy)"(int *n, npy_complex128 *za, npy_complex128 *zx, int *incx, npy_complex128 *zy, int *incy) nogil
  641. cdef void zaxpy(int *n, z *za, z *zx, int *incx, z *zy, int *incy) noexcept nogil:
  642. _fortran_zaxpy(n, <npy_complex128*>za, <npy_complex128*>zx, incx, <npy_complex128*>zy, incy)
  643. cdef extern from "_blas_subroutines.h":
  644. void _fortran_zcopy "BLAS_FUNC(zcopy)"(int *n, npy_complex128 *zx, int *incx, npy_complex128 *zy, int *incy) nogil
  645. cdef void zcopy(int *n, z *zx, int *incx, z *zy, int *incy) noexcept nogil:
  646. _fortran_zcopy(n, <npy_complex128*>zx, incx, <npy_complex128*>zy, incy)
  647. cdef extern from "_blas_subroutines.h":
  648. void _fortran_zdotc "F_FUNC(zdotcwrp,ZDOTCWRP)"(npy_complex128 *out, int *n, npy_complex128 *zx, int *incx, npy_complex128 *zy, int *incy) nogil
  649. cdef z zdotc(int *n, z *zx, int *incx, z *zy, int *incy) noexcept nogil:
  650. cdef z out
  651. _fortran_zdotc(<npy_complex128*>&out, n, <npy_complex128*>zx, incx, <npy_complex128*>zy, incy)
  652. return out
  653. cdef extern from "_blas_subroutines.h":
  654. void _fortran_zdotu "F_FUNC(zdotuwrp,ZDOTUWRP)"(npy_complex128 *out, int *n, npy_complex128 *zx, int *incx, npy_complex128 *zy, int *incy) nogil
  655. cdef z zdotu(int *n, z *zx, int *incx, z *zy, int *incy) noexcept nogil:
  656. cdef z out
  657. _fortran_zdotu(<npy_complex128*>&out, n, <npy_complex128*>zx, incx, <npy_complex128*>zy, incy)
  658. return out
  659. cdef extern from "_blas_subroutines.h":
  660. void _fortran_zdrot "BLAS_FUNC(zdrot)"(int *n, npy_complex128 *cx, int *incx, npy_complex128 *cy, int *incy, d *c, d *s) nogil
  661. cdef void zdrot(int *n, z *cx, int *incx, z *cy, int *incy, d *c, d *s) noexcept nogil:
  662. _fortran_zdrot(n, <npy_complex128*>cx, incx, <npy_complex128*>cy, incy, c, s)
  663. cdef extern from "_blas_subroutines.h":
  664. void _fortran_zdscal "BLAS_FUNC(zdscal)"(int *n, d *da, npy_complex128 *zx, int *incx) nogil
  665. cdef void zdscal(int *n, d *da, z *zx, int *incx) noexcept nogil:
  666. _fortran_zdscal(n, da, <npy_complex128*>zx, incx)
  667. cdef extern from "_blas_subroutines.h":
  668. void _fortran_zgbmv "BLAS_FUNC(zgbmv)"(char *trans, int *m, int *n, int *kl, int *ku, npy_complex128 *alpha, npy_complex128 *a, int *lda, npy_complex128 *x, int *incx, npy_complex128 *beta, npy_complex128 *y, int *incy) nogil
  669. cdef void zgbmv(char *trans, int *m, int *n, int *kl, int *ku, z *alpha, z *a, int *lda, z *x, int *incx, z *beta, z *y, int *incy) noexcept nogil:
  670. _fortran_zgbmv(trans, m, n, kl, ku, <npy_complex128*>alpha, <npy_complex128*>a, lda, <npy_complex128*>x, incx, <npy_complex128*>beta, <npy_complex128*>y, incy)
  671. cdef extern from "_blas_subroutines.h":
  672. void _fortran_zgemm "BLAS_FUNC(zgemm)"(char *transa, char *transb, int *m, int *n, int *k, npy_complex128 *alpha, npy_complex128 *a, int *lda, npy_complex128 *b, int *ldb, npy_complex128 *beta, npy_complex128 *c, int *ldc) nogil
  673. cdef void zgemm(char *transa, char *transb, int *m, int *n, int *k, z *alpha, z *a, int *lda, z *b, int *ldb, z *beta, z *c, int *ldc) noexcept nogil:
  674. _fortran_zgemm(transa, transb, m, n, k, <npy_complex128*>alpha, <npy_complex128*>a, lda, <npy_complex128*>b, ldb, <npy_complex128*>beta, <npy_complex128*>c, ldc)
  675. cdef extern from "_blas_subroutines.h":
  676. void _fortran_zgemv "BLAS_FUNC(zgemv)"(char *trans, int *m, int *n, npy_complex128 *alpha, npy_complex128 *a, int *lda, npy_complex128 *x, int *incx, npy_complex128 *beta, npy_complex128 *y, int *incy) nogil
  677. cdef void zgemv(char *trans, int *m, int *n, z *alpha, z *a, int *lda, z *x, int *incx, z *beta, z *y, int *incy) noexcept nogil:
  678. _fortran_zgemv(trans, m, n, <npy_complex128*>alpha, <npy_complex128*>a, lda, <npy_complex128*>x, incx, <npy_complex128*>beta, <npy_complex128*>y, incy)
  679. cdef extern from "_blas_subroutines.h":
  680. void _fortran_zgerc "BLAS_FUNC(zgerc)"(int *m, int *n, npy_complex128 *alpha, npy_complex128 *x, int *incx, npy_complex128 *y, int *incy, npy_complex128 *a, int *lda) nogil
  681. cdef void zgerc(int *m, int *n, z *alpha, z *x, int *incx, z *y, int *incy, z *a, int *lda) noexcept nogil:
  682. _fortran_zgerc(m, n, <npy_complex128*>alpha, <npy_complex128*>x, incx, <npy_complex128*>y, incy, <npy_complex128*>a, lda)
  683. cdef extern from "_blas_subroutines.h":
  684. void _fortran_zgeru "BLAS_FUNC(zgeru)"(int *m, int *n, npy_complex128 *alpha, npy_complex128 *x, int *incx, npy_complex128 *y, int *incy, npy_complex128 *a, int *lda) nogil
  685. cdef void zgeru(int *m, int *n, z *alpha, z *x, int *incx, z *y, int *incy, z *a, int *lda) noexcept nogil:
  686. _fortran_zgeru(m, n, <npy_complex128*>alpha, <npy_complex128*>x, incx, <npy_complex128*>y, incy, <npy_complex128*>a, lda)
  687. cdef extern from "_blas_subroutines.h":
  688. void _fortran_zhbmv "BLAS_FUNC(zhbmv)"(char *uplo, int *n, int *k, npy_complex128 *alpha, npy_complex128 *a, int *lda, npy_complex128 *x, int *incx, npy_complex128 *beta, npy_complex128 *y, int *incy) nogil
  689. cdef void zhbmv(char *uplo, int *n, int *k, z *alpha, z *a, int *lda, z *x, int *incx, z *beta, z *y, int *incy) noexcept nogil:
  690. _fortran_zhbmv(uplo, n, k, <npy_complex128*>alpha, <npy_complex128*>a, lda, <npy_complex128*>x, incx, <npy_complex128*>beta, <npy_complex128*>y, incy)
  691. cdef extern from "_blas_subroutines.h":
  692. void _fortran_zhemm "BLAS_FUNC(zhemm)"(char *side, char *uplo, int *m, int *n, npy_complex128 *alpha, npy_complex128 *a, int *lda, npy_complex128 *b, int *ldb, npy_complex128 *beta, npy_complex128 *c, int *ldc) nogil
  693. cdef void zhemm(char *side, char *uplo, int *m, int *n, z *alpha, z *a, int *lda, z *b, int *ldb, z *beta, z *c, int *ldc) noexcept nogil:
  694. _fortran_zhemm(side, uplo, m, n, <npy_complex128*>alpha, <npy_complex128*>a, lda, <npy_complex128*>b, ldb, <npy_complex128*>beta, <npy_complex128*>c, ldc)
  695. cdef extern from "_blas_subroutines.h":
  696. void _fortran_zhemv "BLAS_FUNC(zhemv)"(char *uplo, int *n, npy_complex128 *alpha, npy_complex128 *a, int *lda, npy_complex128 *x, int *incx, npy_complex128 *beta, npy_complex128 *y, int *incy) nogil
  697. cdef void zhemv(char *uplo, int *n, z *alpha, z *a, int *lda, z *x, int *incx, z *beta, z *y, int *incy) noexcept nogil:
  698. _fortran_zhemv(uplo, n, <npy_complex128*>alpha, <npy_complex128*>a, lda, <npy_complex128*>x, incx, <npy_complex128*>beta, <npy_complex128*>y, incy)
  699. cdef extern from "_blas_subroutines.h":
  700. void _fortran_zher "BLAS_FUNC(zher)"(char *uplo, int *n, d *alpha, npy_complex128 *x, int *incx, npy_complex128 *a, int *lda) nogil
  701. cdef void zher(char *uplo, int *n, d *alpha, z *x, int *incx, z *a, int *lda) noexcept nogil:
  702. _fortran_zher(uplo, n, alpha, <npy_complex128*>x, incx, <npy_complex128*>a, lda)
  703. cdef extern from "_blas_subroutines.h":
  704. void _fortran_zher2 "BLAS_FUNC(zher2)"(char *uplo, int *n, npy_complex128 *alpha, npy_complex128 *x, int *incx, npy_complex128 *y, int *incy, npy_complex128 *a, int *lda) nogil
  705. cdef void zher2(char *uplo, int *n, z *alpha, z *x, int *incx, z *y, int *incy, z *a, int *lda) noexcept nogil:
  706. _fortran_zher2(uplo, n, <npy_complex128*>alpha, <npy_complex128*>x, incx, <npy_complex128*>y, incy, <npy_complex128*>a, lda)
  707. cdef extern from "_blas_subroutines.h":
  708. void _fortran_zher2k "BLAS_FUNC(zher2k)"(char *uplo, char *trans, int *n, int *k, npy_complex128 *alpha, npy_complex128 *a, int *lda, npy_complex128 *b, int *ldb, d *beta, npy_complex128 *c, int *ldc) nogil
  709. cdef void zher2k(char *uplo, char *trans, int *n, int *k, z *alpha, z *a, int *lda, z *b, int *ldb, d *beta, z *c, int *ldc) noexcept nogil:
  710. _fortran_zher2k(uplo, trans, n, k, <npy_complex128*>alpha, <npy_complex128*>a, lda, <npy_complex128*>b, ldb, beta, <npy_complex128*>c, ldc)
  711. cdef extern from "_blas_subroutines.h":
  712. void _fortran_zherk "BLAS_FUNC(zherk)"(char *uplo, char *trans, int *n, int *k, d *alpha, npy_complex128 *a, int *lda, d *beta, npy_complex128 *c, int *ldc) nogil
  713. cdef void zherk(char *uplo, char *trans, int *n, int *k, d *alpha, z *a, int *lda, d *beta, z *c, int *ldc) noexcept nogil:
  714. _fortran_zherk(uplo, trans, n, k, alpha, <npy_complex128*>a, lda, beta, <npy_complex128*>c, ldc)
  715. cdef extern from "_blas_subroutines.h":
  716. void _fortran_zhpmv "BLAS_FUNC(zhpmv)"(char *uplo, int *n, npy_complex128 *alpha, npy_complex128 *ap, npy_complex128 *x, int *incx, npy_complex128 *beta, npy_complex128 *y, int *incy) nogil
  717. cdef void zhpmv(char *uplo, int *n, z *alpha, z *ap, z *x, int *incx, z *beta, z *y, int *incy) noexcept nogil:
  718. _fortran_zhpmv(uplo, n, <npy_complex128*>alpha, <npy_complex128*>ap, <npy_complex128*>x, incx, <npy_complex128*>beta, <npy_complex128*>y, incy)
  719. cdef extern from "_blas_subroutines.h":
  720. void _fortran_zhpr "BLAS_FUNC(zhpr)"(char *uplo, int *n, d *alpha, npy_complex128 *x, int *incx, npy_complex128 *ap) nogil
  721. cdef void zhpr(char *uplo, int *n, d *alpha, z *x, int *incx, z *ap) noexcept nogil:
  722. _fortran_zhpr(uplo, n, alpha, <npy_complex128*>x, incx, <npy_complex128*>ap)
  723. cdef extern from "_blas_subroutines.h":
  724. void _fortran_zhpr2 "BLAS_FUNC(zhpr2)"(char *uplo, int *n, npy_complex128 *alpha, npy_complex128 *x, int *incx, npy_complex128 *y, int *incy, npy_complex128 *ap) nogil
  725. cdef void zhpr2(char *uplo, int *n, z *alpha, z *x, int *incx, z *y, int *incy, z *ap) noexcept nogil:
  726. _fortran_zhpr2(uplo, n, <npy_complex128*>alpha, <npy_complex128*>x, incx, <npy_complex128*>y, incy, <npy_complex128*>ap)
  727. cdef extern from "_blas_subroutines.h":
  728. void _fortran_zrotg "BLAS_FUNC(zrotg)"(npy_complex128 *ca, npy_complex128 *cb, d *c, npy_complex128 *s) nogil
  729. cdef void zrotg(z *ca, z *cb, d *c, z *s) noexcept nogil:
  730. _fortran_zrotg(<npy_complex128*>ca, <npy_complex128*>cb, c, <npy_complex128*>s)
  731. cdef extern from "_blas_subroutines.h":
  732. void _fortran_zscal "BLAS_FUNC(zscal)"(int *n, npy_complex128 *za, npy_complex128 *zx, int *incx) nogil
  733. cdef void zscal(int *n, z *za, z *zx, int *incx) noexcept nogil:
  734. _fortran_zscal(n, <npy_complex128*>za, <npy_complex128*>zx, incx)
  735. cdef extern from "_blas_subroutines.h":
  736. void _fortran_zswap "BLAS_FUNC(zswap)"(int *n, npy_complex128 *zx, int *incx, npy_complex128 *zy, int *incy) nogil
  737. cdef void zswap(int *n, z *zx, int *incx, z *zy, int *incy) noexcept nogil:
  738. _fortran_zswap(n, <npy_complex128*>zx, incx, <npy_complex128*>zy, incy)
  739. cdef extern from "_blas_subroutines.h":
  740. void _fortran_zsymm "BLAS_FUNC(zsymm)"(char *side, char *uplo, int *m, int *n, npy_complex128 *alpha, npy_complex128 *a, int *lda, npy_complex128 *b, int *ldb, npy_complex128 *beta, npy_complex128 *c, int *ldc) nogil
  741. cdef void zsymm(char *side, char *uplo, int *m, int *n, z *alpha, z *a, int *lda, z *b, int *ldb, z *beta, z *c, int *ldc) noexcept nogil:
  742. _fortran_zsymm(side, uplo, m, n, <npy_complex128*>alpha, <npy_complex128*>a, lda, <npy_complex128*>b, ldb, <npy_complex128*>beta, <npy_complex128*>c, ldc)
  743. cdef extern from "_blas_subroutines.h":
  744. void _fortran_zsyr2k "BLAS_FUNC(zsyr2k)"(char *uplo, char *trans, int *n, int *k, npy_complex128 *alpha, npy_complex128 *a, int *lda, npy_complex128 *b, int *ldb, npy_complex128 *beta, npy_complex128 *c, int *ldc) nogil
  745. cdef void zsyr2k(char *uplo, char *trans, int *n, int *k, z *alpha, z *a, int *lda, z *b, int *ldb, z *beta, z *c, int *ldc) noexcept nogil:
  746. _fortran_zsyr2k(uplo, trans, n, k, <npy_complex128*>alpha, <npy_complex128*>a, lda, <npy_complex128*>b, ldb, <npy_complex128*>beta, <npy_complex128*>c, ldc)
  747. cdef extern from "_blas_subroutines.h":
  748. void _fortran_zsyrk "BLAS_FUNC(zsyrk)"(char *uplo, char *trans, int *n, int *k, npy_complex128 *alpha, npy_complex128 *a, int *lda, npy_complex128 *beta, npy_complex128 *c, int *ldc) nogil
  749. cdef void zsyrk(char *uplo, char *trans, int *n, int *k, z *alpha, z *a, int *lda, z *beta, z *c, int *ldc) noexcept nogil:
  750. _fortran_zsyrk(uplo, trans, n, k, <npy_complex128*>alpha, <npy_complex128*>a, lda, <npy_complex128*>beta, <npy_complex128*>c, ldc)
  751. cdef extern from "_blas_subroutines.h":
  752. void _fortran_ztbmv "BLAS_FUNC(ztbmv)"(char *uplo, char *trans, char *diag, int *n, int *k, npy_complex128 *a, int *lda, npy_complex128 *x, int *incx) nogil
  753. cdef void ztbmv(char *uplo, char *trans, char *diag, int *n, int *k, z *a, int *lda, z *x, int *incx) noexcept nogil:
  754. _fortran_ztbmv(uplo, trans, diag, n, k, <npy_complex128*>a, lda, <npy_complex128*>x, incx)
  755. cdef extern from "_blas_subroutines.h":
  756. void _fortran_ztbsv "BLAS_FUNC(ztbsv)"(char *uplo, char *trans, char *diag, int *n, int *k, npy_complex128 *a, int *lda, npy_complex128 *x, int *incx) nogil
  757. cdef void ztbsv(char *uplo, char *trans, char *diag, int *n, int *k, z *a, int *lda, z *x, int *incx) noexcept nogil:
  758. _fortran_ztbsv(uplo, trans, diag, n, k, <npy_complex128*>a, lda, <npy_complex128*>x, incx)
  759. cdef extern from "_blas_subroutines.h":
  760. void _fortran_ztpmv "BLAS_FUNC(ztpmv)"(char *uplo, char *trans, char *diag, int *n, npy_complex128 *ap, npy_complex128 *x, int *incx) nogil
  761. cdef void ztpmv(char *uplo, char *trans, char *diag, int *n, z *ap, z *x, int *incx) noexcept nogil:
  762. _fortran_ztpmv(uplo, trans, diag, n, <npy_complex128*>ap, <npy_complex128*>x, incx)
  763. cdef extern from "_blas_subroutines.h":
  764. void _fortran_ztpsv "BLAS_FUNC(ztpsv)"(char *uplo, char *trans, char *diag, int *n, npy_complex128 *ap, npy_complex128 *x, int *incx) nogil
  765. cdef void ztpsv(char *uplo, char *trans, char *diag, int *n, z *ap, z *x, int *incx) noexcept nogil:
  766. _fortran_ztpsv(uplo, trans, diag, n, <npy_complex128*>ap, <npy_complex128*>x, incx)
  767. cdef extern from "_blas_subroutines.h":
  768. void _fortran_ztrmm "BLAS_FUNC(ztrmm)"(char *side, char *uplo, char *transa, char *diag, int *m, int *n, npy_complex128 *alpha, npy_complex128 *a, int *lda, npy_complex128 *b, int *ldb) nogil
  769. cdef void ztrmm(char *side, char *uplo, char *transa, char *diag, int *m, int *n, z *alpha, z *a, int *lda, z *b, int *ldb) noexcept nogil:
  770. _fortran_ztrmm(side, uplo, transa, diag, m, n, <npy_complex128*>alpha, <npy_complex128*>a, lda, <npy_complex128*>b, ldb)
  771. cdef extern from "_blas_subroutines.h":
  772. void _fortran_ztrmv "BLAS_FUNC(ztrmv)"(char *uplo, char *trans, char *diag, int *n, npy_complex128 *a, int *lda, npy_complex128 *x, int *incx) nogil
  773. cdef void ztrmv(char *uplo, char *trans, char *diag, int *n, z *a, int *lda, z *x, int *incx) noexcept nogil:
  774. _fortran_ztrmv(uplo, trans, diag, n, <npy_complex128*>a, lda, <npy_complex128*>x, incx)
  775. cdef extern from "_blas_subroutines.h":
  776. void _fortran_ztrsm "BLAS_FUNC(ztrsm)"(char *side, char *uplo, char *transa, char *diag, int *m, int *n, npy_complex128 *alpha, npy_complex128 *a, int *lda, npy_complex128 *b, int *ldb) nogil
  777. cdef void ztrsm(char *side, char *uplo, char *transa, char *diag, int *m, int *n, z *alpha, z *a, int *lda, z *b, int *ldb) noexcept nogil:
  778. _fortran_ztrsm(side, uplo, transa, diag, m, n, <npy_complex128*>alpha, <npy_complex128*>a, lda, <npy_complex128*>b, ldb)
  779. cdef extern from "_blas_subroutines.h":
  780. void _fortran_ztrsv "BLAS_FUNC(ztrsv)"(char *uplo, char *trans, char *diag, int *n, npy_complex128 *a, int *lda, npy_complex128 *x, int *incx) nogil
  781. cdef void ztrsv(char *uplo, char *trans, char *diag, int *n, z *a, int *lda, z *x, int *incx) noexcept nogil:
  782. _fortran_ztrsv(uplo, trans, diag, n, <npy_complex128*>a, lda, <npy_complex128*>x, incx)
  783. # Python-accessible wrappers for testing:
  784. cdef inline bint _is_contiguous(double[:,:] a, int axis) noexcept nogil:
  785. return (a.strides[axis] == sizeof(a[0,0]) or a.shape[axis] == 1)
  786. cpdef float complex _test_cdotc(float complex[:] cx, float complex[:] cy) noexcept nogil:
  787. cdef:
  788. int n = cx.shape[0]
  789. int incx = cx.strides[0] // sizeof(cx[0])
  790. int incy = cy.strides[0] // sizeof(cy[0])
  791. return cdotc(&n, &cx[0], &incx, &cy[0], &incy)
  792. cpdef float complex _test_cdotu(float complex[:] cx, float complex[:] cy) noexcept nogil:
  793. cdef:
  794. int n = cx.shape[0]
  795. int incx = cx.strides[0] // sizeof(cx[0])
  796. int incy = cy.strides[0] // sizeof(cy[0])
  797. return cdotu(&n, &cx[0], &incx, &cy[0], &incy)
  798. cpdef double _test_dasum(double[:] dx) noexcept nogil:
  799. cdef:
  800. int n = dx.shape[0]
  801. int incx = dx.strides[0] // sizeof(dx[0])
  802. return dasum(&n, &dx[0], &incx)
  803. cpdef double _test_ddot(double[:] dx, double[:] dy) noexcept nogil:
  804. cdef:
  805. int n = dx.shape[0]
  806. int incx = dx.strides[0] // sizeof(dx[0])
  807. int incy = dy.strides[0] // sizeof(dy[0])
  808. return ddot(&n, &dx[0], &incx, &dy[0], &incy)
  809. cpdef int _test_dgemm(double alpha, double[:,:] a, double[:,:] b, double beta,
  810. double[:,:] c) except -1 nogil:
  811. cdef:
  812. char *transa
  813. char *transb
  814. int m, n, k, lda, ldb, ldc
  815. double *a0=&a[0,0]
  816. double *b0=&b[0,0]
  817. double *c0=&c[0,0]
  818. # In the case that c is C contiguous, swap a and b and
  819. # swap whether or not each of them is transposed.
  820. # This can be done because a.dot(b) = b.T.dot(a.T).T.
  821. if _is_contiguous(c, 1):
  822. if _is_contiguous(a, 1):
  823. transb = 'n'
  824. ldb = (&a[1,0]) - a0 if a.shape[0] > 1 else 1
  825. elif _is_contiguous(a, 0):
  826. transb = 't'
  827. ldb = (&a[0,1]) - a0 if a.shape[1] > 1 else 1
  828. else:
  829. with gil:
  830. raise ValueError("Input 'a' is neither C nor Fortran contiguous.")
  831. if _is_contiguous(b, 1):
  832. transa = 'n'
  833. lda = (&b[1,0]) - b0 if b.shape[0] > 1 else 1
  834. elif _is_contiguous(b, 0):
  835. transa = 't'
  836. lda = (&b[0,1]) - b0 if b.shape[1] > 1 else 1
  837. else:
  838. with gil:
  839. raise ValueError("Input 'b' is neither C nor Fortran contiguous.")
  840. k = b.shape[0]
  841. if k != a.shape[1]:
  842. with gil:
  843. raise ValueError("Shape mismatch in input arrays.")
  844. m = b.shape[1]
  845. n = a.shape[0]
  846. if n != c.shape[0] or m != c.shape[1]:
  847. with gil:
  848. raise ValueError("Output array does not have the correct shape.")
  849. ldc = (&c[1,0]) - c0 if c.shape[0] > 1 else 1
  850. dgemm(transa, transb, &m, &n, &k, &alpha, b0, &lda, a0,
  851. &ldb, &beta, c0, &ldc)
  852. elif _is_contiguous(c, 0):
  853. if _is_contiguous(a, 1):
  854. transa = 't'
  855. lda = (&a[1,0]) - a0 if a.shape[0] > 1 else 1
  856. elif _is_contiguous(a, 0):
  857. transa = 'n'
  858. lda = (&a[0,1]) - a0 if a.shape[1] > 1 else 1
  859. else:
  860. with gil:
  861. raise ValueError("Input 'a' is neither C nor Fortran contiguous.")
  862. if _is_contiguous(b, 1):
  863. transb = 't'
  864. ldb = (&b[1,0]) - b0 if b.shape[0] > 1 else 1
  865. elif _is_contiguous(b, 0):
  866. transb = 'n'
  867. ldb = (&b[0,1]) - b0 if b.shape[1] > 1 else 1
  868. else:
  869. with gil:
  870. raise ValueError("Input 'b' is neither C nor Fortran contiguous.")
  871. m = a.shape[0]
  872. k = a.shape[1]
  873. if k != b.shape[0]:
  874. with gil:
  875. raise ValueError("Shape mismatch in input arrays.")
  876. n = b.shape[1]
  877. if m != c.shape[0] or n != c.shape[1]:
  878. with gil:
  879. raise ValueError("Output array does not have the correct shape.")
  880. ldc = (&c[0,1]) - c0 if c.shape[1] > 1 else 1
  881. dgemm(transa, transb, &m, &n, &k, &alpha, a0, &lda, b0,
  882. &ldb, &beta, c0, &ldc)
  883. else:
  884. with gil:
  885. raise ValueError("Input 'c' is neither C nor Fortran contiguous.")
  886. return 0
  887. cpdef double _test_dnrm2(double[:] x) noexcept nogil:
  888. cdef:
  889. int n = x.shape[0]
  890. int incx = x.strides[0] // sizeof(x[0])
  891. return dnrm2(&n, &x[0], &incx)
  892. cpdef double _test_dzasum(double complex[:] zx) noexcept nogil:
  893. cdef:
  894. int n = zx.shape[0]
  895. int incx = zx.strides[0] // sizeof(zx[0])
  896. return dzasum(&n, &zx[0], &incx)
  897. cpdef double _test_dznrm2(double complex[:] x) noexcept nogil:
  898. cdef:
  899. int n = x.shape[0]
  900. int incx = x.strides[0] // sizeof(x[0])
  901. return dznrm2(&n, &x[0], &incx)
  902. cpdef int _test_icamax(float complex[:] cx) noexcept nogil:
  903. cdef:
  904. int n = cx.shape[0]
  905. int incx = cx.strides[0] // sizeof(cx[0])
  906. return icamax(&n, &cx[0], &incx)
  907. cpdef int _test_idamax(double[:] dx) noexcept nogil:
  908. cdef:
  909. int n = dx.shape[0]
  910. int incx = dx.strides[0] // sizeof(dx[0])
  911. return idamax(&n, &dx[0], &incx)
  912. cpdef int _test_isamax(float[:] sx) noexcept nogil:
  913. cdef:
  914. int n = sx.shape[0]
  915. int incx = sx.strides[0] // sizeof(sx[0])
  916. return isamax(&n, &sx[0], &incx)
  917. cpdef int _test_izamax(double complex[:] zx) noexcept nogil:
  918. cdef:
  919. int n = zx.shape[0]
  920. int incx = zx.strides[0] // sizeof(zx[0])
  921. return izamax(&n, &zx[0], &incx)
  922. cpdef float _test_sasum(float[:] sx) noexcept nogil:
  923. cdef:
  924. int n = sx.shape[0]
  925. int incx = sx.strides[0] // sizeof(sx[0])
  926. return sasum(&n, &sx[0], &incx)
  927. cpdef float _test_scasum(float complex[:] cx) noexcept nogil:
  928. cdef:
  929. int n = cx.shape[0]
  930. int incx = cx.strides[0] // sizeof(cx[0])
  931. return scasum(&n, &cx[0], &incx)
  932. cpdef float _test_scnrm2(float complex[:] x) noexcept nogil:
  933. cdef:
  934. int n = x.shape[0]
  935. int incx = x.strides[0] // sizeof(x[0])
  936. return scnrm2(&n, &x[0], &incx)
  937. cpdef float _test_sdot(float[:] sx, float[:] sy) noexcept nogil:
  938. cdef:
  939. int n = sx.shape[0]
  940. int incx = sx.strides[0] // sizeof(sx[0])
  941. int incy = sy.strides[0] // sizeof(sy[0])
  942. return sdot(&n, &sx[0], &incx, &sy[0], &incy)
  943. cpdef float _test_snrm2(float[:] x) noexcept nogil:
  944. cdef:
  945. int n = x.shape[0]
  946. int incx = x.strides[0] // sizeof(x[0])
  947. return snrm2(&n, &x[0], &incx)
  948. cpdef double complex _test_zdotc(double complex[:] zx, double complex[:] zy) noexcept nogil:
  949. cdef:
  950. int n = zx.shape[0]
  951. int incx = zx.strides[0] // sizeof(zx[0])
  952. int incy = zy.strides[0] // sizeof(zy[0])
  953. return zdotc(&n, &zx[0], &incx, &zy[0], &incy)
  954. cpdef double complex _test_zdotu(double complex[:] zx, double complex[:] zy) noexcept nogil:
  955. cdef:
  956. int n = zx.shape[0]
  957. int incx = zx.strides[0] // sizeof(zx[0])
  958. int incy = zy.strides[0] // sizeof(zy[0])
  959. return zdotu(&n, &zx[0], &incx, &zy[0], &incy)