void vsip_cblockrelease_f(vsip_cblock_f *b, vsip_scalar_bl u, vsip_scalar_f **rr, vsip_scalar_f **ri);
This function releases the complex block b and queries the user array(s). Depending on the data format, the function sets the pointers rr and ri accordingly:
If the data is in interleaved format, only rr will be set, and ri will be set to NULL.
If the data is in split format, both rr and ri will be set to point to the real and imaginary parts, respectively.
The flag u determines whether the data must be maintained during the state change. The block must have been bound previously and must be in the released state before calling this function.
vsip_cblock_p *b: Pointer to the complex block to be released.
vsip_scalar_bl u: Flag indicating whether the data should be maintained.
vsip_scalar_p **rr: Pointer to the real part of the user array.
vsip_scalar_p **ri: Pointer to the imaginary part of the user array.
On error, both rr and ri are set to NULL.
vsip_cblock_f *block; vsip_scalar_bl maintain_data = VSIP_TRUE; vsip_scalar_f *real_part; vsip_scalar_f *imag_part; // Assuming block has been properly initialized and bound vsip_cblockrelease_f(block, maintain_data, &real_part, &imag_part); if (real_part == NULL) { // Handle error }