code: public static double[] transposeTimes(final double[][] m1, final double[] v2) {
      final int rowdim = m1.length, coldim = getColumnDimensionality(m1);
      assert v2.length == rowdim : ERR_MATRIX_INNERDIM;
      final double[] re = new double[coldim];
      // multiply it with each row from A
      for(int i = 0; i < coldim; i++) {
        double s = 0;
        for(int k = 0; k < rowdim; k++) {
          s += m1[k][i] * v2[k];
        }
        re[i] = s;
      }
      return re;
    }
docs: Transposed matrix with vector multiplication, m1<sup>T</sup> * v2
  
  @param m1 Input matrix
  @param v2 another matrix
  @return Matrix product, m1<sup>T</sup> * v2