# Usage of lazy vector instead of function

**URL:** <https://discourse.julialang.org/t/usage-of-lazy-vector-instead-of-function/89766>\
**Category:** Performance\
**Created:** [November 4, 2022, 9:11am UTC](https://discourse.julialang.org/t/usage-of-lazy-vector-instead-of-function/89766 "2022-11-04T09:11:59Z")\
**Posts on this page:** 3\
**Page:** 2

<div class="post-metadata">

**Author:** ![lrnv](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/lrnv/32/19373_2.png) [@lrnv](https://discourse.julialang.org/u/lrnv)\
**Post date:** [November 6, 2022, 6:15pm UTC](https://discourse.julialang.org/t/usage-of-lazy-vector-instead-of-function/89766/21 "2022-11-06T18:15:38Z")

</div>

This is a shame about M1…

Removing the +2 gave me a 5% more :

```julia
g7(n) = 16*(sum(x -> (b = 4float(x)^2; a = b+3; a/(a^2-16b)), 2:4:(n+1)))

```

So, @giordano, the conclusion is that

```julia
function f(rounds)
    p = 1.0
    @simd for i in 2:(rounds + 2)
        x = (-1)^iseven(i)
        p += x / (2 * i - 1)
    end
    p *= 4
    return p
end

g7(n) = 16*(sum(x -> (b = 4float(x)^2; a = b+3; a/(a^2-16b)), 2:4:(n+1)))

@btime f(10^8)
@btime g7(10^8)

```

gives

```julia
  43.530 ms (0 allocations: 0 bytes)
  11.347 ms (0 allocations: 0 bytes)

```

So you might update your graph 🤣 Also, i’m guessing that the other Julia in your graph might go up a little bit.

---

<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:** [November 7, 2022, 3:51am UTC](https://discourse.julialang.org/t/usage-of-lazy-vector-instead-of-function/89766/22 "2022-11-07T03:51:01Z")

</div>

Is llvm smart enough to turn `x = (-1)^iseven(i)` into `x = 2*isodd(i)-1`?

---

<div class="post-metadata">

**Author:** ![giordano](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/giordano/32/2166_2.png) [@giordano](https://discourse.julialang.org/u/giordano)\
**Post date:** [November 7, 2022, 10:37am UTC](https://discourse.julialang.org/t/usage-of-lazy-vector-instead-of-function/89766/23 "2022-11-07T10:37:22Z")

</div>

> <https://github.com/JuliaLang/julia/blob/a41ae5bb911819f1b3011a654e2bb68c39be8115/base/bool.jl#L170>

[Previous page](https://discourse.julialang.org/t/usage-of-lazy-vector-instead-of-function/89766.md?page=1)
