# Why is there a difference when you Sum over an Array versus a Generator?

**URL:** <https://discourse.julialang.org/t/why-is-there-a-difference-when-you-sum-over-an-array-versus-a-generator/69132>\
**Category:** New to Julia\
**Tags:** question\
**Created:** [October 3, 2021, 6:57am UTC](https://discourse.julialang.org/t/why-is-there-a-difference-when-you-sum-over-an-array-versus-a-generator/69132 "2021-10-03T06:57:20Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Timothy](https://avatars.discourse-cdn.com/v4/letter/t/f14d63/32.png) [@Timothy](https://discourse.julialang.org/u/Timothy)\
**Post date:** [October 3, 2021, 6:57am UTC](https://discourse.julialang.org/t/why-is-there-a-difference-when-you-sum-over-an-array-versus-a-generator/69132/1 "2021-10-03T06:57:20Z")

</div>

**Vector summation:**  
‘’’ sum([1/n^2 for n = 1:100000])‘’’  
returns: 1.644924066898228

**Generator summation:**  
‘’‘sum((1/n^2 for n = 1:100000))’‘’  
returns: 1.6449240668982423

Why is there a difference in these results, and which summation method is the most accurate?

---

<div class="post-metadata">

**Author:** ![Oscar\_Smith](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oscar_smith/32/25343_2.png) [@Oscar\_Smith](https://discourse.julialang.org/u/Oscar_Smith)\
**Post date:** [October 3, 2021, 6:59am UTC](https://discourse.julialang.org/t/why-is-there-a-difference-when-you-sum-over-an-array-versus-a-generator/69132/2 "2021-10-03T06:59:29Z")

</div>

[https://0.30000000000000004.com/](https://0.30000000000000004.com/). The list version uses pairwise summation which means on average it will be slightly more accurate.

---

<div class="post-metadata">

**Author:** ![Timothy](https://avatars.discourse-cdn.com/v4/letter/t/f14d63/32.png) [@Timothy](https://discourse.julialang.org/u/Timothy)\
**Post date:** [October 3, 2021, 7:03am UTC](https://discourse.julialang.org/t/why-is-there-a-difference-when-you-sum-over-an-array-versus-a-generator/69132/3 "2021-10-03T07:03:16Z")

</div>

Thank you. For clarification, is the list version the vector summation method (i.e. enclosed in with brackets)?

---

<div class="post-metadata">

**Author:** ![Oscar\_Smith](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oscar_smith/32/25343_2.png) [@Oscar\_Smith](https://discourse.julialang.org/u/Oscar_Smith)\
**Post date:** [October 3, 2021, 7:03am UTC](https://discourse.julialang.org/t/why-is-there-a-difference-when-you-sum-over-an-array-versus-a-generator/69132/4 "2021-10-03T07:03:52Z")

</div>

Yeah.

---

<div class="post-metadata">

**Author:** ![Per](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/per/32/10387_2.png) [@Per](https://discourse.julialang.org/u/Per)\
**Post date:** [October 3, 2021, 8:57am UTC](https://discourse.julialang.org/t/why-is-there-a-difference-when-you-sum-over-an-array-versus-a-generator/69132/5 "2021-10-03T08:57:12Z")

</div>

For an even more accurate result, sum the terms in order of increasing absolute value:

```julia
sum((1/n^2 for n = 100000:-1:1)) # returns 1.6449240668982263

```

or use BigFloat:

```julia
sum((1/big(n)^2 for n = 1:100000)) # returns 1.64492406689822626980574850331269185564752...

```

---

<div class="post-metadata">

**Author:** ![LaurentPlagne](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/laurentplagne/32/10103_2.png) [@LaurentPlagne](https://discourse.julialang.org/u/LaurentPlagne)\
**Post date:** [October 3, 2021, 10:14am UTC](https://discourse.julialang.org/t/why-is-there-a-difference-when-you-sum-over-an-array-versus-a-generator/69132/6 "2021-10-03T10:14:24Z")

</div>

if you want it accurate AND fast you may have a look at [https://github.com/JuliaMath/AccurateArithmetic.jl](https://github.com/JuliaMath/AccurateArithmetic.jl)
