6.3 User Considerations

When using transform functions, consider the following:

  1. No boundary checking is performed by these functions. Out of range sizes (including zero length vectors) as well as nonconforming use of source complex vectors and factor sets may produce unexpected results.
  2. It is recommended that the STATUS Register (SR) is examined after the completion of each function call. In particular, users can inspect the SA, SB and SAB flags after the function returns to determine if saturation occurred.
  3. The input and output complex vectors involved in the family of transformations must be allocated in Y-Data memory. Transform factors may be allocated either in X-Data or program memory.
  4. Because Bit-Reverse Addressing requires the vector set to be modulo aligned, the input and output complex vectors in operations using either explicitly or implicitly the BitReverseComplex function must be properly allocated.
  5. Operations which return a destination complex vector can be nested. For instance, if:

    a = Op1 (b, c), with b = Op2 (d), and c = Op3 (e, f), then

    a = Op1 (Op2 (d), Op3 (e, f)).

  6. All cycle count values for PIC32A are measured with PBU cache enabled and may differ depending on the status of PBU cache or on the placement of vectors and code.