src/utils/matrix/AbstractMatrix.java
public void winogradConvolve(Matrix preprocessedFilter, Matrix result, Matrix A, Matrix AT, Matrix C, Matrix CT) throws MatrixException {
        if (!hasProcedureFactory() && !preprocessedFilter.hasProcedureFactory()) applyWinogradConvolve(preprocessedFilter, result, A, AT, C, CT);
        else {
            synchronizeProcedureFactory(preprocessedFilter);
            result.setProcedureFactory(procedureFactory);
            double expressionLock = procedureFactory.startExpression(this);
            applyWinogradConvolve(preprocessedFilter, result, A, AT, C, CT);
            procedureFactory.createWinogradConvolveExpression(expressionLock, this, preprocessedFilter, result, getStride(), getDilation());
        }
    }
/**
     * Calculates convolution between this matrix and filter matrix.
     *
     * @param preprocessedFilter preprocessed filter matrix.
     * @param result calculated value of convolution.
     * @param A A matrix
     * @param AT A transposed matrix
     * @param C C matrix
     * @param CT C transposed matrix
     * @throws MatrixException throws exception if matrix operation fails.
     */
Calculates convolution between this matrix and filter matrix.

@param preprocessedFilter preprocessed filter matrix.
@param result calculated value of convolution.
Calculates convolution between this matrix and filter matrix . @param preprocessedFilter preprocessed filter matrix . @param result calculated value of convolution .
public void winogradConvolve(Matrix preprocessedFilter, Matrix result, Matrix A, Matrix AT, Matrix C, Matrix CT) throws MatrixException {
        if (!hasProcedureFactory() && !preprocessedFilter.hasProcedureFactory()) applyWinogradConvolve(preprocessedFilter, result, A, AT, C, CT);
        else {
            synchronizeProcedureFactory(preprocessedFilter);
            result.setProcedureFactory(procedureFactory);
            double expressionLock = procedureFactory.startExpression(this);
            applyWinogradConvolve(preprocessedFilter, result, A, AT, C, CT);
            procedureFactory.createWinogradConvolveExpression(expressionLock, this, preprocessedFilter, result, getStride(), getDilation());
        }
    }
public void winogradConvolve ( Matrix preprocessedFilter , Matrix result , Matrix A , Matrix AT , Matrix C , Matrix CT ) throws MatrixException { if ( ! hasProcedureFactory ( ) && ! preprocessedFilter . hasProcedureFactory ( ) ) applyWinogradConvolve ( preprocessedFilter , result , A , AT , C , CT ) ; else { synchronizeProcedureFactory ( preprocessedFilter ) ; result . setProcedureFactory ( procedureFactory ) ; double expressionLock = procedureFactory . startExpression ( this ) ; applyWinogradConvolve ( preprocessedFilter , result , A , AT , C , CT ) ; procedureFactory . createWinogradConvolveExpression ( expressionLock , this , preprocessedFilter , result , getStride ( ) , getDilation ( ) ) ; } }
Calculates convolution between this matrix and filter matrix.
Calculates convolution between this matrix and filter matrix .