001/* 002 * $Id$ 003 */ 004 005package edu.jas.gbufd; 006 007 008import java.util.List; 009 010import edu.jas.gb.SolvableReduction; 011import edu.jas.poly.GenPolynomial; 012import edu.jas.poly.GenSolvablePolynomial; 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 SolvablePseudoReduction<C extends RingElem<C>> extends SolvableReduction<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 PseudoReductionEntry<C> leftNormalformFactor(List<GenSolvablePolynomial<C>> Pp, 034 GenSolvablePolynomial<C> Ap); 035 036 037 /** 038 * Right normalform with multiplication factor. 039 * @param Pp polynomial list. 040 * @param Ap polynomial. 041 * @return ( nf(Ap), mf ) with respect to Pp and mf as multiplication factor 042 * for Ap. 043 */ 044 public PseudoReductionEntry<C> rightNormalformFactor(List<GenSolvablePolynomial<C>> Pp, 045 GenSolvablePolynomial<C> Ap); 046 047 048 /** 049 * Left normalform recursive. 050 * @param Ap recursive polynomial. 051 * @param Pp recursive polynomial list. 052 * @return nf(Ap) with respect to Pp. 053 */ 054 public GenSolvablePolynomial<GenPolynomial<C>> leftNormalformRecursive( 055 List<GenSolvablePolynomial<GenPolynomial<C>>> Pp, 056 GenSolvablePolynomial<GenPolynomial<C>> Ap); 057 058 059 /** 060 * Right normalform recursive. 061 * @param Ap recursive polynomial. 062 * @param Pp recursive polynomial list. 063 * @return nf(Ap) with respect to Pp. 064 */ 065 public GenSolvablePolynomial<GenPolynomial<C>> rightNormalformRecursive( 066 List<GenSolvablePolynomial<GenPolynomial<C>>> Pp, 067 GenSolvablePolynomial<GenPolynomial<C>> Ap); 068 069}