| 2258 | } |
| 2259 | |
| 2260 | int cfttree(int n, int j, int k, float *a) |
| 2261 | { |
| 2262 | int i, isplt, m; |
| 2263 | |
| 2264 | if ((k & 3) != 0) { |
| 2265 | isplt = k & 1; |
| 2266 | if (isplt != 0) { |
| 2267 | cftmdl1(n, &a[j - n]); |
| 2268 | } |
| 2269 | else { |
| 2270 | cftmdl2(n, &a[j - n]); |
| 2271 | } |
| 2272 | } |
| 2273 | else { |
| 2274 | m = n; |
| 2275 | for (i = k; (i & 3) == 0; i >>= 2) { |
| 2276 | m <<= 2; |
| 2277 | } |
| 2278 | isplt = i & 1; |
| 2279 | if (isplt != 0) { |
| 2280 | while (m > 128) { |
| 2281 | cftmdl1(m, &a[j - m]); |
| 2282 | m >>= 2; |
| 2283 | } |
| 2284 | } |
| 2285 | else { |
| 2286 | while (m > 128) { |
| 2287 | cftmdl2(m, &a[j - m]); |
| 2288 | m >>= 2; |
| 2289 | } |
| 2290 | } |
| 2291 | } |
| 2292 | return isplt; |
| 2293 | } |
| 2294 | |
| 2295 | void cftleaf(int n, int isplt, float *a) |
| 2296 | { |