Expressão compacta de fluxo para transposição de matriz dupla [] []

Eu quero transpor umdouble[][] matriz com a expressão mais compacta e eficiente possível. Agora eu tenho isso:

public static Function<double[][], double[][]> transpose() {
    return (m) -> {
        final int rows = m.length;
        final int columns = m[0].length;
        double[][] transpose = new double[columns][rows];
        range(0, rows).forEach(r -> {
            range(0, columns).forEach(c -> {
                transpose[c][r] = m[r][c];
            });
        });
        return transpose;
    };
}

Pensamentos?

questionAnswers(5)

yourAnswerToTheQuestion