问题标签 [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.
c++ - 我的定点算术实现是否正确?
不久前,我创建了一堆用于定点值操作的 C 宏。受到关于 SO 的几个问题和答案的鼓舞,我希望在我的程序的计算密集型部分中获得性能提升。虽然代码似乎产生了正确的结果,但我想知道它是否过于幼稚/过于简单,因为它实际上比我的例程的常规浮点版本运行得更慢(我在 Wintel 上进行双三次图像插值)。您能否看一下包含我的宏的这段简短代码并提出一些改进建议,尤其是在性能方面?谢谢。
编辑:基本上,答案和评论转向这两点:
- 代码是可怕的,难以使用和维护:我完全同意并将花时间将它封装在一个类中。我对性能有一些担忧,这些担忧得到了解决,我一直相信它们是没有根据的,我费尽心思,一无所获。:)
- 无论如何,定点不值得麻烦:虽然这在我的平台上可能是正确的,但我创建它是为了提高我的代码在没有浮点硬件的平台上的执行速度。在那里,浮点运算花费了太长时间,固定是要走的路。我只是在英特尔上测试这个,因为我目前无法访问目标硬件
虽然我非常感谢迄今为止提供的洞察力,但我希望听到有人实际上在定点进行了一些计算,告诉我这些算术运算是否确实是要走的路。也许还有一些我不知道的额外的花哨的小玩意儿,这在性能或精度方面会有所不同?换句话说,如果我要封装这段代码,我是否可以在内联运算符函数中保持与现在基本相同的算术指令,还是应该以某种方式更改它们?
iphone - 如何做定点数学而不是浮点数?
我不是数学大叔,但一位真正的大叔告诉我:
“用定点代替浮点做乘法、除法、求和、三角和积分”
因此,我应该怎么做,而不是使用 double 或 float 数据类型?有没有人有一个方便的片段或链接来显示非数学叔叔的区别?
android - OpenGL ES GL_FIXED 与 GL_FLOAT
我正在使用 OpenGL ES 1.x 为 Android 编写应用程序,但我想要包括 iOS 设备和 OpenGL ES 2.x 的答案。
我对是否应该使用 GL_FLOAT 或 GL_FIXED 感到困惑,优先考虑的是 GPU 操作的性能(是否需要转换 GL_FIXED 等。例如:GL_FIXED 完全符合我需要的精度,但如果它被转换为浮点数然后使用它是没有意义的)。
这本书似乎说总是最好将 GL_FIXED 用于顶点:“主要的例外是顶点数据,它永远不应该以浮点数给出......” 在这里(副标题“顶点数据”上方的段落)
但是我看到其他人说浮点更好..
ios - 如何使用原生定点类型(8.24)进行iOS音频处理
所以我想将 -1 到 +1 范围内的浮点数正确缩放为 AUGraph 所期望的格式,其流格式设置如下:
这个问题帮助我设置了图表,但是当我像这样投射浮点数时:
它工作,信号听起来不错,但很安静。所以我做错了缩放?以更大的数字缩放会扰乱信号。听起来不像削波,输出音量也没有变高。我不打算深入研究定点数学,我所需要的只是一个可以转换成正确格式的单行。
谢谢你!
编辑:我一直在使用不同的流格式,在此之前我无法弄清楚如何正确使用立体声信号。使用这种不同的设置,我对输出音量没有任何问题,所以我认为增益问题一定与缩放有关......
floating-point - 定点数与浮点数
定点数和浮点数的计算机体系结构有哪些优点/缺点?我可以理解,两者都会导致各种不准确。
我的其他问题是
这些不准确是如何产生的?
一种形式比另一种更好吗?
objective-c - Objective-C 中有定点小数对象吗?
在其他语言中,通常有一个固定的十进制对象可以用来代替 IEEE 浮点/双精度,以帮助保证精度。Objective-C 有类似的东西吗?当我查看时,我发现的只是 NSNumber,它似乎只处理标准的原始类型。我还缺少另一个对象吗?
math - 定点的逆 sqrt
我正在寻找固定点 16.16 数字的最佳平方根逆算法。下面的代码是我到目前为止所拥有的(但基本上它取平方根并除以原始数字,我想得到没有除法的平方根倒数)。如果它改变了任何东西,代码将为 armv5te 编译。
floating-point - 定点 MATLAB DSP 算法
我有一个关于在 MATLAB 中为德州仪器 TMS320C64xx DSP 编码算法的问题:
我在 MATLAB 中对我的过滤器进行了一个草率的实现。我的目标是使用 MATLAB Embedded Coder 将此算法转换为 C,然后我可以将其导入 Code Composer Studio 并加载到 DSP 上。
为此,我知道我需要对我的 MATLAB 代码做一些事情。例如,我需要为矩阵预先分配空间,以便它知道要制作它们的大小(除非我想对可变大小的数据大惊小怪)。所有将 MATLAB 代码转换为 C'ish 代码的操作,以便 MATLAB 编码器可以将其转换为我或多或少理解的内容。但是,我不知道如何确保我的数据类型(例如我的滤波器的系数)是定点而不是浮点,以便 MATLAB Embedded Coder 将我的代码转换为仅涉及定点数据类型的 C。
所以我想我的总体问题是:
1) 如果 C64xx 被指定为 32 位定点 DSP,这意味着如果我尝试使用浮点数据类型,它的编译器会抛出错误?
2) 有没有办法确保 MATLAB Embedded Coder 不创建浮点数据类型?
3) 我需要使用 MATLAB Fixed Point Toolbox 吗?
谢谢大家,让我知道是否还有必要的信息来回答我的问题。
mysql - 在 Ruby on Rails 中处理定点/精度小数的最佳方法
所以我正在使用 Ruby On Rails 创建一个时间跟踪应用程序,并将时间存储为代表小时的数字。
由于任何超过 0.01(36 秒)小时的时间都无关紧要,我只需要 2 个小数位。
我正在使用以浮点数作为列类型的 MySQL 数据库。虽然这在大多数情况下都有效,但我时不时地在计算和舍入浮点数时遇到错误。
我对我的选项进行了一些研究,发现很多人推荐使用 BigDecimal。由于我使用了很多使用计算的自定义数据库查询,所以我想知道更改列类型会如何影响这一点。它将其存储为字符串或 yaml,还是 MySQL 原生支持?
或者是否有在 Ruby / Rails 中进行定点十进制算术的等效方法。
我认为任何方法都需要大量重构,我怎样才能最避免这种情况?
任何见解都值得赞赏。