32-Bit BFP API
void bfp_s32_init()
初始化一个32位BFP向量。
该函数会初始化BFP向量 a 中的每个字段。
data指向用于存储向量元素的内存缓冲区,因此它的长度必须至少为length * 4字节,并且必须以字对齐的地址开始。
exp是分配给BFP向量的指数。初始化后,向量的第k个元素关联的逻辑值为 。
如果calc_hr为false,则a->hr被初始化为0。否则,计算BFP向量的头空间并用其初始化a->hr。
参数:
bfp_s32_t *a– [out] 要初始化的BFP向量int32_t *data– [in] 用于支持a的int32_t缓冲区const exponent_t exp– [in] BFP向量的指数const unsigned length– [in] BFP向量中的元素数量const unsigned calc_hr– [in] 表示是否应计算BFP向量的头空间的布尔值
参考性能:

bfp_s32_t bfp_s32_alloc()
从堆中动态分配一个32位BFP向量。
如果分配失败,返回向量的data字段将为NULL,length字段将为零。否则,data将指向分配的内存,length字段将是用户指定的长度。length参数不能为零。
此函数不会设置BFP指数、头空间或分配的尾数向量的元素。要将BFP向量的元素设置为已知值,请在返回的BFP向量上使用bfp_s32_set()。
使用此函数分配的BFP向量必须使用bfp_s32_dealloc()进行释放,以避免内存泄漏。
要使用静态内存分配初始化BFP向量,请改用bfp_s32_init()。
备注
此函数始终分配额外的2个元素,以便可以安全地使用bfp_fft_unpack_mono()函数,但这两个元素不会在返回的向量长度中反映出来。
备注
BFP向量的动态分配依赖于从堆中分配内存,并且对执行时间没有任何保证。在任何时间关键的代码段中使用此函数是不推荐的。
参数:
unsigned length – [in] 要分配的BFP向量的长度(以元素为单位)