Skip to content

Commit 80f16cb

Browse files
committed
Update BLAS wrappers
1 parent b71c688 commit 80f16cb

File tree

2 files changed

+34
-10
lines changed

2 files changed

+34
-10
lines changed

src/blas.jl

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,16 @@ export
8686

8787
using ..LinearAlgebra: libblastrampoline, BlasReal, BlasComplex, BlasFloat, BlasInt, DimensionMismatch, checksquare, chkstride1
8888

89+
if USE_BLAS64
90+
macro blasfunc(x)
91+
return Expr(:quote, Symbol(x, "64_"))
92+
end
93+
else
94+
macro blasfunc(x)
95+
return Expr(:quote, x)
96+
end
97+
end
98+
8999
include("libblas.jl")
90100
include("lbt.jl")
91101

@@ -108,16 +118,6 @@ Return an object representing the current `libblastrampoline` configuration.
108118
"""
109119
get_config() = lbt_get_config()
110120

111-
if USE_BLAS64
112-
macro blasfunc(x)
113-
return Expr(:quote, Symbol(x, "64_"))
114-
end
115-
else
116-
macro blasfunc(x)
117-
return Expr(:quote, x)
118-
end
119-
end
120-
121121
_tryparse_env_int(key) = tryparse(Int, get(ENV, key, ""))
122122

123123

src/libblas.jl

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,12 @@ function caxpy(n, ca, cx, incx, cy, incy)
4444
Ref{BlasInt}), n, ca, cx, incx, cy, incy)
4545
end
4646

47+
function caxpby(n, ca, cx, incx, cb, cy, incy)
48+
return ccall((@blasfunc(caxpby_), libblastrampoline), Cvoid,
49+
(Ref{BlasInt}, Ref{ComplexF32}, Ptr{ComplexF32}, Ref{BlasInt}, Ref{ComplexF32},
50+
Ptr{ComplexF32}, Ref{BlasInt}), n, ca, cx, incx, cb, cy, incy)
51+
end
52+
4753
function ccopy(n, cx, incx, cy, incy)
4854
return ccall((@blasfunc(ccopy_), libblastrampoline), Cvoid,
4955
(Ref{BlasInt}, Ptr{ComplexF32}, Ref{BlasInt}, Ptr{ComplexF32}, Ref{BlasInt}), n, cx,
@@ -293,6 +299,12 @@ function daxpy(n, da, dx, incx, dy, incy)
293299
Ref{BlasInt}), n, da, dx, incx, dy, incy)
294300
end
295301

302+
function daxpby(n, da, dx, incx, db, dy, incy)
303+
return ccall((@blasfunc(daxpby_), libblastrampoline), Cvoid,
304+
(Ref{BlasInt}, Ref{Float64}, Ptr{Float64}, Ref{BlasInt}, Ref{Float64},
305+
Ptr{Float64}, Ref{BlasInt}), n, da, dx, incx, db, dy, incy)
306+
end
307+
296308
function dcabs1(z)
297309
return ccall((@blasfunc(dcabs1_), libblastrampoline), Float64, (Ref{ComplexF64}), z)
298310
end
@@ -546,6 +558,12 @@ function saxpy(n, sa, sx, incx, sy, incy)
546558
Ref{BlasInt}), n, sa, sx, incx, sy, incy)
547559
end
548560

561+
function saxpby(n, sa, sx, incx, sb, sy, incy)
562+
return ccall((@blasfunc(saxpby_), libblastrampoline), Cvoid,
563+
(Ref{BlasInt}, Ref{Float32}, Ptr{Float32}, Ref{BlasInt}, Ref{Float32},
564+
Ptr{Float32}, Ref{BlasInt}), n, sa, sx, incx, sb, sy, incy)
565+
end
566+
549567
function scabs1(z)
550568
return ccall((@blasfunc(scabs1_), libblastrampoline), Float32, (Ref{ComplexF32}), z)
551569
end
@@ -774,6 +792,12 @@ function zaxpy(n, za, zx, incx, zy, incy)
774792
Ref{BlasInt}), n, za, zx, incx, zy, incy)
775793
end
776794

795+
function zaxpby(n, za, zx, incx, zb, zy, incy)
796+
return ccall((@blasfunc(zaxpby_), libblastrampoline), Cvoid,
797+
(Ref{BlasInt}, Ref{ComplexF64}, Ptr{ComplexF64}, Ref{BlasInt}, Ref{ComplexF64},
798+
Ptr{ComplexF64}, Ref{BlasInt}), n, za, zx, incx, zb, zy, incy)
799+
end
800+
777801
function zcopy(n, zx, incx, zy, incy)
778802
return ccall((@blasfunc(zcopy_), libblastrampoline), Cvoid,
779803
(Ref{BlasInt}, Ptr{ComplexF64}, Ref{BlasInt}, Ptr{ComplexF64}, Ref{BlasInt}), n, zx,

0 commit comments

Comments
 (0)