在 AVX 中寻找绝对

2024-01-12

在其中一个解决方案中,他/她发现abs(inp)对于 AVX 向量,

__m256 符号位 = _mm256_set1_ps(-0.0f); __m256 inp_abs = _mm256_andnot_ps(sign_bit, inp);

其背后的逻辑是什么?

SSE/AVX:根据每个元素的最小和最大绝对值从两个 __m256 浮点向量中进行选择 https://stackoverflow.com/questions/52415188/sse-avx-choose-from-two-m256-float-vectors-based-on-per-element-min-and-max-a


IEEE 754 https://en.wikipedia.org/wiki/IEEE_754表示带有符号位、有效数和指数的浮点数。符号位设置为负数,清除为正数。因此,只需清除数字的符号位即可计算绝对值。

号码-0.0f具有全位为零的有效数字幅度和指数以及负号,因此其二进制表示形式将设置符号位并清除所有其他位。因此它可以用作符号位的掩码。这内在将此 32 位值广播到 256 位向量的所有元素sign_bit, and 计算按位与inp与非sign_bit, 那是inp & ~sign_bit,它有效地清除每个元素的符号位并且不会改变任何其他内容。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 AVX 中寻找绝对 的相关文章

  • 在 Objective C 中格式化浮点数

    我需要将浮点数 吸引人的标题 他 格式化为小数点后两位 但前提是这些小数位的值不为零 例子 我有一个名为 answer 的 NSTextField 在使用几个浮点进行一些数学运算后 我想将 answerFloat 变量分配给 answer
  • 对整数向量使用 _mm_shuffle_ps 的影响

    SSE内在函数包括 mm shuffle ps xmm1 xmm2 immx它允许人们从中选择 2 个元素xmm1与 2 个元素连接xmm2 然而 这是针对浮点数的 由 ps 单个包装 但是 如果你转换你的压缩整数 m128i 那么你可以使
  • Python,在输出中将所有浮点数打印到小数点后两位

    我需要输出 4 个不同的浮点数到小数点后两位 这就是我所拥有的 print 2f var1 kg 2f var2 lb 2f var3 gal 2f var4 l 这是非常不干净的 而且看起来很糟糕 有没有办法让输出 2f 中出现任何浮动
  • 是否可以在不诉诸任意精度数据类型的情况下消除浮点错误?

    我想知道在特定条件下是否可以在不诉诸任意精度数据类型的情况下消除浮点错误 问题是常见的 语言是 Ruby 但它适用于任何语言 f 1829 82 gt 1829 82 f 12 0 gt 152 485 f 12 0 round 2 gt
  • C浮点精度[重复]

    这个问题在这里已经有答案了 可能的重复 浮点比较 https stackoverflow com questions 7011184 floating point comparison 我对 C C 中浮点数的准确性有疑问 当我执行下面的程
  • 有什么好的 JavaScript 货币或小数类吗?

    我正在尝试处理 JavaScript 值 例如23 45 但我希望能够对这些值进行数学运算 加法 减法 乘法 除法 而不会遇到浮点问题 是的 有时我可能需要对结果进行四舍五入 但我希望它给出合理的答案 在 JavaScript 中考虑一下
  • 将 float 和 double 值与 delta 进行比较?

    据我了解 必须仔细比较浮点类型的值 以避免固有浮点错误的问题 这可以通过将值与错误阈值进行比较来改进 例如 以下解决方案比简单的解决方案更有用x y test static float CompareRelativeError float
  • Numpy排列浮点不一致

    我有一个相当简单的 numpy 任务 创建一个长数组 每个元素递增 0 001 当然 np arange就是答案 我将自己限制为默认精度 float64 对结果的一个简单检查是数组的每 1000 个元素应该具有相同的小数部分 我通过绘图检查
  • 处理 Javascript 中的浮点精度[重复]

    这个问题在这里已经有答案了 我有大量数值y在 JavaScript 中 我想通过将它们四舍五入到最接近的倍数来对它们进行分组x并将结果转换为字符串 如何解决烦人的浮点精度 例如 0 2 0 4 0 6000000000000001 我尝试过
  • C: (int)x 和 Floor(x) 之间的区别?

    在C语言中 这两者有什么区别 float myF 5 6 printf i n int myF gives me 5 printf ld n floor myF also 5 什么时候其中一种比另一种更可取 一个很大的区别是负数 如果你改变
  • Python:计算非整数的阶乘

    我想知道是否有一种快速的 Pythonic 的方法来计算非整数的阶乘 例如 3 4 当然 内置的factorial 函数在Math模块可用 但它仅适用于积分 我不关心这里的负数 你想用math gamma x http docs pytho
  • numpy float:算术运算比内置函数慢 10 倍?

    我对以下代码的计时非常奇怪 import numpy as np s 0 for i in range 10000000 s np float64 1 replace with np float32 and built in float 内
  • 为什么在 SQL Server 中从 float 到 varchar 的转换要四舍五入?

    以下 SQL declare a as float b as float select a 1 353954 b 1 353956 select CAST a as VARCHAR 40 AS a float to varchar CAST
  • 是否可以用 Rust 编写 Quake 的快速 InvSqrt() 函数?

    这只是为了满足我自己的好奇心 是否有这样的实现 float InvSqrt float x float xhalf 0 5f x int i int x i 0x5f3759df i gt gt 1 x float i x x 1 5f x
  • 适用于 AVX 和 SSE 的 Visual Studio 的 cpu 调度程序

    我使用两台计算机工作 一种不支持 AVX 另一种支持 AVX 让我的代码在运行时找到我的CPU支持的指令集并选择合适的代码路径会很方便 我按照 Agner Fog 的建议制作了一个 CPU 调度程序 http www agner org o
  • 为什么 GCC 不将 a*a*a*a*a*a 优化为 (a*a*a)*(a*a*a)?

    我正在对科学应用程序进行一些数值优化 我注意到的一件事是 GCC 会优化调用pow a 2 通过将其编译成a a 但是调用pow a 6 没有优化 实际会调用库函数pow 这大大降低了性能 相比之下 英特尔 C 编译器 http en wi
  • cout 可以以某种方式改变变量吗?

    所以我有一个看起来像这样的函数 float function float x SomeValue return x SomeOtherValue 在某些时候 这个函数会溢出并返回一个非常大的负值 为了尝试准确追踪发生这种情况的位置 我添加了
  • 浮点型、双精度型和十进制最大值与大小的关系[重复]

    这个问题在这里已经有答案了 我在 C 中遇到了这些数据类型的大小和最大值的令人困惑的模式 在使用 Marshal SizeOf 比较这些大小时 我发现了以下结果 Float 4 bytes Double 8 bytes Decimal 16
  • == 在 R 中,精度为 .Machine$double.eps [重复]

    这个问题在这里已经有答案了 在 R 中 我发现必须转换易于阅读的代码有点烦人 例如 if det A 1 not always working because of floating point precision to if abs de
  • 测试由于浮点限制而导致的舍入误差

    我最近了解到浮点的主要限制之一 事实上 某些数字无法以二进制正确表示 因此可能给出的答案对于您的目的来说不够准确 知道round 2 675 2 and round 2 665 2 两者相等2 67我尝试编写一些代码来给出具有此属性的数字列

