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 }