Log10
计算src中每个元素以10为底的对数,并将结果存储到dst中。
实数公式:dst[n] = log10(src[n]),0 ≤ n < len。
复数公式:dst[n] = log10(src[n].re * src[n].re + src[n].im * src[n].im) / 2 + arctan(b / a)i,0 ≤ n < len。
函数接口声明如下:
主函数操作:
HmppResult HMPPS_Log10_32f(const float* src, float* dst, int32_t len);
HmppResult HMPPS_Log10_64f(const double* src, double* dst, int32_t len);
HmppResult HMPPS_Log10_32fc(const Hmpp32fc* src, Hmpp32fc* dst, int32_t len);
HmppResult HMPPS_Log10_64fc(const Hmpp64fc* src, Hmpp64fc* dst, int32_t len);
参数
参数名  | 
描述  | 
取值范围  | 
输入/输出  | 
|---|---|---|---|
src  | 
指向源向量的指针。  | 
非空  | 
输入  | 
dst  | 
指向目的向量的指针。  | 
非空  | 
输出  | 
len  | 
向量长度。  | 
(0, INT_MAX]  | 
输入  | 
返回值
- 成功:返回HMPP_STS_NO_ERR。
 - 警告:返回HMPP_STS_DOMAIN或HMPP_STS_SINGULARITY。
 - 失败:返回错误码。
 
错误码
错误码  | 
描述  | 
|---|---|
HMPP_STS_NULL_PTR_ERR  | 
src、dst这两个入参中存在空指针。  | 
HMPP_STS_SIZE_ERR  | 
len、overLap、window、nfft不在有效取值范围内。  | 
HMPP_STS_DOMAIN  | 
告警,向量中存在小于0的元素。  | 
HMPP_STS_SINGULARITY  | 
告警,向量中存在等于0的元素。  | 
示例
#define  BUFFER_SIZE_T 5
void Log10Example()
{
    float src[BUFFER_SIZE_T] = {1, 2.5, 3.3, 1, 5};
    float dst[BUFFER_SIZE_T];
    HMPPS_Zero_32f(dst, BUFFER_SIZE_T); // 数组初始化,将dst所有元素初始化为0。
    HmppResult result = HMPPS_Log10_32f(src, dst, BUFFER_SIZE_T);
    if (result == HMPP_STS_NO_ERR) {
        printf("dst = ");
        for (int32_t i = 0; i < BUFFER_SIZE_T; i++) {
            printf("%.2f ", dst[i]);
        }
        printf("\n");
    }
}
运行结果:
dst = 0.00 0.40 0.52 0.00 0.70
父主题: 基础与通用运算