首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SSE2饱和算法

SSE2饱和算法
EN

Stack Overflow用户
提问于 2015-07-06 08:36:17
回答 1查看 832关注 0票数 3

我正在编写一些音频处理软件,我需要知道如何使用SSE2双精度指令来完成饱和算术。我的值需要在-1到1之间进行规范化。有什么聪明的方法可以用SSE2内部的方法来实现这一点呢?还是我需要2组if/ each语句(每个值一个)?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-06 13:16:08

要将双精度值剪辑到-1.0到+1.0之间,可以使用max/min操作。例如,如果您有N个double值的缓冲区,double

代码语言:javascript
复制
const __m128d kMax = _mm_set1_pd(1.0);
const __m128d kMin = _mm_set1_pd(-1.0);

for (int i = 0; i < N; i += 2)
{
    __m128d v = _mm_loadu_pd(&buff[i]);
    v = _mm_max_pd(v, kMin);
    v = _mm_min_pd(v, kMax);
    _mm_storeu_pd(&buff[i], v);
}
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31241187

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档