@@ -131,63 +131,7 @@ function A_mul_B!(y::AbstractVector, A::CompositeMap, x::AbstractVector)
131131 end
132132 return y
133133end
134- function At_mul_B! (y:: AbstractVector , A:: CompositeMap , x:: AbstractVector )
135- # no size checking, will be done by individual maps
136- N = length (A. maps)
137- if N == 1
138- At_mul_B! (y, A. maps[1 ], x)
139- else
140- T = eltype (y)
141- dest = Array {T} (undef, size (A. maps[N], 2 ))
142- At_mul_B! (dest, A. maps[N], x)
143- source = dest
144- if N> 2
145- dest = Array {T} (undef, size (A. maps[N- 1 ], 2 ))
146- end
147- for n = N- 1 : - 1 : 2
148- try
149- resize! (dest, size (A. maps[n], 2 ))
150- catch err
151- if err == ErrorException (" cannot resize array with shared data" )
152- dest = Array {T} (undef, size (A. maps[n], 2 ))
153- else
154- rethrow (err)
155- end
156- end
157- At_mul_B! (dest, A. maps[n], source)
158- dest, source = source, dest # alternate dest and source
159- end
160- At_mul_B! (y, A. maps[1 ], source)
161- end
162- return y
163- end
164- function Ac_mul_B! (y:: AbstractVector , A:: CompositeMap , x:: AbstractVector )
165- # no size checking, will be done by individual maps
166- N = length (A. maps)
167- if N == 1
168- Ac_mul_B! (y, A. maps[1 ], x)
169- else
170- T = eltype (y)
171- dest = Array {T} (undef, size (A. maps[N], 2 ))
172- Ac_mul_B! (dest, A. maps[N], x)
173- source = dest
174- if N> 2
175- dest = Array {T} (undef, size (A. maps[N- 1 ], 2 ))
176- end
177- for n = N- 1 : - 1 : 2
178- try
179- resize! (dest, size (A. maps[n], 2 ))
180- catch err
181- if err == ErrorException (" cannot resize array with shared data" )
182- dest = Array {T} (undef, size (A. maps[n], 2 ))
183- else
184- rethrow (err)
185- end
186- end
187- Ac_mul_B! (dest, A. maps[n], source)
188- dest, source = source, dest # alternate dest and source
189- end
190- Ac_mul_B! (y, A. maps[1 ], source)
191- end
192- return y
193- end
134+
135+ At_mul_B! (y:: AbstractVector , A:: CompositeMap , x:: AbstractVector ) = A_mul_B! (y, transpose (A), x)
136+
137+ Ac_mul_B! (y:: AbstractVector , A:: CompositeMap , x:: AbstractVector ) = A_mul_B! (y, adjoint (A), x)
0 commit comments