[Date Prev][Date Next][Thread Prev][Thread Next]
- Subject: Re: [ANN] Lua 5.4.0 (work2) now available
- From: Dirk Laurie <dirk.laurie@...>
- Date: Sun, 26 Aug 2018 13:05:40 +0200
Op So., 26 Aug. 2018 om 05:29 het Egor Skriptunoff
> On Sat, Aug 25, 2018 at 8:28 PM, Egor Skriptunoff wrote:
>> Correct modulo operation is not very simple
> I should clarify what is the "correct modulo".
> Rounding errors are inevitable, so instead of exact result
> you are allowed to return
> approx( approx(a) % approx(b) )
> Each approx() might modify low bits (bits beyond FP precision).
> You are not allowed to return arbitrary garbage (such as negative value for positive b).
> In other words, you must return a value which belongs to possible result range according to interval arithmetic.
> Of course, the same requirement applies to all math operations and functions, not only modulo.
This seems to imply that it is perfectly OK to return any value from 0
to 4566 for 0x1p1000%4567, instead of the correct value 4567 that Lua
5.3 returns. Correct-shmorrect, I say.