# Mul! generates machine noise

**URL:** <https://discourse.julialang.org/t/mul-generates-machine-noise/110477>\
**Category:** General Usage\
**Tags:** matrices\
**Created:** [February 20, 2024, 9:10pm UTC](https://discourse.julialang.org/t/mul-generates-machine-noise/110477 "2024-02-20T21:10:00Z")\
**Posts on this page:** 1\
**Showing post:** 7

<div class="post-metadata">

**Author:** ![Sukera](https://avatars.discourse-cdn.com/v4/letter/s/ce7236/32.png) [@Sukera](https://discourse.julialang.org/u/Sukera)\
**Post date:** [February 20, 2024, 9:26pm UTC](https://discourse.julialang.org/t/mul-generates-machine-noise/110477/7 "2024-02-20T21:26:20Z")

</div>

See also

> [@PSA: floating-point arithmetic](https://discourse.julialang.org/t/psa-floating-point-arithmetic/8678):
>
> Sometimes people are surprised by the results of floating-point calculations such as julia\> 5/6 0.8333333333333334 # shouldn't the last digit be 3? julia\> 2.6 - 0.7 - 1.9 2.220446049250313e-16 # shouldn't the answer be 0? These are not bugs in Julia. They’re consequences of the IEEE-standard 64-bit binary representation of floating-point numbers that is burned into computer hardware, which Julia and many other languages use by default. Brief explanation You can t…

and my favorite consequence of this behavior:

> [@Array ordering and naive summation](https://discourse.julialang.org/t/array-ordering-and-naive-summation/1929):
>
> One of the first things you learn in numerical analysis is that floating-point operations are not associative. A classic example is this: julia\> (0.1 + 0.2) + 0.3 0.6000000000000001 julia\> 0.1 + (0.2 + 0.3) 0.6 I was thinking of ways to make floating-point summation independent of the order of the summands without making the performance much worse (this is a hobby of mine). Julia currently uses a pairwise summation algorithm, which is much better than naive left-to-right reduction while havin…

---

_[View the full topic](https://discourse.julialang.org/t/mul-generates-machine-noise/110477)._
