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