JuliaLang/julia — pull request #9196 by andreasnoack (2014-11-29 21:05:17+00:00)
Title: RFC: Fix type instability for \

The first of these two commits is a straight forward fix of #9191 for 0.3 and it partly fixes the issue for 0.4. However, the type inference problems (see #8753) for `Triangular` on 0.4 requires move work to make `\` type stable.

The second commit makes `Triangular` type stable by introducing a dummy parametric immutable to use for dispatch only. Hence, this pr supersedes #8796. I have decided to use `€` as the name for the dummy type because it is short and fairly easy to type on an American Mac keyboard. Hence, a matrix is declared triangular with `Triangular(A,€{:L})` instead of `Triangular(A,:L)`. This change also makes it possible to extract properties from a `Factorization` in a type stable way, e.g. `lufact(A)[€{:L}]`.

The extra methods doesn't have an impact on the time consumption of the `LinAlg` test suite and for the performance tests, it improves `stockcorr` (which was broken again), `laplace_vec` and `vectorize` as far as I can see.