@@ -257,64 +257,65 @@ end
257
257
end
258
258
end
259
259
260
+ # work around pointer issues
260
261
@inline materialize! (M:: BlasMatMulVecAdd{<:AbstractColumnMajor,<:AbstractStridedLayout,<:AbstractStridedLayout} ) =
261
262
_gemv! (' N' , M. α, M. A, M. B, M. β, M. C)
262
263
@inline materialize! (M:: BlasMatMulVecAdd{<:AbstractRowMajor,<:AbstractStridedLayout,<:AbstractStridedLayout} ) =
263
264
_gemv! (' T' , M. α, transpose (M. A), M. B, M. β, M. C)
264
265
@inline materialize! (M:: BlasMatMulVecAdd{<:ConjLayout{<:AbstractRowMajor},<:AbstractStridedLayout,<:AbstractStridedLayout,<:BlasComplex} ) =
265
- _gemv! (' C' , M. α, M. A' , M. B, M. β, M. C)
266
+ _gemv! (' C' , M. α, adjoint ( M. A) , M. B, M. β, M. C)
266
267
267
268
@inline materialize! (M:: BlasVecMulMatAdd{<:AbstractColumnMajor,<:AbstractColumnMajor,<:AbstractColumnMajor} ) =
268
269
_gemm! (' N' , ' N' , M. α, M. A, M. B, M. β, M. C)
269
270
@inline materialize! (M:: BlasVecMulMatAdd{<:AbstractColumnMajor,<:AbstractRowMajor,<:AbstractColumnMajor} ) =
270
271
_gemm! (' N' , ' T' , M. α, M. A, transpose (M. B), M. β, M. C)
271
272
@inline materialize! (M:: BlasVecMulMatAdd{<:AbstractColumnMajor,<:ConjLayout{<:AbstractRowMajor},<:AbstractColumnMajor,<:BlasComplex} ) =
272
- _gemm! (' N' , ' C' , M. α, M. A, M. B' , M. β, M. C)
273
+ _gemm! (' N' , ' C' , M. α, M. A, adjoint ( M. B) , M. β, M. C)
273
274
274
275
@inline materialize! (M:: BlasMatMulMatAdd{<:AbstractColumnMajor,<:AbstractColumnMajor,<:AbstractColumnMajor} ) =
275
276
_gemm! (' N' , ' N' , M. α, M. A, M. B, M. β, M. C)
276
277
@inline materialize! (M:: BlasMatMulMatAdd{<:AbstractColumnMajor,<:AbstractRowMajor,<:AbstractColumnMajor} ) =
277
278
_gemm! (' N' , ' T' , M. α, M. A, transpose (M. B), M. β, M. C)
278
279
@inline materialize! (M:: BlasMatMulMatAdd{<:AbstractColumnMajor,<:ConjLayout{<:AbstractRowMajor},<:AbstractColumnMajor,<:BlasComplex} ) =
279
- _gemm! (' N' , ' C' , M. α, M. A, M. B' , M. β, M. C)
280
+ _gemm! (' N' , ' C' , M. α, M. A, adjoint ( M. B) , M. β, M. C)
280
281
281
282
@inline materialize! (M:: BlasMatMulMatAdd{<:AbstractRowMajor,<:AbstractColumnMajor,<:AbstractColumnMajor} ) =
282
283
_gemm! (' T' , ' N' , M. α, transpose (M. A), M. B, M. β, M. C)
283
284
@inline materialize! (M:: BlasMatMulMatAdd{<:ConjLayout{<:AbstractRowMajor},<:AbstractColumnMajor,<:AbstractColumnMajor,<:BlasComplex} ) =
284
- _gemm! (' C' , ' N' , M. α, M. A' , M. B, M. β, M. C)
285
+ _gemm! (' C' , ' N' , M. α, adjoint ( M. A) , M. B, M. β, M. C)
285
286
286
287
@inline materialize! (M:: BlasMatMulMatAdd{<:AbstractRowMajor,<:AbstractRowMajor,<:AbstractColumnMajor} ) =
287
288
_gemm! (' T' , ' T' , M. α, transpose (M. A), transpose (M. B), M. β, M. C)
288
289
@inline materialize! (M:: BlasMatMulMatAdd{<:AbstractRowMajor,<:ConjLayout{<:AbstractRowMajor},<:AbstractColumnMajor,<:BlasComplex} ) =
289
- _gemm! (' T' , ' C' , M. α, transpose (M. A), M. B' , M. β, M. C)
290
+ _gemm! (' T' , ' C' , M. α, transpose (M. A), adjoint ( M. B) , M. β, M. C)
290
291
291
292
@inline materialize! (M:: BlasMatMulMatAdd{<:ConjLayout{<:AbstractRowMajor},<:AbstractRowMajor,<:AbstractColumnMajor,<:BlasComplex} ) =
292
- _gemm! (' C' , ' T' , M. α, M. A' , M. B' , M. β, M. C)
293
+ _gemm! (' C' , ' T' , M. α, adjoint ( M. A), transpose ( M. B) , M. β, M. C)
293
294
@inline materialize! (M:: BlasMatMulMatAdd{<:ConjLayout{<:AbstractRowMajor},<:ConjLayout{<:AbstractRowMajor},<:AbstractColumnMajor,<:BlasComplex} ) =
294
- _gemm! (' C' , ' C' , M. α, M. A' , M. B' , M. β, M. C)
295
+ _gemm! (' C' , ' C' , M. α, adjoint ( M. A), adjoint ( M. B) , M. β, M. C)
295
296
296
297
@inline materialize! (M:: BlasMatMulMatAdd{<:AbstractColumnMajor,<:AbstractColumnMajor,<:AbstractRowMajor} ) =
297
298
_gemm! (' T' , ' T' , M. α, M. B, M. A, M. β, transpose (M. C))
298
299
@inline materialize! (M:: BlasMatMulMatAdd{<:AbstractColumnMajor,<:AbstractColumnMajor,<:ConjLayout{<:AbstractRowMajor},<:BlasComplex} ) =
299
- _gemm! (' C' , ' C' , M. α, M. B, M. A, M. β, M. C' )
300
+ _gemm! (' C' , ' C' , M. α, M. B, M. A, M. β, adjoint ( M. C) )
300
301
301
302
@inline materialize! (M:: BlasMatMulMatAdd{<:AbstractColumnMajor,<:AbstractRowMajor,<:AbstractRowMajor} ) =
302
303
_gemm! (' N' , ' T' , M. α, transpose (M. B), M. A, M. β, transpose (M. C))
303
304
@inline materialize! (M:: BlasMatMulMatAdd{<:AbstractColumnMajor,<:AbstractRowMajor,<:ConjLayout{<:AbstractRowMajor},<:BlasComplex} ) =
304
305
_gemm! (' N' , ' T' , M. α, transpose (M. B), M. A, M. β, M. C' )
305
306
@inline materialize! (M:: BlasMatMulMatAdd{<:AbstractColumnMajor,<:ConjLayout{<:AbstractRowMajor},<:ConjLayout{<:AbstractRowMajor},<:BlasComplex} ) =
306
- _gemm! (' N' , ' C' , M. α, M. B' , M. A, M. β, M. C' )
307
+ _gemm! (' N' , ' C' , M. α, adjoint ( M. B) , M. A, M. β, adjoint ( M. C) )
307
308
308
309
@inline materialize! (M:: BlasMatMulMatAdd{<:AbstractRowMajor,<:AbstractColumnMajor,<:AbstractRowMajor} ) =
309
310
_gemm! (' T' , ' N' , M. α, M. B, transpose (M. A), M. β, transpose (M. C))
310
311
@inline materialize! (M:: BlasMatMulMatAdd{<:ConjLayout{<:AbstractRowMajor},<:AbstractColumnMajor,<:ConjLayout{<:AbstractRowMajor},<:BlasComplex} ) =
311
- _gemm! (' C' , ' N' , M. α, M. B, M. A' , M. β, M. C' )
312
+ _gemm! (' C' , ' N' , M. α, M. B, adjoint ( M. A) , M. β, adjoint ( M. C) )
312
313
313
314
314
315
@inline materialize! (M:: BlasMatMulMatAdd{<:AbstractRowMajor,<:AbstractRowMajor,<:AbstractRowMajor} ) =
315
316
_gemm! (' N' , ' N' , M. α, transpose (M. B), transpose (M. A), M. β, transpose (M. C))
316
317
@inline materialize! (M:: BlasMatMulMatAdd{<:ConjLayout{<:AbstractRowMajor},<:ConjLayout{<:AbstractRowMajor},<:ConjLayout{<:AbstractRowMajor},<:BlasComplex} ) =
317
- _gemm! (' N' , ' N' , M. α, M. B' , M. A' , M. β, M. C' )
318
+ _gemm! (' N' , ' N' , M. α, adjoint ( M. B), adjoint ( M. A) , M. β, adjoint ( M. C) )
318
319
319
320
320
321
# ##
0 commit comments