@@ -12,20 +12,16 @@ const unittriangularwrappers = (
1212 (:UnitLowerTriangular , :LowerTriangular )
1313)
1414
15- @kernel function kernel_generic (ctx, B, J, min_size )
15+ @kernel function kernel_generic (B, J)
1616 lin_idx = @index (Global, Linear)
17- if lin_idx <= min_size
18- @inbounds diag_idx = diagind (B)[lin_idx]
19- @inbounds B[diag_idx] += J
20- end
17+ @inbounds diag_idx = diagind (B)[lin_idx]
18+ @inbounds B[diag_idx] += J
2119end
2220
23- @kernel function kernel_unittriangular (ctx, B, J, diagonal_val, min_size )
21+ @kernel function kernel_unittriangular (B, J, diagonal_val)
2422 lin_idx = @index (Global, Linear)
25- if lin_idx <= min_size
26- @inbounds diag_idx = diagind (B)[lin_idx]
27- @inbounds B[diag_idx] = diagonal_val + J
28- end
23+ @inbounds diag_idx = diagind (B)[lin_idx]
24+ @inbounds B[diag_idx] = diagonal_val + J
2925end
3026
3127for (t1, t2) in unittriangularwrappers
@@ -34,17 +30,15 @@ for (t1, t2) in unittriangularwrappers
3430 B = similar (parent (A), typeof (oneunit (T) + J))
3531 copyto! (B, parent (A))
3632 min_size = minimum (size (B))
37- kernel = kernel_unittriangular (get_backend (B))
38- kernel (B, J, one (eltype (B)), min_size; ndrange= min_size)
33+ kernel_unittriangular (get_backend (B))(B, J, one (eltype (B)); ndrange= min_size)
3934 return $ t2 (B)
4035 end
4136
4237 function (- )(J:: UniformScaling , A:: $t1{T, <:AbstractGPUMatrix} ) where T
4338 B = similar (parent (A), typeof (J - oneunit (T)))
4439 B .= .- parent (A)
4540 min_size = minimum (size (B))
46- kernel = kernel_unittriangular (get_backend (B))
47- kernel (B, J, - one (eltype (B)), min_size; ndrange= min_size)
41+ kernel_unittriangular (get_backend (B))(B, J, - one (eltype (B)); ndrange= min_size)
4842 return $ t2 (B)
4943 end
5044 end
@@ -56,17 +50,15 @@ for t in genericwrappers
5650 B = similar (parent (A), typeof (oneunit (T) + J))
5751 copyto! (B, parent (A))
5852 min_size = minimum (size (B))
59- kernel = kernel_generic (get_backend (B))
60- kernel (B, J, min_size; ndrange= min_size)
53+ kernel_generic (get_backend (B))(B, J; ndrange= min_size)
6154 return $ t (B)
6255 end
6356
6457 function (- )(J:: UniformScaling , A:: $t{T, <:AbstractGPUMatrix} ) where T
6558 B = similar (parent (A), typeof (J - oneunit (T)))
6659 B .= .- parent (A)
6760 min_size = minimum (size (B))
68- kernel = kernel_generic (get_backend (B))
69- kernel (B, J, min_size; ndrange= min_size)
61+ kernel_generic (get_backend (B))(B, J; ndrange= min_size)
7062 return $ t (B)
7163 end
7264 end
@@ -77,17 +69,15 @@ function (+)(A::Hermitian{T,<:AbstractGPUMatrix}, J::UniformScaling{<:Complex})
7769 B = similar (parent (A), typeof (oneunit (T) + J))
7870 copyto! (B, parent (A))
7971 min_size = minimum (size (B))
80- kernel = kernel_generic (get_backend (B))
81- kernel (B, J, min_size; ndrange= min_size)
72+ kernel_generic (get_backend (B))(B, J; ndrange= min_size)
8273 return B
8374end
8475
8576function (- )(J:: UniformScaling{<:Complex} , A:: Hermitian{T,<:AbstractGPUMatrix} ) where T
8677 B = similar (parent (A), typeof (J - oneunit (T)))
8778 B .= .- parent (A)
8879 min_size = minimum (size (B))
89- kernel = kernel_generic (get_backend (B))
90- kernel (B, J, min_size; ndrange= min_size)
80+ kernel_generic (get_backend (B))(B, J; ndrange= min_size)
9181 return B
9282end
9383
@@ -96,16 +86,14 @@ function (+)(A::AbstractGPUMatrix{T}, J::UniformScaling) where T
9686 B = similar (A, typeof (oneunit (T) + J))
9787 copyto! (B, A)
9888 min_size = minimum (size (B))
99- kernel = kernel_generic (get_backend (B))
100- kernel (B, J, min_size; ndrange= min_size)
89+ kernel_generic (get_backend (B))(B, J; ndrange= min_size)
10190 return B
10291end
10392
10493function (- )(J:: UniformScaling , A:: AbstractGPUMatrix{T} ) where T
10594 B = similar (A, typeof (J - oneunit (T)))
10695 B .= .- A
10796 min_size = minimum (size (B))
108- kernel = kernel_generic (get_backend (B))
109- kernel (B, J, min_size; ndrange= min_size)
97+ kernel_generic (get_backend (B))(B, J; ndrange= min_size)
11098 return B
11199end
0 commit comments