JuliaLang/julia — pull request #8726 by timholy (2014-10-18 18:29:54+00:00)
Title: Relax dimensionality requirements in `A*_mul_B*!` and `transpose!`

This implements support for various pre-allocated operations with `Vector`s that were formerly supported only for `Matrix`es. As a prototype of what this was designed to solve, this works:
```
julia> v = rand(5)
5-element Array{Float64,1}:
0.5895
0.912975
0.225657
0.944821
0.663553

julia> C = v*v'
5x5 Array{Float64,2}:
0.34751 0.538199 0.133025 0.556972 0.391164
0.538199 0.833523 0.206019 0.862598 0.605807
0.133025 0.206019 0.0509211 0.213206 0.149735
0.556972 0.862598 0.213206 0.892687 0.626939
0.391164 0.605807 0.149735 0.626939 0.440302
```
but
```
julia> A_mul_Bt!(C, v, v)
ERROR: `A_mul_Bt!` has no method matching A_mul_Bt!(::Array{Float64,2}, ::Array{Float64,1}, ::Array{Float64,1})
```
With this pull request, such operations are supported.

CC @andreasnoack, @Jutho.