private void checkBlockMult( int operationType , boolean transA , boolean transB , Method method,
                                 final int heightA, final int widthA, final int widthB )
    {
        boolean hasAlpha = method.getParameterTypes().length == 10;

        if( hasAlpha && operationType == -1 )
            fail("No point to minus and alpha");

        DenseMatrix64F A = RandomMatrices.createRandom(heightA,widthA,rand);
        DenseMatrix64F B = RandomMatrices.createRandom(widthA,widthB,rand);
        DenseMatrix64F C = new DenseMatrix64F(heightA,widthB);

        if( operationType == -1 )
            CommonOps.mult(-1,A,B,C);
        else
            CommonOps.mult(A,B,C);

        DenseMatrix64F C_found = new DenseMatrix64F(heightA,widthB);
        // if it is set then it should overwrite everything just fine
        if( operationType == 0)
            RandomMatrices.setRandom(C_found,rand);

        if( transA )
            CommonOps.transpose(A);
        if( transB )
            CommonOps.transpose(B);

        double alpha = 2.0;

        if( hasAlpha ) {
            CommonOps.scale(alpha,C);
        }

        invoke(method,alpha,A.data,B.data,C_found.data,0,0,0,A.numRows,A.numCols,C_found.numCols);

        if( !MatrixFeatures.isIdentical(C,C_found,1e-10) ) {
            C.print();
            C_found.print();
            System.out.println("Method "+method.getName());
            System.out.println("transA " +transA);
            System.out.println("transB " +transB);
            System.out.println("type   " +operationType);
            System.out.println("alpha  " +hasAlpha);
            fail("Not identical");
        }
    }