nmatrix-lapacke 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (185) hide show
  1. checksums.yaml +7 -0
  2. data/ext/nmatrix/data/complex.h +364 -0
  3. data/ext/nmatrix/data/data.h +638 -0
  4. data/ext/nmatrix/data/meta.h +64 -0
  5. data/ext/nmatrix/data/ruby_object.h +389 -0
  6. data/ext/nmatrix/math/asum.h +120 -0
  7. data/ext/nmatrix/math/cblas_enums.h +36 -0
  8. data/ext/nmatrix/math/cblas_templates_core.h +507 -0
  9. data/ext/nmatrix/math/gemm.h +241 -0
  10. data/ext/nmatrix/math/gemv.h +178 -0
  11. data/ext/nmatrix/math/getrf.h +255 -0
  12. data/ext/nmatrix/math/getrs.h +121 -0
  13. data/ext/nmatrix/math/imax.h +79 -0
  14. data/ext/nmatrix/math/laswp.h +165 -0
  15. data/ext/nmatrix/math/long_dtype.h +49 -0
  16. data/ext/nmatrix/math/math.h +744 -0
  17. data/ext/nmatrix/math/nrm2.h +160 -0
  18. data/ext/nmatrix/math/rot.h +117 -0
  19. data/ext/nmatrix/math/rotg.h +106 -0
  20. data/ext/nmatrix/math/scal.h +71 -0
  21. data/ext/nmatrix/math/trsm.h +332 -0
  22. data/ext/nmatrix/math/util.h +148 -0
  23. data/ext/nmatrix/nm_memory.h +60 -0
  24. data/ext/nmatrix/nmatrix.h +408 -0
  25. data/ext/nmatrix/ruby_constants.h +106 -0
  26. data/ext/nmatrix/storage/common.h +176 -0
  27. data/ext/nmatrix/storage/dense/dense.h +128 -0
  28. data/ext/nmatrix/storage/list/list.h +137 -0
  29. data/ext/nmatrix/storage/storage.h +98 -0
  30. data/ext/nmatrix/storage/yale/class.h +1139 -0
  31. data/ext/nmatrix/storage/yale/iterators/base.h +142 -0
  32. data/ext/nmatrix/storage/yale/iterators/iterator.h +130 -0
  33. data/ext/nmatrix/storage/yale/iterators/row.h +449 -0
  34. data/ext/nmatrix/storage/yale/iterators/row_stored.h +139 -0
  35. data/ext/nmatrix/storage/yale/iterators/row_stored_nd.h +168 -0
  36. data/ext/nmatrix/storage/yale/iterators/stored_diagonal.h +123 -0
  37. data/ext/nmatrix/storage/yale/math/transpose.h +110 -0
  38. data/ext/nmatrix/storage/yale/yale.h +202 -0
  39. data/ext/nmatrix/types.h +54 -0
  40. data/ext/nmatrix/util/io.h +115 -0
  41. data/ext/nmatrix/util/sl_list.h +143 -0
  42. data/ext/nmatrix/util/util.h +78 -0
  43. data/ext/nmatrix_lapacke/extconf.rb +200 -0
  44. data/ext/nmatrix_lapacke/lapacke.cpp +100 -0
  45. data/ext/nmatrix_lapacke/lapacke/include/lapacke.h +16445 -0
  46. data/ext/nmatrix_lapacke/lapacke/include/lapacke_config.h +119 -0
  47. data/ext/nmatrix_lapacke/lapacke/include/lapacke_mangling.h +17 -0
  48. data/ext/nmatrix_lapacke/lapacke/include/lapacke_mangling_with_flags.h +17 -0
  49. data/ext/nmatrix_lapacke/lapacke/include/lapacke_utils.h +579 -0
  50. data/ext/nmatrix_lapacke/lapacke/src/lapacke_cgeev.c +89 -0
  51. data/ext/nmatrix_lapacke/lapacke/src/lapacke_cgeev_work.c +141 -0
  52. data/ext/nmatrix_lapacke/lapacke/src/lapacke_cgesdd.c +106 -0
  53. data/ext/nmatrix_lapacke/lapacke/src/lapacke_cgesdd_work.c +158 -0
  54. data/ext/nmatrix_lapacke/lapacke/src/lapacke_cgesvd.c +94 -0
  55. data/ext/nmatrix_lapacke/lapacke/src/lapacke_cgesvd_work.c +149 -0
  56. data/ext/nmatrix_lapacke/lapacke/src/lapacke_cgetrf.c +51 -0
  57. data/ext/nmatrix_lapacke/lapacke/src/lapacke_cgetrf_work.c +83 -0
  58. data/ext/nmatrix_lapacke/lapacke/src/lapacke_cgetri.c +77 -0
  59. data/ext/nmatrix_lapacke/lapacke/src/lapacke_cgetri_work.c +89 -0
  60. data/ext/nmatrix_lapacke/lapacke/src/lapacke_cgetrs.c +56 -0
  61. data/ext/nmatrix_lapacke/lapacke/src/lapacke_cgetrs_work.c +102 -0
  62. data/ext/nmatrix_lapacke/lapacke/src/lapacke_cpotrf.c +50 -0
  63. data/ext/nmatrix_lapacke/lapacke/src/lapacke_cpotrf_work.c +82 -0
  64. data/ext/nmatrix_lapacke/lapacke/src/lapacke_cpotri.c +50 -0
  65. data/ext/nmatrix_lapacke/lapacke/src/lapacke_cpotri_work.c +82 -0
  66. data/ext/nmatrix_lapacke/lapacke/src/lapacke_cpotrs.c +55 -0
  67. data/ext/nmatrix_lapacke/lapacke/src/lapacke_cpotrs_work.c +101 -0
  68. data/ext/nmatrix_lapacke/lapacke/src/lapacke_dgeev.c +78 -0
  69. data/ext/nmatrix_lapacke/lapacke/src/lapacke_dgeev_work.c +136 -0
  70. data/ext/nmatrix_lapacke/lapacke/src/lapacke_dgesdd.c +88 -0
  71. data/ext/nmatrix_lapacke/lapacke/src/lapacke_dgesdd_work.c +153 -0
  72. data/ext/nmatrix_lapacke/lapacke/src/lapacke_dgesvd.c +83 -0
  73. data/ext/nmatrix_lapacke/lapacke/src/lapacke_dgesvd_work.c +144 -0
  74. data/ext/nmatrix_lapacke/lapacke/src/lapacke_dgetrf.c +50 -0
  75. data/ext/nmatrix_lapacke/lapacke/src/lapacke_dgetrf_work.c +81 -0
  76. data/ext/nmatrix_lapacke/lapacke/src/lapacke_dgetri.c +75 -0
  77. data/ext/nmatrix_lapacke/lapacke/src/lapacke_dgetri_work.c +87 -0
  78. data/ext/nmatrix_lapacke/lapacke/src/lapacke_dgetrs.c +55 -0
  79. data/ext/nmatrix_lapacke/lapacke/src/lapacke_dgetrs_work.c +99 -0
  80. data/ext/nmatrix_lapacke/lapacke/src/lapacke_dpotrf.c +50 -0
  81. data/ext/nmatrix_lapacke/lapacke/src/lapacke_dpotrf_work.c +81 -0
  82. data/ext/nmatrix_lapacke/lapacke/src/lapacke_dpotri.c +50 -0
  83. data/ext/nmatrix_lapacke/lapacke/src/lapacke_dpotri_work.c +81 -0
  84. data/ext/nmatrix_lapacke/lapacke/src/lapacke_dpotrs.c +54 -0
  85. data/ext/nmatrix_lapacke/lapacke/src/lapacke_dpotrs_work.c +97 -0
  86. data/ext/nmatrix_lapacke/lapacke/src/lapacke_sgeev.c +78 -0
  87. data/ext/nmatrix_lapacke/lapacke/src/lapacke_sgeev_work.c +134 -0
  88. data/ext/nmatrix_lapacke/lapacke/src/lapacke_sgesdd.c +88 -0
  89. data/ext/nmatrix_lapacke/lapacke/src/lapacke_sgesdd_work.c +152 -0
  90. data/ext/nmatrix_lapacke/lapacke/src/lapacke_sgesvd.c +83 -0
  91. data/ext/nmatrix_lapacke/lapacke/src/lapacke_sgesvd_work.c +143 -0
  92. data/ext/nmatrix_lapacke/lapacke/src/lapacke_sgetrf.c +50 -0
  93. data/ext/nmatrix_lapacke/lapacke/src/lapacke_sgetrf_work.c +81 -0
  94. data/ext/nmatrix_lapacke/lapacke/src/lapacke_sgetri.c +75 -0
  95. data/ext/nmatrix_lapacke/lapacke/src/lapacke_sgetri_work.c +87 -0
  96. data/ext/nmatrix_lapacke/lapacke/src/lapacke_sgetrs.c +55 -0
  97. data/ext/nmatrix_lapacke/lapacke/src/lapacke_sgetrs_work.c +99 -0
  98. data/ext/nmatrix_lapacke/lapacke/src/lapacke_spotrf.c +50 -0
  99. data/ext/nmatrix_lapacke/lapacke/src/lapacke_spotrf_work.c +81 -0
  100. data/ext/nmatrix_lapacke/lapacke/src/lapacke_spotri.c +50 -0
  101. data/ext/nmatrix_lapacke/lapacke/src/lapacke_spotri_work.c +81 -0
  102. data/ext/nmatrix_lapacke/lapacke/src/lapacke_spotrs.c +54 -0
  103. data/ext/nmatrix_lapacke/lapacke/src/lapacke_spotrs_work.c +97 -0
  104. data/ext/nmatrix_lapacke/lapacke/src/lapacke_zgeev.c +89 -0
  105. data/ext/nmatrix_lapacke/lapacke/src/lapacke_zgeev_work.c +141 -0
  106. data/ext/nmatrix_lapacke/lapacke/src/lapacke_zgesdd.c +106 -0
  107. data/ext/nmatrix_lapacke/lapacke/src/lapacke_zgesdd_work.c +158 -0
  108. data/ext/nmatrix_lapacke/lapacke/src/lapacke_zgesvd.c +94 -0
  109. data/ext/nmatrix_lapacke/lapacke/src/lapacke_zgesvd_work.c +149 -0
  110. data/ext/nmatrix_lapacke/lapacke/src/lapacke_zgetrf.c +51 -0
  111. data/ext/nmatrix_lapacke/lapacke/src/lapacke_zgetrf_work.c +83 -0
  112. data/ext/nmatrix_lapacke/lapacke/src/lapacke_zgetri.c +77 -0
  113. data/ext/nmatrix_lapacke/lapacke/src/lapacke_zgetri_work.c +89 -0
  114. data/ext/nmatrix_lapacke/lapacke/src/lapacke_zgetrs.c +56 -0
  115. data/ext/nmatrix_lapacke/lapacke/src/lapacke_zgetrs_work.c +102 -0
  116. data/ext/nmatrix_lapacke/lapacke/src/lapacke_zpotrf.c +50 -0
  117. data/ext/nmatrix_lapacke/lapacke/src/lapacke_zpotrf_work.c +82 -0
  118. data/ext/nmatrix_lapacke/lapacke/src/lapacke_zpotri.c +50 -0
  119. data/ext/nmatrix_lapacke/lapacke/src/lapacke_zpotri_work.c +82 -0
  120. data/ext/nmatrix_lapacke/lapacke/src/lapacke_zpotrs.c +55 -0
  121. data/ext/nmatrix_lapacke/lapacke/src/lapacke_zpotrs_work.c +101 -0
  122. data/ext/nmatrix_lapacke/lapacke/utils/lapacke_cge_nancheck.c +62 -0
  123. data/ext/nmatrix_lapacke/lapacke/utils/lapacke_cge_trans.c +65 -0
  124. data/ext/nmatrix_lapacke/lapacke/utils/lapacke_cpo_nancheck.c +43 -0
  125. data/ext/nmatrix_lapacke/lapacke/utils/lapacke_cpo_trans.c +45 -0
  126. data/ext/nmatrix_lapacke/lapacke/utils/lapacke_ctr_nancheck.c +85 -0
  127. data/ext/nmatrix_lapacke/lapacke/utils/lapacke_ctr_trans.c +85 -0
  128. data/ext/nmatrix_lapacke/lapacke/utils/lapacke_dge_nancheck.c +62 -0
  129. data/ext/nmatrix_lapacke/lapacke/utils/lapacke_dge_trans.c +65 -0
  130. data/ext/nmatrix_lapacke/lapacke/utils/lapacke_dpo_nancheck.c +43 -0
  131. data/ext/nmatrix_lapacke/lapacke/utils/lapacke_dpo_trans.c +45 -0
  132. data/ext/nmatrix_lapacke/lapacke/utils/lapacke_dtr_nancheck.c +85 -0
  133. data/ext/nmatrix_lapacke/lapacke/utils/lapacke_dtr_trans.c +85 -0
  134. data/ext/nmatrix_lapacke/lapacke/utils/lapacke_lsame.c +41 -0
  135. data/ext/nmatrix_lapacke/lapacke/utils/lapacke_sge_nancheck.c +62 -0
  136. data/ext/nmatrix_lapacke/lapacke/utils/lapacke_sge_trans.c +65 -0
  137. data/ext/nmatrix_lapacke/lapacke/utils/lapacke_spo_nancheck.c +43 -0
  138. data/ext/nmatrix_lapacke/lapacke/utils/lapacke_spo_trans.c +45 -0
  139. data/ext/nmatrix_lapacke/lapacke/utils/lapacke_str_nancheck.c +85 -0
  140. data/ext/nmatrix_lapacke/lapacke/utils/lapacke_str_trans.c +85 -0
  141. data/ext/nmatrix_lapacke/lapacke/utils/lapacke_xerbla.c +46 -0
  142. data/ext/nmatrix_lapacke/lapacke/utils/lapacke_zge_nancheck.c +62 -0
  143. data/ext/nmatrix_lapacke/lapacke/utils/lapacke_zge_trans.c +65 -0
  144. data/ext/nmatrix_lapacke/lapacke/utils/lapacke_zpo_nancheck.c +43 -0
  145. data/ext/nmatrix_lapacke/lapacke/utils/lapacke_zpo_trans.c +45 -0
  146. data/ext/nmatrix_lapacke/lapacke/utils/lapacke_ztr_nancheck.c +85 -0
  147. data/ext/nmatrix_lapacke/lapacke/utils/lapacke_ztr_trans.c +85 -0
  148. data/ext/nmatrix_lapacke/lapacke_nmatrix.h +16 -0
  149. data/ext/nmatrix_lapacke/make_lapacke_cpp.rb +9 -0
  150. data/ext/nmatrix_lapacke/math_lapacke.cpp +967 -0
  151. data/ext/nmatrix_lapacke/math_lapacke/cblas_local.h +576 -0
  152. data/ext/nmatrix_lapacke/math_lapacke/cblas_templates_lapacke.h +51 -0
  153. data/ext/nmatrix_lapacke/math_lapacke/lapacke_templates.h +356 -0
  154. data/ext/nmatrix_lapacke/nmatrix_lapacke.cpp +42 -0
  155. data/lib/nmatrix/lapack_ext_common.rb +69 -0
  156. data/lib/nmatrix/lapacke.rb +213 -0
  157. data/spec/00_nmatrix_spec.rb +730 -0
  158. data/spec/01_enum_spec.rb +190 -0
  159. data/spec/02_slice_spec.rb +389 -0
  160. data/spec/03_nmatrix_monkeys_spec.rb +78 -0
  161. data/spec/2x2_dense_double.mat +0 -0
  162. data/spec/4x4_sparse.mat +0 -0
  163. data/spec/4x5_dense.mat +0 -0
  164. data/spec/blas_spec.rb +193 -0
  165. data/spec/elementwise_spec.rb +303 -0
  166. data/spec/homogeneous_spec.rb +99 -0
  167. data/spec/io/fortran_format_spec.rb +88 -0
  168. data/spec/io/harwell_boeing_spec.rb +98 -0
  169. data/spec/io/test.rua +9 -0
  170. data/spec/io_spec.rb +149 -0
  171. data/spec/lapack_core_spec.rb +482 -0
  172. data/spec/leakcheck.rb +16 -0
  173. data/spec/math_spec.rb +730 -0
  174. data/spec/nmatrix_yale_resize_test_associations.yaml +2802 -0
  175. data/spec/nmatrix_yale_spec.rb +286 -0
  176. data/spec/plugins/lapacke/lapacke_spec.rb +303 -0
  177. data/spec/rspec_monkeys.rb +56 -0
  178. data/spec/rspec_spec.rb +34 -0
  179. data/spec/shortcuts_spec.rb +310 -0
  180. data/spec/slice_set_spec.rb +157 -0
  181. data/spec/spec_helper.rb +140 -0
  182. data/spec/stat_spec.rb +203 -0
  183. data/spec/test.pcd +20 -0
  184. data/spec/utm5940.mtx +83844 -0
  185. metadata +262 -0
