定点的反平方根

2023-11-23

我正在寻找定点 16.16 数字的最佳反平方根算法。下面的代码是我到目前为止所拥有的(但基本上它取平方根并除以原始数字,我想得到不除法的倒数平方根)。如果它发生任何改变,代码将为armv5te编译。

uint32_t INVSQRT(uint32_t n)
{
    uint64_t op, res, one;
    op = ((uint64_t)n<<16);
    res = 0;
    one = (uint64_t)1 << 46;
    while (one > op) one >>= 2;
    while (one != 0)
    {
        if (op >= res + one)
        {
            op -= (res + one);
            res +=  (one<<1);
        }
        res >>= 1;
        one >>= 2;
    }
    res<<=16;
    res /= n;
    return(res);
}

诀窍是将牛顿法应用于问题 x - 1/y^2 = 0。因此,给定 x,使用迭代方案求解 y。

Y_(n+1) = y_n * (3 - x*y_n^2)/2

除以 2 只是位移一位,或者最坏的情况是乘以 0.5。该方案完全按照要求收敛到 y=1/sqrt(x),并且根本没有任何真正的除法。

唯一的问题是你需要一个合适的 y 起始值。我记得迭代收敛的估计 y 是有限制的。

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

定点的反平方根 的相关文章

  • 如何用凸形状形成凹形状?

    我试图绕过只能在 SFML C 库中形成凸形状的规则 为此 我计划测试给定的顶点 如果是凹的 将顶点分成组 测试每个组的凹性 并重复直到得到看起来像的全套凹形形状 就像组合在一起时的原始形状一样 我想知道的是 测试形状凹度的方程式是什么 它
  • 将数字缩放为 <= 255?

    我的单元格的数值可以是 0 到 0 之间的任何值Integer MAX VALUE 我想对这些单元格进行相应的颜色编码 如果该值 0 则 r 0 如果该值是Integer MAX VALUE 则 r 255 但是中间的值呢 我想我需要一个函
  • .NET:十进制到舍入字符串

    如果我有一个decimal 如何获得带有两位小数的字符串版本 这不起作用 Math Round myDecimal 2 ToString 0 00 不要使用大括号 它们用于使用以下命令将格式化值嵌入到较长的字符串中string Format
  • Java中的整数除法[重复]

    这个问题在这里已经有答案了 这感觉像是一个愚蠢的问题 但我在 Java 文档中找不到答案 如果我声明两个 int 然后将它们相除 到底发生了什么 他们是否转换为floats doubles首先 划分 然后投射回integer 或者除法是作为
  • 有效地将相似的数字分组在一起[重复]

    这个问题在这里已经有答案了 可能的重复 一维数数组聚类 https stackoverflow com questions 11513484 1d number array clustering 我有一个数字数组 例如 1 20 300 4
  • 神经网络的局部逆

    我有一个带有 N 个输入节点和 N 个输出节点的神经网络 可能还有多个隐藏层和循环 但让我们先忘记这些 神经网络的目标是学习一个N维变量Y 给定N维值X 假设神经网络的输出是Y 学习后应该接近Y 我的问题是 是否有可能得到输出 Y 的神经网
  • 帮助我在 Python 中实现反向传播

    EDIT2 新的训练集 Inputs 0 0 0 0 0 0 1 0 0 0 2 0 0 0 3 0 0 0 4 0 1 0 0 0 1 0 1 0 1 0 2 0 1 0 3 0 1 0 4 0 2 0 0 0 2 0 1 0 2 0 2
  • 3D 数学:根据“向上”和“向上”正交向量计算倾斜(滚动)角度

    我希望这是提出这个问题的正确位置和这个一样 https stackoverflow com questions 3035590 bank angle from up vector and look at vector 但表示为纯数学而不是图
  • Java中的字符算术

    在玩的过程中 我遇到了一些对我来说似乎很奇怪的事情 以下不是有效的 Java 代码 char x A x x 1 possible loss of precision 因为其中一个操作数是整数 所以另一个操作数被转换为整数 结果无法分配给字
  • Android:如何获取小数点后的两位数?不想截断值

    如何获取小数点后仅两位数的双精度值 例如 如果 a 190253 80846153846 那么结果值应该像 a 190253 80 尝试 我尝试过这个 public static DecimalFormat twoDForm new Dec
  • C/C++ 中的最小二乘回归

    如何在 C C 中实现因子分析的最小二乘回归 the黄金标准是LAPACK http www netlib org lapack lug node27 html 你特别想要xGELS
  • 编译时映射和逆映射值

    有人可以推荐一种更优雅的方法来实现这些编译时常量吗 template
  • 确定范围是否重叠

    给定两个具有整数开始时间和结束时间的事件 E1 s1 e1 E2 s2 e2 实现快速布尔检查以查看事件是否重叠 我有解决方案 但我很想看看其他人想出了什么 编辑 好的 这是我的解决方案 e1 gt s2 s1 gt s2 e2 lt s1
  • 四舍五入到 25、50、75、100

    我不是一个数学爱好者 所以我很难想出一个将小数四舍五入到 25 50 75 和 100 的计算方法 这不会是典型的四舍五入 因为小数不会减少但只增加了 Example 如果 11 12 则舍入为 11 25 如果为 11 34 则舍入为 1
  • 以一定角度遍历二维数组

    通常我们按行或列遍历数组 但这里我想以角度遍历它 我会尝试解释我的意思 因此 假设角度是 45 度 那么它会搜索为 0 0 then 0 1 1 0 then 0 2 1 1 2 0 等等 抱歉 无法上传图像 因为我是新用户 不允许这样做
  • Java中如何对整数除法进行四舍五入并得到int结果? [复制]

    这个问题在这里已经有答案了 我刚刚写了一个小方法来计算手机短信的页数 我没有选择使用Math ceil 老实说 它看起来很丑陋 这是我的代码 public class Main param args the command line arg
  • 使用数学符号注释 Adob​​e Reader PDF

    我阅读的许多数学教科书和其他文献都是 PDF 格式 因此我经常使用 Adob e Reader 注释工具对它们进行注释 我确实找到了一个有用的指南 http cjasn asnjournals org site misc annotatin
  • 具有非常大的数字的除法

    我只是想知道在处理大数字时有哪些不同的除法策略 我所说的大数字是指 50 位数字 例如 9237639100273856744937827364095876289200667937278 82637448262718273966299344
  • Exposé 布局算法

    我正在制作一些项目 其布局类似于 Mac OS X 在 Expos 中对窗口所做的操作 它适应项目的长宽比和可用区域的长宽比 基本上 可用区域分为行和列 每个单元格 行和列的交集 中放置一个项目 这些项目必须保持其纵横比 此处width h
  • Karasuba算法递归过多

    我正在尝试用 c 实现 Karasuba 乘法算法 但现在我只是想让它在 python 中工作 这是我的代码 def mult x y b m if max x y lt b return x y bm pow b m x0 x bm x1

