-
-
Notifications
You must be signed in to change notification settings - Fork 450
Expand file tree
/
Copy pathfn.go
More file actions
183 lines (172 loc) · 2.77 KB
/
Copy pathfn.go
File metadata and controls
183 lines (172 loc) · 2.77 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
package blase
/*
#include "work.h"
#include "cblas.h"
*/
import "C"
import "unsafe"
type fnargs struct {
fn C.cblasFn
// things common to most BLAS routines
order C.cblas_order
tA C.cblas_transpose
tB C.cblas_transpose
// things that needs to be passed to C in a very unsafe manner
a0 uintptr
a1 uintptr
a2 uintptr
a3 uintptr
// any integer parameters
i0 C.int
i1 C.int
i2 C.int
i3 C.int
i4 C.int
i5 C.int
// any float64 parameters
d0 C.double
d1 C.double
d2 C.double
d3 C.double
}
func (fn *fnargs) toCStruct() C.struct_fnargs {
return *(*C.struct_fnargs)(unsafe.Pointer(fn))
}
type blasFn int
const (
fn_undefined blasFn = iota
fn_cblas_cdotu_sub
fn_cblas_cdotc_sub
fn_cblas_zdotu_sub
fn_cblas_zdotc_sub
fn_cblas_sswap
fn_cblas_scopy
fn_cblas_saxpy
fn_catlas_saxpby
fn_cblas_dswap
fn_cblas_dcopy
fn_cblas_daxpy
fn_catlas_daxpby
fn_cblas_cswap
fn_cblas_ccopy
fn_cblas_caxpy
fn_catlas_caxpby
fn_cblas_zswap
fn_cblas_zcopy
fn_cblas_zaxpy
fn_catlas_zaxpby
fn_cblas_srotg
fn_cblas_srotmg
fn_cblas_srot
fn_cblas_srotm
fn_cblas_drotg
fn_cblas_drotmg
fn_cblas_drot
fn_cblas_drotm
fn_cblas_sscal
fn_cblas_dscal
fn_cblas_cscal
fn_cblas_zscal
fn_cblas_csscal
fn_cblas_zdscal
fn_cblas_crotg
fn_cblas_zrotg
fn_cblas_csrot
fn_cblas_zdrot
fn_cblas_sgemv
fn_cblas_sgbmv
fn_cblas_strmv
fn_cblas_stbmv
fn_cblas_stpmv
fn_cblas_strsv
fn_cblas_stbsv
fn_cblas_stpsv
fn_cblas_dgemv
fn_cblas_dgbmv
fn_cblas_dtrmv
fn_cblas_dtbmv
fn_cblas_dtpmv
fn_cblas_dtrsv
fn_cblas_dtbsv
fn_cblas_dtpsv
fn_cblas_cgemv
fn_cblas_cgbmv
fn_cblas_ctrmv
fn_cblas_ctbmv
fn_cblas_ctpmv
fn_cblas_ctrsv
fn_cblas_ctbsv
fn_cblas_ctpsv
fn_cblas_zgemv
fn_cblas_zgbmv
fn_cblas_ztrmv
fn_cblas_ztbmv
fn_cblas_ztpmv
fn_cblas_ztrsv
fn_cblas_ztbsv
fn_cblas_ztpsv
fn_cblas_ssymv
fn_cblas_ssbmv
fn_cblas_sspmv
fn_cblas_sger
fn_cblas_ssyr
fn_cblas_sspr
fn_cblas_ssyr2
fn_cblas_sspr2
fn_cblas_dsymv
fn_cblas_dsbmv
fn_cblas_dspmv
fn_cblas_dger
fn_cblas_dsyr
fn_cblas_dspr
fn_cblas_dsyr2
fn_cblas_dspr2
fn_cblas_chemv
fn_cblas_chbmv
fn_cblas_chpmv
fn_cblas_cgeru
fn_cblas_cgerc
fn_cblas_cher
fn_cblas_chpr
fn_cblas_cher2
fn_cblas_chpr2
fn_cblas_zhemv
fn_cblas_zhbmv
fn_cblas_zhpmv
fn_cblas_zgeru
fn_cblas_zgerc
fn_cblas_zher
fn_cblas_zhpr
fn_cblas_zher2
fn_cblas_zhpr2
fn_cblas_sgemm
fn_cblas_ssymm
fn_cblas_ssyrk
fn_cblas_ssyr2k
fn_cblas_strmm
fn_cblas_strsm
fn_cblas_dgemm
fn_cblas_dsymm
fn_cblas_dsyrk
fn_cblas_dsyr2k
fn_cblas_dtrmm
fn_cblas_dtrsm
fn_cblas_cgemm
fn_cblas_csymm
fn_cblas_csyrk
fn_cblas_csyr2k
fn_cblas_ctrmm
fn_cblas_ctrsm
fn_cblas_zgemm
fn_cblas_zsymm
fn_cblas_zsyrk
fn_cblas_zsyr2k
fn_cblas_ztrmm
fn_cblas_ztrsm
fn_cblas_chemm
fn_cblas_cherk
fn_cblas_cher2k
fn_cblas_zhemm
fn_cblas_zherk
fn_cblas_zher2k
)