On Monday, 22 July 2019 at 12:49:24 UTC, drug wrote:
I have almost identical (I believe it at least) implementation
(D and C++) of the same algorithm that uses Kalman filtering.
These implementations though show different results (least
significant digits). Before I start investigating I would like
to ask if this issue (different results of floating points
calculation for D and C++) is well known? May be I can read
something about that in web? Does D implementation of floating
point types is different than the one of C++?
Most of all I'm interesting in equal results to ease comparing
outputs of both implementations between each other. The
accuracy itself is enough in my case, but this difference is
annoying in some cases.
Typical floating point operations in single-precision like a
simple (a * b) + c will provide a -140dB difference if order is
changed. It's likely the order of operations is not the same in
your program, so the least significant digit should be different.