随机推荐

  • 在 Visual Studio 2010 中创建文件时是否可以自动设置“复制到输出目录”?

    我最近开始尝试使用 LuaInterface 来让 Lua 脚本在我的 C 程序中工作 为了在 Visual Studio 中轻松创建 Lua 脚本 我安装了 Lua 语法突出显示插件并创建了一个项目模板 以便我可以通过右键单击项目文件并选
  • 某些函数式编程结构是否会降低可调试性?

    我听说以下功能会降低可调试性 因为它们是匿名的 调试器无法很好地跟踪它 匿名类 内部类 闭包块 Lambda 函数 这是真的 关于您提到的特定功能 已经有一些很好的答案 一般来说 我想说一些 FP 功能以及以更多 FP 风格进行编程的方面至
  • 您是否应该实现 IDisposable.Dispose() 以使其永远不会抛出异常?

    对于 C 中的等效机制 析构函数 建议是 它通常不应该抛出任何异常 这主要是因为这样做可能会终止进程 这很少是一个好的策略 在 NET 中的等效场景中 抛出第一个异常 由于第一个异常而执行了finally块 finally 块调用 Disp
  • 是否可以在常规对象(而非 DOM 对象)上分派事件? [复制]

    这个问题在这里已经有答案了 我刚刚发现 FileReader 调度事件就像它是 DOM 元素一样 是吗 我想知道是否可以创建一个类似于 FileReader 的对象 它没有 HTML XML 结构的表示 但可以调度事件 FileReader
  • async.each 和 async.eachSeries 之间的区别

    Is 异步每个作为异步数组迭代工作 Is async eachSeries作为同步数组迭代工作 它实际上等待响应 我问这些是因为两者都有回调 但 async each 的工作方式类似于异步数组迭代 This is traditional w
  • 序列化可选的 where 子句参数?

    这是一件让我真正烦恼的事情 我必须为几乎相同的查询编写两个不同的函数 假设我有一个返回的 APIposts与特定的相关联typeId and cityId 要得到ALL相关帖子typeId 1 OR 2 OR 3 and cityId 1我
  • VB.NET静态代码分析

    有谁知道 vb net 的良好代码静态代码分析吗 我见过很多关于 c 的内容 我认为 VS 2008 内置了一些 但我们目前只使用 vs 2005 FxCop就是这么做的 具体针对 VB NET 的是项目分析器
  • 如何从 html 按钮调用 Firefox 扩展中的函数

    如何使用网页中的 html 按钮调用在我的扩展中声明的 Javascript 函数 我有一个 html 页面 里面有一个按钮 当用户单击该按钮时 它将调用我已经在自己的 Firefox 扩展中声明的函数 由于您控制网页 因此执行您想要的操作
  • 按共享列值合并关联数组的数组[重复]

    这个问题在这里已经有答案了 我想根据公共列值合并两个数组 这是我的 2 个数组 array1 total process per category gt 6 category id gt 1 total process per catego
  • 如何使用 NSDistributedNotifications 在进程之间共享核心数据存储?

    背景 我已经发布了一个关于基础知识的问题在进程之间共享核心数据存储 我正在尝试实施给出的建议 但遇到了问题 My Goal 我有两个进程 Helper App 和 UI 它们都共享一个数据存储 当助手应用程序将新数据保存到商店时 我希望 U
  • 如何在 R 中重命名具有特定模式的文件?

    有一些 fcs文件在一个数据 000X目录中的格式 其中 X 1 2 3 我想重命名每个n文件格式如下 exp fcs where exp是来自向量的文本 如果要重命名的文件是 fcs file 换句话说 我想将文件重命名为exp txt
  • 将 PCAP 跟踪转换为 NetFlow 格式

    我想将一些 PCAP 跟踪转换为 Netflow 格式 以便使用 netflow 工具进行进一步分析 有什么办法可以做到这一点吗 具体来说 我想使用 flow export 工具从 netflow 跟踪中提取一些感兴趣的字段 如下所示 fl
  • php 中用于缩小/压缩 javascript 的简单正则表达式搜索和替换?

    你能在 php 中发布正则表达式搜索和替换来缩小 压缩 javascript 吗 例如 这是一个简单的 CSS header Content type text css ob start compress function compress
  • Java 正则表达式 - 重叠匹配

    在下面的代码中 public static void main String args List
  • Java正则表达式精确匹配8位数字

    我有一个简单的正则表达式 应该查找 8 位数字 String number scanner findInLine d 8 但事实证明 它也匹配9位或更多位的数字 如何修复此正则表达式以精确匹配 8 位数字 例如 12345678应该匹配 而
  • 安装镶木地板工具

    我正在尝试在 FreeBSD 机器上安装 parquet 工具 我克隆了这个仓库 git clone https github com apache parquet mr 然后我做了cd parquet mr parquet tools 然
  • 在 OCUnit 中使用核心数据类时出现 Apple Mach-O 链接器错误

    好的 这是我的测试类中的代码 NSManagedObjectContext managedObjectContextWithConcurrencyType NSManagedObjectContextConcurrencyType conc
  • 什么是 CSRF 代币?它的重要性是什么?它是如何运作的?

    我正在编写一个应用程序 Django 确实如此 我只想了解 CSRF 令牌 实际上是什么以及它如何保护数据 如果不使用CSRF token 发布的数据会不安全吗 简单来说 跨站请求伪造 CSRF 假设您当前已登录网上银行 www myban
  • 在 MySql 中将 VARCHAR 转换为 DECIMAL 值

    我已将包含字符串值 例如吃 和浮动值 例如 0 87 的 CSV 文件导入到我的 phpMyAdmin 数据库中的表中 在处理完所有字符串值并仅保留具有十进制值的行后 我需要将这些值从 VARCHAR 转换为 DECIMAL FLOAT 以
  • 定点的反平方根

    我正在寻找定点 16 16 数字的最佳反平方根算法 下面的代码是我到目前为止所拥有的 但基本上它取平方根并除以原始数字 我想得到不除法的倒数平方根 如果它发生任何改变 代码将为armv5te编译 uint32 t INVSQRT uint3