@@ -22,23 +22,24 @@ function legendre_ϕ_ψ(k)
2222 ϕ_2x_coefs[ki+ 1 , 1 : (ki+ 1 )] .= sqrt (2 * (2 * ki+ 1 )) .* coeffs (l (p2))
2323 end
2424
25- ψ1_coefs . = ϕ_2x_coefs
25+ ψ1_coefs = zeros (k, k)
2626 ψ2_coefs = zeros (k, k)
2727 for ki in 0 : (k- 1 )
28+ ψ1_coefs[ki+ 1 , :] .= ϕ_2x_coefs[ki+ 1 , :]
2829 for i in 0 : (k- 1 )
2930 a = ϕ_2x_coefs[ki+ 1 , 1 : (ki+ 1 )]
3031 b = ϕ_coefs[i+ 1 , 1 : (i+ 1 )]
3132 proj_ = proj_factor (a, b)
32- view ( ψ1_coefs, ki+ 1 , :) .- = proj_ .* view (ϕ_coefs, i+ 1 , :)
33- view ( ψ2_coefs, ki+ 1 , :) .- = proj_ .* view (ϕ_coefs, i+ 1 , :)
33+ ψ1_coefs[ ki+ 1 , :] .- = proj_ .* view (ϕ_coefs, i+ 1 , :)
34+ ψ2_coefs[ ki+ 1 , :] .- = proj_ .* view (ϕ_coefs, i+ 1 , :)
3435 end
3536
3637 for j in 0 : (k- 1 )
3738 a = ϕ_2x_coefs[ki+ 1 , 1 : (ki+ 1 )]
3839 b = ψ1_coefs[j+ 1 , :]
3940 proj_ = proj_factor (a, b)
40- view ( ψ1_coefs, ki+ 1 , :) .- = proj_ .* view (ψ1_coefs, j+ 1 , :)
41- view ( ψ2_coefs, ki+ 1 , :) .- = proj_ .* view (ψ2_coefs, j+ 1 , :)
41+ ψ1_coefs[ ki+ 1 , :] .- = proj_ .* view (ψ1_coefs, j+ 1 , :)
42+ ψ2_coefs[ ki+ 1 , :] .- = proj_ .* view (ψ2_coefs, j+ 1 , :)
4243 end
4344
4445 a = ψ1_coefs[ki+ 1 , :]
@@ -129,16 +130,11 @@ end
129130# end
130131
131132function legendre_filter (k)
132- # x = Symbol('x')
133- # H0 = np.zeros((k,k))
134- # H1 = np.zeros((k,k))
135- # G0 = np.zeros((k,k))
136- # G1 = np.zeros((k,k))
137- # PHI0 = np.zeros((k,k))
138- # PHI1 = np.zeros((k,k))
139- # phi, psi1, psi2 = get_phi_psi(k, base)
140-
141- # ----------------------------------------------------------
133+ H0 = zeros (k, k)legendre
134+ H1 = zeros (k, k)
135+ G0 = zeros (k, k)
136+ G1 = zeros (k, k)
137+ ϕ, ψ1, ψ2 = legendre_ϕ_ψ (k)
142138
143139 # roots = Poly(legendre(k, 2*x-1)).all_roots()
144140 # x_m = np.array([rt.evalf(20) for rt in roots]).astype(np.float64)
@@ -150,29 +146,23 @@ function legendre_filter(k)
150146 # G0[ki, kpi] = 1/np.sqrt(2) * (wm * psi(psi1, psi2, ki, x_m/2) * phi[kpi](x_m)).sum()
151147 # H1[ki, kpi] = 1/np.sqrt(2) * (wm * phi[ki]((x_m+1)/2) * phi[kpi](x_m)).sum()
152148 # G1[ki, kpi] = 1/np.sqrt(2) * (wm * psi(psi1, psi2, ki, (x_m+1)/2) * phi[kpi](x_m)).sum()
153-
154- # PHI0 = np.eye(k)
155- # PHI1 = np.eye(k)
156-
157- # ----------------------------------------------------------
158149
159- # H0[np.abs (H0)<1e-8] = 0
160- # H1[np.abs (H1)<1e-8] = 0
161- # G0[np.abs (G0)<1e-8] = 0
162- # G1[np.abs (G1)<1e-8] = 0
150+ zero_out! (H0)
151+ zero_out! (H1)
152+ zero_out! (G0)
153+ zero_out! (G1)
163154
164- # return H0, H1, G0, G1, PHI0, PHI1
155+ return H0, H1, G0, G1, I (k), I (k)
165156end
166157
167158function chebyshev_filter (k)
168- # x = Symbol('x')
169- # H0 = np.zeros((k,k))
170- # H1 = np.zeros((k,k))
171- # G0 = np.zeros((k,k))
172- # G1 = np.zeros((k,k))
173- # PHI0 = np.zeros((k,k))
174- # PHI1 = np.zeros((k,k))
175- # phi, psi1, psi2 = get_phi_psi(k, base)
159+ H0 = zeros (k, k)
160+ H1 = zeros (k, k)
161+ G0 = zeros (k, k)
162+ G1 = zeros (k, k)
163+ Φ0 = zeros (k, k)
164+ Φ1 = zeros (k, k)
165+ ϕ, ψ1, ψ2 = chebyshev_ϕ_ψ (k)
176166
177167 # ----------------------------------------------------------
178168
@@ -193,16 +183,13 @@ function chebyshev_filter(k)
193183
194184 # PHI0[ki, kpi] = (wm * phi[ki](2*x_m) * phi[kpi](2*x_m)).sum() * 2
195185 # PHI1[ki, kpi] = (wm * phi[ki](2*x_m-1) * phi[kpi](2*x_m-1)).sum() * 2
196-
197- # PHI0[np.abs(PHI0)<1e-8] = 0
198- # PHI1[np.abs(PHI1)<1e-8] = 0
199-
200- # ----------------------------------------------------------
201186
202- # H0[np.abs(H0)<1e-8] = 0
203- # H1[np.abs(H1)<1e-8] = 0
204- # G0[np.abs(G0)<1e-8] = 0
205- # G1[np.abs(G1)<1e-8] = 0
187+ zero_out! (H0)
188+ zero_out! (H1)
189+ zero_out! (G0)
190+ zero_out! (G1)
191+ zero_out! (Φ0)
192+ zero_out! (Φ1)
206193
207- # return H0, H1, G0, G1, PHI0, PHI1
194+ return H0, H1, G0, G1, Φ0, Φ1
208195end
0 commit comments