001    /*
002     * $Id: DReduction.java 2412 2009-02-07 12:17:54Z kredel $
003     */
004    
005    package edu.jas.gb;
006    
007    import java.util.List;
008    
009    
010    import edu.jas.poly.GenPolynomial;
011    import edu.jas.structure.RingElem;
012    
013    
014    /**
015     * Polynomial D Reduction interface.
016     * Defines additionally D-Polynomial.
017     * @param <C> coefficient type
018     * @author Heinz Kredel
019     */
020    
021    public interface DReduction<C extends RingElem<C>> 
022                     extends Reduction<C> {
023    
024    
025        /**
026         * G-Polynomial.
027         * @param Ap polynomial.
028         * @param Bp polynomial.
029         * @return gpol(Ap,Bp) the g-polynomial of Ap and Bp.
030         */
031        public GenPolynomial<C> GPolynomial(GenPolynomial<C> Ap, 
032                                            GenPolynomial<C> Bp);
033    
034    
035        /**
036         * D-Polynomial with recording.
037         * @param S recording matrix, is modified.
038         * @param i index of Ap in basis list.
039         * @param Ap a polynomial.
040         * @param j index of Bp in basis list.
041         * @param Bp a polynomial.
042         * @return gpol(Ap, Bp), the g-Polynomial for Ap and Bp.
043         */
044        public GenPolynomial<C> 
045               GPolynomial(List<GenPolynomial<C>> S,
046                           int i,
047                           GenPolynomial<C> Ap, 
048                           int j,
049                           GenPolynomial<C> Bp);
050    
051    }