code: protected static void multTransBBlockMinus( final double[] dataA, final double []dataC,
                                                  final int indexA, final int indexB, final int indexC,
                                                  final int widthA, final int heightA, final int widthC ) {
  //        for( int i = 0; i < heightA; i++ ) {
  //            for( int j = 0; j < widthC; j++ ) {
  //                double sum = 0;
  //                for( int k = 0; k < widthA; k++ ) {
  //                    sum += dataA[i*widthA + k + indexA] * dataA[j*widthA + k + indexB];
  //                }
  //                dataC[ i*widthC + j + indexC ] -= sum;
  //            }
  //        }
          
          int rowA = indexA;
          int c = indexC;
          for( int i = 0; i < heightA; i++ , rowA += widthA ) {
              final int endA = rowA + widthA;
              int rowB = indexB;
              final int endLoopJ = c + widthC;
  
              // for( int j = 0; j < widthC; j++  ) {
              while( c != endLoopJ ) {
                  int a = rowA;
                  int b = rowB;
  
                  double sum = 0;
                  while( a != endA ) {
                      sum += dataA[a++] * dataA[b++];
                  }
                  dataC[ c++ ] -= sum;
                  rowB += widthA;
              }
          }
      }
docs: <p>
  Performs the following operation on a block:<br>
  <br>
  c = c - a*a<sup>T</sup><br>
  </p>