Use of Lazy arrays

I am looking into the use of lazy evaluation and lazy arrays in Julia. For example the package LazyArrays.jl.

However i am not quite sure if i understand the benefits of lazy evaluation correctly. In my understanding it is primarily usefull for delaying evaluations until they are absolutely necessary.
Can LazyArrays also be usefull when i am certain every calculation i make has to be calculated at some point?

Specifically i am interested in using it for a SparseMatrix*DenseVector multiplication and DenseVector addition.
Can Lazy evaluation be usefull for this?

So I would think, too.

In general lazy evaluation could support fusion.

I see two extreme cases

  • you only need a slice of the result => that could be a bit faster
  • you evaluate the result multiple times => that could be a bit slower

Thanks for the reply.

I need the whole result everytime. So that would mean it is not very usefull for me.

I’m not absolutely sure, it depends on your problem (for example do you mean SparseMatrixCSC or do you have sparse matrices with special formal properties). Also LazyAlgebra looks like a package which makes use of fusion rules.