Adding a function to sort the row values and nzvalues in a CSC matrix. In addition replacing the dual transpose used in the sparse matrix multiplication. This seems to outperform in particular with larger matrices.

julia> x = sprand(n, m, 0.0002);

julia> s = sprand(m, k, 0.001);

julia> @time y = x * s;
elapsed time: 56.447965143 seconds (11903648416 bytes allocated, 0.23% gc time)

julia> @time y = spmm(x, s);
elapsed time: 35.558409459 seconds (13790626144 bytes allocated, 5.49% gc time)