001/* 002 * $Id: SolvablePseudoReduction.java 5041 2014-12-29 11:58:22Z kredel $ 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 public PseudoReductionEntry<C> rightNormalformFactor(List<GenSolvablePolynomial<C>> Pp, GenSolvablePolynomial<C> Ap); 044 */ 045 046 047 /** 048 * Left normalform recursive. 049 * @param Ap recursive polynomial. 050 * @param Pp recursive polynomial list. 051 * @return nf(Ap) with respect to Pp. 052 */ 053 public GenSolvablePolynomial<GenPolynomial<C>> leftNormalformRecursive( 054 List<GenSolvablePolynomial<GenPolynomial<C>>> Pp, 055 GenSolvablePolynomial<GenPolynomial<C>> Ap); 056 057 058 /* 059 * Right normalform recursive. 060 * @param Ap recursive polynomial. 061 * @param Pp recursive polynomial list. 062 * @return nf(Ap) with respect to Pp. 063 public GenSolvablePolynomial<GenPolynomial<C>> rightNormalformRecursive(List<GenSolvablePolynomial<GenPolynomial<C>>> Pp, GenSolvablePolynomial<GenPolynomial<C>> Ap); 064 */ 065 066}