001/*
002 * $Id$
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}