001/* 002 * $Id: ModSolvableGroebnerBaseSeq.java 5872 2018-07-20 16:01:46Z kredel $ 003 */ 004 005package edu.jas.gbmod; 006 007 008import java.util.List; 009 010// import org.apache.logging.log4j.Logger; 011import org.apache.logging.log4j.LogManager; 012import edu.jas.gb.SolvableGroebnerBaseAbstract; 013import edu.jas.gbufd.SGBFactory; 014import edu.jas.poly.GenSolvablePolynomial; 015import edu.jas.structure.GcdRingElem; 016import edu.jas.structure.RingFactory; 017 018 019/** 020 * Module solvable Groebner Bases sequential class. Implements module solvable 021 * Groebner bases and GB test. 022 * @param <C> coefficient type 023 * @author Heinz Kredel 024 * @deprecated use respective methods from SolvableGroebnerBaseSeq 025 */ 026@Deprecated 027public class ModSolvableGroebnerBaseSeq<C extends GcdRingElem<C>> extends ModSolvableGroebnerBaseAbstract<C> { 028 029 030 //private static final Logger logger = LogManager.getLogger(ModSolvableGroebnerBaseSeq.class); 031 032 033 //private static final boolean debug = logger.isDebugEnabled(); 034 035 036 /** 037 * Used Solvable Groebner base algorithm. 038 */ 039 protected final SolvableGroebnerBaseAbstract<C> sbb; 040 041 042 /** 043 * Constructor. 044 * @param cf coefficient ring. 045 */ 046 public ModSolvableGroebnerBaseSeq(RingFactory<C> cf) { 047 this(SGBFactory.getImplementation(cf)); 048 } 049 050 051 /** 052 * Constructor. 053 * @param sbb solvable Groebner base implementation. 054 */ 055 public ModSolvableGroebnerBaseSeq(SolvableGroebnerBaseAbstract<C> sbb) { 056 this.sbb = sbb; 057 } 058 059 060 /** 061 * Module left Groebner base test. 062 * @param modv number of modul variables. 063 * @param F a module basis. 064 * @return true, if F is a left Groebner base, else false. 065 */ 066 public boolean isLeftGB(int modv, List<GenSolvablePolynomial<C>> F) { 067 return sbb.isLeftGB(modv, F); 068 } 069 070 071 /** 072 * Left Groebner base using pairlist class. 073 * @param modv number of modul variables. 074 * @param F a module basis. 075 * @return leftGB(F) a left Groebner base for F. 076 */ 077 public List<GenSolvablePolynomial<C>> leftGB(int modv, List<GenSolvablePolynomial<C>> F) { 078 return sbb.leftGB(modv, F); 079 } 080 081 082 /** 083 * Module twosided Groebner base test. 084 * @param modv number of modul variables. 085 * @param F a module basis. 086 * @return true, if F is a twosided Groebner base, else false. 087 */ 088 public boolean isTwosidedGB(int modv, List<GenSolvablePolynomial<C>> F) { 089 return sbb.isTwosidedGB(modv, F); 090 } 091 092 093 /** 094 * Twosided Groebner base using pairlist class. 095 * @param modv number of modul variables. 096 * @param F a module basis. 097 * @return tsGB(F) a twosided Groebner base for F. 098 */ 099 public List<GenSolvablePolynomial<C>> twosidedGB(int modv, List<GenSolvablePolynomial<C>> F) { 100 return sbb.twosidedGB(modv, F); 101 } 102 103 104 /** 105 * Module right Groebner base test. 106 * @param modv number of modul variables. 107 * @param F a module basis. 108 * @return true, if F is a right Groebner base, else false. 109 */ 110 public boolean isRightGB(int modv, List<GenSolvablePolynomial<C>> F) { 111 return sbb.isRightGB(modv, F); 112 } 113 114 115 /** 116 * Right Groebner base using pairlist class. 117 * @param modv number of modul variables. 118 * @param F a module basis. 119 * @return rightGB(F) a right Groebner base for F. 120 */ 121 public List<GenSolvablePolynomial<C>> rightGB(int modv, List<GenSolvablePolynomial<C>> F) { 122 if (modv == 0) { 123 return sbb.rightGB(modv, F); 124 } 125 throw new UnsupportedOperationException("modv != 0 not jet implemented"); 126 // return sbb.rightGB(modv,F); 127 } 128 129}