Contact me: hankecnc@gmail.com

数学.h合规性 #1651

推推 grbl 3年前 (2023-01-24) 331次浏览

打开
kimstik 打开了这个问题 2020 年 7 月 31 日 · 5 条评论
打开

数学.h合规性#1651

kimstik 打开了这个问题 2020 年 7 月 31 日 · 5 条评论

注释

数学.h合规性 #1651

根据 GRBL 未使用双精度而是浮精度,以尊重 math.h 声明的方式应使用“funcf”而不是“func”
atan2 -> atan2f
floor –
> floorf round -> roundf
sin -> sinf
cos -> cosf
sqrt -> sqrtf
fabs -> fabsf

数学.h合规性 #1651

这对 8 位 Arduinos 来说无关紧要,因为双精度与单精度浮点数相同。

数学.h合规性 #1651

但是移植到另一个平台确实很重要,尤其是具有单精度 FPU 的平台

数学.h合规性 #1651
作者

确切地。
它允许我将 GRBL 拟合到大约 15k 字节的 ARM thumb 代码。

另一方面,违反 math.h 声明的充分理由是什么?因为它有效?

数学.h合规性 #1651

另一方面,违反 math.h 声明的充分理由是什么?

IIRC 参数值在调用之前被提升为双精度,结果被截断为在 ARM 上浮动。因此,可能以较慢的执行速度为代价,结果会更精确。如果存在 FPU 但未使用它会更慢吗?

因为它有效?

确实如此,但我不认为这是一个很好的理由。我已经切换到我的端口中的浮动等效项以避免开销..

数学.h合规性 #1651
作者

avr-libc 在正确的方向
avrdudes/avr-libc@ e08bbd2

喜欢 (0)