h0 = GET(h,0) h1 = GET(h,1) h2 = GET(h,2) h3 = GET(h,3) h4 = GET(h,4) h5 = GET(h,5) h6 = GET(h,6) h7 = GET(h,7) f = sqrt(h) f0 = GET(f,0) g = 1/f g0 = GET(g,0) f0fft = FFT((f0)) s1below = IFFT(+1*f0fft*f0fft) s1above = 0 s1 = GET(s1below,1) + GET(s1above,1) -1*(h1) kill(s1below) kill(s1above) g0fft = FFT((g0)) s1fft = FFT((s1)) f1above = IFFT(-(1/2)*g0fft*s1fft) f1 = GET(f1above,1) kill(f1above) f1fft = FFT((f1)) u1below = IFFT(-1*g0fft*f0fft) u1above = IFFT(-1*g0fft*f1fft) u1 = GET(u1below,1) + GET(u1above,1) kill(u1below) kill(u1above) u1fft = FFT((u1)) g1above = IFFT(+1*g0fft*u1fft) g1 = GET(g1above,1) kill(g1above) \\ 10.000000 overall iteration efficiency \\ 6.000000 for s, 2 ffts \\ 7.500000 for f, 5 ffts \\ 9.000000 for u, 8 ffts \\ 10.000000 for g, 10 ffts s2below = IFFT(+1*f0fft*f1fft+1*f1fft*f0fft) s2above = IFFT(+1*f1fft*f1fft) s3above = 0 s2 = GET(s2below,2) + GET(s2above,2) -1*(h2) s3 = GET(s2above,3) + GET(s3above,3) -1*(h3) kill(s2below) kill(s2above) kill(s3above) g1fft = FFT((g1)) s2fft = FFT((s2)) s3fft = FFT((s3)) f2above = IFFT(-(1/2)*g0fft*s2fft) f3above = IFFT(-(1/2)*g0fft*s3fft-(1/2)*g1fft*s2fft) f2 = GET(f2above,2) f3 = GET(f2above,3) + GET(f3above,3) kill(f2above) kill(f3above) f2fft = FFT((f2)) f3fft = FFT((f3)) u2below = IFFT(-1*g0fft*f1fft-1*g1fft*f0fft) u2above = IFFT(-1*g0fft*f2fft-1*g1fft*f1fft) u3above = IFFT(-1*g0fft*f3fft-1*g1fft*f2fft) u2 = GET(u2below,2) + GET(u2above,2) u3 = GET(u2above,3) + GET(u3above,3) kill(u2below) kill(u2above) kill(u3above) u2fft = FFT((u2)) u3fft = FFT((u3)) g2above = IFFT(+1*g0fft*u2fft) g3above = IFFT(+1*g0fft*u3fft+1*g1fft*u2fft) g2 = GET(g2above,2) g3 = GET(g2above,3) + GET(g3above,3) kill(g2above) kill(g3above) \\ 8.666667 overall iteration efficiency \\ 5.166667 for s, 12 ffts \\ 6.416667 for f, 17 ffts \\ 7.666667 for u, 22 ffts \\ 8.666667 for g, 26 ffts s4below = IFFT(+1*f0fft*f3fft+1*f1fft*f2fft+1*f2fft*f1fft+1*f3fft*f0fft) s4above = IFFT(+1*f1fft*f3fft+1*f2fft*f2fft+1*f3fft*f1fft) s5above = IFFT(+1*f2fft*f3fft+1*f3fft*f2fft) s6above = IFFT(+1*f3fft*f3fft) s7above = 0 s4 = GET(s4below,4) + GET(s4above,4) -1*(h4) s5 = GET(s4above,5) + GET(s5above,5) -1*(h5) s6 = GET(s5above,6) + GET(s6above,6) -1*(h6) s7 = GET(s6above,7) + GET(s7above,7) -1*(h7) kill(s4below) kill(s4above) kill(s5above) kill(s6above) kill(s7above) g2fft = FFT((g2)) g3fft = FFT((g3)) s4fft = FFT((s4)) s5fft = FFT((s5)) s6fft = FFT((s6)) s7fft = FFT((s7)) f4above = IFFT(-(1/2)*g0fft*s4fft) f5above = IFFT(-(1/2)*g0fft*s5fft-(1/2)*g1fft*s4fft) f6above = IFFT(-(1/2)*g0fft*s6fft-(1/2)*g1fft*s5fft-(1/2)*g2fft*s4fft) f7above = IFFT(-(1/2)*g0fft*s7fft-(1/2)*g1fft*s6fft-(1/2)*g2fft*s5fft-(1/2)*g3fft*s4fft) f4 = GET(f4above,4) f5 = GET(f4above,5) + GET(f5above,5) f6 = GET(f5above,6) + GET(f6above,6) f7 = GET(f6above,7) + GET(f7above,7) kill(f4above) kill(f5above) kill(f6above) kill(f7above) f4fft = FFT((f4)) f5fft = FFT((f5)) f6fft = FFT((f6)) f7fft = FFT((f7)) u4below = IFFT(-1*g0fft*f3fft-1*g1fft*f2fft-1*g2fft*f1fft-1*g3fft*f0fft) u4above = IFFT(-1*g0fft*f4fft-1*g1fft*f3fft-1*g2fft*f2fft-1*g3fft*f1fft) u5above = IFFT(-1*g0fft*f5fft-1*g1fft*f4fft-1*g2fft*f3fft-1*g3fft*f2fft) u6above = IFFT(-1*g0fft*f6fft-1*g1fft*f5fft-1*g2fft*f4fft-1*g3fft*f3fft) u7above = IFFT(-1*g0fft*f7fft-1*g1fft*f6fft-1*g2fft*f5fft-1*g3fft*f4fft) u4 = GET(u4below,4) + GET(u4above,4) u5 = GET(u4above,5) + GET(u5above,5) u6 = GET(u5above,6) + GET(u6above,6) u7 = GET(u6above,7) + GET(u7above,7) kill(u4below) kill(u4above) kill(u5above) kill(u6above) kill(u7above) u4fft = FFT((u4)) u5fft = FFT((u5)) u6fft = FFT((u6)) u7fft = FFT((u7)) g4above = IFFT(+1*g0fft*u4fft) g5above = IFFT(+1*g0fft*u5fft+1*g1fft*u4fft) g6above = IFFT(+1*g0fft*u6fft+1*g1fft*u5fft+1*g2fft*u4fft) g7above = IFFT(+1*g0fft*u7fft+1*g1fft*u6fft+1*g2fft*u5fft+1*g3fft*u4fft) g4 = GET(g4above,4) g5 = GET(g4above,5) + GET(g5above,5) g6 = GET(g5above,6) + GET(g6above,6) g7 = GET(g6above,7) + GET(g7above,7) kill(g4above) kill(g5above) kill(g6above) kill(g7above) \\ 8.142857 overall iteration efficiency \\ 4.767857 for s, 30 ffts \\ 6.017857 for f, 40 ffts \\ 7.142857 for u, 49 ffts \\ 8.142857 for g, 57 ffts f - f0- f1- f2- f3- f4- f5- f6- f7 g - g0- g1- g2- g3- g4- g5- g6- g7