001/* 002 * $Id: CharacteristicSet.java 3930 2012-05-06 11:44:55Z kredel $ 003 */ 004 005package edu.jas.gbufd; 006 007 008import java.io.Serializable; 009import java.util.List; 010 011import edu.jas.poly.GenPolynomial; 012import edu.jas.structure.GcdRingElem; 013 014 015/** 016 * Characteristic Set interface. Defines methods for Characteristic Sets and 017 * tests. 018 * @param <C> coefficient type 019 * @author Heinz Kredel 020 */ 021public interface CharacteristicSet<C extends GcdRingElem<C>> extends Serializable { 022 023 024 /** 025 * Characteristic set. According to the implementing algorithm (simple, Wu, etc). 026 * @param A list of generic polynomials. 027 * @return charSet(A) with at most one polynomial per main variable. 028 */ 029 public List<GenPolynomial<C>> characteristicSet(List<GenPolynomial<C>> A); 030 031 032 /** 033 * Characteristic set test. 034 * @param A list of generic polynomials. 035 * @return true, if A is (at least a simple) characteristic set, else false. 036 */ 037 public boolean isCharacteristicSet(List<GenPolynomial<C>> A); 038 039 040 /** 041 * Characteristic set reduction. Pseudo remainder wrt. the main variable. 042 * With further pseudo reduction of the leading coefficient depending on the implementing algorithm. 043 * @param P generic polynomial. 044 * @param A list of generic polynomials as characteristic set. 045 * @return characteristicSetRemainder(A,P) or 046 * characteristicSetReductionCoeff(A,characteristicSetRemainder(A,P)) depending on the algorithm. 047 */ 048 public GenPolynomial<C> characteristicSetReduction(List<GenPolynomial<C>> A, GenPolynomial<C> P); 049 050}