public DMatrixSparseCSC apply( DMatrixSparseCSC A ) {
        if( fillReduce == null )
            return A;
        fillReduce.process(A);

        IGrowArray gp = fillReduce.getRow();

        if( pinv.length < gp.length)
            pinv = new int[ gp.length ];
        CommonOps_DSCC.permutationInverse(gp.data, pinv, gp.length);
        if( symmetric )
            CommonOps_DSCC.permuteSymmetric(A, pinv, Aperm, gw);
        else
            CommonOps_DSCC.permuteRowInv(pinv, A ,Aperm);
        return Aperm;
    }
public DMatrixSparseCSC apply ( DMatrixSparseCSC A ) { if ( fillReduce == null ) return A ; fillReduce . process ( A ) ; IGrowArray gp = fillReduce . getRow ( ) ; if ( pinv . length < gp . length ) pinv = new int [ gp . length ] ; CommonOps_DSCC . permutationInverse ( gp . data , pinv , gp . length ) ; if ( symmetric ) CommonOps_DSCC . permuteSymmetric ( A , pinv , Aperm , gw ) ; else CommonOps_DSCC . permuteRowInv ( pinv , A , Aperm ) ; return Aperm ; }
Computes and applies the fill reduction permutation. Either A is returned (unmodified) or the permutated
version of A.
@param A Input matrix. unmodified.
@return A permuted matrix. Might be A or a different matrix.