Power iteration: Improved performance by avoiding a temporary, reduced tolerance for the tutorial for shorter execution times.

The power iteration implementation included the operation
 r <- prod(A, r);
which requires the creation of a temporary vector. Since this is called in a loop,
the overhead can become quite substantial, hence this was split into
 r2 <- prod(A, r);
 r  <- r2;
Sparse and structured matrices: Fixed handling of x = prod(A, x);

As a positive side-effect, this also improves multi-threaded operations by placing temporaries in the correct context.