• Home
  • Raw
  • Download

Lines Matching +full:- +full:a

2  * Copyright (C) 2008-2009 SVOX AG, Baslerstr. 30, 8048 Zuerich, Switzerland
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
21 * Copyright (C) 2008-2009 SVOX AG, Baslerstr. 30, 8048 Zuerich, Switzerland
25 * - 2009-04-20 -- initial version
39 * ---------------------------------------------------\n
41 …* Adapted from http://www.kurims.kyoto-u.ac.jp/~ooura/fft.html (Copyright Takuya OOURA, 1996-2001)…
42 * ---------------------------------------------------\n
45 - dimension :one
46 - data length :power of 2
47 - decimation :frequency
48 - radix :split-radix
49 - data :inplace
50 - table :not use
53 - cdft: Complex Discrete Fourier Transform
54 - rdft: Real Discrete Fourier Transform
55 - ddct: Discrete Cosine Transform
56 - ddst: Discrete Sine Transform
57 - dfct: Cosine Transform of RDFT (Real Symmetric DFT)
58 - dfst: Sine Transform of RDFT (Real Anti-symmetric DFT)
61 - void cdft(picoos_int32, picoos_int32, PICOFFTSG_FFTTYPE *);
62 - void rdft(picoos_int32, picoos_int32, PICOFFTSG_FFTTYPE *);
63 - void ddct(picoos_int32, picoos_int32, PICOFFTSG_FFTTYPE *);
64 - void ddst(picoos_int32, picoos_int32, PICOFFTSG_FFTTYPE *);
65 - void dfct(picoos_int32, PICOFFTSG_FFTTYPE *);
66 - void dfst(picoos_int32, PICOFFTSG_FFTTYPE *);
71 - <case1>
72 - X[k] = sum_j=0^n-1 x[j]*exp(2*pi*i*j*k/n), 0<=k<n
73 - <case2>
74 - X[k] = sum_j=0^n-1 x[j]*exp(-2*pi*i*j*k/n), 0<=k<n
75 - (notes: sum_j=0^n-1 is a summation from j=0 to n-1)
78 - <case1>
79 - cdft(2*n, 1, a);
80 - <case2>
81 - cdft(2*n, -1, a);
84 - 2*n :data length (picoos_int32)
85 - n >= 1, n = power of 2
86 - a[0...2*n-1] :input/output data (PICOFFTSG_FFTTYPE *)
87 - input data
88 - a[2*j] = Re(x[j]),
89 - a[2*j+1] = Im(x[j]), 0<=j<n
90 - output data
91 - a[2*k] = Re(X[k]),
92 - a[2*k+1] = Im(X[k]), 0<=k<n
95 - Inverse of cdft(2*n, -1, a); is
96 -cdft(2*n, 1, a);
97 - for (j = 0; j <= 2 * n - 1; j++) {
98 - a[j] *= 1.0 / n;
99 - }
105 - <case1> RDFT
106 - R[k] = sum_j=0^n-1 a[j]*cos(2*pi*j*k/n), 0<=k<=n/2
107 - I[k] = sum_j=0^n-1 a[j]*sin(2*pi*j*k/n), 0<k<n/2
108 - <case2> IRDFT (excluding scale)
109 - a[k] = (R[0] + R[n/2]*cos(pi*k))/2 +
110 - sum_j=1^n/2-1 R[j]*cos(2*pi*j*k/n) +
111 - sum_j=1^n/2-1 I[j]*sin(2*pi*j*k/n), 0<=k<n
114 - <case1>
115 - rdft(n, 1, a);
116 - <case2>
117 - rdft(n, -1, a);
120 - n :data length (picoos_int32)
121 - n >= 2, n = power of 2
122 - a[0...n-1] :input/output data (PICOFFTSG_FFTTYPE *)
123 - <case1>
124 - output data
125 - a[2*k] = R[k], 0<=k<n/2
126 - a[2*k+1] = I[k], 0<k<n/2
127 - a[1] = R[n/2]
128 - <case2>
129 - input data
130 - a[2*j] = R[j], 0<=j<n/2
131 - a[2*j+1] = I[j], 0<j<n/2
132 - a[1] = R[n/2]
135 - Inverse of rdft(n, 1, a); is
136 - rdft(n, -1, a);
137 - for (j = 0; j <= n - 1; j++) {
138 - a[j] *= 2.0 / n;
139 -}
145 - <case1> IDCT (excluding scale)
146 - C[k] = sum_j=0^n-1 a[j]*cos(pi*j*(k+1/2)/n), 0<=k<n
147 - <case2> DCT
148 - C[k] = sum_j=0^n-1 a[j]*cos(pi*(j+1/2)*k/n), 0<=k<n
151 - <case1>
152 - ddct(n, 1, a);
153 - <case2>
154 - ddct(n, -1, a);
157 - n :data length (picoos_int32)
158 - n >= 2, n = power of 2
159 - a[0...n-1] :input/output data (PICOFFTSG_FFTTYPE *)
160 - output data
161 - a[k] = C[k], 0<=k<n
164 - Inverse of ddct(n, -1, a); is
165 - a[0] *= 0.5;
166 - ddct(n, 1, a);
167 - for (j = 0; j <= n - 1; j++) {
168 - a[j] *= 2.0 / n;
169 - }
174 - <case1> IDST (excluding scale)
175 - S[k] = sum_j=1^n A[j]*sin(pi*j*(k+1/2)/n), 0<=k<n
176 - <case2> DST
177 - S[k] = sum_j=0^n-1 a[j]*sin(pi*(j+1/2)*k/n), 0<k<=n
180 - <case1>
181 - ddst(n, 1, a);
182 - <case2>
183 - ddst(n, -1, a);
186 - n :data length (picoos_int32)
187 - n >= 2, n = power of 2
188 - a[0...n-1] :input/output data (PICOFFTSG_FFTTYPE *)
189 - <case1>
190 - input data
191 - a[j] = A[j], 0<j<n
192 - a[0] = A[n]
193 - output data
194 - a[k] = S[k], 0<=k<n
195 - <case2>
196 - output data
197 - a[k] = S[k], 0<k<n
198 - a[0] = S[n]
201 - Inverse of ddst(n, -1, a); is
202 - a[0] *= 0.5;
203 - ddst(n, 1, a);
204 - for (j = 0; j <= n - 1; j++) {
205 - a[j] *= 2.0 / n;
206 - }
211 - C[k] = sum_j=0^n a[j]*cos(pi*j*k/n), 0<=k<=n
214 - dfct(n, a);
217 - n :data length - 1 (picoos_int32)
218 - n >= 2, n = power of 2
219 - a[0...n] :input/output data (PICOFFTSG_FFTTYPE *)
221 - output data
222 - a[k] = C[k], 0<=k<=n
225 - Inverse of a[0] *= 0.5; a[n] *= 0.5; dfct(n, a); is
226 - a[0] *= 0.5;
227 - a[n] *= 0.5;
228 - dfct(n, a);
229 - for (j = 0; j <= n; j++) {
230 - a[j] *= 2.0 / n;
231 - }
233 <b> Sine Transform of RDFT (Real Anti-symmetric DFT)</b>
236 - S[k] = sum_j=1^n-1 a[j]*sin(pi*j*k/n), 0<k<n
239 - dfst(n, a);
242 - n :data length + 1 (picoos_int32)
243 - n >= 2, n = power of 2
244 - a[0...n-1] :input/output data (PICOFFTSG_FFTTYPE *)
245 - output data
246 - a[k] = S[k], 0<k<n
247 - (a[0] is used for work area)
250 - Inverse of dfst(n, a); is
251 - dfst(n, a);
252 - for (j = 1; j <= n - 1; j++) {
253 - a[j] *= 2.0 / n;
254 - }
365 #define picofftsg_highestBit(x) (x==0?0:(x<0?(zz=-x,(zz>=POW17?(zz>=POW25?(zz>=POW29?(zz>=POW31?31:…
376 static void cftfsub(picoos_int32 n, PICOFFTSG_FFTTYPE *a);
377 static void cftbsub(picoos_int32 n, PICOFFTSG_FFTTYPE *a);
378 static void rftfsub(picoos_int32 n, PICOFFTSG_FFTTYPE *a);
379 static void rftbsub(picoos_int32 n, PICOFFTSG_FFTTYPE *a);
381 static void cftfsub(picoos_int32 n, PICOFFTSG_FFTTYPE *a);
382 static void cftbsub(picoos_int32 n, PICOFFTSG_FFTTYPE *a);
383 static void rftfsub(picoos_int32 n, PICOFFTSG_FFTTYPE *a);
384 static void rftbsub(picoos_int32 n, PICOFFTSG_FFTTYPE *a);
385 static void dctsub(picoos_int32 n, PICOFFTSG_FFTTYPE *a);
386 static void dctsub4(picoos_int32 n, PICOFFTSG_FFTTYPE *a);
388 static void ddct(picoos_int32 n, picoos_int32 isgn, PICOFFTSG_FFTTYPE *a);
389 static void bitrv1(picoos_int32 n, PICOFFTSG_FFTTYPE *a);
391 static void bitrv2(picoos_int32 n, PICOFFTSG_FFTTYPE *a);
392 static void bitrv216(PICOFFTSG_FFTTYPE *a);
393 static void bitrv208(PICOFFTSG_FFTTYPE *a);
394 static void cftmdl1(picoos_int32 n, PICOFFTSG_FFTTYPE *a);
395 static void cftrec4(picoos_int32 n, PICOFFTSG_FFTTYPE *a);
396 static void cftleaf(picoos_int32 n, picoos_int32 isplt, PICOFFTSG_FFTTYPE *a);
397 static void cftfx41(picoos_int32 n, PICOFFTSG_FFTTYPE *a);
398 static void cftf161(PICOFFTSG_FFTTYPE *a);
399 static void cftf081(PICOFFTSG_FFTTYPE *a);
400 static void cftf040(PICOFFTSG_FFTTYPE *a);
401 static void cftx020(PICOFFTSG_FFTTYPE *a);
403 void bitrv2conj(picoos_int32 n, PICOFFTSG_FFTTYPE *a);
404 void bitrv216neg(PICOFFTSG_FFTTYPE *a);
405 void bitrv208neg(PICOFFTSG_FFTTYPE *a);
406 void cftb1st(picoos_int32 n, PICOFFTSG_FFTTYPE *a);
407 void cftrec4(picoos_int32 n, PICOFFTSG_FFTTYPE *a);
408 void cftleaf(picoos_int32 n, picoos_int32 isplt, PICOFFTSG_FFTTYPE *a);
409 void cftfx41(picoos_int32 n, PICOFFTSG_FFTTYPE *a);
410 void cftf161(PICOFFTSG_FFTTYPE *a);
411 void cftf081(PICOFFTSG_FFTTYPE *a);
412 void cftb040(PICOFFTSG_FFTTYPE *a);
413 void cftx020(PICOFFTSG_FFTTYPE *a);
415 static picoos_int32 cfttree(picoos_int32 n, picoos_int32 j, picoos_int32 k, PICOFFTSG_FFTTYPE *a);
416 static void cftleaf(picoos_int32 n, picoos_int32 isplt, PICOFFTSG_FFTTYPE *a);
417 static void cftmdl1(picoos_int32 n, PICOFFTSG_FFTTYPE *a);
419 static void cftmdl1(picoos_int32 n, PICOFFTSG_FFTTYPE *a);
420 static void cftmdl2(picoos_int32 n, PICOFFTSG_FFTTYPE *a);
422 static void cftmdl1(picoos_int32 n, PICOFFTSG_FFTTYPE *a);
423 static void cftmdl2(picoos_int32 n, PICOFFTSG_FFTTYPE *a);
424 static void cftf161(PICOFFTSG_FFTTYPE *a);
425 static void cftf162(PICOFFTSG_FFTTYPE *a);
426 static void cftf081(PICOFFTSG_FFTTYPE *a);
427 static void cftf082(PICOFFTSG_FFTTYPE *a);
429 static void cftf161(PICOFFTSG_FFTTYPE *a);
430 static void cftf162(PICOFFTSG_FFTTYPE *a);
431 static void cftf081(PICOFFTSG_FFTTYPE *a);
432 static void cftf082(PICOFFTSG_FFTTYPE *a);
437 void rdft(picoos_int32 n, picoos_int32 isgn, PICOFFTSG_FFTTYPE *a) in rdft() argument
443 cftfsub(n, a); in rdft()
444 rftfsub(n, a); in rdft()
446 cftfsub(n, a); in rdft()
448 xi = a[0] - a[1]; in rdft()
449 a[0] += a[1]; in rdft()
450 a[1] = xi; in rdft()
452 a[1] = (a[0] - a[1]) / 2; in rdft()
453 a[0] -= a[1]; in rdft()
455 rftbsub(n, a); in rdft()
456 cftbsub(n, a); in rdft()
458 cftbsub(n, a); in rdft()
468 PICOFFTSG_FFTTYPE a,b, E; in norm_result() local
472 a = (norm_window[nI]>>18) * ((tmpX[nI]>0) ? tmpX[nI]>>11 : -((-tmpX[nI])>>11)); in norm_result()
473 tmpX[nI] = a; in norm_result()
474 b = (a>=0?a:-a) >> 18; in norm_result()
486 void ddct(picoos_int32 n, picoos_int32 isgn, PICOFFTSG_FFTTYPE *a) in ddct() argument
492 xr = a[n - 1]; in ddct()
493 for (j = n - 2; j >= 2; j -= 2) { in ddct()
494 a[j + 1] = a[j] - a[j - 1]; in ddct()
495 a[j] += a[j - 1]; in ddct()
497 a[1] = a[0] - xr; in ddct()
498 a[0] += xr; in ddct()
500 rftbsub(n, a); in ddct()
501 cftbsub(n, a); in ddct()
503 cftbsub(n, a); in ddct()
507 dctsub(n, a); in ddct()
509 dctsub4(n, a); in ddct()
513 cftfsub(n, a); in ddct()
514 rftfsub(n, a); in ddct()
516 cftfsub(n, a); in ddct()
520 xr = a[0] - a[1]; in ddct()
521 a[0] += a[1]; in ddct()
523 a[j - 1] = a[j] - a[j + 1]; in ddct()
524 a[j] += a[j + 1]; in ddct()
526 a[n - 1] = xr; in ddct()
530 void dfct_nmf(picoos_int32 n, picoos_int32 *a) in dfct_nmf() argument
538 k = n - j; in dfct_nmf()
539 xr = a[j] + a[k]; in dfct_nmf()
540 a[j] -= a[k]; in dfct_nmf()
541 a[k] = xr; in dfct_nmf()
543 an = a[n]; in dfct_nmf()
545 ddct(m, 1, a); in dfct_nmf()
547 bitrv1(m, a); in dfct_nmf()
550 xi = a[m]; in dfct_nmf()
551 a[m] = a[0]; in dfct_nmf()
552 a[0] = an - xi; in dfct_nmf()
554 k = m-1; in dfct_nmf()
555 aj = a + 1; ak = a + k; amj = aj + m; amk = ak + m; in dfct_nmf()
556 for (j = 1; j < mh; j++, aj++, ak--, amj++, amk--) { in dfct_nmf()
563 *aj = xr - xi; in dfct_nmf()
573 xi = a[1]; in dfct_nmf()
574 a[1] = a[0]; in dfct_nmf()
575 a[0] = an + xi; in dfct_nmf()
576 a[n] = an - xi; in dfct_nmf()
578 bitrv1(n, a); in dfct_nmf()
587 mult two numbers which are guaranteed to be in the range -1..1
589 Also, shift bigger number more - lose less accuracy
594 x = x1>=0 ? x1>>15 : -((-x1)>>15); in picofftsg_mult_w_w()
595 y = y1>=0 ? y1>>14 : -((-y1)>>14); in picofftsg_mult_w_w()
604 x = x1>=0 ? x1>>15 : -((-x1)>>15); in picofftsg_mult_w_a()
605 y = y1>=0 ? y1>>14 : -((-y1)>>14); in picofftsg_mult_w_a()
609 static void cftfsub(picoos_int32 n, PICOFFTSG_FFTTYPE *a) in cftfsub() argument
614 cftmdl1(n, a); in cftfsub()
616 cftrec4(n, a); in cftfsub()
618 cftleaf(n, 1, a); in cftfsub()
620 cftfx41(n, a); in cftfsub()
622 bitrv2(n, a); in cftfsub()
624 cftf161(a); in cftfsub()
625 bitrv216(a); in cftfsub()
627 cftf081(a); in cftfsub()
628 bitrv208(a); in cftfsub()
631 cftf040(a); in cftfsub()
633 cftx020(a); in cftfsub()
638 void cftbsub(picoos_int32 n, PICOFFTSG_FFTTYPE *a) in cftbsub() argument
642 cftb1st(n, a); in cftbsub()
644 cftrec4(n, a); in cftbsub()
646 cftleaf(n, 1, a); in cftbsub()
648 cftfx41(n, a); in cftbsub()
650 bitrv2conj(n, a); in cftbsub()
652 cftf161(a); in cftbsub()
653 bitrv216neg(a); in cftbsub()
655 cftf081(a); in cftbsub()
656 bitrv208neg(a); in cftbsub()
659 cftb040(a); in cftbsub()
661 cftx020(a); in cftbsub()
668 void bitrv2(picoos_int32 n, PICOFFTSG_FFTTYPE *a) in bitrv2() argument
684 xr = a[j]; in bitrv2()
685 xi = a[j + 1]; in bitrv2()
686 yr = a[k]; in bitrv2()
687 yi = a[k + 1]; in bitrv2()
688 a[j] = yr; in bitrv2()
689 a[j + 1] = yi; in bitrv2()
690 a[k] = xr; in bitrv2()
691 a[k + 1] = xi; in bitrv2()
694 xr = a[j1]; in bitrv2()
695 xi = a[j1 + 1]; in bitrv2()
696 yr = a[k1]; in bitrv2()
697 yi = a[k1 + 1]; in bitrv2()
698 a[j1] = yr; in bitrv2()
699 a[j1 + 1] = yi; in bitrv2()
700 a[k1] = xr; in bitrv2()
701 a[k1 + 1] = xi; in bitrv2()
703 k1 -= m; in bitrv2()
704 xr = a[j1]; in bitrv2()
705 xi = a[j1 + 1]; in bitrv2()
706 yr = a[k1]; in bitrv2()
707 yi = a[k1 + 1]; in bitrv2()
708 a[j1] = yr; in bitrv2()
709 a[j1 + 1] = yi; in bitrv2()
710 a[k1] = xr; in bitrv2()
711 a[k1 + 1] = xi; in bitrv2()
714 xr = a[j1]; in bitrv2()
715 xi = a[j1 + 1]; in bitrv2()
716 yr = a[k1]; in bitrv2()
717 yi = a[k1 + 1]; in bitrv2()
718 a[j1] = yr; in bitrv2()
719 a[j1 + 1] = yi; in bitrv2()
720 a[k1] = xr; in bitrv2()
721 a[k1 + 1] = xi; in bitrv2()
724 xr = a[j1]; in bitrv2()
725 xi = a[j1 + 1]; in bitrv2()
726 yr = a[k1]; in bitrv2()
727 yi = a[k1 + 1]; in bitrv2()
728 a[j1] = yr; in bitrv2()
729 a[j1 + 1] = yi; in bitrv2()
730 a[k1] = xr; in bitrv2()
731 a[k1 + 1] = xi; in bitrv2()
732 j1 -= m; in bitrv2()
733 k1 -= m2; in bitrv2()
734 xr = a[j1]; in bitrv2()
735 xi = a[j1 + 1]; in bitrv2()
736 yr = a[k1]; in bitrv2()
737 yi = a[k1 + 1]; in bitrv2()
738 a[j1] = yr; in bitrv2()
739 a[j1 + 1] = yi; in bitrv2()
740 a[k1] = xr; in bitrv2()
741 a[k1 + 1] = xi; in bitrv2()
742 j1 -= m; in bitrv2()
744 xr = a[j1]; in bitrv2()
745 xi = a[j1 + 1]; in bitrv2()
746 yr = a[k1]; in bitrv2()
747 yi = a[k1 + 1]; in bitrv2()
748 a[j1] = yr; in bitrv2()
749 a[j1 + 1] = yi; in bitrv2()
750 a[k1] = xr; in bitrv2()
751 a[k1 + 1] = xi; in bitrv2()
752 j1 -= m; in bitrv2()
753 k1 -= m2; in bitrv2()
754 xr = a[j1]; in bitrv2()
755 xi = a[j1 + 1]; in bitrv2()
756 yr = a[k1]; in bitrv2()
757 yi = a[k1 + 1]; in bitrv2()
758 a[j1] = yr; in bitrv2()
759 a[j1 + 1] = yi; in bitrv2()
760 a[k1] = xr; in bitrv2()
761 a[k1 + 1] = xi; in bitrv2()
764 xr = a[j1]; in bitrv2()
765 xi = a[j1 + 1]; in bitrv2()
766 yr = a[k1]; in bitrv2()
767 yi = a[k1 + 1]; in bitrv2()
768 a[j1] = yr; in bitrv2()
769 a[j1 + 1] = yi; in bitrv2()
770 a[k1] = xr; in bitrv2()
771 a[k1 + 1] = xi; in bitrv2()
774 xr = a[j1]; in bitrv2()
775 xi = a[j1 + 1]; in bitrv2()
776 yr = a[k1]; in bitrv2()
777 yi = a[k1 + 1]; in bitrv2()
778 a[j1] = yr; in bitrv2()
779 a[j1 + 1] = yi; in bitrv2()
780 a[k1] = xr; in bitrv2()
781 a[k1 + 1] = xi; in bitrv2()
783 k1 -= m; in bitrv2()
784 xr = a[j1]; in bitrv2()
785 xi = a[j1 + 1]; in bitrv2()
786 yr = a[k1]; in bitrv2()
787 yi = a[k1 + 1]; in bitrv2()
788 a[j1] = yr; in bitrv2()
789 a[j1 + 1] = yi; in bitrv2()
790 a[k1] = xr; in bitrv2()
791 a[k1 + 1] = xi; in bitrv2()
794 xr = a[j1]; in bitrv2()
795 xi = a[j1 + 1]; in bitrv2()
796 yr = a[k1]; in bitrv2()
797 yi = a[k1 + 1]; in bitrv2()
798 a[j1] = yr; in bitrv2()
799 a[j1 + 1] = yi; in bitrv2()
800 a[k1] = xr; in bitrv2()
801 a[k1 + 1] = xi; in bitrv2()
802 j1 -= nh; in bitrv2()
803 k1 -= 2; in bitrv2()
804 xr = a[j1]; in bitrv2()
805 xi = a[j1 + 1]; in bitrv2()
806 yr = a[k1]; in bitrv2()
807 yi = a[k1 + 1]; in bitrv2()
808 a[j1] = yr; in bitrv2()
809 a[j1 + 1] = yi; in bitrv2()
810 a[k1] = xr; in bitrv2()
811 a[k1 + 1] = xi; in bitrv2()
812 j1 -= m; in bitrv2()
813 k1 -= m2; in bitrv2()
814 xr = a[j1]; in bitrv2()
815 xi = a[j1 + 1]; in bitrv2()
816 yr = a[k1]; in bitrv2()
817 yi = a[k1 + 1]; in bitrv2()
818 a[j1] = yr; in bitrv2()
819 a[j1 + 1] = yi; in bitrv2()
820 a[k1] = xr; in bitrv2()
821 a[k1 + 1] = xi; in bitrv2()
822 j1 -= m; in bitrv2()
824 xr = a[j1]; in bitrv2()
825 xi = a[j1 + 1]; in bitrv2()
826 yr = a[k1]; in bitrv2()
827 yi = a[k1 + 1]; in bitrv2()
828 a[j1] = yr; in bitrv2()
829 a[j1 + 1] = yi; in bitrv2()
830 a[k1] = xr; in bitrv2()
831 a[k1 + 1] = xi; in bitrv2()
832 j1 -= m; in bitrv2()
833 k1 -= m2; in bitrv2()
834 xr = a[j1]; in bitrv2()
835 xi = a[j1 + 1]; in bitrv2()
836 yr = a[k1]; in bitrv2()
837 yi = a[k1 + 1]; in bitrv2()
838 a[j1] = yr; in bitrv2()
839 a[j1 + 1] = yi; in bitrv2()
840 a[k1] = xr; in bitrv2()
841 a[k1 + 1] = xi; in bitrv2()
849 xr = a[j1]; in bitrv2()
850 xi = a[j1 + 1]; in bitrv2()
851 yr = a[k1]; in bitrv2()
852 yi = a[k1 + 1]; in bitrv2()
853 a[j1] = yr; in bitrv2()
854 a[j1 + 1] = yi; in bitrv2()
855 a[k1] = xr; in bitrv2()
856 a[k1 + 1] = xi; in bitrv2()
859 xr = a[j1]; in bitrv2()
860 xi = a[j1 + 1]; in bitrv2()
861 yr = a[k1]; in bitrv2()
862 yi = a[k1 + 1]; in bitrv2()
863 a[j1] = yr; in bitrv2()
864 a[j1 + 1] = yi; in bitrv2()
865 a[k1] = xr; in bitrv2()
866 a[k1 + 1] = xi; in bitrv2()
868 k1 -= m; in bitrv2()
869 xr = a[j1]; in bitrv2()
870 xi = a[j1 + 1]; in bitrv2()
871 yr = a[k1]; in bitrv2()
872 yi = a[k1 + 1]; in bitrv2()
873 a[j1] = yr; in bitrv2()
874 a[j1 + 1] = yi; in bitrv2()
875 a[k1] = xr; in bitrv2()
876 a[k1 + 1] = xi; in bitrv2()
877 j1 -= 2; in bitrv2()
878 k1 -= nh; in bitrv2()
879 xr = a[j1]; in bitrv2()
880 xi = a[j1 + 1]; in bitrv2()
881 yr = a[k1]; in bitrv2()
882 yi = a[k1 + 1]; in bitrv2()
883 a[j1] = yr; in bitrv2()
884 a[j1 + 1] = yi; in bitrv2()
885 a[k1] = xr; in bitrv2()
886 a[k1 + 1] = xi; in bitrv2()
889 xr = a[j1]; in bitrv2()
890 xi = a[j1 + 1]; in bitrv2()
891 yr = a[k1]; in bitrv2()
892 yi = a[k1 + 1]; in bitrv2()
893 a[j1] = yr; in bitrv2()
894 a[j1 + 1] = yi; in bitrv2()
895 a[k1] = xr; in bitrv2()
896 a[k1 + 1] = xi; in bitrv2()
897 j1 -= nh - m; in bitrv2()
898 k1 += m2 - 2; in bitrv2()
899 xr = a[j1]; in bitrv2()
900 xi = a[j1 + 1]; in bitrv2()
901 yr = a[k1]; in bitrv2()
902 yi = a[k1 + 1]; in bitrv2()
903 a[j1] = yr; in bitrv2()
904 a[j1 + 1] = yi; in bitrv2()
905 a[k1] = xr; in bitrv2()
906 a[k1 + 1] = xi; in bitrv2()
916 xr = a[j]; in bitrv2()
917 xi = a[j + 1]; in bitrv2()
918 yr = a[k]; in bitrv2()
919 yi = a[k + 1]; in bitrv2()
920 a[j] = yr; in bitrv2()
921 a[j + 1] = yi; in bitrv2()
922 a[k] = xr; in bitrv2()
923 a[k + 1] = xi; in bitrv2()
926 xr = a[j1]; in bitrv2()
927 xi = a[j1 + 1]; in bitrv2()
928 yr = a[k1]; in bitrv2()
929 yi = a[k1 + 1]; in bitrv2()
930 a[j1] = yr; in bitrv2()
931 a[j1 + 1] = yi; in bitrv2()
932 a[k1] = xr; in bitrv2()
933 a[k1 + 1] = xi; in bitrv2()
936 xr = a[j1]; in bitrv2()
937 xi = a[j1 + 1]; in bitrv2()
938 yr = a[k1]; in bitrv2()
939 yi = a[k1 + 1]; in bitrv2()
940 a[j1] = yr; in bitrv2()
941 a[j1 + 1] = yi; in bitrv2()
942 a[k1] = xr; in bitrv2()
943 a[k1 + 1] = xi; in bitrv2()
944 j1 -= m; in bitrv2()
945 k1 -= m; in bitrv2()
946 xr = a[j1]; in bitrv2()
947 xi = a[j1 + 1]; in bitrv2()
948 yr = a[k1]; in bitrv2()
949 yi = a[k1 + 1]; in bitrv2()
950 a[j1] = yr; in bitrv2()
951 a[j1 + 1] = yi; in bitrv2()
952 a[k1] = xr; in bitrv2()
953 a[k1 + 1] = xi; in bitrv2()
956 xr = a[j1]; in bitrv2()
957 xi = a[j1 + 1]; in bitrv2()
958 yr = a[k1]; in bitrv2()
959 yi = a[k1 + 1]; in bitrv2()
960 a[j1] = yr; in bitrv2()
961 a[j1 + 1] = yi; in bitrv2()
962 a[k1] = xr; in bitrv2()
963 a[k1 + 1] = xi; in bitrv2()
966 xr = a[j1]; in bitrv2()
967 xi = a[j1 + 1]; in bitrv2()
968 yr = a[k1]; in bitrv2()
969 yi = a[k1 + 1]; in bitrv2()
970 a[j1] = yr; in bitrv2()
971 a[j1 + 1] = yi; in bitrv2()
972 a[k1] = xr; in bitrv2()
973 a[k1 + 1] = xi; in bitrv2()
974 j1 -= nh; in bitrv2()
975 k1 -= 2; in bitrv2()
976 xr = a[j1]; in bitrv2()
977 xi = a[j1 + 1]; in bitrv2()
978 yr = a[k1]; in bitrv2()
979 yi = a[k1 + 1]; in bitrv2()
980 a[j1] = yr; in bitrv2()
981 a[j1 + 1] = yi; in bitrv2()
982 a[k1] = xr; in bitrv2()
983 a[k1 + 1] = xi; in bitrv2()
984 j1 -= m; in bitrv2()
985 k1 -= m; in bitrv2()
986 xr = a[j1]; in bitrv2()
987 xi = a[j1 + 1]; in bitrv2()
988 yr = a[k1]; in bitrv2()
989 yi = a[k1 + 1]; in bitrv2()
990 a[j1] = yr; in bitrv2()
991 a[j1 + 1] = yi; in bitrv2()
992 a[k1] = xr; in bitrv2()
993 a[k1 + 1] = xi; in bitrv2()
1001 xr = a[j1]; in bitrv2()
1002 xi = a[j1 + 1]; in bitrv2()
1003 yr = a[k1]; in bitrv2()
1004 yi = a[k1 + 1]; in bitrv2()
1005 a[j1] = yr; in bitrv2()
1006 a[j1 + 1] = yi; in bitrv2()
1007 a[k1] = xr; in bitrv2()
1008 a[k1 + 1] = xi; in bitrv2()
1011 xr = a[j1]; in bitrv2()
1012 xi = a[j1 + 1]; in bitrv2()
1013 yr = a[k1]; in bitrv2()
1014 yi = a[k1 + 1]; in bitrv2()
1015 a[j1] = yr; in bitrv2()
1016 a[j1 + 1] = yi; in bitrv2()
1017 a[k1] = xr; in bitrv2()
1018 a[k1 + 1] = xi; in bitrv2()
1027 void bitrv2conj(picoos_int32 n, PICOFFTSG_FFTTYPE *a) in bitrv2conj() argument
1044 xr = a[j]; in bitrv2conj()
1045 xi = -a[j + 1]; in bitrv2conj()
1046 yr = a[k]; in bitrv2conj()
1047 yi = -a[k + 1]; in bitrv2conj()
1048 a[j] = yr; in bitrv2conj()
1049 a[j + 1] = yi; in bitrv2conj()
1050 a[k] = xr; in bitrv2conj()
1051 a[k + 1] = xi; in bitrv2conj()
1054 xr = a[j1]; in bitrv2conj()
1055 xi = -a[j1 + 1]; in bitrv2conj()
1056 yr = a[k1]; in bitrv2conj()
1057 yi = -a[k1 + 1]; in bitrv2conj()
1058 a[j1] = yr; in bitrv2conj()
1059 a[j1 + 1] = yi; in bitrv2conj()
1060 a[k1] = xr; in bitrv2conj()
1061 a[k1 + 1] = xi; in bitrv2conj()
1063 k1 -= m; in bitrv2conj()
1064 xr = a[j1]; in bitrv2conj()
1065 xi = -a[j1 + 1]; in bitrv2conj()
1066 yr = a[k1]; in bitrv2conj()
1067 yi = -a[k1 + 1]; in bitrv2conj()
1068 a[j1] = yr; in bitrv2conj()
1069 a[j1 + 1] = yi; in bitrv2conj()
1070 a[k1] = xr; in bitrv2conj()
1071 a[k1 + 1] = xi; in bitrv2conj()
1074 xr = a[j1]; in bitrv2conj()
1075 xi = -a[j1 + 1]; in bitrv2conj()
1076 yr = a[k1]; in bitrv2conj()
1077 yi = -a[k1 + 1]; in bitrv2conj()
1078 a[j1] = yr; in bitrv2conj()
1079 a[j1 + 1] = yi; in bitrv2conj()
1080 a[k1] = xr; in bitrv2conj()
1081 a[k1 + 1] = xi; in bitrv2conj()
1084 xr = a[j1]; in bitrv2conj()
1085 xi = -a[j1 + 1]; in bitrv2conj()
1086 yr = a[k1]; in bitrv2conj()
1087 yi = -a[k1 + 1]; in bitrv2conj()
1088 a[j1] = yr; in bitrv2conj()
1089 a[j1 + 1] = yi; in bitrv2conj()
1090 a[k1] = xr; in bitrv2conj()
1091 a[k1 + 1] = xi; in bitrv2conj()
1092 j1 -= m; in bitrv2conj()
1093 k1 -= m2; in bitrv2conj()
1094 xr = a[j1]; in bitrv2conj()
1095 xi = -a[j1 + 1]; in bitrv2conj()
1096 yr = a[k1]; in bitrv2conj()
1097 yi = -a[k1 + 1]; in bitrv2conj()
1098 a[j1] = yr; in bitrv2conj()
1099 a[j1 + 1] = yi; in bitrv2conj()
1100 a[k1] = xr; in bitrv2conj()
1101 a[k1 + 1] = xi; in bitrv2conj()
1102 j1 -= m; in bitrv2conj()
1104 xr = a[j1]; in bitrv2conj()
1105 xi = -a[j1 + 1]; in bitrv2conj()
1106 yr = a[k1]; in bitrv2conj()
1107 yi = -a[k1 + 1]; in bitrv2conj()
1108 a[j1] = yr; in bitrv2conj()
1109 a[j1 + 1] = yi; in bitrv2conj()
1110 a[k1] = xr; in bitrv2conj()
1111 a[k1 + 1] = xi; in bitrv2conj()
1112 j1 -= m; in bitrv2conj()
1113 k1 -= m2; in bitrv2conj()
1114 xr = a[j1]; in bitrv2conj()
1115 xi = -a[j1 + 1]; in bitrv2conj()
1116 yr = a[k1]; in bitrv2conj()
1117 yi = -a[k1 + 1]; in bitrv2conj()
1118 a[j1] = yr; in bitrv2conj()
1119 a[j1 + 1] = yi; in bitrv2conj()
1120 a[k1] = xr; in bitrv2conj()
1121 a[k1 + 1] = xi; in bitrv2conj()
1124 xr = a[j1]; in bitrv2conj()
1125 xi = -a[j1 + 1]; in bitrv2conj()
1126 yr = a[k1]; in bitrv2conj()
1127 yi = -a[k1 + 1]; in bitrv2conj()
1128 a[j1] = yr; in bitrv2conj()
1129 a[j1 + 1] = yi; in bitrv2conj()
1130 a[k1] = xr; in bitrv2conj()
1131 a[k1 + 1] = xi; in bitrv2conj()
1134 xr = a[j1]; in bitrv2conj()
1135 xi = -a[j1 + 1]; in bitrv2conj()
1136 yr = a[k1]; in bitrv2conj()
1137 yi = -a[k1 + 1]; in bitrv2conj()
1138 a[j1] = yr; in bitrv2conj()
1139 a[j1 + 1] = yi; in bitrv2conj()
1140 a[k1] = xr; in bitrv2conj()
1141 a[k1 + 1] = xi; in bitrv2conj()
1143 k1 -= m; in bitrv2conj()
1144 xr = a[j1]; in bitrv2conj()
1145 xi = -a[j1 + 1]; in bitrv2conj()
1146 yr = a[k1]; in bitrv2conj()
1147 yi = -a[k1 + 1]; in bitrv2conj()
1148 a[j1] = yr; in bitrv2conj()
1149 a[j1 + 1] = yi; in bitrv2conj()
1150 a[k1] = xr; in bitrv2conj()
1151 a[k1 + 1] = xi; in bitrv2conj()
1154 xr = a[j1]; in bitrv2conj()
1155 xi = -a[j1 + 1]; in bitrv2conj()
1156 yr = a[k1]; in bitrv2conj()
1157 yi = -a[k1 + 1]; in bitrv2conj()
1158 a[j1] = yr; in bitrv2conj()
1159 a[j1 + 1] = yi; in bitrv2conj()
1160 a[k1] = xr; in bitrv2conj()
1161 a[k1 + 1] = xi; in bitrv2conj()
1162 j1 -= nh; in bitrv2conj()
1163 k1 -= 2; in bitrv2conj()
1164 xr = a[j1]; in bitrv2conj()
1165 xi = -a[j1 + 1]; in bitrv2conj()
1166 yr = a[k1]; in bitrv2conj()
1167 yi = -a[k1 + 1]; in bitrv2conj()
1168 a[j1] = yr; in bitrv2conj()
1169 a[j1 + 1] = yi; in bitrv2conj()
1170 a[k1] = xr; in bitrv2conj()
1171 a[k1 + 1] = xi; in bitrv2conj()
1172 j1 -= m; in bitrv2conj()
1173 k1 -= m2; in bitrv2conj()
1174 xr = a[j1]; in bitrv2conj()
1175 xi = -a[j1 + 1]; in bitrv2conj()
1176 yr = a[k1]; in bitrv2conj()
1177 yi = -a[k1 + 1]; in bitrv2conj()
1178 a[j1] = yr; in bitrv2conj()
1179 a[j1 + 1] = yi; in bitrv2conj()
1180 a[k1] = xr; in bitrv2conj()
1181 a[k1 + 1] = xi; in bitrv2conj()
1182 j1 -= m; in bitrv2conj()
1184 xr = a[j1]; in bitrv2conj()
1185 xi = -a[j1 + 1]; in bitrv2conj()
1186 yr = a[k1]; in bitrv2conj()
1187 yi = -a[k1 + 1]; in bitrv2conj()
1188 a[j1] = yr; in bitrv2conj()
1189 a[j1 + 1] = yi; in bitrv2conj()
1190 a[k1] = xr; in bitrv2conj()
1191 a[k1 + 1] = xi; in bitrv2conj()
1192 j1 -= m; in bitrv2conj()
1193 k1 -= m2; in bitrv2conj()
1194 xr = a[j1]; in bitrv2conj()
1195 xi = -a[j1 + 1]; in bitrv2conj()
1196 yr = a[k1]; in bitrv2conj()
1197 yi = -a[k1 + 1]; in bitrv2conj()
1198 a[j1] = yr; in bitrv2conj()
1199 a[j1 + 1] = yi; in bitrv2conj()
1200 a[k1] = xr; in bitrv2conj()
1201 a[k1 + 1] = xi; in bitrv2conj()
1209 a[j1 - 1] = -a[j1 - 1]; in bitrv2conj()
1210 xr = a[j1]; in bitrv2conj()
1211 xi = -a[j1 + 1]; in bitrv2conj()
1212 yr = a[k1]; in bitrv2conj()
1213 yi = -a[k1 + 1]; in bitrv2conj()
1214 a[j1] = yr; in bitrv2conj()
1215 a[j1 + 1] = yi; in bitrv2conj()
1216 a[k1] = xr; in bitrv2conj()
1217 a[k1 + 1] = xi; in bitrv2conj()
1218 a[k1 + 3] = -a[k1 + 3]; in bitrv2conj()
1221 xr = a[j1]; in bitrv2conj()
1222 xi = -a[j1 + 1]; in bitrv2conj()
1223 yr = a[k1]; in bitrv2conj()
1224 yi = -a[k1 + 1]; in bitrv2conj()
1225 a[j1] = yr; in bitrv2conj()
1226 a[j1 + 1] = yi; in bitrv2conj()
1227 a[k1] = xr; in bitrv2conj()
1228 a[k1 + 1] = xi; in bitrv2conj()
1230 k1 -= m; in bitrv2conj()
1231 xr = a[j1]; in bitrv2conj()
1232 xi = -a[j1 + 1]; in bitrv2conj()
1233 yr = a[k1]; in bitrv2conj()
1234 yi = -a[k1 + 1]; in bitrv2conj()
1235 a[j1] = yr; in bitrv2conj()
1236 a[j1 + 1] = yi; in bitrv2conj()
1237 a[k1] = xr; in bitrv2conj()
1238 a[k1 + 1] = xi; in bitrv2conj()
1239 j1 -= 2; in bitrv2conj()
1240 k1 -= nh; in bitrv2conj()
1241 xr = a[j1]; in bitrv2conj()
1242 xi = -a[j1 + 1]; in bitrv2conj()
1243 yr = a[k1]; in bitrv2conj()
1244 yi = -a[k1 + 1]; in bitrv2conj()
1245 a[j1] = yr; in bitrv2conj()
1246 a[j1 + 1] = yi; in bitrv2conj()
1247 a[k1] = xr; in bitrv2conj()
1248 a[k1 + 1] = xi; in bitrv2conj()
1251 xr = a[j1]; in bitrv2conj()
1252 xi = -a[j1 + 1]; in bitrv2conj()
1253 yr = a[k1]; in bitrv2conj()
1254 yi = -a[k1 + 1]; in bitrv2conj()
1255 a[j1] = yr; in bitrv2conj()
1256 a[j1 + 1] = yi; in bitrv2conj()
1257 a[k1] = xr; in bitrv2conj()
1258 a[k1 + 1] = xi; in bitrv2conj()
1259 j1 -= nh - m; in bitrv2conj()
1260 k1 += m2 - 2; in bitrv2conj()
1261 a[j1 - 1] = -a[j1 - 1]; in bitrv2conj()
1262 xr = a[j1]; in bitrv2conj()
1263 xi = -a[j1 + 1]; in bitrv2conj()
1264 yr = a[k1]; in bitrv2conj()
1265 yi = -a[k1 + 1]; in bitrv2conj()
1266 a[j1] = yr; in bitrv2conj()
1267 a[j1 + 1] = yi; in bitrv2conj()
1268 a[k1] = xr; in bitrv2conj()
1269 a[k1 + 1] = xi; in bitrv2conj()
1270 a[k1 + 3] = -a[k1 + 3]; in bitrv2conj()
1280 xr = a[j]; in bitrv2conj()
1281 xi = -a[j + 1]; in bitrv2conj()
1282 yr = a[k]; in bitrv2conj()
1283 yi = -a[k + 1]; in bitrv2conj()
1284 a[j] = yr; in bitrv2conj()
1285 a[j + 1] = yi; in bitrv2conj()
1286 a[k] = xr; in bitrv2conj()
1287 a[k + 1] = xi; in bitrv2conj()
1290 xr = a[j1]; in bitrv2conj()
1291 xi = -a[j1 + 1]; in bitrv2conj()
1292 yr = a[k1]; in bitrv2conj()
1293 yi = -a[k1 + 1]; in bitrv2conj()
1294 a[j1] = yr; in bitrv2conj()
1295 a[j1 + 1] = yi; in bitrv2conj()
1296 a[k1] = xr; in bitrv2conj()
1297 a[k1 + 1] = xi; in bitrv2conj()
1300 xr = a[j1]; in bitrv2conj()
1301 xi = -a[j1 + 1]; in bitrv2conj()
1302 yr = a[k1]; in bitrv2conj()
1303 yi = -a[k1 + 1]; in bitrv2conj()
1304 a[j1] = yr; in bitrv2conj()
1305 a[j1 + 1] = yi; in bitrv2conj()
1306 a[k1] = xr; in bitrv2conj()
1307 a[k1 + 1] = xi; in bitrv2conj()
1308 j1 -= m; in bitrv2conj()
1309 k1 -= m; in bitrv2conj()
1310 xr = a[j1]; in bitrv2conj()
1311 xi = -a[j1 + 1]; in bitrv2conj()
1312 yr = a[k1]; in bitrv2conj()
1313 yi = -a[k1 + 1]; in bitrv2conj()
1314 a[j1] = yr; in bitrv2conj()
1315 a[j1 + 1] = yi; in bitrv2conj()
1316 a[k1] = xr; in bitrv2conj()
1317 a[k1 + 1] = xi; in bitrv2conj()
1320 xr = a[j1]; in bitrv2conj()
1321 xi = -a[j1 + 1]; in bitrv2conj()
1322 yr = a[k1]; in bitrv2conj()
1323 yi = -a[k1 + 1]; in bitrv2conj()
1324 a[j1] = yr; in bitrv2conj()
1325 a[j1 + 1] = yi; in bitrv2conj()
1326 a[k1] = xr; in bitrv2conj()
1327 a[k1 + 1] = xi; in bitrv2conj()
1330 xr = a[j1]; in bitrv2conj()
1331 xi = -a[j1 + 1]; in bitrv2conj()
1332 yr = a[k1]; in bitrv2conj()
1333 yi = -a[k1 + 1]; in bitrv2conj()
1334 a[j1] = yr; in bitrv2conj()
1335 a[j1 + 1] = yi; in bitrv2conj()
1336 a[k1] = xr; in bitrv2conj()
1337 a[k1 + 1] = xi; in bitrv2conj()
1338 j1 -= nh; in bitrv2conj()
1339 k1 -= 2; in bitrv2conj()
1340 xr = a[j1]; in bitrv2conj()
1341 xi = -a[j1 + 1]; in bitrv2conj()
1342 yr = a[k1]; in bitrv2conj()
1343 yi = -a[k1 + 1]; in bitrv2conj()
1344 a[j1] = yr; in bitrv2conj()
1345 a[j1 + 1] = yi; in bitrv2conj()
1346 a[k1] = xr; in bitrv2conj()
1347 a[k1 + 1] = xi; in bitrv2conj()
1348 j1 -= m; in bitrv2conj()
1349 k1 -= m; in bitrv2conj()
1350 xr = a[j1]; in bitrv2conj()
1351 xi = -a[j1 + 1]; in bitrv2conj()
1352 yr = a[k1]; in bitrv2conj()
1353 yi = -a[k1 + 1]; in bitrv2conj()
1354 a[j1] = yr; in bitrv2conj()
1355 a[j1 + 1] = yi; in bitrv2conj()
1356 a[k1] = xr; in bitrv2conj()
1357 a[k1 + 1] = xi; in bitrv2conj()
1365 a[j1 - 1] = -a[j1 - 1]; in bitrv2conj()
1366 xr = a[j1]; in bitrv2conj()
1367 xi = -a[j1 + 1]; in bitrv2conj()
1368 yr = a[k1]; in bitrv2conj()
1369 yi = -a[k1 + 1]; in bitrv2conj()
1370 a[j1] = yr; in bitrv2conj()
1371 a[j1 + 1] = yi; in bitrv2conj()
1372 a[k1] = xr; in bitrv2conj()
1373 a[k1 + 1] = xi; in bitrv2conj()
1374 a[k1 + 3] = -a[k1 + 3]; in bitrv2conj()
1377 a[j1 - 1] = -a[j1 - 1]; in bitrv2conj()
1378 xr = a[j1]; in bitrv2conj()
1379 xi = -a[j1 + 1]; in bitrv2conj()
1380 yr = a[k1]; in bitrv2conj()
1381 yi = -a[k1 + 1]; in bitrv2conj()
1382 a[j1] = yr; in bitrv2conj()
1383 a[j1 + 1] = yi; in bitrv2conj()
1384 a[k1] = xr; in bitrv2conj()
1385 a[k1 + 1] = xi; in bitrv2conj()
1386 a[k1 + 3] = -a[k1 + 3]; in bitrv2conj()
1395 void bitrv216(PICOFFTSG_FFTTYPE *a) in bitrv216() argument
1401 x1r = a[2]; in bitrv216()
1402 x1i = a[3]; in bitrv216()
1403 x2r = a[4]; in bitrv216()
1404 x2i = a[5]; in bitrv216()
1405 x3r = a[6]; in bitrv216()
1406 x3i = a[7]; in bitrv216()
1407 x4r = a[8]; in bitrv216()
1408 x4i = a[9]; in bitrv216()
1409 x5r = a[10]; in bitrv216()
1410 x5i = a[11]; in bitrv216()
1411 x7r = a[14]; in bitrv216()
1412 x7i = a[15]; in bitrv216()
1413 x8r = a[16]; in bitrv216()
1414 x8i = a[17]; in bitrv216()
1415 x10r = a[20]; in bitrv216()
1416 x10i = a[21]; in bitrv216()
1417 x11r = a[22]; in bitrv216()
1418 x11i = a[23]; in bitrv216()
1419 x12r = a[24]; in bitrv216()
1420 x12i = a[25]; in bitrv216()
1421 x13r = a[26]; in bitrv216()
1422 x13i = a[27]; in bitrv216()
1423 x14r = a[28]; in bitrv216()
1424 x14i = a[29]; in bitrv216()
1425 a[2] = x8r; in bitrv216()
1426 a[3] = x8i; in bitrv216()
1427 a[4] = x4r; in bitrv216()
1428 a[5] = x4i; in bitrv216()
1429 a[6] = x12r; in bitrv216()
1430 a[7] = x12i; in bitrv216()
1431 a[8] = x2r; in bitrv216()
1432 a[9] = x2i; in bitrv216()
1433 a[10] = x10r; in bitrv216()
1434 a[11] = x10i; in bitrv216()
1435 a[14] = x14r; in bitrv216()
1436 a[15] = x14i; in bitrv216()
1437 a[16] = x1r; in bitrv216()
1438 a[17] = x1i; in bitrv216()
1439 a[20] = x5r; in bitrv216()
1440 a[21] = x5i; in bitrv216()
1441 a[22] = x13r; in bitrv216()
1442 a[23] = x13i; in bitrv216()
1443 a[24] = x3r; in bitrv216()
1444 a[25] = x3i; in bitrv216()
1445 a[26] = x11r; in bitrv216()
1446 a[27] = x11i; in bitrv216()
1447 a[28] = x7r; in bitrv216()
1448 a[29] = x7i; in bitrv216()
1452 void bitrv216neg(PICOFFTSG_FFTTYPE *a) in bitrv216neg() argument
1459 x1r = a[2]; in bitrv216neg()
1460 x1i = a[3]; in bitrv216neg()
1461 x2r = a[4]; in bitrv216neg()
1462 x2i = a[5]; in bitrv216neg()
1463 x3r = a[6]; in bitrv216neg()
1464 x3i = a[7]; in bitrv216neg()
1465 x4r = a[8]; in bitrv216neg()
1466 x4i = a[9]; in bitrv216neg()
1467 x5r = a[10]; in bitrv216neg()
1468 x5i = a[11]; in bitrv216neg()
1469 x6r = a[12]; in bitrv216neg()
1470 x6i = a[13]; in bitrv216neg()
1471 x7r = a[14]; in bitrv216neg()
1472 x7i = a[15]; in bitrv216neg()
1473 x8r = a[16]; in bitrv216neg()
1474 x8i = a[17]; in bitrv216neg()
1475 x9r = a[18]; in bitrv216neg()
1476 x9i = a[19]; in bitrv216neg()
1477 x10r = a[20]; in bitrv216neg()
1478 x10i = a[21]; in bitrv216neg()
1479 x11r = a[22]; in bitrv216neg()
1480 x11i = a[23]; in bitrv216neg()
1481 x12r = a[24]; in bitrv216neg()
1482 x12i = a[25]; in bitrv216neg()
1483 x13r = a[26]; in bitrv216neg()
1484 x13i = a[27]; in bitrv216neg()
1485 x14r = a[28]; in bitrv216neg()
1486 x14i = a[29]; in bitrv216neg()
1487 x15r = a[30]; in bitrv216neg()
1488 x15i = a[31]; in bitrv216neg()
1489 a[2] = x15r; in bitrv216neg()
1490 a[3] = x15i; in bitrv216neg()
1491 a[4] = x7r; in bitrv216neg()
1492 a[5] = x7i; in bitrv216neg()
1493 a[6] = x11r; in bitrv216neg()
1494 a[7] = x11i; in bitrv216neg()
1495 a[8] = x3r; in bitrv216neg()
1496 a[9] = x3i; in bitrv216neg()
1497 a[10] = x13r; in bitrv216neg()
1498 a[11] = x13i; in bitrv216neg()
1499 a[12] = x5r; in bitrv216neg()
1500 a[13] = x5i; in bitrv216neg()
1501 a[14] = x9r; in bitrv216neg()
1502 a[15] = x9i; in bitrv216neg()
1503 a[16] = x1r; in bitrv216neg()
1504 a[17] = x1i; in bitrv216neg()
1505 a[18] = x14r; in bitrv216neg()
1506 a[19] = x14i; in bitrv216neg()
1507 a[20] = x6r; in bitrv216neg()
1508 a[21] = x6i; in bitrv216neg()
1509 a[22] = x10r; in bitrv216neg()
1510 a[23] = x10i; in bitrv216neg()
1511 a[24] = x2r; in bitrv216neg()
1512 a[25] = x2i; in bitrv216neg()
1513 a[26] = x12r; in bitrv216neg()
1514 a[27] = x12i; in bitrv216neg()
1515 a[28] = x4r; in bitrv216neg()
1516 a[29] = x4i; in bitrv216neg()
1517 a[30] = x8r; in bitrv216neg()
1518 a[31] = x8i; in bitrv216neg()
1522 void bitrv208(PICOFFTSG_FFTTYPE *a) in bitrv208() argument
1526 x1r = a[2]; in bitrv208()
1527 x1i = a[3]; in bitrv208()
1528 x3r = a[6]; in bitrv208()
1529 x3i = a[7]; in bitrv208()
1530 x4r = a[8]; in bitrv208()
1531 x4i = a[9]; in bitrv208()
1532 x6r = a[12]; in bitrv208()
1533 x6i = a[13]; in bitrv208()
1534 a[2] = x4r; in bitrv208()
1535 a[3] = x4i; in bitrv208()
1536 a[6] = x6r; in bitrv208()
1537 a[7] = x6i; in bitrv208()
1538 a[8] = x1r; in bitrv208()
1539 a[9] = x1i; in bitrv208()
1540 a[12] = x3r; in bitrv208()
1541 a[13] = x3i; in bitrv208()
1545 void bitrv208neg(PICOFFTSG_FFTTYPE *a) in bitrv208neg() argument
1550 x1r = a[2]; in bitrv208neg()
1551 x1i = a[3]; in bitrv208neg()
1552 x2r = a[4]; in bitrv208neg()
1553 x2i = a[5]; in bitrv208neg()
1554 x3r = a[6]; in bitrv208neg()
1555 x3i = a[7]; in bitrv208neg()
1556 x4r = a[8]; in bitrv208neg()
1557 x4i = a[9]; in bitrv208neg()
1558 x5r = a[10]; in bitrv208neg()
1559 x5i = a[11]; in bitrv208neg()
1560 x6r = a[12]; in bitrv208neg()
1561 x6i = a[13]; in bitrv208neg()
1562 x7r = a[14]; in bitrv208neg()
1563 x7i = a[15]; in bitrv208neg()
1564 a[2] = x7r; in bitrv208neg()
1565 a[3] = x7i; in bitrv208neg()
1566 a[4] = x3r; in bitrv208neg()
1567 a[5] = x3i; in bitrv208neg()
1568 a[6] = x5r; in bitrv208neg()
1569 a[7] = x5i; in bitrv208neg()
1570 a[8] = x1r; in bitrv208neg()
1571 a[9] = x1i; in bitrv208neg()
1572 a[10] = x6r; in bitrv208neg()
1573 a[11] = x6i; in bitrv208neg()
1574 a[12] = x2r; in bitrv208neg()
1575 a[13] = x2i; in bitrv208neg()
1576 a[14] = x4r; in bitrv208neg()
1577 a[15] = x4i; in bitrv208neg()
1581 void bitrv1(picoos_int32 n, PICOFFTSG_FFTTYPE *a) in bitrv1() argument
1586 x = a[1]; in bitrv1()
1587 a[1] = a[nh]; in bitrv1()
1588 a[nh] = x; in bitrv1()
1596 x = a[j1]; in bitrv1()
1597 a[j1] = a[k1]; in bitrv1()
1598 a[k1] = x; in bitrv1()
1606 x = a[j]; in bitrv1()
1607 a[j] = a[k]; in bitrv1()
1608 a[k] = x; in bitrv1()
1611 x = a[j1]; in bitrv1()
1612 a[j1] = a[k1]; in bitrv1()
1613 a[k1] = x; in bitrv1()
1616 x = a[j1]; in bitrv1()
1617 a[j1] = a[k1]; in bitrv1()
1618 a[k1] = x; in bitrv1()
1619 j1 -= m; in bitrv1()
1620 k1 -= m; in bitrv1()
1621 x = a[j1]; in bitrv1()
1622 a[j1] = a[k1]; in bitrv1()
1623 a[k1] = x; in bitrv1()
1626 x = a[j1]; in bitrv1()
1627 a[j1] = a[k1]; in bitrv1()
1628 a[k1] = x; in bitrv1()
1631 x = a[j1]; in bitrv1()
1632 a[j1] = a[k1]; in bitrv1()
1633 a[k1] = x; in bitrv1()
1634 j1 -= nh; in bitrv1()
1635 k1--; in bitrv1()
1636 x = a[j1]; in bitrv1()
1637 a[j1] = a[k1]; in bitrv1()
1638 a[k1] = x; in bitrv1()
1639 j1 -= m; in bitrv1()
1640 k1 -= m; in bitrv1()
1641 x = a[j1]; in bitrv1()
1642 a[j1] = a[k1]; in bitrv1()
1643 a[k1] = x; in bitrv1()
1651 x = a[j1]; in bitrv1()
1652 a[j1] = a[k1]; in bitrv1()
1653 a[k1] = x; in bitrv1()
1656 x = a[j1]; in bitrv1()
1657 a[j1] = a[k1]; in bitrv1()
1658 a[k1] = x; in bitrv1()
1668 x = a[j]; in bitrv1()
1669 a[j] = a[k]; in bitrv1()
1670 a[k] = x; in bitrv1()
1673 x = a[j1]; in bitrv1()
1674 a[j1] = a[k1]; in bitrv1()
1675 a[k1] = x; in bitrv1()
1678 x = a[j1]; in bitrv1()
1679 a[j1] = a[k1]; in bitrv1()
1680 a[k1] = x; in bitrv1()
1681 j1 -= nh; in bitrv1()
1682 k1--; in bitrv1()
1683 x = a[j1]; in bitrv1()
1684 a[j1] = a[k1]; in bitrv1()
1685 a[k1] = x; in bitrv1()
1693 x = a[j1]; in bitrv1()
1694 a[j1] = a[k1]; in bitrv1()
1695 a[k1] = x; in bitrv1()
1705 void cftb1st(picoos_int32 n, PICOFFTSG_FFTTYPE *a) in cftb1st() argument
1717 x0r = a[0] + a[j2]; in cftb1st()
1718 x0i = -a[1] - a[j2 + 1]; in cftb1st()
1719 x1r = a[0] - a[j2]; in cftb1st()
1720 x1i = -a[1] + a[j2 + 1]; in cftb1st()
1721 x2r = a[j1] + a[j3]; in cftb1st()
1722 x2i = a[j1 + 1] + a[j3 + 1]; in cftb1st()
1723 x3r = a[j1] - a[j3]; in cftb1st()
1724 x3i = a[j1 + 1] - a[j3 + 1]; in cftb1st()
1725 a[0] = x0r + x2r; in cftb1st()
1726 a[1] = x0i - x2i; in cftb1st()
1727 a[j1] = x0r - x2r; in cftb1st()
1728 a[j1 + 1] = x0i + x2i; in cftb1st()
1729 a[j2] = x1r + x3i; in cftb1st()
1730 a[j2 + 1] = x1i + x3r; in cftb1st()
1731 a[j3] = x1r - x3i; in cftb1st()
1732 a[j3 + 1] = x1i - x3r; in cftb1st()
1741 wk3i = (PICOFFTSG_FFTTYPE) (-0.146730467677 *PICODSP_WGT_SHIFT); in cftb1st()
1743 ss3 = (PICOFFTSG_FFTTYPE) (-0.293460935354 *PICODSP_WGT_SHIFT); in cftb1st()
1748 if (i0 > mh - 4) { in cftb1st()
1749 i0 = mh - 4; in cftb1st()
1753 wd1r -= Mult_W_W(ss1, wk1i); in cftb1st()
1755 wd3r -= Mult_W_W(ss3, wk3i); in cftb1st()
1761 x0r = a[j] + a[j2]; in cftb1st()
1762 x0i = -a[j + 1] - a[j2 + 1]; in cftb1st()
1763 x1r = a[j] - a[j2]; in cftb1st()
1764 x1i = -a[j + 1] + a[j2 + 1]; in cftb1st()
1765 x2r = a[j1] + a[j3]; in cftb1st()
1766 x2i = a[j1 + 1] + a[j3 + 1]; in cftb1st()
1767 x3r = a[j1] - a[j3]; in cftb1st()
1768 x3i = a[j1 + 1] - a[j3 + 1]; in cftb1st()
1769 a[j] = x0r + x2r; in cftb1st()
1770 a[j + 1] = x0i - x2i; in cftb1st()
1771 a[j1] = x0r - x2r; in cftb1st()
1772 a[j1 + 1] = x0i + x2i; in cftb1st()
1775 a[j2] = Mult_W_W(wk1r, x0r) - Mult_W_W(wk1i, x0i); in cftb1st()
1776 a[j2 + 1] = Mult_W_W(wk1r, x0i) + Mult_W_W(wk1i, x0r); in cftb1st()
1777 x0r = x1r - x3i; in cftb1st()
1778 x0i = x1i - x3r; in cftb1st()
1779 a[j3] = Mult_W_W(wk3r, x0r) + Mult_W_W(wk3i, x0i); in cftb1st()
1780 a[j3 + 1] = Mult_W_W(wk3r, x0i) - Mult_W_W(wk3i, x0r); in cftb1st()
1781 x0r = a[j + 2] + a[j2 + 2]; in cftb1st()
1782 x0i = -a[j + 3] - a[j2 + 3]; in cftb1st()
1783 x1r = a[j + 2] - a[j2 + 2]; in cftb1st()
1784 x1i = -a[j + 3] + a[j2 + 3]; in cftb1st()
1785 x2r = a[j1 + 2] + a[j3 + 2]; in cftb1st()
1786 x2i = a[j1 + 3] + a[j3 + 3]; in cftb1st()
1787 x3r = a[j1 + 2] - a[j3 + 2]; in cftb1st()
1788 x3i = a[j1 + 3] - a[j3 + 3]; in cftb1st()
1789 a[j + 2] = x0r + x2r; in cftb1st()
1790 a[j + 3] = x0i - x2i; in cftb1st()
1791 a[j1 + 2] = x0r - x2r; in cftb1st()
1792 a[j1 + 3] = x0i + x2i; in cftb1st()
1795 a[j2 + 2] = Mult_W_W(wd1r, x0r) - Mult_W_W(wd1i, x0i); in cftb1st()
1796 a[j2 + 3] = Mult_W_W(wd1r, x0i) + Mult_W_W(wd1i, x0r); in cftb1st()
1797 x0r = x1r - x3i; in cftb1st()
1798 x0i = x1i - x3r; in cftb1st()
1799 a[j3 + 2] = Mult_W_W(wd3r, x0r) + Mult_W_W(wd3i, x0i); in cftb1st()
1800 a[j3 + 3] = Mult_W_W(wd3r, x0i) - Mult_W_W(wd3i, x0r); in cftb1st()
1801 j0 = m - j; in cftb1st()
1805 x0r = a[j0] + a[j2]; in cftb1st()
1806 x0i = -a[j0 + 1] - a[j2 + 1]; in cftb1st()
1807 x1r = a[j0] - a[j2]; in cftb1st()
1808 x1i = -a[j0 + 1] + a[j2 + 1]; in cftb1st()
1809 x2r = a[j1] + a[j3]; in cftb1st()
1810 x2i = a[j1 + 1] + a[j3 + 1]; in cftb1st()
1811 x3r = a[j1] - a[j3]; in cftb1st()
1812 x3i = a[j1 + 1] - a[j3 + 1]; in cftb1st()
1813 a[j0] = x0r + x2r; in cftb1st()
1814 a[j0 + 1] = x0i - x2i; in cftb1st()
1815 a[j1] = x0r - x2r; in cftb1st()
1816 a[j1 + 1] = x0i + x2i; in cftb1st()
1819 a[j2] = Mult_W_W(wk1i, x0r) - Mult_W_W(wk1r, x0i); in cftb1st()
1820 a[j2 + 1] = Mult_W_W(wk1i, x0i) + Mult_W_W(wk1r, x0r); in cftb1st()
1821 x0r = x1r - x3i; in cftb1st()
1822 x0i = x1i - x3r; in cftb1st()
1823 a[j3] = Mult_W_W(wk3i, x0r) + Mult_W_W(wk3r, x0i); in cftb1st()
1824 a[j3 + 1] = Mult_W_W(wk3i, x0i) - Mult_W_W(wk3r, x0r); in cftb1st()
1825 x0r = a[j0 - 2] + a[j2 - 2]; in cftb1st()
1826 x0i = -a[j0 - 1] - a[j2 - 1]; in cftb1st()
1827 x1r = a[j0 - 2] - a[j2 - 2]; in cftb1st()
1828 x1i = -a[j0 - 1] + a[j2 - 1]; in cftb1st()
1829 x2r = a[j1 - 2] + a[j3 - 2]; in cftb1st()
1830 x2i = a[j1 - 1] + a[j3 - 1]; in cftb1st()
1831 x3r = a[j1 - 2] - a[j3 - 2]; in cftb1st()
1832 x3i = a[j1 - 1] - a[j3 - 1]; in cftb1st()
1833 a[j0 - 2] = x0r + x2r; in cftb1st()
1834 a[j0 - 1] = x0i - x2i; in cftb1st()
1835 a[j1 - 2] = x0r - x2r; in cftb1st()
1836 a[j1 - 1] = x0i + x2i; in cftb1st()
1839 a[j2 - 2] = Mult_W_W(wd1i, x0r) - Mult_W_W(wd1r, x0i); in cftb1st()
1840 a[j2 - 1] = Mult_W_W(wd1i, x0i) + Mult_W_W(wd1r, x0r); in cftb1st()
1841 x0r = x1r - x3i; in cftb1st()
1842 x0i = x1i - x3r; in cftb1st()
1843 a[j3 - 2] = Mult_W_W(wd3i, x0r) + Mult_W_W(wd3r, x0i); in cftb1st()
1844 a[j3 - 1] = Mult_W_W(wd3i, x0i) - Mult_W_W(wd3r, x0r); in cftb1st()
1845 wk1r -= Mult_W_W(ss1, wd1i); in cftb1st()
1847 wk3r -= Mult_W_W(ss3, wd3i); in cftb1st()
1850 if (i0 == mh - 4) { in cftb1st()
1859 x0r = a[j0 - 2] + a[j2 - 2]; in cftb1st()
1860 x0i = -a[j0 - 1] - a[j2 - 1]; in cftb1st()
1861 x1r = a[j0 - 2] - a[j2 - 2]; in cftb1st()
1862 x1i = -a[j0 - 1] + a[j2 - 1]; in cftb1st()
1863 x2r = a[j1 - 2] + a[j3 - 2]; in cftb1st()
1864 x2i = a[j1 - 1] + a[j3 - 1]; in cftb1st()
1865 x3r = a[j1 - 2] - a[j3 - 2]; in cftb1st()
1866 x3i = a[j1 - 1] - a[j3 - 1]; in cftb1st()
1867 a[j0 - 2] = x0r + x2r; in cftb1st()
1868 a[j0 - 1] = x0i - x2i; in cftb1st()
1869 a[j1 - 2] = x0r - x2r; in cftb1st()
1870 a[j1 - 1] = x0i + x2i; in cftb1st()
1873 a[j2 - 2] = Mult_W_W(wk1r, x0r) - Mult_W_W(wk1i, x0i); in cftb1st()
1874 a[j2 - 1] = Mult_W_W(wk1r, x0i) + Mult_W_W(wk1i, x0r); in cftb1st()
1875 x0r = x1r - x3i; in cftb1st()
1876 x0i = x1i - x3r; in cftb1st()
1877 a[j3 - 2] = Mult_W_W(wk3r, x0r) + Mult_W_W(wk3i, x0i); in cftb1st()
1878 a[j3 - 1] = Mult_W_W(wk3r, x0i) - Mult_W_W(wk3i, x0r); in cftb1st()
1879 x0r = a[j0] + a[j2]; in cftb1st()
1880 x0i = -a[j0 + 1] - a[j2 + 1]; in cftb1st()
1881 x1r = a[j0] - a[j2]; in cftb1st()
1882 x1i = -a[j0 + 1] + a[j2 + 1]; in cftb1st()
1883 x2r = a[j1] + a[j3]; in cftb1st()
1884 x2i = a[j1 + 1] + a[j3 + 1]; in cftb1st()
1885 x3r = a[j1] - a[j3]; in cftb1st()
1886 x3i = a[j1 + 1] - a[j3 + 1]; in cftb1st()
1887 a[j0] = x0r + x2r; in cftb1st()
1888 a[j0 + 1] = x0i - x2i; in cftb1st()
1889 a[j1] = x0r - x2r; in cftb1st()
1890 a[j1 + 1] = x0i + x2i; in cftb1st()
1893 a[j2] = picofftsg_mult_w_a(wd1r, (x0r - x0i)); in cftb1st()
1894 a[j2 + 1] = picofftsg_mult_w_a(wd1r, (x0i + x0r)); in cftb1st()
1895 x0r = x1r - x3i; in cftb1st()
1896 x0i = x1i - x3r; in cftb1st()
1897 a[j3] = -picofftsg_mult_w_a(wd1r, (x0r + x0i)); in cftb1st()
1898 a[j3 + 1] = -picofftsg_mult_w_a(wd1r, (x0i - x0r)); in cftb1st()
1899 x0r = a[j0 + 2] + a[j2 + 2]; in cftb1st()
1900 x0i = -a[j0 + 3] - a[j2 + 3]; in cftb1st()
1901 x1r = a[j0 + 2] - a[j2 + 2]; in cftb1st()
1902 x1i = -a[j0 + 3] + a[j2 + 3]; in cftb1st()
1903 x2r = a[j1 + 2] + a[j3 + 2]; in cftb1st()
1904 x2i = a[j1 + 3] + a[j3 + 3]; in cftb1st()
1905 x3r = a[j1 + 2] - a[j3 + 2]; in cftb1st()
1906 x3i = a[j1 + 3] - a[j3 + 3]; in cftb1st()
1907 a[j0 + 2] = x0r + x2r; in cftb1st()
1908 a[j0 + 3] = x0i - x2i; in cftb1st()
1909 a[j1 + 2] = x0r - x2r; in cftb1st()
1910 a[j1 + 3] = x0i + x2i; in cftb1st()
1913 a[j2 + 2] = Mult_W_W(wk1i, x0r) - Mult_W_W(wk1r, x0i); in cftb1st()
1914 a[j2 + 3] = Mult_W_W(wk1i, x0i) + Mult_W_W(wk1r, x0r); in cftb1st()
1915 x0r = x1r - x3i; in cftb1st()
1916 x0i = x1i - x3r; in cftb1st()
1917 a[j3 + 2] = Mult_W_W(wk3i, x0r) + Mult_W_W(wk3r, x0i); in cftb1st()
1918 a[j3 + 3] = Mult_W_W(wk3i, x0i) - Mult_W_W(wk3r, x0r); in cftb1st()
1921 void cftrec4(picoos_int32 n, PICOFFTSG_FFTTYPE *a) in cftrec4() argument
1928 cftmdl1(m, &a[n - m]); in cftrec4()
1930 cftleaf(m, 1, &a[n - m]); in cftrec4()
1932 for (j = n - m; j > 0; j -= m) { in cftrec4()
1934 isplt = cfttree(m, j, k, a); in cftrec4()
1935 cftleaf(m, isplt, &a[j - m]); in cftrec4()
1940 picoos_int32 cfttree(picoos_int32 n, picoos_int32 j, picoos_int32 k, PICOFFTSG_FFTTYPE *a) in cfttree() argument
1947 cftmdl1(n, &a[j - n]); in cfttree()
1949 cftmdl2(n, &a[j - n]); in cfttree()
1959 cftmdl1(m, &a[j - m]); in cfttree()
1964 cftmdl2(m, &a[j - m]); in cfttree()
1973 void cftleaf(picoos_int32 n, picoos_int32 isplt, PICOFFTSG_FFTTYPE *a) in cftleaf() argument
1977 cftmdl1(128, a); in cftleaf()
1978 cftf161(a); in cftleaf()
1979 cftf162(&a[32]); in cftleaf()
1980 cftf161(&a[64]); in cftleaf()
1981 cftf161(&a[96]); in cftleaf()
1982 cftmdl2(128, &a[128]); in cftleaf()
1983 cftf161(&a[128]); in cftleaf()
1984 cftf162(&a[160]); in cftleaf()
1985 cftf161(&a[192]); in cftleaf()
1986 cftf162(&a[224]); in cftleaf()
1987 cftmdl1(128, &a[256]); in cftleaf()
1988 cftf161(&a[256]); in cftleaf()
1989 cftf162(&a[288]); in cftleaf()
1990 cftf161(&a[320]); in cftleaf()
1991 cftf161(&a[352]); in cftleaf()
1993 cftmdl1(128, &a[384]); in cftleaf()
1994 cftf161(&a[480]); in cftleaf()
1996 cftmdl2(128, &a[384]); in cftleaf()
1997 cftf162(&a[480]); in cftleaf()
1999 cftf161(&a[384]); in cftleaf()
2000 cftf162(&a[416]); in cftleaf()
2001 cftf161(&a[448]); in cftleaf()
2003 cftmdl1(64, a); in cftleaf()
2004 cftf081(a); in cftleaf()
2005 cftf082(&a[16]); in cftleaf()
2006 cftf081(&a[32]); in cftleaf()
2007 cftf081(&a[48]); in cftleaf()
2008 cftmdl2(64, &a[64]); in cftleaf()
2009 cftf081(&a[64]); in cftleaf()
2010 cftf082(&a[80]); in cftleaf()
2011 cftf081(&a[96]); in cftleaf()
2012 cftf082(&a[112]); in cftleaf()
2013 cftmdl1(64, &a[128]); in cftleaf()
2014 cftf081(&a[128]); in cftleaf()
2015 cftf082(&a[144]); in cftleaf()
2016 cftf081(&a[160]); in cftleaf()
2017 cftf081(&a[176]); in cftleaf()
2019 cftmdl1(64, &a[192]); in cftleaf()
2020 cftf081(&a[240]); in cftleaf()
2022 cftmdl2(64, &a[192]); in cftleaf()
2023 cftf082(&a[240]); in cftleaf()
2025 cftf081(&a[192]); in cftleaf()
2026 cftf082(&a[208]); in cftleaf()
2027 cftf081(&a[224]); in cftleaf()
2032 void cftmdl1(picoos_int32 n, PICOFFTSG_FFTTYPE *a) in cftmdl1() argument
2044 x0r = a[0] + a[j2]; in cftmdl1()
2045 x0i = a[1] + a[j2 + 1]; in cftmdl1()
2046 x1r = a[0] - a[j2]; in cftmdl1()
2047 x1i = a[1] - a[j2 + 1]; in cftmdl1()
2048 x2r = a[j1] + a[j3]; in cftmdl1()
2049 x2i = a[j1 + 1] + a[j3 + 1]; in cftmdl1()
2050 x3r = a[j1] - a[j3]; in cftmdl1()
2051 x3i = a[j1 + 1] - a[j3 + 1]; in cftmdl1()
2052 a[0] = x0r + x2r; in cftmdl1()
2053 a[1] = x0i + x2i; in cftmdl1()
2054 a[j1] = x0r - x2r; in cftmdl1()
2055 a[j1 + 1] = x0i - x2i; in cftmdl1()
2056 a[j2] = x1r - x3i; in cftmdl1()
2057 a[j2 + 1] = x1i + x3r; in cftmdl1()
2058 a[j3] = x1r + x3i; in cftmdl1()
2059 a[j3 + 1] = x1i - x3r; in cftmdl1()
2067 wk3i = (PICOFFTSG_FFTTYPE) (-0.555570185184 *PICODSP_WGT_SHIFT); in cftmdl1()
2069 ss3 = (PICOFFTSG_FFTTYPE) (-1.111140370369 *PICODSP_WGT_SHIFT); in cftmdl1()
2074 if (i0 > mh - 4) { in cftmdl1()
2075 i0 = mh - 4; in cftmdl1()
2078 wd1r -= Mult_W_W(ss1, wk1i); in cftmdl1()
2080 wd3r -= Mult_W_W(ss3, wk3i); in cftmdl1()
2085 x0r = a[j] + a[j2]; in cftmdl1()
2086 x0i = a[j + 1] + a[j2 + 1]; in cftmdl1()
2087 x1r = a[j] - a[j2]; in cftmdl1()
2088 x1i = a[j + 1] - a[j2 + 1]; in cftmdl1()
2089 x2r = a[j1] + a[j3]; in cftmdl1()
2090 x2i = a[j1 + 1] + a[j3 + 1]; in cftmdl1()
2091 x3r = a[j1] - a[j3]; in cftmdl1()
2092 x3i = a[j1 + 1] - a[j3 + 1]; in cftmdl1()
2093 a[j] = x0r + x2r; in cftmdl1()
2094 a[j + 1] = x0i + x2i; in cftmdl1()
2095 a[j1] = x0r - x2r; in cftmdl1()
2096 a[j1 + 1] = x0i - x2i; in cftmdl1()
2097 x0r = x1r - x3i; in cftmdl1()
2099 a[j2] = Mult_W_W(wk1r, x0r) - Mult_W_W(wk1i, x0i); in cftmdl1()
2100 a[j2 + 1] = Mult_W_W(wk1r, x0i) + Mult_W_W(wk1i, x0r); in cftmdl1()
2102 x0i = x1i - x3r; in cftmdl1()
2103 a[j3] = Mult_W_W(wk3r, x0r) + Mult_W_W(wk3i, x0i); in cftmdl1()
2104 a[j3 + 1] = Mult_W_W(wk3r, x0i) - Mult_W_W(wk3i, x0r); in cftmdl1()
2105 x0r = a[j + 2] + a[j2 + 2]; in cftmdl1()
2106 x0i = a[j + 3] + a[j2 + 3]; in cftmdl1()
2107 x1r = a[j + 2] - a[j2 + 2]; in cftmdl1()
2108 x1i = a[j + 3] - a[j2 + 3]; in cftmdl1()
2109 x2r = a[j1 + 2] + a[j3 + 2]; in cftmdl1()
2110 x2i = a[j1 + 3] + a[j3 + 3]; in cftmdl1()
2111 x3r = a[j1 + 2] - a[j3 + 2]; in cftmdl1()
2112 x3i = a[j1 + 3] - a[j3 + 3]; in cftmdl1()
2113 a[j + 2] = x0r + x2r; in cftmdl1()
2114 a[j + 3] = x0i + x2i; in cftmdl1()
2115 a[j1 + 2] = x0r - x2r; in cftmdl1()
2116 a[j1 + 3] = x0i - x2i; in cftmdl1()
2117 x0r = x1r - x3i; in cftmdl1()
2119 a[j2 + 2] = Mult_W_W(wd1r, x0r) - Mult_W_W(wd1i, x0i); in cftmdl1()
2120 a[j2 + 3] = Mult_W_W(wd1r, x0i) + Mult_W_W(wd1i, x0r); in cftmdl1()
2122 x0i = x1i - x3r; in cftmdl1()
2123 a[j3 + 2] = Mult_W_W(wd3r, x0r) + Mult_W_W(wd3i, x0i); in cftmdl1()
2124 a[j3 + 3] = Mult_W_W(wd3r, x0i) - Mult_W_W(wd3i, x0r); in cftmdl1()
2125 j0 = m - j; in cftmdl1()
2129 x0r = a[j0] + a[j2]; in cftmdl1()
2130 x0i = a[j0 + 1] + a[j2 + 1]; in cftmdl1()
2131 x1r = a[j0] - a[j2]; in cftmdl1()
2132 x1i = a[j0 + 1] - a[j2 + 1]; in cftmdl1()
2133 x2r = a[j1] + a[j3]; in cftmdl1()
2134 x2i = a[j1 + 1] + a[j3 + 1]; in cftmdl1()
2135 x3r = a[j1] - a[j3]; in cftmdl1()
2136 x3i = a[j1 + 1] - a[j3 + 1]; in cftmdl1()
2137 a[j0] = x0r + x2r; in cftmdl1()
2138 a[j0 + 1] = x0i + x2i; in cftmdl1()
2139 a[j1] = x0r - x2r; in cftmdl1()
2140 a[j1 + 1] = x0i - x2i; in cftmdl1()
2141 x0r = x1r - x3i; in cftmdl1()
2143 a[j2] = Mult_W_W(wk1i, x0r) - Mult_W_W(wk1r, x0i); in cftmdl1()
2144 a[j2 + 1] = Mult_W_W(wk1i, x0i) + Mult_W_W(wk1r, x0r); in cftmdl1()
2146 x0i = x1i - x3r; in cftmdl1()
2147 a[j3] = Mult_W_W(wk3i, x0r) + Mult_W_W(wk3r, x0i); in cftmdl1()
2148 a[j3 + 1] = Mult_W_W(wk3i, x0i) - Mult_W_W(wk3r, x0r); in cftmdl1()
2149 x0r = a[j0 - 2] + a[j2 - 2]; in cftmdl1()
2150 x0i = a[j0 - 1] + a[j2 - 1]; in cftmdl1()
2151 x1r = a[j0 - 2] - a[j2 - 2]; in cftmdl1()
2152 x1i = a[j0 - 1] - a[j2 - 1]; in cftmdl1()
2153 x2r = a[j1 - 2] + a[j3 - 2]; in cftmdl1()
2154 x2i = a[j1 - 1] + a[j3 - 1]; in cftmdl1()
2155 x3r = a[j1 - 2] - a[j3 - 2]; in cftmdl1()
2156 x3i = a[j1 - 1] - a[j3 - 1]; in cftmdl1()
2157 a[j0 - 2] = x0r + x2r; in cftmdl1()
2158 a[j0 - 1] = x0i + x2i; in cftmdl1()
2159 a[j1 - 2] = x0r - x2r; in cftmdl1()
2160 a[j1 - 1] = x0i - x2i; in cftmdl1()
2161 x0r = x1r - x3i; in cftmdl1()
2163 a[j2 - 2] = Mult_W_W(wd1i, x0r) - Mult_W_W(wd1r, x0i); in cftmdl1()
2164 a[j2 - 1] = Mult_W_W(wd1i, x0i) + Mult_W_W(wd1r, x0r); in cftmdl1()
2166 x0i = x1i - x3r; in cftmdl1()
2167 a[j3 - 2] = Mult_W_W(wd3i, x0r) + Mult_W_W(wd3r, x0i); in cftmdl1()
2168 a[j3 - 1] = Mult_W_W(wd3i, x0i) - Mult_W_W(wd3r, x0r); in cftmdl1()
2169 wk1r -= Mult_W_W(ss1, wd1i); in cftmdl1()
2171 wk3r -= Mult_W_W(ss3, wd3i); in cftmdl1()
2174 if (i0 == mh - 4) { in cftmdl1()
2183 x0r = a[j0 - 2] + a[j2 - 2]; in cftmdl1()
2184 x0i = a[j0 - 1] + a[j2 - 1]; in cftmdl1()
2185 x1r = a[j0 - 2] - a[j2 - 2]; in cftmdl1()
2186 x1i = a[j0 - 1] - a[j2 - 1]; in cftmdl1()
2187 x2r = a[j1 - 2] + a[j3 - 2]; in cftmdl1()
2188 x2i = a[j1 - 1] + a[j3 - 1]; in cftmdl1()
2189 x3r = a[j1 - 2] - a[j3 - 2]; in cftmdl1()
2190 x3i = a[j1 - 1] - a[j3 - 1]; in cftmdl1()
2191 a[j0 - 2] = x0r + x2r; in cftmdl1()
2192 a[j0 - 1] = x0i + x2i; in cftmdl1()
2193 a[j1 - 2] = x0r - x2r; in cftmdl1()
2194 a[j1 - 1] = x0i - x2i; in cftmdl1()
2195 x0r = x1r - x3i; in cftmdl1()
2197 a[j2 - 2] = Mult_W_W(wk1r, x0r) - Mult_W_W(wk1i, x0i); in cftmdl1()
2198 a[j2 - 1] = Mult_W_W(wk1r, x0i) + Mult_W_W(wk1i, x0r); in cftmdl1()
2200 x0i = x1i - x3r; in cftmdl1()
2201 a[j3 - 2] = Mult_W_W(wk3r, x0r) + Mult_W_W(wk3i, x0i); in cftmdl1()
2202 a[j3 - 1] = Mult_W_W(wk3r, x0i) - Mult_W_W(wk3i, x0r); in cftmdl1()
2203 x0r = a[j0] + a[j2]; in cftmdl1()
2204 x0i = a[j0 + 1] + a[j2 + 1]; in cftmdl1()
2205 x1r = a[j0] - a[j2]; in cftmdl1()
2206 x1i = a[j0 + 1] - a[j2 + 1]; in cftmdl1()
2207 x2r = a[j1] + a[j3]; in cftmdl1()
2208 x2i = a[j1 + 1] + a[j3 + 1]; in cftmdl1()
2209 x3r = a[j1] - a[j3]; in cftmdl1()
2210 x3i = a[j1 + 1] - a[j3 + 1]; in cftmdl1()
2211 a[j0] = x0r + x2r; in cftmdl1()
2212 a[j0 + 1] = x0i + x2i; in cftmdl1()
2213 a[j1] = x0r - x2r; in cftmdl1()
2214 a[j1 + 1] = x0i - x2i; in cftmdl1()
2215 x0r = x1r - x3i; in cftmdl1()
2217 a[j2] = picofftsg_mult_w_a(wd1r, (x0r - x0i)); in cftmdl1()
2218 a[j2 + 1] = picofftsg_mult_w_a(wd1r, (x0i + x0r)); in cftmdl1()
2220 x0i = x1i - x3r; in cftmdl1()
2221 a[j3] = -picofftsg_mult_w_a(wd1r, (x0r + x0i)); in cftmdl1()
2222 a[j3 + 1] = -picofftsg_mult_w_a(wd1r, (x0i - x0r)); in cftmdl1()
2223 x0r = a[j0 + 2] + a[j2 + 2]; in cftmdl1()
2224 x0i = a[j0 + 3] + a[j2 + 3]; in cftmdl1()
2225 x1r = a[j0 + 2] - a[j2 + 2]; in cftmdl1()
2226 x1i = a[j0 + 3] - a[j2 + 3]; in cftmdl1()
2227 x2r = a[j1 + 2] + a[j3 + 2]; in cftmdl1()
2228 x2i = a[j1 + 3] + a[j3 + 3]; in cftmdl1()
2229 x3r = a[j1 + 2] - a[j3 + 2]; in cftmdl1()
2230 x3i = a[j1 + 3] - a[j3 + 3]; in cftmdl1()
2231 a[j0 + 2] = x0r + x2r; in cftmdl1()
2232 a[j0 + 3] = x0i + x2i; in cftmdl1()
2233 a[j1 + 2] = x0r - x2r; in cftmdl1()
2234 a[j1 + 3] = x0i - x2i; in cftmdl1()
2235 x0r = x1r - x3i; in cftmdl1()
2237 a[j2 + 2] = Mult_W_W(wk1i, x0r) - Mult_W_W(wk1r, x0i); in cftmdl1()
2238 a[j2 + 3] = Mult_W_W(wk1i, x0i) + Mult_W_W(wk1r, x0r); in cftmdl1()
2240 x0i = x1i - x3r; in cftmdl1()
2241 a[j3 + 2] = Mult_W_W(wk3i, x0r) + Mult_W_W(wk3r, x0i); in cftmdl1()
2242 a[j3 + 3] = Mult_W_W(wk3i, x0i) - Mult_W_W(wk3r, x0r); in cftmdl1()
2246 void cftmdl2(picoos_int32 n, PICOFFTSG_FFTTYPE *a) in cftmdl2() argument
2260 x0r = a[0] - a[j2 + 1]; in cftmdl2()
2261 x0i = a[1] + a[j2]; in cftmdl2()
2262 x1r = a[0] + a[j2 + 1]; in cftmdl2()
2263 x1i = a[1] - a[j2]; in cftmdl2()
2264 x2r = a[j1] - a[j3 + 1]; in cftmdl2()
2265 x2i = a[j1 + 1] + a[j3]; in cftmdl2()
2266 x3r = a[j1] + a[j3 + 1]; in cftmdl2()
2267 x3i = a[j1 + 1] - a[j3]; in cftmdl2()
2268 y0r = picofftsg_mult_w_a(wn4r, (x2r - x2i)); in cftmdl2()
2270 a[0] = x0r + y0r; in cftmdl2()
2271 a[1] = x0i + y0i; in cftmdl2()
2272 a[j1] = x0r - y0r; in cftmdl2()
2273 a[j1 + 1] = x0i - y0i; in cftmdl2()
2274 y0r = picofftsg_mult_w_a(wn4r, (x3r - x3i)); in cftmdl2()
2276 a[j2] = x1r - y0i; in cftmdl2()
2277 a[j2 + 1] = x1i + y0r; in cftmdl2()
2278 a[j3] = x1r + y0i; in cftmdl2()
2279 a[j3 + 1] = x1i - y0r; in cftmdl2()
2286 we3r = -wn4r; in cftmdl2()
2287 we3i = -wn4r; in cftmdl2()
2294 wk3i = (PICOFFTSG_FFTTYPE)(-0.290284663439 *PICODSP_WGT_SHIFT); in cftmdl2()
2296 ss3 = (PICOFFTSG_FFTTYPE)(-0.580569326878 *PICODSP_WGT_SHIFT); in cftmdl2()
2297 wd3r = (PICOFFTSG_FFTTYPE)(-0.881921231747 *PICODSP_WGT_SHIFT); in cftmdl2()
2298 wd3i = (PICOFFTSG_FFTTYPE)(-0.471396744251 *PICODSP_WGT_SHIFT); in cftmdl2()
2303 if (i0 > mh - 4) { in cftmdl2()
2304 i0 = mh - 4; in cftmdl2()
2307 wl1r -= Mult_W_W(ss1, wk1i); in cftmdl2()
2309 wl3r -= Mult_W_W(ss3, wk3i); in cftmdl2()
2311 we1r -= Mult_W_W(ss1, wd1i); in cftmdl2()
2313 we3r -= Mult_W_W(ss3, wd3i); in cftmdl2()
2318 x0r = a[j] - a[j2 + 1]; in cftmdl2()
2319 x0i = a[j + 1] + a[j2]; in cftmdl2()
2320 x1r = a[j] + a[j2 + 1]; in cftmdl2()
2321 x1i = a[j + 1] - a[j2]; in cftmdl2()
2322 x2r = a[j1] - a[j3 + 1]; in cftmdl2()
2323 x2i = a[j1 + 1] + a[j3]; in cftmdl2()
2324 x3r = a[j1] + a[j3 + 1]; in cftmdl2()
2325 x3i = a[j1 + 1] - a[j3]; in cftmdl2()
2326 y0r = Mult_W_W(wk1r, x0r) - Mult_W_W(wk1i, x0i); in cftmdl2()
2328 y2r = Mult_W_W(wd1r, x2r) - Mult_W_W(wd1i, x2i); in cftmdl2()
2330 a[j] = y0r + y2r; in cftmdl2()
2331 a[j + 1] = y0i + y2i; in cftmdl2()
2332 a[j1] = y0r - y2r; in cftmdl2()
2333 a[j1 + 1] = y0i - y2i; in cftmdl2()
2335 y0i = Mult_W_W(wk3r, x1i) - Mult_W_W(wk3i, x1r); in cftmdl2()
2337 y2i = Mult_W_W(wd3r, x3i) - Mult_W_W(wd3i, x3r); in cftmdl2()
2338 a[j2] = y0r + y2r; in cftmdl2()
2339 a[j2 + 1] = y0i + y2i; in cftmdl2()
2340 a[j3] = y0r - y2r; in cftmdl2()
2341 a[j3 + 1] = y0i - y2i; in cftmdl2()
2342 x0r = a[j + 2] - a[j2 + 3]; in cftmdl2()
2343 x0i = a[j + 3] + a[j2 + 2]; in cftmdl2()
2344 x1r = a[j + 2] + a[j2 + 3]; in cftmdl2()
2345 x1i = a[j + 3] - a[j2 + 2]; in cftmdl2()
2346 x2r = a[j1 + 2] - a[j3 + 3]; in cftmdl2()
2347 x2i = a[j1 + 3] + a[j3 + 2]; in cftmdl2()
2348 x3r = a[j1 + 2] + a[j3 + 3]; in cftmdl2()
2349 x3i = a[j1 + 3] - a[j3 + 2]; in cftmdl2()
2350 y0r = Mult_W_W(wl1r, x0r) - Mult_W_W(wl1i, x0i); in cftmdl2()
2352 y2r = Mult_W_W(we1r, x2r) - Mult_W_W(we1i, x2i); in cftmdl2()
2354 a[j + 2] = y0r + y2r; in cftmdl2()
2355 a[j + 3] = y0i + y2i; in cftmdl2()
2356 a[j1 + 2] = y0r - y2r; in cftmdl2()
2357 a[j1 + 3] = y0i - y2i; in cftmdl2()
2359 y0i = Mult_W_W(wl3r, x1i) - Mult_W_W(wl3i, x1r); in cftmdl2()
2361 y2i = Mult_W_W(we3r, x3i) - Mult_W_W(we3i, x3r); in cftmdl2()
2362 a[j2 + 2] = y0r + y2r; in cftmdl2()
2363 a[j2 + 3] = y0i + y2i; in cftmdl2()
2364 a[j3 + 2] = y0r - y2r; in cftmdl2()
2365 a[j3 + 3] = y0i - y2i; in cftmdl2()
2366 j0 = m - j; in cftmdl2()
2370 x0r = a[j0] - a[j2 + 1]; in cftmdl2()
2371 x0i = a[j0 + 1] + a[j2]; in cftmdl2()
2372 x1r = a[j0] + a[j2 + 1]; in cftmdl2()
2373 x1i = a[j0 + 1] - a[j2]; in cftmdl2()
2374 x2r = a[j1] - a[j3 + 1]; in cftmdl2()
2375 x2i = a[j1 + 1] + a[j3]; in cftmdl2()
2376 x3r = a[j1] + a[j3 + 1]; in cftmdl2()
2377 x3i = a[j1 + 1] - a[j3]; in cftmdl2()
2378 y0r = Mult_W_W(wd1i, x0r) - Mult_W_W(wd1r, x0i); in cftmdl2()
2380 y2r = Mult_W_W(wk1i, x2r) - Mult_W_W(wk1r, x2i); in cftmdl2()
2382 a[j0] = y0r + y2r; in cftmdl2()
2383 a[j0 + 1] = y0i + y2i; in cftmdl2()
2384 a[j1] = y0r - y2r; in cftmdl2()
2385 a[j1 + 1] = y0i - y2i; in cftmdl2()
2387 y0i = Mult_W_W(wd3i, x1i) - Mult_W_W(wd3r, x1r); in cftmdl2()
2389 y2i = Mult_W_W(wk3i, x3i) - Mult_W_W(wk3r, x3r); in cftmdl2()
2390 a[j2] = y0r + y2r; in cftmdl2()
2391 a[j2 + 1] = y0i + y2i; in cftmdl2()
2392 a[j3] = y0r - y2r; in cftmdl2()
2393 a[j3 + 1] = y0i - y2i; in cftmdl2()
2394 x0r = a[j0 - 2] - a[j2 - 1]; in cftmdl2()
2395 x0i = a[j0 - 1] + a[j2 - 2]; in cftmdl2()
2396 x1r = a[j0 - 2] + a[j2 - 1]; in cftmdl2()
2397 x1i = a[j0 - 1] - a[j2 - 2]; in cftmdl2()
2398 x2r = a[j1 - 2] - a[j3 - 1]; in cftmdl2()
2399 x2i = a[j1 - 1] + a[j3 - 2]; in cftmdl2()
2400 x3r = a[j1 - 2] + a[j3 - 1]; in cftmdl2()
2401 x3i = a[j1 - 1] - a[j3 - 2]; in cftmdl2()
2402 y0r = Mult_W_W(we1i, x0r) - Mult_W_W(we1r, x0i); in cftmdl2()
2404 y2r = Mult_W_W(wl1i, x2r) - Mult_W_W(wl1r, x2i); in cftmdl2()
2406 a[j0 - 2] = y0r + y2r; in cftmdl2()
2407 a[j0 - 1] = y0i + y2i; in cftmdl2()
2408 a[j1 - 2] = y0r - y2r; in cftmdl2()
2409 a[j1 - 1] = y0i - y2i; in cftmdl2()
2411 y0i = Mult_W_W(we3i, x1i) - Mult_W_W(we3r, x1r); in cftmdl2()
2413 y2i = Mult_W_W(wl3i, x3i) - Mult_W_W(wl3r, x3r); in cftmdl2()
2414 a[j2 - 2] = y0r + y2r; in cftmdl2()
2415 a[j2 - 1] = y0i + y2i; in cftmdl2()
2416 a[j3 - 2] = y0r - y2r; in cftmdl2()
2417 a[j3 - 1] = y0i - y2i; in cftmdl2()
2418 wk1r -= Mult_W_W(ss1, wl1i); in cftmdl2()
2420 wk3r -= Mult_W_W(ss3, wl3i); in cftmdl2()
2422 wd1r -= Mult_W_W(ss1, we1i); in cftmdl2()
2424 wd3r -= Mult_W_W(ss3, we3i); in cftmdl2()
2427 if (i0 == mh - 4) { in cftmdl2()
2437 x0r = a[j0 - 2] - a[j2 - 1]; in cftmdl2()
2438 x0i = a[j0 - 1] + a[j2 - 2]; in cftmdl2()
2439 x1r = a[j0 - 2] + a[j2 - 1]; in cftmdl2()
2440 x1i = a[j0 - 1] - a[j2 - 2]; in cftmdl2()
2441 x2r = a[j1 - 2] - a[j3 - 1]; in cftmdl2()
2442 x2i = a[j1 - 1] + a[j3 - 2]; in cftmdl2()
2443 x3r = a[j1 - 2] + a[j3 - 1]; in cftmdl2()
2444 x3i = a[j1 - 1] - a[j3 - 2]; in cftmdl2()
2445 y0r = Mult_W_W(wk1r, x0r) - Mult_W_W(wk1i, x0i); in cftmdl2()
2447 y2r = Mult_W_W(wd1r, x2r) - Mult_W_W(wd1i, x2i); in cftmdl2()
2449 a[j0 - 2] = y0r + y2r; in cftmdl2()
2450 a[j0 - 1] = y0i + y2i; in cftmdl2()
2451 a[j1 - 2] = y0r - y2r; in cftmdl2()
2452 a[j1 - 1] = y0i - y2i; in cftmdl2()
2454 y0i = Mult_W_W(wk3r, x1i) - Mult_W_W(wk3i, x1r); in cftmdl2()
2456 y2i = Mult_W_W(wd3r, x3i) - Mult_W_W(wd3i, x3r); in cftmdl2()
2457 a[j2 - 2] = y0r + y2r; in cftmdl2()
2458 a[j2 - 1] = y0i + y2i; in cftmdl2()
2459 a[j3 - 2] = y0r - y2r; in cftmdl2()
2460 a[j3 - 1] = y0i - y2i; in cftmdl2()
2461 x0r = a[j0] - a[j2 + 1]; in cftmdl2()
2462 x0i = a[j0 + 1] + a[j2]; in cftmdl2()
2463 x1r = a[j0] + a[j2 + 1]; in cftmdl2()
2464 x1i = a[j0 + 1] - a[j2]; in cftmdl2()
2465 x2r = a[j1] - a[j3 + 1]; in cftmdl2()
2466 x2i = a[j1 + 1] + a[j3]; in cftmdl2()
2467 x3r = a[j1] + a[j3 + 1]; in cftmdl2()
2468 x3i = a[j1 + 1] - a[j3]; in cftmdl2()
2469 y0r = Mult_W_W(wl1r, x0r) - Mult_W_W(wl1i, x0i); in cftmdl2()
2471 y2r = Mult_W_W(wl1i, x2r) - Mult_W_W(wl1r, x2i); in cftmdl2()
2473 a[j0] = y0r + y2r; in cftmdl2()
2474 a[j0 + 1] = y0i + y2i; in cftmdl2()
2475 a[j1] = y0r - y2r; in cftmdl2()
2476 a[j1 + 1] = y0i - y2i; in cftmdl2()
2477 y0r = Mult_W_W(wl1i, x1r) - Mult_W_W(wl1r, x1i); in cftmdl2()
2479 y2r = Mult_W_W(wl1r, x3r) - Mult_W_W(wl1i, x3i); in cftmdl2()
2481 a[j2] = y0r - y2r; in cftmdl2()
2482 a[j2 + 1] = y0i - y2i; in cftmdl2()
2483 a[j3] = y0r + y2r; in cftmdl2()
2484 a[j3 + 1] = y0i + y2i; in cftmdl2()
2485 x0r = a[j0 + 2] - a[j2 + 3]; in cftmdl2()
2486 x0i = a[j0 + 3] + a[j2 + 2]; in cftmdl2()
2487 x1r = a[j0 + 2] + a[j2 + 3]; in cftmdl2()
2488 x1i = a[j0 + 3] - a[j2 + 2]; in cftmdl2()
2489 x2r = a[j1 + 2] - a[j3 + 3]; in cftmdl2()
2490 x2i = a[j1 + 3] + a[j3 + 2]; in cftmdl2()
2491 x3r = a[j1 + 2] + a[j3 + 3]; in cftmdl2()
2492 x3i = a[j1 + 3] - a[j3 + 2]; in cftmdl2()
2493 y0r = Mult_W_W(wd1i, x0r) - Mult_W_W(wd1r, x0i); in cftmdl2()
2495 y2r = Mult_W_W(wk1i, x2r) - Mult_W_W(wk1r, x2i); in cftmdl2()
2497 a[j0 + 2] = y0r + y2r; in cftmdl2()
2498 a[j0 + 3] = y0i + y2i; in cftmdl2()
2499 a[j1 + 2] = y0r - y2r; in cftmdl2()
2500 a[j1 + 3] = y0i - y2i; in cftmdl2()
2502 y0i = Mult_W_W(wd3i, x1i) - Mult_W_W(wd3r, x1r); in cftmdl2()
2504 y2i = Mult_W_W(wk3i, x3i) - Mult_W_W(wk3r, x3r); in cftmdl2()
2505 a[j2 + 2] = y0r + y2r; in cftmdl2()
2506 a[j2 + 3] = y0i + y2i; in cftmdl2()
2507 a[j3 + 2] = y0r - y2r; in cftmdl2()
2508 a[j3 + 3] = y0i - y2i; in cftmdl2()
2512 void cftfx41(picoos_int32 n, PICOFFTSG_FFTTYPE *a) in cftfx41() argument
2516 cftf161(a); in cftfx41()
2517 cftf162(&a[32]); in cftfx41()
2518 cftf161(&a[64]); in cftfx41()
2519 cftf161(&a[96]); in cftfx41()
2521 cftf081(a); in cftfx41()
2522 cftf082(&a[16]); in cftfx41()
2523 cftf081(&a[32]); in cftfx41()
2524 cftf081(&a[48]); in cftfx41()
2529 void cftf161(PICOFFTSG_FFTTYPE *a) in cftf161() argument
2541 x0r = a[0] + a[16]; in cftf161()
2542 x0i = a[1] + a[17]; in cftf161()
2543 x1r = a[0] - a[16]; in cftf161()
2544 x1i = a[1] - a[17]; in cftf161()
2545 x2r = a[8] + a[24]; in cftf161()
2546 x2i = a[9] + a[25]; in cftf161()
2547 x3r = a[8] - a[24]; in cftf161()
2548 x3i = a[9] - a[25]; in cftf161()
2551 y4r = x0r - x2r; in cftf161()
2552 y4i = x0i - x2i; in cftf161()
2553 y8r = x1r - x3i; in cftf161()
2556 y12i = x1i - x3r; in cftf161()
2557 x0r = a[2] + a[18]; in cftf161()
2558 x0i = a[3] + a[19]; in cftf161()
2559 x1r = a[2] - a[18]; in cftf161()
2560 x1i = a[3] - a[19]; in cftf161()
2561 x2r = a[10] + a[26]; in cftf161()
2562 x2i = a[11] + a[27]; in cftf161()
2563 x3r = a[10] - a[26]; in cftf161()
2564 x3i = a[11] - a[27]; in cftf161()
2567 y5r = x0r - x2r; in cftf161()
2568 y5i = x0i - x2i; in cftf161()
2569 x0r = x1r - x3i; in cftf161()
2571 y9r = Mult_W_W(wk1r, x0r) - Mult_W_W(wk1i, x0i); in cftf161()
2574 x0i = x1i - x3r; in cftf161()
2575 y13r = Mult_W_W(wk1i, x0r) - Mult_W_W(wk1r, x0i); in cftf161()
2577 x0r = a[4] + a[20]; in cftf161()
2578 x0i = a[5] + a[21]; in cftf161()
2579 x1r = a[4] - a[20]; in cftf161()
2580 x1i = a[5] - a[21]; in cftf161()
2581 x2r = a[12] + a[28]; in cftf161()
2582 x2i = a[13] + a[29]; in cftf161()
2583 x3r = a[12] - a[28]; in cftf161()
2584 x3i = a[13] - a[29]; in cftf161()
2587 y6r = x0r - x2r; in cftf161()
2588 y6i = x0i - x2i; in cftf161()
2589 x0r = x1r - x3i; in cftf161()
2591 y10r = picofftsg_mult_w_a(wn4r, (x0r - x0i)); in cftf161()
2594 x0i = x1i - x3r; in cftf161()
2596 y14i = picofftsg_mult_w_a(wn4r, (x0i - x0r)); in cftf161()
2597 x0r = a[6] + a[22]; in cftf161()
2598 x0i = a[7] + a[23]; in cftf161()
2599 x1r = a[6] - a[22]; in cftf161()
2600 x1i = a[7] - a[23]; in cftf161()
2601 x2r = a[14] + a[30]; in cftf161()
2602 x2i = a[15] + a[31]; in cftf161()
2603 x3r = a[14] - a[30]; in cftf161()
2604 x3i = a[15] - a[31]; in cftf161()
2607 y7r = x0r - x2r; in cftf161()
2608 y7i = x0i - x2i; in cftf161()
2609 x0r = x1r - x3i; in cftf161()
2611 y11r = Mult_W_W(wk1i, x0r) - Mult_W_W(wk1r, x0i); in cftf161()
2614 x0i = x1i - x3r; in cftf161()
2615 y15r = Mult_W_W(wk1r, x0r) - Mult_W_W(wk1i, x0i); in cftf161()
2617 x0r = y12r - y14r; in cftf161()
2618 x0i = y12i - y14i; in cftf161()
2621 x2r = y13r - y15r; in cftf161()
2622 x2i = y13i - y15i; in cftf161()
2625 a[24] = x0r + x2r; in cftf161()
2626 a[25] = x0i + x2i; in cftf161()
2627 a[26] = x0r - x2r; in cftf161()
2628 a[27] = x0i - x2i; in cftf161()
2629 a[28] = x1r - x3i; in cftf161()
2630 a[29] = x1i + x3r; in cftf161()
2631 a[30] = x1r + x3i; in cftf161()
2632 a[31] = x1i - x3r; in cftf161()
2635 x1r = y8r - y10r; in cftf161()
2636 x1i = y8i - y10i; in cftf161()
2639 x3r = y9r - y11r; in cftf161()
2640 x3i = y9i - y11i; in cftf161()
2641 a[16] = x0r + x2r; in cftf161()
2642 a[17] = x0i + x2i; in cftf161()
2643 a[18] = x0r - x2r; in cftf161()
2644 a[19] = x0i - x2i; in cftf161()
2645 a[20] = x1r - x3i; in cftf161()
2646 a[21] = x1i + x3r; in cftf161()
2647 a[22] = x1r + x3i; in cftf161()
2648 a[23] = x1i - x3r; in cftf161()
2649 x0r = y5r - y7i; in cftf161()
2651 x2r = picofftsg_mult_w_a(wn4r, (x0r - x0i)); in cftf161()
2654 x0i = y5i - y7r; in cftf161()
2655 x3r = picofftsg_mult_w_a(wn4r, (x0r - x0i)); in cftf161()
2657 x0r = y4r - y6i; in cftf161()
2660 x1i = y4i - y6r; in cftf161()
2661 a[8] = x0r + x2r; in cftf161()
2662 a[9] = x0i + x2i; in cftf161()
2663 a[10] = x0r - x2r; in cftf161()
2664 a[11] = x0i - x2i; in cftf161()
2665 a[12] = x1r - x3i; in cftf161()
2666 a[13] = x1i + x3r; in cftf161()
2667 a[14] = x1r + x3i; in cftf161()
2668 a[15] = x1i - x3r; in cftf161()
2671 x1r = y0r - y2r; in cftf161()
2672 x1i = y0i - y2i; in cftf161()
2675 x3r = y1r - y3r; in cftf161()
2676 x3i = y1i - y3i; in cftf161()
2677 a[0] = x0r + x2r; in cftf161()
2678 a[1] = x0i + x2i; in cftf161()
2679 a[2] = x0r - x2r; in cftf161()
2680 a[3] = x0i - x2i; in cftf161()
2681 a[4] = x1r - x3i; in cftf161()
2682 a[5] = x1i + x3r; in cftf161()
2683 a[6] = x1r + x3i; in cftf161()
2684 a[7] = x1i - x3r; in cftf161()
2688 void cftf162(PICOFFTSG_FFTTYPE *a) in cftf162() argument
2704 x1r = a[0] - a[17]; in cftf162()
2705 x1i = a[1] + a[16]; in cftf162()
2706 x0r = a[8] - a[25]; in cftf162()
2707 x0i = a[9] + a[24]; in cftf162()
2708 x2r = picofftsg_mult_w_a(wn4r, (x0r - x0i)); in cftf162()
2712 y4r = x1r - x2r; in cftf162()
2713 y4i = x1i - x2i; in cftf162()
2714 x1r = a[0] + a[17]; in cftf162()
2715 x1i = a[1] - a[16]; in cftf162()
2716 x0r = a[8] + a[25]; in cftf162()
2717 x0i = a[9] - a[24]; in cftf162()
2718 x2r = picofftsg_mult_w_a(wn4r, (x0r - x0i)); in cftf162()
2720 y8r = x1r - x2i; in cftf162()
2723 y12i = x1i - x2r; in cftf162()
2724 x0r = a[2] - a[19]; in cftf162()
2725 x0i = a[3] + a[18]; in cftf162()
2726 x1r = Mult_W_W(wk1r, x0r) - Mult_W_W(wk1i, x0i); in cftf162()
2728 x0r = a[10] - a[27]; in cftf162()
2729 x0i = a[11] + a[26]; in cftf162()
2730 x2r = Mult_W_W(wk3i, x0r) - Mult_W_W(wk3r, x0i); in cftf162()
2734 y5r = x1r - x2r; in cftf162()
2735 y5i = x1i - x2i; in cftf162()
2736 x0r = a[2] + a[19]; in cftf162()
2737 x0i = a[3] - a[18]; in cftf162()
2738 x1r = Mult_W_W(wk3r, x0r) - Mult_W_W(wk3i, x0i); in cftf162()
2740 x0r = a[10] + a[27]; in cftf162()
2741 x0i = a[11] - a[26]; in cftf162()
2743 x2i = Mult_W_W(wk1r, x0i) - Mult_W_W(wk1i, x0r); in cftf162()
2744 y9r = x1r - x2r; in cftf162()
2745 y9i = x1i - x2i; in cftf162()
2748 x0r = a[4] - a[21]; in cftf162()
2749 x0i = a[5] + a[20]; in cftf162()
2750 x1r = Mult_W_W(wk2r, x0r) - Mult_W_W(wk2i, x0i); in cftf162()
2752 x0r = a[12] - a[29]; in cftf162()
2753 x0i = a[13] + a[28]; in cftf162()
2754 x2r = Mult_W_W(wk2i, x0r) - Mult_W_W(wk2r, x0i); in cftf162()
2758 y6r = x1r - x2r; in cftf162()
2759 y6i = x1i - x2i; in cftf162()
2760 x0r = a[4] + a[21]; in cftf162()
2761 x0i = a[5] - a[20]; in cftf162()
2762 x1r = Mult_W_W(wk2i, x0r) - Mult_W_W(wk2r, x0i); in cftf162()
2764 x0r = a[12] + a[29]; in cftf162()
2765 x0i = a[13] - a[28]; in cftf162()
2766 x2r = Mult_W_W(wk2r, x0r) - Mult_W_W(wk2i, x0i); in cftf162()
2768 y10r = x1r - x2r; in cftf162()
2769 y10i = x1i - x2i; in cftf162()
2772 x0r = a[6] - a[23]; in cftf162()
2773 x0i = a[7] + a[22]; in cftf162()
2774 x1r = Mult_W_W(wk3r, x0r) - Mult_W_W(wk3i, x0i); in cftf162()
2776 x0r = a[14] - a[31]; in cftf162()
2777 x0i = a[15] + a[30]; in cftf162()
2778 x2r = Mult_W_W(wk1i, x0r) - Mult_W_W(wk1r, x0i); in cftf162()
2782 y7r = x1r - x2r; in cftf162()
2783 y7i = x1i - x2i; in cftf162()
2784 x0r = a[6] + a[23]; in cftf162()
2785 x0i = a[7] - a[22]; in cftf162()
2787 x1i = Mult_W_W(wk1i, x0i) - Mult_W_W(wk1r, x0r); in cftf162()
2788 x0r = a[14] + a[31]; in cftf162()
2789 x0i = a[15] - a[30]; in cftf162()
2790 x2r = Mult_W_W(wk3i, x0r) - Mult_W_W(wk3r, x0i); in cftf162()
2794 y15r = x1r - x2r; in cftf162()
2795 y15i = x1i - x2i; in cftf162()
2800 a[0] = x1r + x2r; in cftf162()
2801 a[1] = x1i + x2i; in cftf162()
2802 a[2] = x1r - x2r; in cftf162()
2803 a[3] = x1i - x2i; in cftf162()
2804 x1r = y0r - y2r; in cftf162()
2805 x1i = y0i - y2i; in cftf162()
2806 x2r = y1r - y3r; in cftf162()
2807 x2i = y1i - y3i; in cftf162()
2808 a[4] = x1r - x2i; in cftf162()
2809 a[5] = x1i + x2r; in cftf162()
2810 a[6] = x1r + x2i; in cftf162()
2811 a[7] = x1i - x2r; in cftf162()
2812 x1r = y4r - y6i; in cftf162()
2814 x0r = y5r - y7i; in cftf162()
2816 x2r = picofftsg_mult_w_a(wn4r, (x0r - x0i)); in cftf162()
2818 a[8] = x1r + x2r; in cftf162()
2819 a[9] = x1i + x2i; in cftf162()
2820 a[10] = x1r - x2r; in cftf162()
2821 a[11] = x1i - x2i; in cftf162()
2823 x1i = y4i - y6r; in cftf162()
2825 x0i = y5i - y7r; in cftf162()
2826 x2r = picofftsg_mult_w_a(wn4r, (x0r - x0i)); in cftf162()
2828 a[12] = x1r - x2i; in cftf162()
2829 a[13] = x1i + x2r; in cftf162()
2830 a[14] = x1r + x2i; in cftf162()
2831 a[15] = x1i - x2r; in cftf162()
2834 x2r = y9r - y11r; in cftf162()
2835 x2i = y9i - y11i; in cftf162()
2836 a[16] = x1r + x2r; in cftf162()
2837 a[17] = x1i + x2i; in cftf162()
2838 a[18] = x1r - x2r; in cftf162()
2839 a[19] = x1i - x2i; in cftf162()
2840 x1r = y8r - y10r; in cftf162()
2841 x1i = y8i - y10i; in cftf162()
2844 a[20] = x1r - x2i; in cftf162()
2845 a[21] = x1i + x2r; in cftf162()
2846 a[22] = x1r + x2i; in cftf162()
2847 a[23] = x1i - x2r; in cftf162()
2848 x1r = y12r - y14i; in cftf162()
2851 x0i = y13i - y15r; in cftf162()
2852 x2r = picofftsg_mult_w_a(wn4r, (x0r - x0i)); in cftf162()
2854 a[24] = x1r + x2r; in cftf162()
2855 a[25] = x1i + x2i; in cftf162()
2856 a[26] = x1r - x2r; in cftf162()
2857 a[27] = x1i - x2i; in cftf162()
2859 x1i = y12i - y14r; in cftf162()
2860 x0r = y13r - y15i; in cftf162()
2862 x2r = picofftsg_mult_w_a(wn4r, (x0r - x0i)); in cftf162()
2864 a[28] = x1r - x2i; in cftf162()
2865 a[29] = x1i + x2r; in cftf162()
2866 a[30] = x1r + x2i; in cftf162()
2867 a[31] = x1i - x2r; in cftf162()
2871 void cftf081(PICOFFTSG_FFTTYPE *a) in cftf081() argument
2878 x0r = a[0] + a[8]; in cftf081()
2879 x0i = a[1] + a[9]; in cftf081()
2880 x1r = a[0] - a[8]; in cftf081()
2881 x1i = a[1] - a[9]; in cftf081()
2882 x2r = a[4] + a[12]; in cftf081()
2883 x2i = a[5] + a[13]; in cftf081()
2884 x3r = a[4] - a[12]; in cftf081()
2885 x3i = a[5] - a[13]; in cftf081()
2888 y2r = x0r - x2r; in cftf081()
2889 y2i = x0i - x2i; in cftf081()
2890 y1r = x1r - x3i; in cftf081()
2893 y3i = x1i - x3r; in cftf081()
2894 x0r = a[2] + a[10]; in cftf081()
2895 x0i = a[3] + a[11]; in cftf081()
2896 x1r = a[2] - a[10]; in cftf081()
2897 x1i = a[3] - a[11]; in cftf081()
2898 x2r = a[6] + a[14]; in cftf081()
2899 x2i = a[7] + a[15]; in cftf081()
2900 x3r = a[6] - a[14]; in cftf081()
2901 x3i = a[7] - a[15]; in cftf081()
2904 y6r = x0r - x2r; in cftf081()
2905 y6i = x0i - x2i; in cftf081()
2906 x0r = x1r - x3i; in cftf081()
2909 x2i = x1i - x3r; in cftf081()
2910 y5r = picofftsg_mult_w_a(wn4r, (x0r - x0i)); in cftf081()
2912 y7r = picofftsg_mult_w_a(wn4r, (x2r - x2i)); in cftf081()
2914 a[8] = y1r + y5r; in cftf081()
2915 a[9] = y1i + y5i; in cftf081()
2916 a[10] = y1r - y5r; in cftf081()
2917 a[11] = y1i - y5i; in cftf081()
2918 a[12] = y3r - y7i; in cftf081()
2919 a[13] = y3i + y7r; in cftf081()
2920 a[14] = y3r + y7i; in cftf081()
2921 a[15] = y3i - y7r; in cftf081()
2922 a[0] = y0r + y4r; in cftf081()
2923 a[1] = y0i + y4i; in cftf081()
2924 a[2] = y0r - y4r; in cftf081()
2925 a[3] = y0i - y4i; in cftf081()
2926 a[4] = y2r - y6i; in cftf081()
2927 a[5] = y2i + y6r; in cftf081()
2928 a[6] = y2r + y6i; in cftf081()
2929 a[7] = y2i - y6r; in cftf081()
2933 void cftf082(PICOFFTSG_FFTTYPE *a) in cftf082() argument
2942 y0r = a[0] - a[9]; in cftf082()
2943 y0i = a[1] + a[8]; in cftf082()
2944 y1r = a[0] + a[9]; in cftf082()
2945 y1i = a[1] - a[8]; in cftf082()
2946 x0r = a[4] - a[13]; in cftf082()
2947 x0i = a[5] + a[12]; in cftf082()
2948 y2r = picofftsg_mult_w_a(wn4r, (x0r - x0i)); in cftf082()
2950 x0r = a[4] + a[13]; in cftf082()
2951 x0i = a[5] - a[12]; in cftf082()
2952 y3r = picofftsg_mult_w_a(wn4r, (x0r - x0i)); in cftf082()
2954 x0r = a[2] - a[11]; in cftf082()
2955 x0i = a[3] + a[10]; in cftf082()
2956 y4r = Mult_W_W(wk1r, x0r) - Mult_W_W(wk1i, x0i); in cftf082()
2958 x0r = a[2] + a[11]; in cftf082()
2959 x0i = a[3] - a[10]; in cftf082()
2960 y5r = Mult_W_W(wk1i, x0r) - Mult_W_W(wk1r, x0i); in cftf082()
2962 x0r = a[6] - a[15]; in cftf082()
2963 x0i = a[7] + a[14]; in cftf082()
2964 y6r = Mult_W_W(wk1i, x0r) - Mult_W_W(wk1r, x0i); in cftf082()
2966 x0r = a[6] + a[15]; in cftf082()
2967 x0i = a[7] - a[14]; in cftf082()
2968 y7r = Mult_W_W(wk1r, x0r) - Mult_W_W(wk1i, x0i); in cftf082()
2974 a[0] = x0r + x1r; in cftf082()
2975 a[1] = x0i + x1i; in cftf082()
2976 a[2] = x0r - x1r; in cftf082()
2977 a[3] = x0i - x1i; in cftf082()
2978 x0r = y0r - y2r; in cftf082()
2979 x0i = y0i - y2i; in cftf082()
2980 x1r = y4r - y6r; in cftf082()
2981 x1i = y4i - y6i; in cftf082()
2982 a[4] = x0r - x1i; in cftf082()
2983 a[5] = x0i + x1r; in cftf082()
2984 a[6] = x0r + x1i; in cftf082()
2985 a[7] = x0i - x1r; in cftf082()
2986 x0r = y1r - y3i; in cftf082()
2988 x1r = y5r - y7r; in cftf082()
2989 x1i = y5i - y7i; in cftf082()
2990 a[8] = x0r + x1r; in cftf082()
2991 a[9] = x0i + x1i; in cftf082()
2992 a[10] = x0r - x1r; in cftf082()
2993 a[11] = x0i - x1i; in cftf082()
2995 x0i = y1i - y3r; in cftf082()
2998 a[12] = x0r - x1i; in cftf082()
2999 a[13] = x0i + x1r; in cftf082()
3000 a[14] = x0r + x1i; in cftf082()
3001 a[15] = x0i - x1r; in cftf082()
3005 void cftf040(PICOFFTSG_FFTTYPE *a) in cftf040() argument
3009 x0r = a[0] + a[4]; in cftf040()
3010 x0i = a[1] + a[5]; in cftf040()
3011 x1r = a[0] - a[4]; in cftf040()
3012 x1i = a[1] - a[5]; in cftf040()
3013 x2r = a[2] + a[6]; in cftf040()
3014 x2i = a[3] + a[7]; in cftf040()
3015 x3r = a[2] - a[6]; in cftf040()
3016 x3i = a[3] - a[7]; in cftf040()
3017 a[0] = x0r + x2r; in cftf040()
3018 a[1] = x0i + x2i; in cftf040()
3019 a[2] = x1r - x3i; in cftf040()
3020 a[3] = x1i + x3r; in cftf040()
3021 a[4] = x0r - x2r; in cftf040()
3022 a[5] = x0i - x2i; in cftf040()
3023 a[6] = x1r + x3i; in cftf040()
3024 a[7] = x1i - x3r; in cftf040()
3028 void cftb040(PICOFFTSG_FFTTYPE *a) in cftb040() argument
3032 x0r = a[0] + a[4]; in cftb040()
3033 x0i = a[1] + a[5]; in cftb040()
3034 x1r = a[0] - a[4]; in cftb040()
3035 x1i = a[1] - a[5]; in cftb040()
3036 x2r = a[2] + a[6]; in cftb040()
3037 x2i = a[3] + a[7]; in cftb040()
3038 x3r = a[2] - a[6]; in cftb040()
3039 x3i = a[3] - a[7]; in cftb040()
3040 a[0] = x0r + x2r; in cftb040()
3041 a[1] = x0i + x2i; in cftb040()
3042 a[2] = x1r + x3i; in cftb040()
3043 a[3] = x1i - x3r; in cftb040()
3044 a[4] = x0r - x2r; in cftb040()
3045 a[5] = x0i - x2i; in cftb040()
3046 a[6] = x1r - x3i; in cftb040()
3047 a[7] = x1i + x3r; in cftb040()
3051 void cftx020(PICOFFTSG_FFTTYPE *a) in cftx020() argument
3055 x0r = a[0] - a[2]; in cftx020()
3056 x0i = a[1] - a[3]; in cftx020()
3057 a[0] += a[2]; in cftx020()
3058 a[1] += a[3]; in cftx020()
3059 a[2] = x0r; in cftx020()
3060 a[3] = x0i; in cftx020()
3064 void rftfsub(picoos_int32 n, PICOFFTSG_FFTTYPE *a) in rftfsub() argument
3096 i0 = i - RDFT_LOOP_DIV_4; in rftfsub()
3100 for (j = i - 4; j >= i0; j -= 4) { in rftfsub()
3101 k = n - j; in rftfsub()
3102 xr = a[j + 2] - a[k - 2]; in rftfsub()
3103 xi = a[j + 3] + a[k - 1]; in rftfsub()
3104 yr = Mult_W_W(wdr, xr) - Mult_W_W(wdi, xi); in rftfsub()
3106 a[j + 2] -= yr; in rftfsub()
3107 a[j + 3] -= yi; in rftfsub()
3108 a[k - 2] += yr; in rftfsub()
3109 a[k - 1] -= yi; in rftfsub()
3111 wki += picofftsg_mult_w_w(ss, (PICOFFTSG_WGT_SHIFT2 - wdr)); in rftfsub()
3112 xr = a[j] - a[k]; in rftfsub()
3113 xi = a[j + 1] + a[k + 1]; in rftfsub()
3114 yr = Mult_W_W(wkr, xr) - Mult_W_W(wki, xi); in rftfsub()
3116 a[j] -= yr; in rftfsub()
3117 a[j + 1] -= yi; in rftfsub()
3118 a[k] += yr; in rftfsub()
3119 a[k + 1] -= yi; in rftfsub()
3121 wdi += picofftsg_mult_w_w(ss, (PICOFFTSG_WGT_SHIFT2 - wkr)); in rftfsub()
3128 xr = a[2] - a[n - 2]; in rftfsub()
3129 xi = a[3] + a[n - 1]; in rftfsub()
3130 yr = Mult_W_W(wdr, xr) - Mult_W_W(wdi, xi); in rftfsub()
3133 a[2] -= yr; in rftfsub()
3134 a[3] -= yi; in rftfsub()
3135 a[n - 2] += yr; in rftfsub()
3136 a[n - 1] -= yi; in rftfsub()
3142 void rftbsub(picoos_int32 n, PICOFFTSG_FFTTYPE *a) in rftbsub() argument
3156 i0 = i - RDFT_LOOP_DIV4; in rftbsub()
3160 for (j = i - 4; j >= i0; j -= 4) { in rftbsub()
3161 k = n - j; in rftbsub()
3162 xr = a[j + 2] - a[k - 2]; in rftbsub()
3163 xi = a[j + 3] + a[k - 1]; in rftbsub()
3165 yi = Mult_W_W(wdr, xi) - Mult_W_W(wdi, xr); in rftbsub()
3166 a[j + 2] -= yr; in rftbsub()
3167 a[j + 3] -= yi; in rftbsub()
3168 a[k - 2] += yr; in rftbsub()
3169 a[k - 1] -= yi; in rftbsub()
3171 wki += picofftsg_mult_w_w(ss, (PICOFFTSG_WGT_SHIFT2 - wdr)); in rftbsub()
3172 xr = a[j] - a[k]; in rftbsub()
3173 xi = a[j + 1] + a[k + 1]; in rftbsub()
3175 yi = Mult_W_W(wkr, xi) - Mult_W_W(wki, xr); in rftbsub()
3176 a[j] -= yr; in rftbsub()
3177 a[j + 1] -= yi; in rftbsub()
3178 a[k] += yr; in rftbsub()
3179 a[k + 1] -= yi; in rftbsub()
3181 wdi += picofftsg_mult_w_w(ss, (PICOFFTSG_WGT_SHIFT2 - wkr)); in rftbsub()
3187 xr = a[2] - a[n - 2]; in rftbsub()
3188 xi = a[3] + a[n - 1]; in rftbsub()
3190 yi = Mult_W_W(wdr, xi) - Mult_W_W(wdi, xr); in rftbsub()
3191 a[2] -= yr; in rftbsub()
3192 a[3] -= yi; in rftbsub()
3193 a[n - 2] += yr; in rftbsub()
3194 a[n - 1] -= yi; in rftbsub()
3198 void dctsub(picoos_int32 n, PICOFFTSG_FFTTYPE *a) in dctsub() argument
3226 if (i0 > m - 2) { in dctsub()
3227 i0 = m - 2; in dctsub()
3230 k = n - j; in dctsub()
3231 xr = picofftsg_mult_w_a(wdi, a[j - 1]) - picofftsg_mult_w_a(wdr, a[k + 1]); in dctsub()
3232 xi = picofftsg_mult_w_a(wdr, a[j - 1]) + picofftsg_mult_w_a(wdi, a[k + 1]); in dctsub()
3233 wkr -= Mult_W_W(ss, wdi); in dctsub()
3235 yr = Mult_W_W(wki, a[j]) - Mult_W_W(wkr, a[k]); in dctsub()
3236 yi = Mult_W_W(wkr, a[j]) + Mult_W_W(wki, a[k]); in dctsub()
3237 wdr -= Mult_W_W(ss, wki); in dctsub()
3239 a[k + 1] = xr; in dctsub()
3240 a[k] = yr; in dctsub()
3241 a[j - 1] = xi; in dctsub()
3242 a[j] = yi; in dctsub()
3244 if (i0 == m - 2) { in dctsub()
3248 xr = picofftsg_mult_w_a(wdi, a[m - 1]) - picofftsg_mult_w_a(wdr, a[m + 1]); in dctsub()
3249 a[m - 1] = picofftsg_mult_w_a(wdr, a[m - 1]) + picofftsg_mult_w_a(wdi, a[m + 1]); in dctsub()
3250 a[m + 1] = xr; in dctsub()
3251 a[m] = Mult_W_W(WR5000, a[m]); in dctsub()
3255 void dctsub4(picoos_int32 n, PICOFFTSG_FFTTYPE *a) in dctsub4() argument
3265 xr = Mult_W_W(wdi, a[1]) - Mult_W_W(wdr, a[3]); in dctsub4()
3266 a[1] = Mult_W_W(wdr, a[1]) + Mult_W_W(wdi, a[3]); in dctsub4()
3267 a[3] = xr; in dctsub4()
3269 a[m] = Mult_W_W(wki, a[m]); in dctsub4()