5.4 User Considerations
All the fractional filtering operations in this library rely on the values of either input parameters or data structure elements to specify the number of samples to process and the sizes of the coefficients and delay vectors. Based on these values, the following assumptions are made:
- The sum of sizes of all the vectors (sample sequences) involved in a particular operation falls within the range of available data memory for the target device.
- The destination vector must be large enough to accept the results of an operation.
- No boundary checking is performed by these functions. Out of range sizes (including zero length vectors) as well as nonconforming use of source vectors and coefficient sets may produce unexpected results.
- It is recommended that the STATUS Register (SR) is examined after 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.
- Operations which return a destination 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))
- 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.