@@ -38,14 +38,16 @@ function __kernel(expr)
38
38
39
39
# create constructor functions
40
40
constructors = quote
41
- $ name (dev:: $Device ) = $ name (dev, $ DynamicSize (), $ DynamicSize ())
42
- $ name (dev:: $Device , size) = $ name (dev, $ StaticSize (size), $ DynamicSize ())
43
- $ name (dev:: $Device , size, range) = $ name (dev, $ StaticSize (size), $ StaticSize (range))
44
- function $name (:: Device , :: S , :: NDRange ) where {Device<: $CPU , S<: $_Size , NDRange<: $_Size }
45
- return $ Kernel {Device, S, NDRange, typeof($cpu_name)} ($ cpu_name)
46
- end
47
- function $name (:: Device , :: S , :: NDRange ) where {Device<: $GPU , S<: $_Size , NDRange<: $_Size }
48
- return $ Kernel {Device, S, NDRange, typeof($gpu_name)} ($ gpu_name)
41
+ if ! @isdefined ($ name)
42
+ $ name (dev:: $Device ) = $ name (dev, $ DynamicSize (), $ DynamicSize ())
43
+ $ name (dev:: $Device , size) = $ name (dev, $ StaticSize (size), $ DynamicSize ())
44
+ $ name (dev:: $Device , size, range) = $ name (dev, $ StaticSize (size), $ StaticSize (range))
45
+ function $name (:: Device , :: S , :: NDRange ) where {Device<: $CPU , S<: $_Size , NDRange<: $_Size }
46
+ return $ Kernel {Device, S, NDRange, typeof($cpu_name)} ($ cpu_name)
47
+ end
48
+ function $name (:: Device , :: S , :: NDRange ) where {Device<: $GPU , S<: $_Size , NDRange<: $_Size }
49
+ return $ Kernel {Device, S, NDRange, typeof($gpu_name)} ($ gpu_name)
50
+ end
49
51
end
50
52
end
51
53
0 commit comments