@@ -62,22 +62,22 @@ function weaklaplacian(P::RectPolynomial)
62
62
A,B = P. args
63
63
Δ_A,Δ_B = weaklaplacian (A), weaklaplacian (B)
64
64
M_A,M_B = grammatrix (A), grammatrix (B)
65
- KronTrav (Δ_A, M_B) + KronTrav (M_A, Δ_B)
65
+ KronTrav (M_B,Δ_A ) + KronTrav (Δ_B,M_A )
66
66
end
67
67
68
68
function \ (P:: RectPolynomial , Q:: RectPolynomial )
69
69
PA,PB = P. args
70
70
QA,QB = Q. args
71
- krontrav (PA \ QA, PB \ QB )
71
+ krontrav (PB \ QB, PA \ QA )
72
72
end
73
73
74
74
@simplify function * (Ac:: QuasiAdjoint{<:Any,<:RectPolynomial} , B:: RectPolynomial )
75
75
PA,PB = Ac' . args
76
76
QA,QB = B. args
77
- KronTrav (PA ' QA, PB ' QB )
77
+ KronTrav (PB ' QB, PA ' QA )
78
78
end
79
79
80
- grammatrix (P:: KronPolynomial ) = KronTrav (grammatrix .(P. args)... )
80
+ grammatrix (P:: KronPolynomial ) = KronTrav (reverse ( grammatrix .(P. args) )... )
81
81
82
82
83
83
struct ApplyPlan{T, F, Pl}
@@ -104,10 +104,8 @@ function *(A::TensorPlan, B::AbstractArray)
104
104
B
105
105
end
106
106
107
- function checkpoints (P:: RectPolynomial )
108
- x,y = checkpoints .(P. args)
109
- SVector .(x, y' )
110
- end
107
+ checkpoints (P:: ProductDomain ) = tensorgrid (checkpoints .(components (P))... )
108
+ tensorgrid (x,y) = SVector .(x, y' )
111
109
112
110
function plan_transform (P:: KronPolynomial{d,<:Any,<:Fill} , B:: Tuple{Block{1}} , dims= 1 : 1 ) where d
113
111
@assert dims == 1
0 commit comments