@@ -556,29 +556,19 @@ function LinearAlgebra.mul!(x_temp::AbstractArray{T,3}, A::AbstractDiffEqComposi
556556 # need to consider all dimensions and operators to determine the truncation
557557 # of M to x_temp
558558 for L in A. ops
559- if diff_axis (L) == 1
560- operating_dims[1 ] = 1
561- else
562- operating_dims[2 ] = 1
563- end
559+ operating_dims[diff_axis (L)] = 1
564560 end
565561
566562 x_temp_1, x_temp_2 = size (x_temp)
567563
568564 for L in opsB
569565 N = diff_axis (L)
570566 if N == 1
571- if operating_dims[2 ] == 1
572- mul! (x_temp,L,view (M,1 : x_temp_1+ 2 ,1 : x_temp_2), overwrite = false )
573- else
574- mul! (x_temp,L,M, overwrite = false )
575- end
567+ mul! (x_temp, L, view (M,1 : x_temp_1+ 2 ,1 : x_temp_2,1 : x_temp_3), overwrite = false )
568+ elseif N == 2
569+ mul! (x_temp, L, view (M,1 : x_temp_1,1 : x_temp_2+ 2 ,1 : x_temp_3), overwrite = false )
576570 else
577- if operating_dims[1 ] == 1
578- mul! (x_temp,L,view (M,1 : x_temp_1,1 : x_temp_2+ 2 ), overwrite = false )
579- else
580- mul! (x_temp,L,M, overwrite = false )
581- end
571+ mul! (x_temp, L, view (M,1 : x_temp_1,1 : x_temp_2,1 : x_temp_3+ 2 ), overwrite = false )
582572 end
583573 end
584574
@@ -605,15 +595,13 @@ function LinearAlgebra.mul!(x_temp::AbstractArray{T,3}, A::AbstractDiffEqComposi
605595
606596 for L in A. ops[2 : end ]
607597 N = diff_axis (L)
608-
609598 if N == 1
610599 mul! (x_temp, L, view (M,1 : x_temp_1+ 2 ,1 : x_temp_2,1 : x_temp_3), overwrite = false )
611600 elseif N == 2
612601 mul! (x_temp, L, view (M,1 : x_temp_1,1 : x_temp_2+ 2 ,1 : x_temp_3), overwrite = false )
613602 else
614603 mul! (x_temp, L, view (M,1 : x_temp_1,1 : x_temp_2,1 : x_temp_3+ 2 ), overwrite = false )
615604 end
616-
617605 end
618606 end
619607end
0 commit comments