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