1
1
module BLAS
2
2
3
- import Base. copy!
3
+ import Base: copy!, blasfunc
4
+
4
5
export
5
6
# Level 1
6
7
asum,
@@ -43,14 +44,14 @@ import ..LinAlg: BlasReal, BlasComplex, BlasFloat, BlasChar, BlasInt, blas_int,
43
44
44
45
# Level 1
45
46
# # copy
46
- for (fname, elty) in ((:dcopy_ ,:Float64 ),
47
+ for (fname, elty) in ((:dcopy_ ,:Float64 ),
47
48
(:scopy_ ,:Float32 ),
48
- (:zcopy_ ,:Complex128 ),
49
+ (:zcopy_ ,:Complex128 ),
49
50
(:ccopy_ ,:Complex64 ))
50
51
@eval begin
51
52
# SUBROUTINE DCOPY(N,DX,INCX,DY,INCY)
52
53
function blascopy! (n:: Integer , DX:: Union(Ptr{$elty},Array{$elty}) , incx:: Integer , DY:: Union(Ptr{$elty},Array{$elty}) , incy:: Integer )
53
- ccall (($ (string (fname)),libblas), Void,
54
+ ccall (($ (blasfunc (fname)), libblas), Void,
54
55
(Ptr{BlasInt}, Ptr{$ elty}, Ptr{BlasInt}, Ptr{$ elty}, Ptr{BlasInt}),
55
56
& n, DX, & incx, DY, & incy)
56
57
DY
@@ -59,14 +60,14 @@ for (fname, elty) in ((:dcopy_,:Float64),
59
60
end
60
61
61
62
# # scal
62
- for (fname, elty) in ((:dscal_ ,:Float64 ),
63
+ for (fname, elty) in ((:dscal_ ,:Float64 ),
63
64
(:sscal_ ,:Float32 ),
64
- (:zscal_ ,:Complex128 ),
65
+ (:zscal_ ,:Complex128 ),
65
66
(:cscal_ ,:Complex64 ))
66
67
@eval begin
67
68
# SUBROUTINE DSCAL(N,DA,DX,INCX)
68
69
function scal! (n:: Integer , DA:: $elty , DX:: Union(Ptr{$elty},Array{$elty}) , incx:: Integer )
69
- ccall (($ (string (fname)),libblas), Void,
70
+ ccall (($ (blasfunc (fname)), libblas), Void,
70
71
(Ptr{BlasInt}, Ptr{$ elty}, Ptr{$ elty}, Ptr{BlasInt}),
71
72
& n, & DA, DX, & incx)
72
73
DX
@@ -79,7 +80,7 @@ for (fname, elty, celty) in ((:sscal_, :Float32, :Complex64),
79
80
(:dscal_ , :Float64 , :Complex128 ))
80
81
@eval begin
81
82
function scal! (n:: Integer , DA:: $elty , DX:: Union(Ptr{$celty},Array{$celty}) , incx:: Integer )
82
- ccall (($ (string (fname)),libblas), Void,
83
+ ccall (($ (blasfunc (fname)), libblas), Void,
83
84
(Ptr{BlasInt}, Ptr{$ elty}, Ptr{$ celty}, Ptr{BlasInt}),
84
85
& (2 * n), & DA, DX, & incx)
85
86
DX
@@ -88,7 +89,7 @@ for (fname, elty, celty) in ((:sscal_, :Float32, :Complex64),
88
89
end
89
90
90
91
# # dot
91
- for (fname, elty) in ((:ddot_ ,:Float64 ),
92
+ for (fname, elty) in ((:ddot_ ,:Float64 ),
92
93
(:sdot_ ,:Float32 ))
93
94
@eval begin
94
95
# DOUBLE PRECISION FUNCTION DDOT(N,DX,INCX,DY,INCY)
@@ -98,7 +99,7 @@ for (fname, elty) in ((:ddot_,:Float64),
98
99
# * .. Array Arguments ..
99
100
# DOUBLE PRECISION DX(*),DY(*)
100
101
function dot (n:: Integer , DX:: Union(Ptr{$elty},Array{$elty}) , incx:: Integer , DY:: Union(Ptr{$elty},Array{$elty}) , incy:: Integer )
101
- ccall (($ (string (fname)),libblas), $ elty,
102
+ ccall (($ (blasfunc (fname)), libblas), $ elty,
102
103
(Ptr{BlasInt}, Ptr{$ elty}, Ptr{BlasInt}, Ptr{$ elty}, Ptr{BlasInt}),
103
104
& n, DX, & incx, DY, & incy)
104
105
end
@@ -115,7 +116,7 @@ for (fname, elty) in ((:cblas_zdotc_sub,:Complex128),
115
116
# DOUBLE PRECISION DX(*),DY(*)
116
117
function dotc (n:: Integer , DX:: Union(Ptr{$elty},Array{$elty}) , incx:: Integer , DY:: Union(Ptr{$elty},Array{$elty}) , incy:: Integer )
117
118
result = Array ($ elty, 1 )
118
- ccall (($ (string (fname)),libblas), $ elty,
119
+ ccall (($ (blasfunc (fname)), libblas), $ elty,
119
120
(BlasInt, Ptr{$ elty}, BlasInt, Ptr{$ elty}, BlasInt, Ptr{$ elty}),
120
121
n, DX, incx, DY, incy, result)
121
122
result[1 ]
@@ -133,7 +134,7 @@ for (fname, elty) in ((:cblas_zdotu_sub,:Complex128),
133
134
# DOUBLE PRECISION DX(*),DY(*)
134
135
function dotu (n:: Integer , DX:: Union(Ptr{$elty},Array{$elty}) , incx:: Integer , DY:: Union(Ptr{$elty},Array{$elty}) , incy:: Integer )
135
136
result = Array ($ elty, 1 )
136
- ccall (($ (string (fname)),libblas), $ elty,
137
+ ccall (($ (blasfunc (fname)), libblas), $ elty,
137
138
(BlasInt, Ptr{$ elty}, BlasInt, Ptr{$ elty}, BlasInt, Ptr{$ elty}),
138
139
n, DX, incx, DY, incy, result)
139
140
result[1 ]
@@ -164,7 +165,7 @@ for (fname, elty, ret_type) in ((:dnrm2_,:Float64,:Float64),
164
165
@eval begin
165
166
# SUBROUTINE DNRM2(N,X,INCX)
166
167
function nrm2 (n:: Integer , X:: Union(Ptr{$elty},StridedVector{$elty}) , incx:: Integer )
167
- ccall (($ (string (fname)),libblas), $ ret_type,
168
+ ccall (($ (blasfunc (fname)), libblas), $ ret_type,
168
169
(Ptr{BlasInt}, Ptr{$ elty}, Ptr{BlasInt}),
169
170
& n, X, & incx)
170
171
end
@@ -181,7 +182,7 @@ for (fname, elty, ret_type) in ((:dasum_,:Float64,:Float64),
181
182
@eval begin
182
183
# SUBROUTINE ASUM(N, X, INCX)
183
184
function asum (n:: Integer , X:: Union(Ptr{$elty},StridedVector{$elty}) , incx:: Integer )
184
- ccall (($ (string (fname)),libblas), $ ret_type,
185
+ ccall (($ (blasfunc (fname)), libblas), $ ret_type,
185
186
(Ptr{BlasInt}, Ptr{$ elty}, Ptr{BlasInt}),
186
187
& n, X, & incx)
187
188
end
@@ -204,7 +205,7 @@ for (fname, elty) in ((:daxpy_,:Float64),
204
205
# * .. Array Arguments ..
205
206
# DOUBLE PRECISION DX(*),DY(*)
206
207
function axpy! (n:: Integer , alpha:: ($elty) , dx:: Union(Ptr{$elty},Array{$elty}) , incx:: Integer , dy:: Union(Ptr{$elty},Array{$elty}) , incy:: Integer )
207
- ccall (($ (string (fname)),libblas), Void,
208
+ ccall (($ (blasfunc (fname)), libblas), Void,
208
209
(Ptr{BlasInt}, Ptr{$ elty}, Ptr{$ elty}, Ptr{BlasInt}, Ptr{$ elty}, Ptr{BlasInt}),
209
210
& n, & alpha, dx, & incx, dy, & incy)
210
211
dy
@@ -235,7 +236,7 @@ for (fname, elty) in ((:idamax_,:Float64),
235
236
(:icamax_ ,:Complex64 ))
236
237
@eval begin
237
238
function iamax (n:: BlasInt , dx:: Union(StridedVector{$elty}, Ptr{$elty}) , incx:: BlasInt )
238
- ccall (($ (string (fname)), libblas),BlasInt,
239
+ ccall (($ (blasfunc (fname)), libblas),BlasInt,
239
240
(Ptr{BlasInt}, Ptr{$ elty}, Ptr{BlasInt}),
240
241
& n, dx, & incx)
241
242
end
@@ -261,7 +262,7 @@ for (fname, elty) in ((:dgemv_,:Float64),
261
262
function gemv! (trans:: BlasChar , alpha:: ($elty) , A:: StridedVecOrMat{$elty} , X:: StridedVector{$elty} , beta:: ($elty) , Y:: StridedVector{$elty} )
262
263
m,n = size (A,1 ),size (A,2 )
263
264
length (X) == (trans == ' N' ? n : m) && length (Y) == (trans == ' N' ? m : n) || throw (DimensionMismatch (" " ))
264
- ccall (($ (string (fname)),libblas), Void,
265
+ ccall (($ (blasfunc (fname)), libblas), Void,
265
266
(Ptr{Uint8}, Ptr{BlasInt}, Ptr{BlasInt}, Ptr{$ elty},
266
267
Ptr{$ elty}, Ptr{BlasInt}, Ptr{$ elty}, Ptr{BlasInt},
267
268
Ptr{$ elty}, Ptr{$ elty}, Ptr{BlasInt}),
@@ -280,9 +281,9 @@ for (fname, elty) in ((:dgemv_,:Float64),
280
281
end
281
282
282
283
# ## (GB) general banded matrix-vector multiplication
283
- for (fname, elty) in ((:dgbmv_ ,:Float64 ),
284
+ for (fname, elty) in ((:dgbmv_ ,:Float64 ),
284
285
(:sgbmv_ ,:Float32 ),
285
- (:zgbmv_ ,:Complex128 ),
286
+ (:zgbmv_ ,:Complex128 ),
286
287
(:cgbmv_ ,:Complex64 ))
287
288
@eval begin
288
289
# SUBROUTINE DGBMV(TRANS,M,N,KL,KU,ALPHA,A,LDA,X,INCX,BETA,Y,INCY)
@@ -293,7 +294,7 @@ for (fname, elty) in ((:dgbmv_,:Float64),
293
294
# * .. Array Arguments ..
294
295
# DOUBLE PRECISION A(LDA,*),X(*),Y(*)
295
296
function gbmv! (trans:: BlasChar , m:: Integer , kl:: Integer , ku:: Integer , alpha:: ($elty) , A:: StridedMatrix{$elty} , x:: StridedVector{$elty} , beta:: ($elty) , y:: StridedVector{$elty} )
296
- ccall (($ (string (fname)),libblas), Void,
297
+ ccall (($ (blasfunc (fname)), libblas), Void,
297
298
(Ptr{Uint8}, Ptr{BlasInt}, Ptr{BlasInt}, Ptr{BlasInt},
298
299
Ptr{BlasInt}, Ptr{$ elty}, Ptr{$ elty}, Ptr{BlasInt},
299
300
Ptr{$ elty}, Ptr{BlasInt}, Ptr{$ elty}, Ptr{$ elty},
@@ -332,7 +333,7 @@ for (fname, elty) in ((:dsymv_,:Float64),
332
333
m, n = size (A)
333
334
if m != n throw (DimensionMismatch (" Matrix A is $m by $n but must be square" )) end
334
335
if m != length (x) || m != length (y) throw (DimensionMismatch (" " )) end
335
- ccall (($ (string (fname)),libblas), Void,
336
+ ccall (($ (blasfunc (fname)), libblas), Void,
336
337
(Ptr{Uint8}, Ptr{BlasInt}, Ptr{$ elty}, Ptr{$ elty},
337
338
Ptr{BlasInt}, Ptr{$ elty}, Ptr{BlasInt}, Ptr{$ elty},
338
339
Ptr{$ elty}, Ptr{BlasInt}),
@@ -351,9 +352,9 @@ for (fname, elty) in ((:dsymv_,:Float64),
351
352
end
352
353
353
354
# ## sbmv, (SB) symmetric banded matrix-vector multiplication
354
- for (fname, elty) in ((:dsbmv_ ,:Float64 ),
355
+ for (fname, elty) in ((:dsbmv_ ,:Float64 ),
355
356
(:ssbmv_ ,:Float32 ),
356
- (:zsbmv_ ,:Complex128 ),
357
+ (:zsbmv_ ,:Complex128 ),
357
358
(:csbmv_ ,:Complex64 ))
358
359
@eval begin
359
360
# SUBROUTINE DSBMV(UPLO,N,K,ALPHA,A,LDA,X,INCX,BETA,Y,INCY)
@@ -364,7 +365,7 @@ for (fname, elty) in ((:dsbmv_,:Float64),
364
365
# * .. Array Arguments ..
365
366
# DOUBLE PRECISION A(LDA,*),X(*),Y(*)
366
367
function sbmv! (uplo:: BlasChar , k:: Integer , alpha:: ($elty) , A:: StridedMatrix{$elty} , x:: StridedVector{$elty} , beta:: ($elty) , y:: StridedVector{$elty} )
367
- ccall (($ (string (fname)),libblas), Void,
368
+ ccall (($ (blasfunc (fname)), libblas), Void,
368
369
(Ptr{Uint8}, Ptr{BlasInt}, Ptr{BlasInt}, Ptr{$ elty},
369
370
Ptr{$ elty}, Ptr{BlasInt}, Ptr{$ elty}, Ptr{BlasInt},
370
371
Ptr{$ elty}, Ptr{$ elty}, Ptr{BlasInt}),
@@ -400,7 +401,7 @@ for (fname, elty) in ((:dtrmv_,:Float64),
400
401
if n != length (x)
401
402
throw (DimensionMismatch (" length(x)=$(length (x)) does not match size(A)=$(size (A)) " ))
402
403
end
403
- ccall (($ (string (fname)), libblas), Void,
404
+ ccall (($ (blasfunc (fname)), libblas), Void,
404
405
(Ptr{Uint8}, Ptr{Uint8}, Ptr{Uint8}, Ptr{BlasInt},
405
406
Ptr{$ elty}, Ptr{BlasInt}, Ptr{$ elty}, Ptr{BlasInt}),
406
407
& uplo, & trans, & diag, & n,
@@ -427,7 +428,7 @@ for (fname, elty) in ((:dtrsv_,:Float64),
427
428
function trsv! (uplo:: Char , trans:: Char , diag:: Char , A:: StridedMatrix{$elty} , x:: StridedVector{$elty} )
428
429
n = chksquare (A)
429
430
n== length (x) || throw (DimensionMismatch (" size of A is $n != length(x) = $(length (x)) " ))
430
- ccall (($ (string (fname)), libblas), Void,
431
+ ccall (($ (blasfunc (fname)), libblas), Void,
431
432
(Ptr{Uint8}, Ptr{Uint8}, Ptr{Uint8}, Ptr{BlasInt},
432
433
Ptr{$ elty}, Ptr{BlasInt}, Ptr{$ elty}, Ptr{BlasInt}),
433
434
& uplo, & trans, & diag, & n,
@@ -450,7 +451,7 @@ for (fname, elty) in ((:dger_,:Float64),
450
451
m, n = size (A)
451
452
m == length (x) || throw (DimensionMismatch (" " ))
452
453
n == length (y) || throw (DimensionMismatch (" " ))
453
- ccall (($ (string (fname)), libblas), Void,
454
+ ccall (($ (blasfunc (fname)), libblas), Void,
454
455
(Ptr{BlasInt}, Ptr{BlasInt}, Ptr{$ elty}, Ptr{$ elty},
455
456
Ptr{BlasInt}, Ptr{$ elty}, Ptr{BlasInt}, Ptr{$ elty},
456
457
Ptr{BlasInt}),
@@ -471,7 +472,7 @@ for (fname, elty) in ((:dsyr_,:Float64),
471
472
function syr! (uplo:: Char , α:: $elty , x:: StridedVector{$elty} , A:: StridedMatrix{$elty} )
472
473
n = chksquare (A)
473
474
length (x) == n || throw (DimensionMismatch (" Length of vector must be the same as the matrix dimensions" ))
474
- ccall (($ (string (fname)), libblas), Void,
475
+ ccall (($ (blasfunc (fname)), libblas), Void,
475
476
(Ptr{Uint8}, Ptr{BlasInt}, Ptr{$ elty}, Ptr{$ elty},
476
477
Ptr{BlasInt}, Ptr{$ elty}, Ptr{BlasInt}),
477
478
& uplo, & n, & α, x,
@@ -488,7 +489,7 @@ for (fname, elty) in ((:zher_,:Complex128),
488
489
function her! (uplo:: Char , α:: $elty , x:: StridedVector{$elty} , A:: StridedMatrix{$elty} )
489
490
n = chksquare (A)
490
491
length (x) == A || throw (DimensionMismatch (" Length of vector must be the same as the matrix dimensions" ))
491
- ccall (($ (string (fname)), libblas), Void,
492
+ ccall (($ (blasfunc (fname)), libblas), Void,
492
493
(Ptr{Uint8}, Ptr{BlasInt}, Ptr{$ elty}, Ptr{$ elty},
493
494
Ptr{BlasInt}, Ptr{$ elty}, Ptr{BlasInt}),
494
495
& uplo, & n, & α, x,
@@ -523,7 +524,7 @@ for (gemm, elty) in
523
524
if m != size (C,1 ) || n != size (C,2 )
524
525
throw (DimensionMismatch (" " ))
525
526
end
526
- ccall (($ (string (gemm)),libblas), Void,
527
+ ccall (($ (blasfunc (gemm)), libblas), Void,
527
528
(Ptr{Uint8}, Ptr{Uint8}, Ptr{BlasInt}, Ptr{BlasInt},
528
529
Ptr{BlasInt}, Ptr{$ elty}, Ptr{$ elty}, Ptr{BlasInt},
529
530
Ptr{$ elty}, Ptr{BlasInt}, Ptr{$ elty}, Ptr{$ elty},
@@ -560,7 +561,7 @@ for (mfname, elty) in ((:dsymm_,:Float64),
560
561
m, n = size (C)
561
562
j = chksquare (A)
562
563
if j != (side == ' L' ? m : n) || size (B,2 ) != n throw (DimensionMismatch (" " )) end
563
- ccall (($ (string (mfname)),libblas), Void,
564
+ ccall (($ (blasfunc (mfname)), libblas), Void,
564
565
(Ptr{Uint8}, Ptr{Uint8}, Ptr{BlasInt}, Ptr{BlasInt},
565
566
Ptr{$ elty}, Ptr{$ elty}, Ptr{BlasInt}, Ptr{$ elty},
566
567
Ptr{BlasInt}, Ptr{$ elty}, Ptr{$ elty}, Ptr{BlasInt}),
@@ -598,7 +599,7 @@ for (fname, elty) in ((:dsyrk_,:Float64),
598
599
nn = size (A, trans == ' N' ? 1 : 2 )
599
600
if nn != n throw (DimensionMismatch (" syrk!" )) end
600
601
k = size (A, trans == ' N' ? 2 : 1 )
601
- ccall (($ (string (fname)),libblas), Void,
602
+ ccall (($ (blasfunc (fname)), libblas), Void,
602
603
(Ptr{Uint8}, Ptr{Uint8}, Ptr{BlasInt}, Ptr{BlasInt},
603
604
Ptr{$ elty}, Ptr{$ elty}, Ptr{BlasInt}, Ptr{$ elty},
604
605
Ptr{$ elty}, Ptr{BlasInt}),
@@ -631,7 +632,7 @@ for (fname, elty) in ((:zherk_,:Complex128), (:cherk_,:Complex64))
631
632
n = chksquare (C)
632
633
n == size (A, trans == ' N' ? 1 : 2 ) || throw (DimensionMismatch (" herk!" ))
633
634
k = size (A, trans == ' N' ? 2 : 1 )
634
- ccall (($ (string (fname)),libblas), Void,
635
+ ccall (($ (blasfunc (fname)), libblas), Void,
635
636
(Ptr{Uint8}, Ptr{Uint8}, Ptr{BlasInt}, Ptr{BlasInt},
636
637
Ptr{$ elty}, Ptr{$ elty}, Ptr{BlasInt}, Ptr{$ elty},
637
638
Ptr{$ elty}, Ptr{BlasInt}),
@@ -670,7 +671,7 @@ for (fname, elty) in ((:dsyr2k_,:Float64),
670
671
nn = size (A, trans == ' N' ? 1 : 2 )
671
672
if nn != n throw (DimensionMismatch (" syr2k!" )) end
672
673
k = size (A, trans == ' N' ? 2 : 1 )
673
- ccall (($ (string (fname)),Base. libblas_name), Void,
674
+ ccall (($ (blasfunc (fname)),Base. libblas_name), Void,
674
675
(Ptr{Uint8}, Ptr{Uint8}, Ptr{BlasInt}, Ptr{BlasInt},
675
676
Ptr{$ elty}, Ptr{$ elty}, Ptr{BlasInt}, Ptr{$ elty}, Ptr{BlasInt}, Ptr{$ elty},
676
677
Ptr{$ elty}, Ptr{BlasInt}),
@@ -706,7 +707,7 @@ for (fname, elty1, elty2) in ((:zher2k_,:Complex128,:Float64), (:cher2k_,:Comple
706
707
n = chksquare (C)
707
708
n == size (A, trans == ' N' ? 1 : 2 ) || throw (DimensionMismatch (" her2k!" ))
708
709
k = size (A, trans == ' N' ? 2 : 1 )
709
- ccall (($ (string (fname)),libblas), Void,
710
+ ccall (($ (blasfunc (fname)), libblas), Void,
710
711
(Ptr{Uint8}, Ptr{Uint8}, Ptr{BlasInt}, Ptr{BlasInt},
711
712
Ptr{$ elty1}, Ptr{$ elty1}, Ptr{BlasInt}, Ptr{$ elty1}, Ptr{BlasInt},
712
713
Ptr{$ elty2}, Ptr{$ elty1}, Ptr{BlasInt}),
@@ -737,7 +738,7 @@ for (fname, elty) in ((:dgbmv_,:Float64), (:sgbmv_,:Float32),
737
738
function gbmv! (trans:: BlasChar , m:: Integer , kl:: Integer , ku:: Integer ,
738
739
alpha:: ($elty) , A:: StridedMatrix{$elty} , x:: StridedVector{$elty} ,
739
740
beta:: ($elty) , y:: StridedVector{$elty} )
740
- ccall (($ (string (fname)),libblas), Void,
741
+ ccall (($ (blasfunc (fname)), libblas), Void,
741
742
(Ptr{Uint8}, Ptr{BlasInt}, Ptr{BlasInt}, Ptr{BlasInt}, Ptr{BlasInt},
742
743
Ptr{$ elty}, Ptr{$ elty}, Ptr{BlasInt}, Ptr{$ elty}, Ptr{BlasInt},
743
744
Ptr{$ elty}, Ptr{$ elty}, Ptr{BlasInt}),
@@ -772,7 +773,7 @@ for (fname, elty) in ((:dsbmv_,:Float64), (:ssbmv_,:Float32),
772
773
function sbmv! (uplo:: BlasChar , k:: Integer ,
773
774
alpha:: ($elty) , A:: StridedMatrix{$elty} , x:: StridedVector{$elty} ,
774
775
beta:: ($elty) , y:: StridedVector{$elty} )
775
- ccall (($ (string (fname)),libblas), Void,
776
+ ccall (($ (blasfunc (fname)), libblas), Void,
776
777
(Ptr{Uint8}, Ptr{BlasInt}, Ptr{BlasInt}, Ptr{$ elty}, Ptr{$ elty}, Ptr{BlasInt},
777
778
Ptr{$ elty}, Ptr{BlasInt}, Ptr{$ elty}, Ptr{$ elty}, Ptr{BlasInt}),
778
779
& uplo, & size (A,2 ), & k, & alpha, A, & max (1 ,stride (A,2 )), x, & stride (x,1 ),
@@ -809,7 +810,7 @@ for (mmname, smname, elty) in
809
810
m, n = size (B)
810
811
nA = chksquare (A)
811
812
if nA != (side == ' L' ? m : n) throw (DimensionMismatch (" trmm!" )) end
812
- ccall (($ (string (mmname)), libblas), Void,
813
+ ccall (($ (blasfunc (mmname)), libblas), Void,
813
814
(Ptr{Uint8}, Ptr{Uint8}, Ptr{Uint8}, Ptr{Uint8}, Ptr{BlasInt}, Ptr{BlasInt},
814
815
Ptr{$ elty}, Ptr{$ elty}, Ptr{BlasInt}, Ptr{$ elty}, Ptr{BlasInt}),
815
816
& side, & uplo, & transa, & diag, & m, & n,
@@ -832,7 +833,7 @@ for (mmname, smname, elty) in
832
833
m, n = size (B)
833
834
k = chksquare (A)
834
835
k== (side == ' L' ? m : n) || throw (DimensionMismatch (" size of A is $n , size(B)=($m ,$n ) and transa='$transa '" ))
835
- ccall (($ (string (smname)), libblas), Void,
836
+ ccall (($ (blasfunc (smname)), libblas), Void,
836
837
(Ptr{Uint8}, Ptr{Uint8}, Ptr{Uint8}, Ptr{Uint8},
837
838
Ptr{BlasInt}, Ptr{BlasInt}, Ptr{$ elty}, Ptr{$ elty},
838
839
Ptr{BlasInt}, Ptr{$ elty}, Ptr{BlasInt}),
0 commit comments