随机推荐

  • C++ 如何将年月日格式的日期转换为unix纪元格式?

    我需要将给定日期转换为包含自 1970 年 1 月 1 日以来的毫秒数的 int unix 纪元 我尝试了以下代码 tm lDate lDate tm sec 0 lDate tm min 0 lDate tm hour 0 lDate t
  • 如何更改TextView上的字体?

    如何更改a中的字体TextView 默认显示为 Arial 如何将其更改为Helvetica 首先 默认不是 Arial 默认为 Droid Sans 其次 要更改为不同的内置字体 请使用android typeface在布局 XML 中或
  • 如何从主题更改 CardView 背景颜色

    在具有多个主题的应用程序中 如何从样式文件更改 CardView 的背景颜色 样式 xml
  • 使用pip安装lxml失败

    这是我用来安装 lxml 的命令 sudo pip install lxml 我在清理阶段收到以下消息 Cleaning up Command usr bin python c import setuptools tokenize file
  • 获得最近目标的最有效方法是什么

    从这两种方法中获得最接近目标的最有效且最便宜的方法是什么 使用LINQ GameObject FindClosestTarget string trgt GameObject closestGameObject GameObject Fin
  • 在 GitHub 上 fork 是什么意思?

    经过一番探索 在我的理解中 这和贡献有关 Fork 意味着将存储库 被分叉的那个 复制一份到我自己的 github 帐户中 如果我想分叉官方 jQuery 存储库 那么我会去https github com jquery jquery ht
  • 集合视图标题

    Xamarin Forms 版本 4 2 0 848062 iOS iPhone 8 iOS 13 1 安卓 9 0 在 iOS gt CollectionView Header 中不起作用 图片 gt https ibb co 30yw2
  • Sublime text 和 Linux-KDE。系统区域设置设置为无法处理非 ASCII 字符的值

    当我打开 ST3 时出现此错误 包控制不起作用 包控制您的系统的本地设置为一个值 不能 处理非 ASCII 字符 包控制无法正常工作 除非这是固定的 在 Linux 上 请参考您的发行版文档以正确打开 设置 LANG 环境变量 作为临时解决
  • 如何使用简单的样式表转换 ms excel xml?

    我需要使用样式表转换以 xml 格式保存的 Excel 电子表格 但我一直对 ms 使用的许多命名空间感到困惑 我需要一个XSLT 样式表允许输入 xml 的每个元素传递 当我使用样式表时 默认值似乎传递所有文本 否则该样式表应该只传递我正
  • 虚拟主机配置中的 apache 西里尔文通配符

    有一个问题 我有一个包含许多子域的项目 它的配置如下 VirtualHost1 ServerAlias a example com VirtualHost2 ServerAlias b example com VirtualHost3 Se
  • android studio 中带有选择器的图像按钮渲染错误

    我用选择器制作了一个具有按下效果的按钮 我正在使用 android studio 当我使用 eclipse 时它运行良好 但是 当我在 android studio 中尝试时 日志不断显示错误 这是我的日志 java lang NullPo
  • 一种计算响应式网格中列数的方法

    虽然我还没有找到答案 但问题很简单 有没有办法 除了蛮力之外 计算响应式网格中的列数 grid container width 100 height 85 position relative padding var gap adjusted
  • 在 dplyr summarise 中使用变量列名

    我发现这个问题已经被问过 但没有正确的答案 R在dplyr的summary函数中使用变量列名 https stackoverflow com questions 31979189 r using variable column names
  • 如何使用 JMock 在 java 中模拟静态变量

    我有一个单元测试问题 其中一个类有一个静态变量想要加载 Spring 应用程序 Ctx 这个类不是来自 Bean Factory 我无法改变这个事实 static ApplicationContext applicationContext
  • 多个 AVAudioRecorder 实例

    我正在开发一个记录声音的应用程序 此外 我希望用户能够用自己的声音评论某些情况 我认为配置一个音频会话并创建两个具有不同文件 URL 的 AVAudioRecorder 实例就足够了 但这不起作用 第二个录音机确实创建了其音频文件 但它不记
  • AAA在8086指令集中如何工作?

    有一些关于指令如何工作的算法的信息 if low nibble of AL gt 9 or AF 1 then AL AL 6 AH AH 1 AF 1 CF 1 else AF 0 CF 0 in both cases clear the
  • 如何将 npm(node.js 包管理器)添加到 PATH 中?

    我像这样安装了node js cd usr local bin git clone depth 1 http github com joyent node git cd node git checkout origin v0 4 optio
  • 使用 html Mailto 向多个收件人发送电子邮件:不起作用

    我们有 400 到 500 百封电子邮件 当我们连接它们并将它们放入 mailto 时 它不起作用 浏览器会自动在电子邮件之间添加 并且单击链接不起作用 a href open emails a 是否有最大长度mailto 属性 还有其他方
  • 在 Windows 上编译 MatConvNet

    我正在尝试编译矩阵卷积网络 http www vlfeat org matconvnet 在 Windows 8 1 上 因为我似乎需要使用 Makefile 来做到这一点 所以我下载了GNUWin 制作 http gnuwin32 sou
  • 在 AVX 中寻找绝对

    在其中一个解决方案中 他 她发现abs inp 对于 AVX 向量 m256 符号位 mm256 set1 ps 0 0f m256 inp abs mm256 andnot ps sign bit inp 其背后的逻辑是什么 SSE AV