| 2583 | } |
| 2584 | |
| 2585 | static void ifftrecurs(SPFLOAT * ioptr, int M, SPFLOAT * Utbl, int Ustride, |
| 2586 | int NDiffU, int StageCnt) |
| 2587 | { |
| 2588 | /* recursive bfstages calls to maximize on chip cache efficiency */ |
| 2589 | int i1; |
| 2590 | |
| 2591 | if (M <= (int) MCACHE) |
| 2592 | ibfstages(ioptr, M, Utbl, Ustride, NDiffU, StageCnt); /* RADIX 8 Stages */ |
| 2593 | else |
| 2594 | { |
| 2595 | for (i1 = 0; i1 < 8; i1++) |
| 2596 | { |
| 2597 | ifftrecurs(&ioptr[i1 * POW2(M - 3) * 2], M - 3, Utbl, 8 * Ustride, |
| 2598 | NDiffU, StageCnt - 1); /* RADIX 8 Stages */ |
| 2599 | } |
| 2600 | ibfstages(ioptr, M, Utbl, Ustride, POW2(M - 3), 1); /* RADIX 8 Stage */ |
| 2601 | } |
| 2602 | } |
| 2603 | |
| 2604 | #if 0 |
| 2605 | static void iffts1(SPFLOAT * ioptr, int M, SPFLOAT * Utbl, int16_t * BRLow) |