code: protected static void multTransABlockSet_lowerTriag( double[] dataA, double []dataB, double []dataC,
                                                           int indexA, int indexB, int indexC,
                                                           final int heightA, final int widthA, final int widthC) {
          for( int i = 0; i < widthA; i++ ) {
              for( int j = 0; j < widthC; j++ ) {
                  double val = i < heightA ? dataB[i*widthC + j + indexB] : 0;
  
                  for( int k = i+1; k < heightA; k++ ) {
                      val += dataA[k*widthA + i + indexA] * dataB[k*widthC + j + indexB];
                  }
  
                  dataC[ i*widthC + j + indexC ] = val;
              }
          }
      }
docs: Performs a matrix multiplication on an single inner block where A is assumed to be lower triangular with diagonal
  elements equal to 1.<br>
  <br>
  C = A^T * B