docs: public static void multQuad1(DMatrixRMaj A , DMatrixRMaj B , DMatrixRMaj out ) {
  
          if( A.numCols != B.numCols || A.numCols != B.numRows
                  || A.numRows != out.numRows || A.numRows != out.numCols )
              throw new IllegalArgumentException("Incompatible matrix shapes");
  
          CommonOps_DDRM.fill(out, 0);
  
          for (int i = 0; i < A.numRows; i++) {
              for (int j = 0; j < A.numCols; j++) {
                  double total = 0;
  
                  int indexA = i*A.numCols;
                  int indexB = j;
                  int end = indexA + A.numCols;
                  for (; indexA < end; indexA++ , indexB += B.numCols ) {
  //                for (int k = 0; k < A.numCols; k++) {
  //                    total += A.get(i,k)*B.get(k,j);
                      total += A.data[indexA] * B.data[indexB];
                  }
  
                  int indexOut = i*out.numCols;
                  indexA = j;
                  end = indexOut + A.numRows;
                  for (; indexOut < end; indexOut++, indexA += A.numCols) {
  //                for (int l = 0; l < A.numRows; l++) {
  //                    out.data[ out.getIndex(i,l) ] += total*A.get(l,j);
                      out.data[ indexOut] += total*A.data[indexA];
                  }
              }
          }
      }