Package edu.jas.poly

Class GenPolynomialTokenizer


  • public class GenPolynomialTokenizer
    extends java.lang.Object
    GenPolynomial Tokenizer. Used to read rational polynomials and lists of polynomials from input streams. Arbitrary polynomial rings and coefficient rings can be read with RingFactoryTokenizer. Note: Can no more read QuotientRing since end of 2010, revision 3441. Quotient coefficients and others can still be read if the respective factory is provided via the constructor.
    Author:
    Heinz Kredel
    See Also:
    RingFactoryTokenizer
    • Method Detail

      • initFactory

        public void initFactory​(RingFactory rf,
                                edu.jas.poly.GenPolynomialTokenizer.coeffType ct)
        Initialize coefficient and polynomial factories.
        Parameters:
        rf - ring factory.
        ct - coefficient type.
      • initSolvableFactory

        public void initSolvableFactory​(RingFactory rf,
                                        edu.jas.poly.GenPolynomialTokenizer.coeffType ct)
        Initialize coefficient and solvable polynomial factories.
        Parameters:
        rf - ring factory.
        ct - coefficient type.
      • nextPolynomial

        public GenPolynomial nextPolynomial()
                                     throws java.io.IOException
        Parsing method for GenPolynomial. Syntax depends also on the syntax of the coefficients, as the respective parser is used. Basic term/monomial syntax:
             ... coefficient variable**exponent ... variable^exponent + ... - ....
         
        Juxtaposition means multiplication *. Then terms/monomials can be added or subtracted +, - and grouped by parenthesis (). There are some heuristics to detect when a coefficient should be parsed. To force parsing of a coefficient enclose it in braces {}.
        Returns:
        the next polynomial.
        Throws:
        java.io.IOException
      • nextExponent

        public long nextExponent()
                          throws java.io.IOException
        Parsing method for exponent (of variable). Syntax:
         ^long | **long
         
        Returns:
        the next exponent or 1.
        Throws:
        java.io.IOException
      • nextComment

        public java.lang.String nextComment()
                                     throws java.io.IOException
        Parsing method for comments. Syntax:
         (* comment *) | /_* comment *_/
         
        without _. Unused, as it does not work with this pushBack().
        Throws:
        java.io.IOException
      • nextVariableList

        public java.lang.String[] nextVariableList()
                                            throws java.io.IOException
        Parsing method for variable list. Syntax:
         (a, b c, de)
         
        gives [ "a", "b", "c", "de" ]
        Returns:
        the next variable list.
        Throws:
        java.io.IOException
      • nextCoefficientRing

        public RingFactory nextCoefficientRing()
                                        throws java.io.IOException
        Parsing method for coefficient ring. Syntax:
         Rat | Q | Int | Z | Mod modul | Complex | C | D | Quat | AN[ (var) ( poly ) ] | AN[ modul (var) ( poly ) ] | IntFunc (var_list)
         
        Returns:
        the next coefficient factory.
        Throws:
        java.io.IOException
      • nextWeightList

        public long[] nextWeightList()
                              throws java.io.IOException
        Parsing method for weight list. Syntax:
         (w1, w2, w3, ..., wn)
         
        Returns:
        the next weight list.
        Throws:
        java.io.IOException
      • nextWeightArray

        public long[][] nextWeightArray()
                                 throws java.io.IOException
        Parsing method for weight array. Syntax:
         ( (w11, ...,w1n), ..., (wm1, ..., wmn) )
         
        Returns:
        the next weight array.
        Throws:
        java.io.IOException
      • nextSplitIndex

        public int nextSplitIndex()
                           throws java.io.IOException
        Parsing method for split index. Syntax:
         |i|
         
        Returns:
        the next split index.
        Throws:
        java.io.IOException
      • nextTermOrder

        public TermOrder nextTermOrder()
                                throws java.io.IOException
        Parsing method for term order name. Syntax:
         L | IL | LEX | G | IG | GRLEX | W(weights) | '|'split index'|'
         
        Returns:
        the next term order.
        Throws:
        java.io.IOException
      • nextPolynomialList

        public java.util.List<GenPolynomialnextPolynomialList()
                                                         throws java.io.IOException
        Parsing method for polynomial list. Syntax:
         ( p1, p2, p3, ..., pn )
         
        Returns:
        the next polynomial list.
        Throws:
        java.io.IOException
      • nextSubModuleList

        public java.util.List<java.util.List<GenPolynomial>> nextSubModuleList()
                                                                        throws java.io.IOException
        Parsing method for submodule list. Syntax:
         ( ( p11, p12, p13, ..., p1n ), ..., ( pm1, pm2, pm3, ..., pmn ) )
         
        Returns:
        the next list of polynomial lists.
        Throws:
        java.io.IOException
      • nextRelationTable

        public void nextRelationTable()
                               throws java.io.IOException
        Parsing method for solvable polynomial relation table. Syntax:
         ( p_1, p_2, p_3, ..., p_{n+1}, p_{n+2}, p_{n+3} )
         
        semantics: p_{n+1} * p_{n+2} = p_{n+3}. The next relation table is stored into the solvable polynomial factory.
        Throws:
        java.io.IOException
      • nextPolynomialSet

        public PolynomialList nextPolynomialSet()
                                         throws java.io.IOException
        Parsing method for polynomial set. Syntax:
         coeffRing varList termOrderName polyList
         
        Returns:
        the next polynomial set.
        Throws:
        java.io.IOException
      • nextSubModuleSet

        public ModuleList nextSubModuleSet()
                                    throws java.io.IOException
        Parsing method for module set. Syntax:
         coeffRing varList termOrderName moduleList
         
        Returns:
        the next module set.
        Throws:
        java.io.IOException
      • nextSolvablePolynomialList

        public java.util.List<GenSolvablePolynomialnextSolvablePolynomialList()
                                                                         throws java.io.IOException
        Parsing method for solvable polynomial list. Syntax:
         ( p1, p2, p3, ..., pn )
         
        Returns:
        the next solvable polynomial list.
        Throws:
        java.io.IOException
      • nextSolvablePolynomial

        public GenSolvablePolynomial nextSolvablePolynomial()
                                                     throws java.io.IOException
        Parsing method for solvable polynomial. Syntax: same as for polynomial. If the relation table is set-up, then multiplication will mean solvable-multiplication.
        Returns:
        the next polynomial.
        Throws:
        java.io.IOException
      • nextSolvablePolynomialSet

        public PolynomialList nextSolvablePolynomialSet()
                                                 throws java.io.IOException
        Parsing method for solvable polynomial set. Syntax:
         varList termOrderName relationTable polyList
         
        Returns:
        the next solvable polynomial set.
        Throws:
        java.io.IOException
      • nextSolvableSubModuleList

        public java.util.List<java.util.List<GenSolvablePolynomial>> nextSolvableSubModuleList()
                                                                                        throws java.io.IOException
        Parsing method for solvable submodule list. Syntax:
         ( ( p11, p12, p13, ..., p1n ), ..., ( pm1, pm2, pm3, ..., pmn ) )
         
        Returns:
        the next list of solvable polynomial lists.
        Throws:
        java.io.IOException
      • nextSolvableSubModuleSet

        public ModuleList nextSolvableSubModuleSet()
                                            throws java.io.IOException
        Parsing method for solvable module set. Syntax:
         varList termOrderName relationTable moduleList
         
        Returns:
        the next solvable module set.
        Throws:
        java.io.IOException
      • nextWordPolynomial

        public GenWordPolynomial nextWordPolynomial()
                                             throws java.io.IOException
        Parsing method for word polynomial. Syntax: same as for polynomial. Multiplication will be non commutative.
        Returns:
        the next polynomial.
        Throws:
        java.io.IOException
      • nextWordPolynomial

        public GenWordPolynomial nextWordPolynomial​(GenWordPolynomialRing wfac)
                                             throws java.io.IOException
        Parsing method for word polynomial. Syntax: same as for polynomial. Multiplication will be non commutative.
        Parameters:
        wfac - word polynomial ring.
        Returns:
        the next polynomial.
        Throws:
        java.io.IOException
      • nextWordPolynomialList

        public java.util.List<GenWordPolynomialnextWordPolynomialList()
                                                                 throws java.io.IOException
        Parsing method for word polynomial list. Syntax:
         ( p1, p2, p3, ..., pn )
         
        Returns:
        the next word polynomial list.
        Throws:
        java.io.IOException
      • nextWordPolynomialList

        public java.util.List<GenWordPolynomialnextWordPolynomialList​(GenWordPolynomialRing wfac)
                                                                 throws java.io.IOException
        Parsing method for word polynomial list. Syntax:
         ( p1, p2, p3, ..., pn )
         
        Parameters:
        wfac - word polynomial ring.
        Returns:
        the next word polynomial list.
        Throws:
        java.io.IOException
      • nextExteriorPolynomial

        public GenExteriorPolynomial nextExteriorPolynomial()
                                                     throws java.io.IOException
        Parsing method for exterior polynomial. Syntax: same as for polynomial. Multiplication will be non commutative.
        Returns:
        the next polynomial.
        Throws:
        java.io.IOException
      • nextExteriorPolynomial

        public GenExteriorPolynomial nextExteriorPolynomial​(GenExteriorPolynomialRing wfac)
                                                     throws java.io.IOException
        Parsing method for exterior polynomial. Syntax: except for index list same as for polynomial. Multiplication will be anti-commutative.
        Parameters:
        wfac - exterior polynomial ring.
        Returns:
        the next polynomial.
        Throws:
        java.io.IOException
      • nextExteriorPolynomialList

        public java.util.List<GenExteriorPolynomialnextExteriorPolynomialList()
                                                                         throws java.io.IOException
        Parsing method for exterior polynomial list. Syntax:
         ( p1, p2, p3, ..., pn )
         
        Returns:
        the next exterior polynomial list.
        Throws:
        java.io.IOException
      • nextComma

        public void nextComma()
                       throws java.io.IOException
        Throws:
        java.io.IOException
      • variableList

        public static java.lang.String[] variableList​(java.lang.String s)
        Parse variable list from String.
        Parameters:
        s - String. Syntax:
         (n1,...,nk)
                    
        or
         (n1 ... nk)
                    
        parenthesis are optional.
        Returns:
        array of variable names found in s.
      • expressionVariables

        public static java.lang.String[] expressionVariables​(java.lang.String s)
        Extract variable list from expression.
        Parameters:
        s - String. Syntax: any polynomial expression.
        Returns:
        array of variable names found in s.