Skip to content

Commit 087f8cc

Browse files
committed
removed parse in DCAT,HCAT,VCAT
1 parent ec7a491 commit 087f8cc

File tree

3 files changed

+32
-80
lines changed

3 files changed

+32
-80
lines changed

src/calculus/DCAT.jl

Lines changed: 8 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -75,11 +75,8 @@ end
7575
else
7676
# stacked operator
7777
# build mul!(( y[H.idxC[i][1]], y[H.idxC[i][2]] ... ), H.A[i], b)
78-
yy = ""
79-
for ii in eachindex(fieldnames(fieldtype(P2,i)))
80-
yy *= "y[H.idxC[$i][$ii]],"
81-
end
82-
yy = Meta.parse(yy)
78+
yy = [ :(y[H.idxC[$i][$ii]]) for ii in eachindex(fieldnames(fieldtype(P2,i)))]
79+
yy = :( tuple( $(yy...) ) )
8380
end
8481

8582
if fieldtype(P1,i) <: Int
@@ -89,11 +86,8 @@ end
8986
else
9087
# stacked operator
9188
# build mul!(H.buf, H.A[i],( b[H.idxD[i][1]], b[H.idxD[i][2]] ... ))
92-
bb = ""
93-
for ii in eachindex(fieldnames(fieldtype(P1,i)))
94-
bb *= "b[H.idxD[$i][$ii]],"
95-
end
96-
bb = Meta.parse(bb)
89+
bb = [ :(b[H.idxD[$i][$ii]]) for ii in eachindex(fieldnames(fieldtype(P1,i))) ]
90+
bb = :( tuple( $(bb...) ) )
9791
end
9892

9993
ex = :($ex; mul!($yy,H.A[$i],$bb))
@@ -117,11 +111,8 @@ end
117111
else
118112
# stacked operator
119113
# build mul!(( y[H.idxD[i][1]], y[H.idxD[i][2]] ... ), H.A[i]', b)
120-
yy = ""
121-
for ii in eachindex(fieldnames(fieldtype(P1,i)))
122-
yy *= "y[H.idxD[$i][$ii]],"
123-
end
124-
yy = Meta.parse(yy)
114+
yy = [ :(y[H.idxD[$i][$ii]]) for ii in eachindex(fieldnames(fieldtype(P1,i)))]
115+
yy = :( tuple( $(yy...) ))
125116
end
126117

127118
if fieldtype(P2,i) <: Int
@@ -131,11 +122,8 @@ end
131122
else
132123
# stacked operator
133124
# build mul!(H.buf, H.A[i]',( b[H.idxC[i][1]], b[H.idxC[i][2]] ... ))
134-
bb = ""
135-
for ii in eachindex(fieldnames(fieldtype(P2,i)))
136-
bb *= "b[H.idxC[$i][$ii]],"
137-
end
138-
bb = Meta.parse(bb)
125+
bb = [ :(b[H.idxC[$i][$ii]]) for ii in eachindex(fieldnames(fieldtype(P2,i)))]
126+
bb = :( tuple( $(bb...) ) )
139127
end
140128

