001/*
002 * $Id$
003 */
004
005package edu.jas.gbufd;
006
007
008import java.util.List;
009
010import edu.jas.gb.WordReduction;
011import edu.jas.poly.GenPolynomial;
012import edu.jas.poly.GenWordPolynomial;
013import edu.jas.structure.RingElem;
014
015
016/**
017 * Polynomial pseudo reduction interface. Defines additionally normalformFactor
018 * and normalformRecursive.
019 * @param <C> coefficient type.
020 * @author Heinz Kredel
021 */
022
023public interface WordPseudoReduction<C extends RingElem<C>> extends WordReduction<C> {
024
025
026    /**
027     * Left normalform with multiplication factor.
028     * @param Pp polynomial list.
029     * @param Ap polynomial.
030     * @return ( nf(Ap), mf ) with respect to Pp and mf as multiplication factor
031     *         for Ap.
032     */
033    public WordPseudoReductionEntry<C> normalformFactor(List<GenWordPolynomial<C>> Pp, GenWordPolynomial<C> Ap);
034
035
036    /**
037     * Left normalform recursive.
038     * @param Ap recursive polynomial.
039     * @param Pp recursive polynomial list.
040     * @return nf(Ap) with respect to Pp.
041     */
042    public GenWordPolynomial<GenPolynomial<C>> normalformRecursive(
043                    List<GenWordPolynomial<GenPolynomial<C>>> Pp, GenWordPolynomial<GenPolynomial<C>> Ap);
044
045
046}