11module VML
22
3+ import Base: .^ , ./
4+
35# TODO detect CPU architecture
46const lib = :libmkl_vml_avx
57Libdl. dlopen (:libmkl_rt )
@@ -49,7 +51,7 @@ function vml_prefix(t::DataType)
4951end
5052
5153function def_unary_op (tin, tout, jlname, jlname!, mklname)
52- mklfn = Base. Meta. quot (symbol (" $(vml_prefix (tin))$mklname " ))
54+ mklfn = Base. Meta. quot (Symbol (" $(vml_prefix (tin))$mklname " ))
5355 exports = Symbol[]
5456 isa (jlname, Expr) || push! (exports, jlname)
5557 isa (jlname!, Expr) || push! (exports, jlname!)
@@ -80,7 +82,7 @@ function def_unary_op(tin, tout, jlname, jlname!, mklname)
8082end
8183
8284function def_binary_op (tin, tout, jlname, jlname!, mklname, broadcast)
83- mklfn = Base. Meta. quot (symbol (" $(vml_prefix (tin))$mklname " ))
85+ mklfn = Base. Meta. quot (Symbol (" $(vml_prefix (tin))$mklname " ))
8486 exports = Symbol[]
8587 isa (jlname, Expr) || push! (exports, jlname)
8688 isa (jlname!, Expr) || push! (exports, jlname!)
@@ -113,8 +115,8 @@ for t in (Float32, Float64, Complex64, Complex128)
113115 def_unary_op (t, t, :(Base. log), :log! , :Ln )
114116
115117 # Binary, real or complex
116- def_binary_op (t, t, :(Base .(: .^ ) ), :pow! , :Pow , true )
117- def_binary_op (t, t, :(Base .(: ./ ) ), :divide! , :Div , true )
118+ def_binary_op (t, t, :(.^ ), :pow! , :Pow , true )
119+ def_binary_op (t, t, :(./ ), :divide! , :Div , true )
118120end
119121
120122for t in (Float32, Float64)
@@ -153,7 +155,7 @@ for t in (Float32, Float64)
153155 def_unary_op (t, t, :(Base. log10), :log10! , :Log10 )
154156
155157 # .^ to scalar power
156- mklfn = Base. Meta. quot (symbol (" $(vml_prefix (t)) Powx" ))
158+ mklfn = Base. Meta. quot (Symbol (" $(vml_prefix (t)) Powx" ))
157159 @eval begin
158160 export pow!
159161 function pow! {N} (out:: Array{$t,N} , A:: Array{$t,N} , b:: $t )
@@ -162,7 +164,7 @@ for t in (Float32, Float64)
162164 vml_check_error ()
163165 out
164166 end
165- function Base .(:( .^ ) ){N}(A:: Array{$t,N} , b:: $t )
167+ function ( .^ ){N}(A:: Array{$t,N} , b:: $t )
166168 out = similar (A)
167169 ccall (($ mklfn, lib), Void, (Int, Ptr{$ t}, $ t, Ptr{$ t}), length (A), A, b, out)
168170 vml_check_error ()
0 commit comments