@@ -0,0 +1,576 @@
1
+ //This is copied from CBLAS reference implementation.
2
+ #ifndef CBLAS_H
3
+ #define CBLAS_H
4
+ #include <stddef.h>
5
+
6
+ /* Allow the use in C++ code. */
7
+ #ifdef __cplusplus
8
+ extern "C"
9
+ {
10
+ #endif
11
+
12
+ /*
13
+ * Enumerated and derived types
14
+ */
15
+ #define CBLAS_INDEX size_t /* this may vary between platforms */
16
+
17
+ //Remove enums from this file so we can use them in code that doesn't rely on CBLAS
18
+ #include "math/cblas_enums.h"
19
+
20
+ /*
21
+ * ===========================================================================
22
+ * Prototypes for level 1 BLAS functions (complex are recast as routines)
23
+ * ===========================================================================
24
+ */
25
+ float cblas_sdsdot(const int N, const float alpha, const float *X,
26
+ const int incX, const float *Y, const int incY);
27
+ double cblas_dsdot(const int N, const float *X, const int incX, const float *Y,
28
+ const int incY);
29
+ float cblas_sdot(const int N, const float *X, const int incX,
30
+ const float *Y, const int incY);
31
+ double cblas_ddot(const int N, const double *X, const int incX,
32
+ const double *Y, const int incY);
33
+
34
+ /*
35
+ * Functions having prefixes Z and C only
36
+ */
37
+ void cblas_cdotu_sub(const int N, const void *X, const int incX,
38
+ const void *Y, const int incY, void *dotu);
39
+ void cblas_cdotc_sub(const int N, const void *X, const int incX,
40
+ const void *Y, const int incY, void *dotc);
41
+
42
+ void cblas_zdotu_sub(const int N, const void *X, const int incX,
43
+ const void *Y, const int incY, void *dotu);
44
+ void cblas_zdotc_sub(const int N, const void *X, const int incX,
45
+ const void *Y, const int incY, void *dotc);
46
+
47
+
48
+ /*
49
+ * Functions having prefixes S D SC DZ
50
+ */
51
+ float cblas_snrm2(const int N, const float *X, const int incX);
52
+ float cblas_sasum(const int N, const float *X, const int incX);
53
+
54
+ double cblas_dnrm2(const int N, const double *X, const int incX);
55
+ double cblas_dasum(const int N, const double *X, const int incX);
56
+
57
+ float cblas_scnrm2(const int N, const void *X, const int incX);
58
+ float cblas_scasum(const int N, const void *X, const int incX);
59
+
60
+ double cblas_dznrm2(const int N, const void *X, const int incX);
61
+ double cblas_dzasum(const int N, const void *X, const int incX);
62
+
63
+
64
+ /*
65
+ * Functions having standard 4 prefixes (S D C Z)
66
+ */
67
+ CBLAS_INDEX cblas_isamax(const int N, const float *X, const int incX);
68
+ CBLAS_INDEX cblas_idamax(const int N, const double *X, const int incX);
69
+ CBLAS_INDEX cblas_icamax(const int N, const void *X, const int incX);
70
+ CBLAS_INDEX cblas_izamax(const int N, const void *X, const int incX);
71
+
72
+ /*
73
+ * ===========================================================================
74
+ * Prototypes for level 1 BLAS routines
75
+ * ===========================================================================
76
+ */
77
+
78
+ /*
79
+ * Routines with standard 4 prefixes (s, d, c, z)
80
+ */
81
+ void cblas_sswap(const int N, float *X, const int incX,
82
+ float *Y, const int incY);
83
+ void cblas_scopy(const int N, const float *X, const int incX,
84
+ float *Y, const int incY);
85
+ void cblas_saxpy(const int N, const float alpha, const float *X,
86
+ const int incX, float *Y, const int incY);
87
+
88
+ void cblas_dswap(const int N, double *X, const int incX,
89
+ double *Y, const int incY);
90
+ void cblas_dcopy(const int N, const double *X, const int incX,
91
+ double *Y, const int incY);
92
+ void cblas_daxpy(const int N, const double alpha, const double *X,
93
+ const int incX, double *Y, const int incY);
94
+
95
+ void cblas_cswap(const int N, void *X, const int incX,
96
+ void *Y, const int incY);
97
+ void cblas_ccopy(const int N, const void *X, const int incX,
98
+ void *Y, const int incY);
99
+ void cblas_caxpy(const int N, const void *alpha, const void *X,
100
+ const int incX, void *Y, const int incY);
101
+
102
+ void cblas_zswap(const int N, void *X, const int incX,
103
+ void *Y, const int incY);
104
+ void cblas_zcopy(const int N, const void *X, const int incX,
105
+ void *Y, const int incY);
106
+ void cblas_zaxpy(const int N, const void *alpha, const void *X,
107
+ const int incX, void *Y, const int incY);
108
+
109
+
110
+ /*
111
+ * Routines with S and D prefix only
112
+ */
113
+ void cblas_srotg(float *a, float *b, float *c, float *s);
114
+ void cblas_srotmg(float *d1, float *d2, float *b1, const float b2, float *P);
115
+ void cblas_srot(const int N, float *X, const int incX,
116
+ float *Y, const int incY, const float c, const float s);
117
+ void cblas_srotm(const int N, float *X, const int incX,
118
+ float *Y, const int incY, const float *P);
119
+
120
+ void cblas_drotg(double *a, double *b, double *c, double *s);
121
+ void cblas_drotmg(double *d1, double *d2, double *b1, const double b2, double *P);
122
+ void cblas_drot(const int N, double *X, const int incX,
123
+ double *Y, const int incY, const double c, const double s);
124
+ void cblas_drotm(const int N, double *X, const int incX,
125
+ double *Y, const int incY, const double *P);
126
+
127
+
128
+ /*
129
+ * Routines with S D C Z CS and ZD prefixes
130
+ */
131
+ void cblas_sscal(const int N, const float alpha, float *X, const int incX);
132
+ void cblas_dscal(const int N, const double alpha, double *X, const int incX);
133
+ void cblas_cscal(const int N, const void *alpha, void *X, const int incX);
134
+ void cblas_zscal(const int N, const void *alpha, void *X, const int incX);
135
+ void cblas_csscal(const int N, const float alpha, void *X, const int incX);
136
+ void cblas_zdscal(const int N, const double alpha, void *X, const int incX);
137
+
138
+ /*
139
+ * ===========================================================================
140
+ * Prototypes for level 2 BLAS
141
+ * ===========================================================================
142
+ */
143
+
144
+ /*
145
+ * Routines with standard 4 prefixes (S, D, C, Z)
146
+ */
147
+ void cblas_sgemv(const enum CBLAS_ORDER order,
148
+ const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
149
+ const float alpha, const float *A, const int lda,
150
+ const float *X, const int incX, const float beta,
151
+ float *Y, const int incY);
152
+ void cblas_sgbmv(const enum CBLAS_ORDER order,
153
+ const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
154
+ const int KL, const int KU, const float alpha,
155
+ const float *A, const int lda, const float *X,
156
+ const int incX, const float beta, float *Y, const int incY);
157
+ void cblas_strmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
158
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
159
+ const int N, const float *A, const int lda,
160
+ float *X, const int incX);
161
+ void cblas_stbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
162
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
163
+ const int N, const int K, const float *A, const int lda,
164
+ float *X, const int incX);
165
+ void cblas_stpmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
166
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
167
+ const int N, const float *Ap, float *X, const int incX);
168
+ void cblas_strsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
169
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
170
+ const int N, const float *A, const int lda, float *X,
171
+ const int incX);
172
+ void cblas_stbsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
173
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
174
+ const int N, const int K, const float *A, const int lda,
175
+ float *X, const int incX);
176
+ void cblas_stpsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
177
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
178
+ const int N, const float *Ap, float *X, const int incX);
179
+
180
+ void cblas_dgemv(const enum CBLAS_ORDER order,
181
+ const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
182
+ const double alpha, const double *A, const int lda,
183
+ const double *X, const int incX, const double beta,
184
+ double *Y, const int incY);
185
+ void cblas_dgbmv(const enum CBLAS_ORDER order,
186
+ const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
187
+ const int KL, const int KU, const double alpha,
188
+ const double *A, const int lda, const double *X,
189
+ const int incX, const double beta, double *Y, const int incY);
190
+ void cblas_dtrmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
191
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
192
+ const int N, const double *A, const int lda,
193
+ double *X, const int incX);
194
+ void cblas_dtbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
195
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
196
+ const int N, const int K, const double *A, const int lda,
197
+ double *X, const int incX);
198
+ void cblas_dtpmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
199
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
200
+ const int N, const double *Ap, double *X, const int incX);
201
+ void cblas_dtrsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
202
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
203
+ const int N, const double *A, const int lda, double *X,
204
+ const int incX);
205
+ void cblas_dtbsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
206
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
207
+ const int N, const int K, const double *A, const int lda,
208
+ double *X, const int incX);
209
+ void cblas_dtpsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
210
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
211
+ const int N, const double *Ap, double *X, const int incX);
212
+
213
+ void cblas_cgemv(const enum CBLAS_ORDER order,
214
+ const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
215
+ const void *alpha, const void *A, const int lda,
216
+ const void *X, const int incX, const void *beta,
217
+ void *Y, const int incY);
218
+ void cblas_cgbmv(const enum CBLAS_ORDER order,
219
+ const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
220
+ const int KL, const int KU, const void *alpha,
221
+ const void *A, const int lda, const void *X,
222
+ const int incX, const void *beta, void *Y, const int incY);
223
+ void cblas_ctrmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
224
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
225
+ const int N, const void *A, const int lda,
226
+ void *X, const int incX);
227
+ void cblas_ctbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
228
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
229
+ const int N, const int K, const void *A, const int lda,
230
+ void *X, const int incX);
231
+ void cblas_ctpmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
232
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
233
+ const int N, const void *Ap, void *X, const int incX);
234
+ void cblas_ctrsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
235
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
236
+ const int N, const void *A, const int lda, void *X,
237
+ const int incX);
238
+ void cblas_ctbsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
239
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
240
+ const int N, const int K, const void *A, const int lda,
241
+ void *X, const int incX);
242
+ void cblas_ctpsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
243
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
244
+ const int N, const void *Ap, void *X, const int incX);
245
+
246
+ void cblas_zgemv(const enum CBLAS_ORDER order,
247
+ const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
248
+ const void *alpha, const void *A, const int lda,
249
+ const void *X, const int incX, const void *beta,
250
+ void *Y, const int incY);
251
+ void cblas_zgbmv(const enum CBLAS_ORDER order,
252
+ const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
253
+ const int KL, const int KU, const void *alpha,
254
+ const void *A, const int lda, const void *X,
255
+ const int incX, const void *beta, void *Y, const int incY);
256
+ void cblas_ztrmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
257
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
258
+ const int N, const void *A, const int lda,
259
+ void *X, const int incX);
260
+ void cblas_ztbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
261
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
262
+ const int N, const int K, const void *A, const int lda,
263
+ void *X, const int incX);
264
+ void cblas_ztpmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
265
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
266
+ const int N, const void *Ap, void *X, const int incX);
267
+ void cblas_ztrsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
268
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
269
+ const int N, const void *A, const int lda, void *X,
270
+ const int incX);
271
+ void cblas_ztbsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
272
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
273
+ const int N, const int K, const void *A, const int lda,
274
+ void *X, const int incX);
275
+ void cblas_ztpsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
276
+ const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
277
+ const int N, const void *Ap, void *X, const int incX);
278
+
279
+
280
+ /*
281
+ * Routines with S and D prefixes only
282
+ */
283
+ void cblas_ssymv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
284
+ const int N, const float alpha, const float *A,
285
+ const int lda, const float *X, const int incX,
286
+ const float beta, float *Y, const int incY);
287
+ void cblas_ssbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
288
+ const int N, const int K, const float alpha, const float *A,
289
+ const int lda, const float *X, const int incX,
290
+ const float beta, float *Y, const int incY);
291
+ void cblas_sspmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
292
+ const int N, const float alpha, const float *Ap,
293
+ const float *X, const int incX,
294
+ const float beta, float *Y, const int incY);
295
+ void cblas_sger(const enum CBLAS_ORDER order, const int M, const int N,
296
+ const float alpha, const float *X, const int incX,
297
+ const float *Y, const int incY, float *A, const int lda);
298
+ void cblas_ssyr(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
299
+ const int N, const float alpha, const float *X,
300
+ const int incX, float *A, const int lda);
301
+ void cblas_sspr(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
302
+ const int N, const float alpha, const float *X,
303
+ const int incX, float *Ap);
304
+ void cblas_ssyr2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
305
+ const int N, const float alpha, const float *X,
306
+ const int incX, const float *Y, const int incY, float *A,
307
+ const int lda);
308
+ void cblas_sspr2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
309
+ const int N, const float alpha, const float *X,
310
+ const int incX, const float *Y, const int incY, float *A);
311
+
312
+ void cblas_dsymv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
313
+ const int N, const double alpha, const double *A,
314
+ const int lda, const double *X, const int incX,
315
+ const double beta, double *Y, const int incY);
316
+ void cblas_dsbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
317
+ const int N, const int K, const double alpha, const double *A,
318
+ const int lda, const double *X, const int incX,
319
+ const double beta, double *Y, const int incY);
320
+ void cblas_dspmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
321
+ const int N, const double alpha, const double *Ap,
322
+ const double *X, const int incX,
323
+ const double beta, double *Y, const int incY);
324
+ void cblas_dger(const enum CBLAS_ORDER order, const int M, const int N,
325
+ const double alpha, const double *X, const int incX,
326
+ const double *Y, const int incY, double *A, const int lda);
327
+ void cblas_dsyr(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
328
+ const int N, const double alpha, const double *X,
329
+ const int incX, double *A, const int lda);
330
+ void cblas_dspr(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
331
+ const int N, const double alpha, const double *X,
332
+ const int incX, double *Ap);
333
+ void cblas_dsyr2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
334
+ const int N, const double alpha, const double *X,
335
+ const int incX, const double *Y, const int incY, double *A,
336
+ const int lda);
337
+ void cblas_dspr2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
338
+ const int N, const double alpha, const double *X,
339
+ const int incX, const double *Y, const int incY, double *A);
340
+
341
+
342
+ /*
343
+ * Routines with C and Z prefixes only
344
+ */
345
+ void cblas_chemv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
346
+ const int N, const void *alpha, const void *A,
347
+ const int lda, const void *X, const int incX,
348
+ const void *beta, void *Y, const int incY);
349
+ void cblas_chbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
350
+ const int N, const int K, const void *alpha, const void *A,
351
+ const int lda, const void *X, const int incX,
352
+ const void *beta, void *Y, const int incY);
353
+ void cblas_chpmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
354
+ const int N, const void *alpha, const void *Ap,
355
+ const void *X, const int incX,
356
+ const void *beta, void *Y, const int incY);
357
+ void cblas_cgeru(const enum CBLAS_ORDER order, const int M, const int N,
358
+ const void *alpha, const void *X, const int incX,
359
+ const void *Y, const int incY, void *A, const int lda);
360
+ void cblas_cgerc(const enum CBLAS_ORDER order, const int M, const int N,
361
+ const void *alpha, const void *X, const int incX,
362
+ const void *Y, const int incY, void *A, const int lda);
363
+ void cblas_cher(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
364
+ const int N, const float alpha, const void *X, const int incX,
365
+ void *A, const int lda);
366
+ void cblas_chpr(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
367
+ const int N, const float alpha, const void *X,
368
+ const int incX, void *A);
369
+ void cblas_cher2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const int N,
370
+ const void *alpha, const void *X, const int incX,
371
+ const void *Y, const int incY, void *A, const int lda);
372
+ void cblas_chpr2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const int N,
373
+ const void *alpha, const void *X, const int incX,
374
+ const void *Y, const int incY, void *Ap);
375
+
376
+ void cblas_zhemv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
377
+ const int N, const void *alpha, const void *A,
378
+ const int lda, const void *X, const int incX,
379
+ const void *beta, void *Y, const int incY);
380
+ void cblas_zhbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
381
+ const int N, const int K, const void *alpha, const void *A,
382
+ const int lda, const void *X, const int incX,
383
+ const void *beta, void *Y, const int incY);
384
+ void cblas_zhpmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
385
+ const int N, const void *alpha, const void *Ap,
386
+ const void *X, const int incX,
387
+ const void *beta, void *Y, const int incY);
388
+ void cblas_zgeru(const enum CBLAS_ORDER order, const int M, const int N,
389
+ const void *alpha, const void *X, const int incX,
390
+ const void *Y, const int incY, void *A, const int lda);
391
+ void cblas_zgerc(const enum CBLAS_ORDER order, const int M, const int N,
392
+ const void *alpha, const void *X, const int incX,
393
+ const void *Y, const int incY, void *A, const int lda);
394
+ void cblas_zher(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
395
+ const int N, const double alpha, const void *X, const int incX,
396
+ void *A, const int lda);
397
+ void cblas_zhpr(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
398
+ const int N, const double alpha, const void *X,
399
+ const int incX, void *A);
400
+ void cblas_zher2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const int N,
401
+ const void *alpha, const void *X, const int incX,
402
+ const void *Y, const int incY, void *A, const int lda);
403
+ void cblas_zhpr2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const int N,
404
+ const void *alpha, const void *X, const int incX,
405
+ const void *Y, const int incY, void *Ap);
406
+
407
+ /*
408
+ * ===========================================================================
409
+ * Prototypes for level 3 BLAS
410
+ * ===========================================================================
411
+ */
412
+
413
+ /*
414
+ * Routines with standard 4 prefixes (S, D, C, Z)
415
+ */
416
+ void cblas_sgemm(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA,
417
+ const enum CBLAS_TRANSPOSE TransB, const int M, const int N,
418
+ const int K, const float alpha, const float *A,
419
+ const int lda, const float *B, const int ldb,
420
+ const float beta, float *C, const int ldc);
421
+ void cblas_ssymm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
422
+ const enum CBLAS_UPLO Uplo, const int M, const int N,
423
+ const float alpha, const float *A, const int lda,
424
+ const float *B, const int ldb, const float beta,
425
+ float *C, const int ldc);
426
+ void cblas_ssyrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
427
+ const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
428
+ const float alpha, const float *A, const int lda,
429
+ const float beta, float *C, const int ldc);
430
+ void cblas_ssyr2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
431
+ const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
432
+ const float alpha, const float *A, const int lda,
433
+ const float *B, const int ldb, const float beta,
434
+ float *C, const int ldc);
435
+ void cblas_strmm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
436
+ const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
437
+ const enum CBLAS_DIAG Diag, const int M, const int N,
438
+ const float alpha, const float *A, const int lda,
439
+ float *B, const int ldb);
440
+ void cblas_strsm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
441
+ const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
442
+ const enum CBLAS_DIAG Diag, const int M, const int N,
443
+ const float alpha, const float *A, const int lda,
444
+ float *B, const int ldb);
445
+
446
+ void cblas_dgemm(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA,
447
+ const enum CBLAS_TRANSPOSE TransB, const int M, const int N,
448
+ const int K, const double alpha, const double *A,
449
+ const int lda, const double *B, const int ldb,
450
+ const double beta, double *C, const int ldc);
451
+ void cblas_dsymm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
452
+ const enum CBLAS_UPLO Uplo, const int M, const int N,
453
+ const double alpha, const double *A, const int lda,
454
+ const double *B, const int ldb, const double beta,
455
+ double *C, const int ldc);
456
+ void cblas_dsyrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
457
+ const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
458
+ const double alpha, const double *A, const int lda,
459
+ const double beta, double *C, const int ldc);
460
+ void cblas_dsyr2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
461
+ const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
462
+ const double alpha, const double *A, const int lda,
463
+ const double *B, const int ldb, const double beta,
464
+ double *C, const int ldc);
465
+ void cblas_dtrmm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
466
+ const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
467
+ const enum CBLAS_DIAG Diag, const int M, const int N,
468
+ const double alpha, const double *A, const int lda,
469
+ double *B, const int ldb);
470
+ void cblas_dtrsm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
471
+ const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
472
+ const enum CBLAS_DIAG Diag, const int M, const int N,
473
+ const double alpha, const double *A, const int lda,
474
+ double *B, const int ldb);
475
+
476
+ void cblas_cgemm(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA,
477
+ const enum CBLAS_TRANSPOSE TransB, const int M, const int N,
478
+ const int K, const void *alpha, const void *A,
479
+ const int lda, const void *B, const int ldb,
480
+ const void *beta, void *C, const int ldc);
481
+ void cblas_csymm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
482
+ const enum CBLAS_UPLO Uplo, const int M, const int N,
483
+ const void *alpha, const void *A, const int lda,
484
+ const void *B, const int ldb, const void *beta,
485
+ void *C, const int ldc);
486
+ void cblas_csyrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
487
+ const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
488
+ const void *alpha, const void *A, const int lda,
489
+ const void *beta, void *C, const int ldc);
490
+ void cblas_csyr2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
491
+ const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
492
+ const void *alpha, const void *A, const int lda,
493
+ const void *B, const int ldb, const void *beta,
494
+ void *C, const int ldc);
495
+ void cblas_ctrmm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
496
+ const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
497
+ const enum CBLAS_DIAG Diag, const int M, const int N,
498
+ const void *alpha, const void *A, const int lda,
499
+ void *B, const int ldb);
500
+ void cblas_ctrsm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
501
+ const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
502
+ const enum CBLAS_DIAG Diag, const int M, const int N,
503
+ const void *alpha, const void *A, const int lda,
504
+ void *B, const int ldb);
505
+
506
+ void cblas_zgemm(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA,
507
+ const enum CBLAS_TRANSPOSE TransB, const int M, const int N,
508
+ const int K, const void *alpha, const void *A,
509
+ const int lda, const void *B, const int ldb,
510
+ const void *beta, void *C, const int ldc);
511
+ void cblas_zsymm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
512
+ const enum CBLAS_UPLO Uplo, const int M, const int N,
513
+ const void *alpha, const void *A, const int lda,
514
+ const void *B, const int ldb, const void *beta,
515
+ void *C, const int ldc);
516
+ void cblas_zsyrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
517
+ const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
518
+ const void *alpha, const void *A, const int lda,
519
+ const void *beta, void *C, const int ldc);
520
+ void cblas_zsyr2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
521
+ const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
522
+ const void *alpha, const void *A, const int lda,
523
+ const void *B, const int ldb, const void *beta,
524
+ void *C, const int ldc);
525
+ void cblas_ztrmm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
526
+ const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
527
+ const enum CBLAS_DIAG Diag, const int M, const int N,
528
+ const void *alpha, const void *A, const int lda,
529
+ void *B, const int ldb);
530
+ void cblas_ztrsm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
531
+ const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
532
+ const enum CBLAS_DIAG Diag, const int M, const int N,
533
+ const void *alpha, const void *A, const int lda,
534
+ void *B, const int ldb);
535
+
536
+
537
+ /*
538
+ * Routines with prefixes C and Z only
539
+ */
540
+ void cblas_chemm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
541
+ const enum CBLAS_UPLO Uplo, const int M, const int N,
542
+ const void *alpha, const void *A, const int lda,
543
+ const void *B, const int ldb, const void *beta,
544
+ void *C, const int ldc);
545
+ void cblas_cherk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
546
+ const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
547
+ const float alpha, const void *A, const int lda,
548
+ const float beta, void *C, const int ldc);
549
+ void cblas_cher2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
550
+ const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
551
+ const void *alpha, const void *A, const int lda,
552
+ const void *B, const int ldb, const float beta,
553
+ void *C, const int ldc);
554
+
555
+ void cblas_zhemm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
556
+ const enum CBLAS_UPLO Uplo, const int M, const int N,
557
+ const void *alpha, const void *A, const int lda,
558
+ const void *B, const int ldb, const void *beta,
559
+ void *C, const int ldc);
560
+ void cblas_zherk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
561
+ const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
562
+ const double alpha, const void *A, const int lda,
563
+ const double beta, void *C, const int ldc);
564
+ void cblas_zher2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
565
+ const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
566
+ const void *alpha, const void *A, const int lda,
567
+ const void *B, const int ldb, const double beta,
568
+ void *C, const int ldc);
569
+
570
+ void cblas_xerbla(int p, const char *rout, const char *form, ...);
571
+
572
+ #ifdef __cplusplus
573
+ }
574
+ #endif
575
+
576
+ #endif