问题标签 [fixed-point]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
floating-point - 如何将压缩整数(16.16)定点转换为浮点数?
如何将“32 位有符号定点数(16.16)”转换为浮点数?
(fixed >> 16) + (fixed & 0xffff) / 65536.0
好吗?-2.5 怎么样?-0.5?
或者是fixed / 65536.0
正确的方法?
(PS:带符号的定点“-0.5”在内存中看起来如何?)
python - Python计算错误
我正在使用 API mpmath 来计算以下总和
让我们考虑由以下定义的系列 u0、u1、u2:
该系列收敛于 2,但由于舍入问题,它似乎收敛于 2000。
我的代码:
我的坏结果:
我尝试使用其他一些功能(fdiv ...)或更改精度:同样的坏结果
这段代码有什么问题?
问题:如何更改我的代码以找到值 2.0 ??? 用公式:
联合国+1 = 2003 - 6002/联合国 + 4000/联合国联合国-1
谢谢
c++ - 如何改进小值的定点平方根
我正在使用 Dobb 博士的文章“ Optimizing Math-Intensive Applications with Fixed-Point Arithmetic ”中描述的 Anthony Williams 的定点库,使用Rhumb Line 方法计算两个地理点之间的距离。
当点之间的距离很长(大于几公里)时,这很有效,但在较小的距离时效果很差。最坏的情况是当两个点相等或接近相等时,结果是 194 米的距离,而我需要在 >= 1 米的距离处至少 1 米的精度。
通过与双精度浮点实现进行比较,我发现了函数的问题,该fixed::sqrt()
函数在较小的值下表现不佳:
通过将其视为特殊情况来纠正结果fixed::sqrt(0)
是微不足道的,但这并不能解决小的非零距离的问题,其中误差从 194 米开始并随着距离的增加收敛到零。我可能需要至少一个数量级的精度提高到零。
该fixed::sqrt()
算法在上面链接的文章的第 4 页上进行了简要说明,但我很难遵循它,更不用说确定是否可以改进它。该函数的代码复制如下:
注意m_nVal
是内部定点表示值,它是一个int64_t
并且表示使用Q36.28格式(fixed_resolution_shift
= 28)。该表示本身具有至少 8 位小数的足够精度,并且作为赤道弧的一小部分适用于大约 0.14 米的距离,因此限制不是定点表示。
使用恒向线法是该应用程序的标准机构建议,因此无法更改,并且在任何情况下,在应用程序的其他地方或将来的应用程序中都可能需要更准确的平方根函数。
问题:是否有可能提高fixed::sqrt()
算法对小的非零值的准确性,同时仍保持其有界和确定性收敛?
附加信息 用于生成上表的测试代码:
结论 根据 Justin Peel 的解法和分析,并与《被忽视的定点算术艺术》中的算法进行比较,我将后者改编如下:
虽然这提供了更高的精度,但我需要的改进并没有实现。仅 Q36.28 格式就提供了我需要的精度,但不可能在不损失几位精度的情况下执行 sqrt()。然而,一些横向思维提供了更好的解决方案。我的应用程序根据某个距离限制测试计算出的距离。事后看来,相当明显的解决方案是测试距离的平方与极限的平方!
c++ - 指数使用多少位
我正在编写一些将浮点/双精度转换为定点并返回的函数。有谁知道确定用于浮点数或双精度数的指数部分的位数的最佳方法?我希望使用来自 std::numeric_limits 的东西,但没有运气。
指数部分是由 C++ 标准定义的还是特定于编译器/机器的?或者它可以在运行时变化?
floating-point - 漂亮而简单的浮动到固定转换?
我一直在寻找一种将浮动转换为固定 0.32 的简单方法。有没有人有一些有用的链接或论文?
matlab - Matlab 的 Mex 文件的差异
我使用 Matlab Coder 从我的 matlab 项目中创建了一个 Mex 文件 (.mexw64)。问题是运行 mex 文件时的输出与以正常方式运行项目时的输出不同。通常数字的变化非常小:
5.4463.. -> 5.4465.. 等
我认为可能存在与定点计算相关的问题。我应该寻找什么?
c - 定点 fx 表示法和转换
我有一个 fx1.15 符号。基础整数值为 63183(寄存器值)。
现在,根据维基百科,完整长度为 15 位。这个值不适合里面,对吧?
所以假设它是一个 fx1.16 值,我如何将它转换为人类可读的值?
matlab - Matlab中的定点
有人可以解释一下吗?
据我了解,它提供的精度较低..这是一个希望通过使用它来获得的加速吗?什么时候用好?我应该在 Matlab Coder 中使用它吗?
floating-point - 浮点和定点表示的优缺点
在过去的三天里,我一直在尝试了解浮点表示和定点表示之间的确切区别。我对阅读材料感到困惑,我无法决定什么是对的,什么是错的。
问题之一是少数技术术语的含义,如“精度”、“尾数”、“非规范化”、“下溢”等。
任何人都可以举例说明差异吗?
到目前为止,我能够找到(并且能够清楚地理解)的要点如下:-
浮点数 -
1.优势 提供非常大的范围2.
劣势舍入大数
定点 -
1.优势数字被精确表示 (在涉及“金钱”时使用)
2.劣势提供非常有限的范围
但我知道还有很多差异(主要是优点和缺点)。任何人都可以列出它们并进行解释吗?
c++ - 整数类包装器性能
我正在寻找为固定点数改造现有库。目前,该库只是在 32 位有符号整数上运行的命名空间函数。我想扭转这种局面并创建一个包装整数的定点类,但不想为这种细粒度的东西支付与类相关的任何性能损失,因为性能是用例的一个问题。
由于预期类具有如此简单的数据要求,并且没有资源,我认为可以使类“面向值”,利用非修改操作并在合理的情况下按值传递实例。如果实现,这将是一个简单的类,而不是层次结构的一部分。
我想知道是否可以编写一个整数包装类,与使用原始整数相比,不会产生真正的性能损失。我几乎确信情况就是这样,但对编译过程了解得不够多,只能跳进去。
我知道据说 stl 迭代器被编译为简单的指针操作,并且只想对整数操作做类似的事情。
无论如何,该库将作为项目的一部分更新到 c++11,所以我希望至少使用 constexpr 和其他新功能(如右值引用),我可以将此类的性能推到接近纯整数的性能操作。
此外,任何对两种实现之间的性能差异进行基准测试的建议都将不胜感激。