001 /* 002 * $Id: ModGroebnerBase.java 3445 2010-12-25 17:24:04Z kredel $ 003 */ 004 005 package edu.jas.gbmod; 006 007 import java.util.List; 008 009 import edu.jas.structure.RingElem; 010 011 import edu.jas.poly.GenPolynomial; 012 import edu.jas.poly.ModuleList; 013 014 015 016 /** 017 * Module Groebner Bases interface. 018 * Defines Groebner bases and GB test. 019 * @author Heinz Kredel 020 */ 021 022 public interface ModGroebnerBase<C extends RingElem<C>> { 023 024 025 /** 026 * Module Groebner base test. 027 */ 028 public boolean isGB(int modv, List<GenPolynomial<C>> F); 029 030 031 /** 032 * isGB. 033 * @param M a module basis. 034 * @return true, if M is a Groebner base, else false. 035 */ 036 public boolean isGB(ModuleList<C> M); 037 038 039 /** 040 * Groebner base using pairlist class. 041 */ 042 public List<GenPolynomial<C>> 043 GB(int modv, List<GenPolynomial<C>> F); 044 045 046 /** 047 * GB. 048 * @param M a module basis. 049 * @return GB(M), a Groebner base of M. 050 */ 051 public ModuleList<C> GB(ModuleList<C> M); 052 053 }