Adelsbach/VSIPL
Core Light Programming Reference Guide
DD-00014-015
Core Light

5.5 vsip_cblockrebind_p - Rebind existing block (complex)

void vsip_cblockrebind_f(vsip_cblock_f *p, vsip_scalar_f *r, vsip_scalar_f *i, vsip_scalar_f **rr, vsip_scalar_f **ir);
Description

This function rebinds an existing complex block p to new real and imaginary part arrays r and i. If i is NULL, it is implied that r points to an interleaved array. The new array(s) must have the same size as the originally bound data array(s).

The block must be in the released state to be rebound. After rebinding, the block must be admitted before it can be used.

The previously bound data array(s) are stored in rr and ir. If the originally bound data is interleaved, ir will be set to NULL. On error, both rr and ir will be set to NULL.

Parameters
Error Handling

On error, both rr and ir are set to NULL.

Example

vsip_cblock_f *block; 
vsip_scalar_f *new_real_part; 
vsip_scalar_f *new_imag_part = NULL; // For interleaved data 
vsip_scalar_f *old_real_part; 
vsip_scalar_f *old_imag_part; 
 
// Assuming block has been properly initialized and is in the released state 
vsip_cblockrebind_f(block, new_real_part, new_imag_part, &old_real_part, &old_imag_part); 
 
if (old_real_part == NULL) { 
    // Handle error 
}