public static void mult_small( DenseD2Matrix64F a , DenseD2Matrix64F b , DenseD2Matrix64F c )
    {
        if( a.numCols != b.numRows ) {
            throw new MatrixDimensionException("The 'a' and 'b' matrices do not have compatible dimensions");
        } else if( a.numRows != c.numRows || b.numCols != c.numCols ) {
            throw new MatrixDimensionException("The results matrix does not have the desired dimensions");
        }

        double dataA[][] = a.data;
        double dataB[][] = b.data;
        double dataR[][] = c.data;


        for( int i = 0; i < a.numRows; i++ ) {
            double dataAi[] = dataA[i];
            double dataRi[] = dataR[i];

            for( int j = 0; j < b.numCols; j++ ) {
                double total = 0;

                for( int k = 0; k < a.numCols; k++ ) {
                    total += dataAi[k] * dataB[k][j];
                }

                dataRi[j] = total;
            }
        }
    }