首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SSE2:双精度日志函数

SSE2:双精度日志函数
EN

Stack Overflow用户
提问于 2010-12-14 01:17:24
回答 5查看 2.8K关注 0票数 10

我需要开源(没有许可证限制)日志功能的实现,有签名的东西

代码语言:javascript
运行
复制
__m128d _mm_log_pd(__m128d);

它在英特尔短向量数学库( ICC的一部分)中可用,但ICC既不是免费的,也不是开源的。我正在寻找只使用内部的实现。

它应该使用特殊的有理函数近似。我需要一些几乎像cmath一样准确的东西,比如9-10位十进制数字,但速度更快。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-04-22 04:10:23

看看AMD LibM吧。它不是开源的,但却是免费的。AFAIK,它在Intel CPU上工作。在同一个网页上,你可以找到另一个来自AMD的免费数学库-- ACML的链接。它有从AMD LibM +矩阵算法,FF和发行版的一切。

我不知道任何双精度向量化数学函数的开源实现。我猜Intel和AMD库是由CPU制造商手工优化的,当速度很重要时,每个人都会使用它们。IIRC,有一次尝试在GCC中实现向量化数学函数的内部函数。我不知道他们能走多远。显然,这不是一项微不足道的任务。

票数 5
EN

Stack Overflow用户

发布于 2010-12-27 19:25:03

我相信log2更容易计算。您可以将您的数字乘以2的幂(非常快),使其位于(0.5,2],然后使用Pade approximant (取M接近N),它很容易一劳永逸地导出,并且您可以根据需要选择其顺序。您只需要可以使用SSE内部函数执行的算术运算。不要忘记根据上面的比例因子添加/删除常量。

如果你想要自然对数,除以log2(e),你可以一次性计算。

在一些特定项目中,自定义日志函数并不少见。标准库函数解决了一般情况,但您需要更具体的东西。我真诚地认为自己做这件事并不难。

票数 6
EN

Stack Overflow用户

发布于 2010-12-27 18:52:31

Framewave project是Apache2.0许可的,旨在成为Intel IPP的开源等价物。它的实现与您正在寻找的非常接近。检查文档中的固定精度算术函数。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4431505

复制
相关文章

相似问题

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