📄 pfafft.c
字号:
} j11 = j10+jinc; if (j11>=jmax) j11 = j11-jmax; j12 = j11+jinc; if (j12>=jmax) j12 = j12-jmax; /* if factor is 13 */ if (ifac==13) { if (mu==1) { c1 = P885; c2 = P568; c3 = P120; c4 = -P354; c5 = -P748; c6 = -P970; c7 = P464; c8 = P822; c9 = P992; c10 = P935; c11 = P663; c12 = P239; } else if (mu==2) { c1 = P568; c2 = -P354; c3 = -P970; c4 = -P748; c5 = P120; c6 = P885; c7 = P822; c8 = P935; c9 = P239; c10 = -P663; c11 = -P992; c12 = -P464; } else if (mu==3) { c1 = P120; c2 = -P970; c3 = -P354; c4 = P885; c5 = P568; c6 = -P748; c7 = P992; c8 = P239; c9 = -P935; c10 = -P464; c11 = P822; c12 = P663; } else if (mu==4) { c1 = -P354; c2 = -P748; c3 = P885; c4 = P120; c5 = -P970; c6 = P568; c7 = P935; c8 = -P663; c9 = -P464; c10 = P992; c11 = -P239; c12 = -P822; } else if (mu==5) { c1 = -P748; c2 = P120; c3 = P568; c4 = -P970; c5 = P885; c6 = -P354; c7 = P663; c8 = -P992; c9 = P822; c10 = -P239; c11 = -P464; c12 = P935; } else if (mu==6) { c1 = -P970; c2 = P885; c3 = -P748; c4 = P568; c5 = -P354; c6 = P120; c7 = P239; c8 = -P464; c9 = P663; c10 = -P822; c11 = P935; c12 = -P992; } else if (mu==7) { c1 = -P970; c2 = P885; c3 = -P748; c4 = P568; c5 = -P354; c6 = P120; c7 = -P239; c8 = P464; c9 = -P663; c10 = P822; c11 = -P935; c12 = P992; } else if (mu==8) { c1 = -P748; c2 = P120; c3 = P568; c4 = -P970; c5 = P885; c6 = -P354; c7 = -P663; c8 = P992; c9 = -P822; c10 = P239; c11 = P464; c12 = -P935; } else if (mu==9) { c1 = -P354; c2 = -P748; c3 = P885; c4 = P120; c5 = -P970; c6 = P568; c7 = -P935; c8 = P663; c9 = P464; c10 = -P992; c11 = P239; c12 = P822; } else if (mu==10) { c1 = P120; c2 = -P970; c3 = -P354; c4 = P885; c5 = P568; c6 = -P748; c7 = -P992; c8 = -P239; c9 = P935; c10 = P464; c11 = -P822; c12 = -P663; } else if (mu==11) { c1 = P568; c2 = -P354; c3 = -P970; c4 = -P748; c5 = P120; c6 = P885; c7 = -P822; c8 = -P935; c9 = -P239; c10 = P663; c11 = P992; c12 = P464; } else { c1 = P885; c2 = P568; c3 = P120; c4 = -P354; c5 = -P748; c6 = -P970; c7 = -P464; c8 = -P822; c9 = -P992; c10 = -P935; c11 = -P663; c12 = -P239; } for (l=0; l<m; l++) { t1r = z[j01]+z[j12]; t1i = z[j01+1]+z[j12+1]; t2r = z[j2]+z[j11]; t2i = z[j2+1]+z[j11+1]; t3r = z[j3]+z[j10]; t3i = z[j3+1]+z[j10+1]; t4r = z[j4]+z[j9]; t4i = z[j4+1]+z[j9+1]; t5r = z[j5]+z[j8]; t5i = z[j5+1]+z[j8+1]; t6r = z[j6]+z[j7]; t6i = z[j6+1]+z[j7+1]; t7r = z[j01]-z[j12]; t7i = z[j01+1]-z[j12+1]; t8r = z[j2]-z[j11]; t8i = z[j2+1]-z[j11+1]; t9r = z[j3]-z[j10]; t9i = z[j3+1]-z[j10+1]; t10r = z[j4]-z[j9]; t10i = z[j4+1]-z[j9+1]; t11r = z[j5]-z[j8]; t11i = z[j5+1]-z[j8+1]; t12r = z[j6]-z[j7]; t12i = z[j6+1]-z[j7+1]; t13r = z[j00]-0.5f*t6r; t13i = z[j00+1]-0.5f*t6i; t14r = t1r-t6r; t14i = t1i-t6i; t15r = t2r-t6r; t15i = t2i-t6i; t16r = t3r-t6r; t16i = t3i-t6i; t17r = t4r-t6r; t17i = t4i-t6i; t18r = t5r-t6r; t18i = t5i-t6i; y1r = t13r+c1*t14r+c2*t15r+c3*t16r+c4*t17r+c5*t18r; y1i = t13i+c1*t14i+c2*t15i+c3*t16i+c4*t17i+c5*t18i; y2r = t13r+c2*t14r+c4*t15r+c6*t16r+c5*t17r+c3*t18r; y2i = t13i+c2*t14i+c4*t15i+c6*t16i+c5*t17i+c3*t18i; y3r = t13r+c3*t14r+c6*t15r+c4*t16r+c1*t17r+c2*t18r; y3i = t13i+c3*t14i+c6*t15i+c4*t16i+c1*t17i+c2*t18i; y4r = t13r+c4*t14r+c5*t15r+c1*t16r+c3*t17r+c6*t18r; y4i = t13i+c4*t14i+c5*t15i+c1*t16i+c3*t17i+c6*t18i; y5r = t13r+c5*t14r+c3*t15r+c2*t16r+c6*t17r+c1*t18r; y5i = t13i+c5*t14i+c3*t15i+c2*t16i+c6*t17i+c1*t18i; y6r = t13r+c6*t14r+c1*t15r+c5*t16r+c2*t17r+c4*t18r; y6i = t13i+c6*t14i+c1*t15i+c5*t16i+c2*t17i+c4*t18i; y7r = c12*t7r-c7*t8r+c11*t9r-c8*t10r+c10*t11r-c9*t12r; y7i = c12*t7i-c7*t8i+c11*t9i-c8*t10i+c10*t11i-c9*t12i; y8r = c11*t7r-c9*t8r+c8*t9r-c12*t10r-c7*t11r+c10*t12r; y8i = c11*t7i-c9*t8i+c8*t9i-c12*t10i-c7*t11i+c10*t12i; y9r = c10*t7r-c11*t8r-c7*t9r+c9*t10r-c12*t11r-c8*t12r; y9i = c10*t7i-c11*t8i-c7*t9i+c9*t10i-c12*t11i-c8*t12i; y10r = c9*t7r+c12*t8r-c10*t9r-c7*t10r+c8*t11r+c11*t12r; y10i = c9*t7i+c12*t8i-c10*t9i-c7*t10i+c8*t11i+c11*t12i; y11r = c8*t7r+c10*t8r+c12*t9r-c11*t10r-c9*t11r-c7*t12r; y11i = c8*t7i+c10*t8i+c12*t9i-c11*t10i-c9*t11i-c7*t12i; y12r = c7*t7r+c8*t8r+c9*t9r+c10*t10r+c11*t11r+c12*t12r; y12i = c7*t7i+c8*t8i+c9*t9i+c10*t10i+c11*t11i+c12*t12i; z[j00] = z[j00]+t1r+t2r+t3r+t4r+t5r+t6r; z[j00+1] = z[j00+1]+t1i+t2i+t3i+t4i+t5i+t6i; z[j01] = y1r-y12i; z[j01+1] = y1i+y12r; z[j2] = y2r-y11i; z[j2+1] = y2i+y11r; z[j3] = y3r-y10i; z[j3+1] = y3i+y10r; z[j4] = y4r-y9i; z[j4+1] = y4i+y9r; z[j5] = y5r-y8i; z[j5+1] = y5i+y8r; z[j6] = y6r-y7i; z[j6+1] = y6i+y7r; z[j7] = y6r+y7i; z[j7+1] = y6i-y7r; z[j8] = y5r+y8i; z[j8+1] = y5i-y8r; z[j9] = y4r+y9i; z[j9+1] = y4i-y9r; z[j10] = y3r+y10i; z[j10+1] = y3i-y10r; z[j11] = y2r+y11i; z[j11+1] = y2i-y11r; z[j12] = y1r+y12i; z[j12+1] = y1i-y12r; jt = j12+2; j12 = j11+2; j11 = j10+2; j10 = j9+2; j9 = j8+2; j8 = j7+2; j7 = j6+2; j6 = j5+2; j5 = j4+2; j4 = j3+2; j3 = j2+2; j2 = j01+2; j01 = j00+2; j00 = jt; } continue; } j13 = j12+jinc; if (j13>=jmax) j13 = j13-jmax; j14 = j13+jinc; if (j14>=jmax) j14 = j14-jmax; j15 = j14+jinc; if (j15>=jmax) j15 = j15-jmax; /* if factor is 16 */ if (ifac==16) { if (mu==1) { c1 = 1.0; c2 = P923; c3 = P382; c4 = P707; } else if (mu==3) { c1 = -1.0; c2 = P382; c3 = P923; c4 = -P707; } else if (mu==5) { c1 = 1.0; c2 = -P382; c3 = P923; c4 = -P707; } else if (mu==7) { c1 = -1.0; c2 = -P923; c3 = P382; c4 = P707; } else if (mu==9) { c1 = 1.0; c2 = -P923; c3 = -P382; c4 = P707; } else if (mu==11) { c1 = -1.0; c2 = -P382; c3 = -P923; c4 = -P707; } else if (mu==13) { c1 = 1.0; c2 = P382; c3 = -P923; c4 = -P707; } else { c1 = -1.0; c2 = P923; c3 = -P382; c4 = P707; } c5 = c1*c4; c6 = c1*c3; c7 = c1*c2; for (l=0; l<m; l++) { t1r = z[j00]+z[j8]; t1i = z[j00+1]+z[j8+1]; t2r = z[j4]+z[j12]; t2i = z[j4+1]+z[j12+1]; t3r = z[j00]-z[j8]; t3i = z[j00+1]-z[j8+1]; t4r = c1*(z[j4]-z[j12]); t4i = c1*(z[j4+1]-z[j12+1]); t5r = t1r+t2r; t5i = t1i+t2i; t6r = t1r-t2r; t6i = t1i-t2i; t7r = z[j01]+z[j9]; t7i = z[j01+1]+z[j9+1]; t8r = z[j5]+z[j13]; t8i = z[j5+1]+z[j13+1]; t9r = z[j01]-z[j9]; t9i = z[j01+1]-z[j9+1]; t10r = z[j5]-z[j13]; t10i = z[j5+1]-z[j13+1]; t11r = t7r+t8r; t11i = t7i+t8i; t12r = t7r-t8r; t12i = t7i-t8i; t13r = z[j2]+z[j10]; t13i = z[j2+1]+z[j10+1]; t14r = z[j6]+z[j14]; t14i = z[j6+1]+z[j14+1]; t15r = z[j2]-z[j10]; t15i = z[j2+1]-z[j10+1]; t16r = z[j6]-z[j14]; t16i = z[j6+1]-z[j14+1]; t17r = t13r+t14r; t17i = t13i+t14i; t18r = c4*(t15r-t16r); t18i = c4*(t15i-t16i); t19r = c5*(t15r+t16r); t19i = c5*(t15i+t16i); t20r = c1*(t13r-t14r); t20i = c1*(t13i-t14i); t21r = z[j3]+z[j11]; t21i = z[j3+1]+z[j11+1]; t22r = z[j7]+z[j15]; t22i = z[j7+1]+z[j15+1]; t23r = z[j3]-z[j11]; t23i = z[j3+1]-z[j11+1]; t24r = z[j7]-z[j15]; t24i = z[j7+1]-z[j15+1]; t25r = t21r+t22r; t25i = t21i+t22i; t26r = t21r-t22r; t26i = t21i-t22i; t27r = t9r+t24r; t27i = t9i+t24i; t28r = t10r+t23r; t28i = t10i+t23i; t29r = t9r-t24r; t29i = t9i-t24i; t30r = t10r-t23r; t30i = t10i-t23i; t31r = t5r+t17r; t31i = t5i+t17i; t32r = t11r+t25r; t32i = t11i+t25i; t33r = t3r+t18r; t33i = t3i+t18i; t34r = c2*t29r-c6*t30r; t34i = c2*t29i-c6*t30i; t35r = t3r-t18r; t35i = t3i-t18i; t36r = c7*t27r-c3*t28r; t36i = c7*t27i-c3*t28i; t37r = t4r+t19r; t37i = t4i+t19i; t38r = c3*t27r+c7*t28r; t38i = c3*t27i+c7*t28i; t39r = t4r-t19r; t39i = t4i-t19i; t40r = c6*t29r+c2*t30r; t40i = c6*t29i+c2*t30i; t41r = c4*(t12r-t26r); t41i = c4*(t12i-t26i); t42r = c5*(t12r+t26r); t42i = c5*(t12i+t26i); y1r = t33r+t34r; y1i = t33i+t34i; y2r = t6r+t41r; y2i = t6i+t41i; y3r = t35r+t40r; y3i = t35i+t40i; y4r = t5r-t17r; y4i = t5i-t17i; y5r = t35r-t40r; y5i = t35i-t40i; y6r = t6r-t41r; y6i = t6i-t41i; y7r = t33r-t34r; y7i = t33i-t34i; y9r = t38r-t37r; y9i = t38i-t37i; y10r = t42r-t20r; y10i = t42i-t20i; y11r = t36r+t39r; y11i = t36i+t39i; y12r = c1*(t11r-t25r); y12i = c1*(t11i-t25i); y13r = t36r-t39r; y13i = t36i-t39i; y14r = t42r+t20r; y14i = t42i+t20i; y15r = t38r+t37r; y15i = t38i+t37i; z[j00] = t31r+t32r; z[j00+1] = t31i+t32i; z[j01] = y1r-y15i; z[j01+1] = y1i+y15r; z[j2] = y2r-y14i; z[j2+1] = y2i+y14r; z[j3] = y3r-y13i; z[j3+1] = y3i+y13r; z[j4] = y4r-y12i; z[j4+1] = y4i+y12r; z[j5] = y5r-y11i; z[j5+1] = y5i+y11r; z[j6] = y6r-y10i; z[j6+1] = y6i+y10r; z[j7] = y7r-y9i; z[j7+1] = y7i+y9r; z[j8] = t31r-t32r; z[j8+1] = t31i-t32i; z[j9] = y7r+y9i; z[j9+1] = y7i-y9r; z[j10] = y6r+y10i; z[j10+1] = y6i-y10r; z[j11] = y5r+y11i; z[j11+1] = y5i-y11r; z[j12] = y4r+y12i; z[j12+1] = y4i-y12r; z[j13] = y3r+y13i; z[j13+1] = y3i-y13r; z[j14] = y2r+y14i; z[j14+1] = y2i-y14r; z[j15] = y1r+y15i; z[j15+1] = y1i-y15r; jt = j15+2; j15 = j14+2; j14 = j13+2; j13 = j12+2; j12 = j11+2; j11 = j10+2; j10 = j9+2;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -