code: @Deprecated
    public static double[][] times(final double[] v1, final double[][] m2) {
      assert m2.length == 1 : ERR_MATRIX_INNERDIM;
      final int columndimension = m2[0].length;
      final double[][] re = new double[v1.length][columndimension];
      for(int j = 0; j < columndimension; j++) {
        for(int i = 0; i < v1.length; i++) {
          re[i][j] = v1[i] * m2[0][j];
        }
      }
      return re;
    }
docs: Matrix multiplication: v1 * m2 (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, but transposed.
  
  @param v1 vector
  @param m2 other matrix, must have one row.
  @return Matrix product, v1 * m2
  @deprecated this is fairly inefficient memory layout, rewriting your code