code: @Deprecated
    public static double[][] timesTranspose(final double[] v1, final double[][] m2) {
      assert m2[0].length == 1 : ERR_MATRIX_INNERDIM;
  
      final double[][] re = new double[v1.length][m2.length];
      for(int j = 0; j < m2.length; j++) {
        for(int i = 0; i < v1.length; i++) {
          re[i][j] = v1[i] * m2[j][0];
        }
      }
      return re;
    }
docs: Vector with transposed matrix multiplication, v1 * m2<sup>T</sup>
  (m2 <em>must have one row only</em>).
  <p>
  Note: this is an unusual operation, m2 must be a costly column matrix.
  <p>
  This method is equivalent to the
  {@link #timesTranspose(double[], double[])} method
  with m2 being the second vector as matrix.
  
  @param v1 vector
  @param m2 other matrix
  @return Matrix product, v1 * m2<sup>T</sup>
  @deprecated this is fairly inefficient memory layout, rewriting your code