141129
ex = :($ex; mul!($yy,H.A[$i]',$bb))

src/calculus/HCAT.jl

Lines changed: 12 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -131,11 +131,8 @@ HCAT(A::AbstractOperator) = A
131131
else
132132
# stacked operator
133133
# build mul!(y, H.A[1],( b[H.idxs[1][1]], b[H.idxs[1][2]] ... ))
134-
bb = ""
135-
for ii in eachindex(fieldnames(fieldtype(P,1)))
136-
bb *= "b[H.idxs[1][$ii]],"
137-
end
138-
bb = Meta.parse(bb)
134+
bb = [ :(b[H.idxs[1][$ii]]) for ii in eachindex(fieldnames(fieldtype(P,1)))]
135+
bb = :( tuple($(bb...)) )
139136
end
140137
ex = :($ex; mul!(y,H.A[1],$bb)) # write on y
141138

@@ -148,11 +145,8 @@ HCAT(A::AbstractOperator) = A
148145
else
149146
# stacked operator
150147
# build mul!(H.buf, H.A[i],( b[H.idxs[i][1]], b[H.idxs[i][2]] ... ))
151-
bb = ""
152-
for ii in eachindex(fieldnames(fieldtype(P,i)))
153-
bb *= "b[H.idxs[$i][$ii]],"
154-
end
155-
bb = Meta.parse(bb)
148+
bb = [ :( b[H.idxs[$i][$ii]] ) for ii in eachindex(fieldnames(fieldtype(P,i)))]
149+
bb = :( tuple( $(bb...) ) )
156150
end
157151

158152
ex = :($ex; mul!(H.buf,H.A[$i],$bb)) # write on H.buf
@@ -185,11 +179,8 @@ end
185179
else
186180
# stacked operator
187181
# build mul!(( y[H.idxs[i][1]], y[H.idxs[i][2]] ... ), H.A[i]', b)
188-
yy = ""
189-
for ii in eachindex(fieldnames(fieldtype(P,i)))
190-
yy *= "y[H.idxs[$i][$ii]],"
191-
end
192-
yy = Meta.parse(yy)
182+
yy = [ :(y[H.idxs[$i][$ii]]) for ii in eachindex(fieldnames(fieldtype(P,i)))]
183+
yy = :(tuple( $(yy...) ) )
193184
end
194185

195186
ex = :($ex; mul!($yy,H.A[$i]',b))
@@ -208,11 +199,8 @@ end
208199
if fieldtype(P,1) <: Int
209200
bb = :(b[H.idxs[1]])
210201
else
211-
bb = ""
212-
for ii in eachindex(fieldnames(fieldtype(P,1)))
213-
bb *= "b[H.idxs[1][$ii]],"
214-
end
215-
bb = Meta.parse(bb)
202+
bb = [ :(b[H.idxs[1][$ii]]) for ii in eachindex(fieldnames(fieldtype(P,1)))]
203+
bb = :( tuple( $(bb...) ) )
216204
end
217205
ex = :($ex; mul!(y,H.A[1],$bb))
218206

@@ -222,11 +210,8 @@ end
222210
if fieldtype(P,i) <: Int
223211
bb = :(b[H.idxs[$i]])
224212
else
225-
bb = ""
226-
for ii in eachindex(fieldnames(fieldtype(P,i)))
227-
bb *= "b[H.idxs[$i][$ii]],"
228-
end
229-
bb = Meta.parse(bb)
213+
bb = [ :(b[H.idxs[$i][$ii]]) for ii in eachindex(fieldnames(fieldtype(P,i))) ]
214+
bb = :( tuple( $(bb...) ) )
230215
end
231216

232217
ex = :($ex; mul!(H.buf,H.A[$i],$bb))
@@ -257,11 +242,8 @@ end
257242
if fieldtype(P,i) <: Int
258243
yy = :(y[H.idxs[$i]])
259244
else
260-
yy = ""
261-
for ii in eachindex(fieldnames(fieldtype(P,i)))
262-
yy *= "y[H.idxs[$i][$ii]],"
263-
end
264-
yy = Meta.parse(yy)
245+
yy = [ :(y[H.idxs[$i][$ii]]) for ii in eachindex(fieldnames(fieldtype(P,i)))]
246+
yy = :( tuple( $(yy...) ) )
265247
end
266248

267249
ex = :($ex; mul!($yy,H.A[$i]',b))

src/calculus/VCAT.jl

Lines changed: 12 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -129,11 +129,8 @@ VCAT(A::AbstractOperator) = A
129129
else
130130
# stacked operator
131131
# build mul!(y, H.A[1]',( b[H.idxs[1][1]], b[H.idxs[1][2]] ... ))
132-
bb = ""
133-
for ii in eachindex(fieldnames(fieldtype(P,1)))
134-
bb *= "b[H.idxs[1][$ii]],"
135-
end
136-
bb = Meta.parse(bb)
132+
bb = [ :(b[H.idxs[1][$ii]]) for ii in eachindex(fieldnames(fieldtype(P,1)))]
133+
bb = :( tuple( $(bb...) ) )
137134
end
138135
ex = :($ex; mul!(y,H.A[1]',$bb)) # write on y
139136

@@ -146,11 +143,8 @@ VCAT(A::AbstractOperator) = A
146143
else
147144
# stacked operator
148145
# build mul!(H.buf, H.A[i],( b[H.idxs[i][1]], b[H.idxs[i][2]] ... ))
149-
bb = ""
150-
for ii in eachindex(fieldnames(fieldtype(P,i)))
151-
bb *= "b[H.idxs[$i][$ii]],"
152-
end
153-
bb = Meta.parse(bb)
146+
bb = [ :(b[H.idxs[$i][$ii]]) for ii in eachindex(fieldnames(fieldtype(P,i)))]
147+
bb = :( tuple( $(bb...) ) )
154148
end
155149

156150
ex = :($ex; mul!(H.buf,H.A[$i]',$bb)) # write on H.buf
@@ -183,11 +177,8 @@ end
183177
else
184178
# stacked operator
185179
# build mul!(( y[H.idxs[i][1]], y[H.idxs[i][2]] ... ), H.A[i], b)
186-
yy = ""
187-
for ii in eachindex(fieldnames(fieldtype(P,i)))
188-
yy *= "y[H.idxs[$i][$ii]],"
189-
end
190-
yy = Meta.parse(yy)
180+
yy = [ :(y[H.idxs[$i][$ii]]) for ii in eachindex(fieldnames(fieldtype(P,i)))]
181+
yy = :( tuple( $(yy...) ) )
191182
end
192183

193184
ex = :($ex; mul!($yy,H.A[$i],b))
@@ -206,11 +197,8 @@ end
206197
if fieldtype(P,1) <: Int
207198
bb = :(b[H.idxs[1]])
208199
else
209-
bb = ""
210-
for ii in eachindex(fieldnames(fieldtype(P,1)))
211-
bb *= "b[H.idxs[1][$ii]],"
212-
end
213-
bb = Meta.parse(bb)
200+
bb = [:(b[H.idxs[1][$ii]]) for ii in eachindex(fieldnames(fieldtype(P,1)))]
201+
bb = :( tuple( $(bb...) ) )
214202
end
215203
ex = :($ex; mul!(y,H.A[1]',$bb))
216204

@@ -220,11 +208,8 @@ end
220208
if fieldtype(P,i) <: Int
221209
bb = :(b[H.idxs[$i]])
222210
else
223-
bb = ""
224-
for ii in eachindex(fieldnames(fieldtype(P,i)))
225-
bb *= "b[H.idxs[$i][$ii]],"
226-
end
227-
bb = Meta.parse(bb)
211+
bb = [ :(b[H.idxs[$i][$ii]]) for ii in eachindex(fieldnames(fieldtype(P,i))) ]
212+
bb = :( tuple( $(bb...) ) )
228213
end
229214

230215
ex = :($ex; mul!(H.buf,H.A[$i]',$bb))
@@ -255,11 +240,8 @@ end
255240
if fieldtype(P,i) <: Int
256241
yy = :(y[H.idxs[$i]])
257242
else
258-
yy = ""
259-
for ii in eachindex(fieldnames(fieldtype(P,i)))
260-
yy *= "y[H.idxs[$i][$ii]],"
261-
end
262-
yy = Meta.parse(yy)
243+
yy = [:(y[H.idxs[$i][$ii]]) for ii in eachindex(fieldnames(fieldtype(P,i)))]
244+
yy = :( tuple( $(yy...)) )
263245
end
264246

265247
ex = :($ex; mul!($yy,H.A[$i],b))

0 commit comments

Comments
 (0)