Package edu.jas.poly
Class GenPolynomialTokenizer
- java.lang.Object
-
- edu.jas.poly.GenPolynomialTokenizer
-
public class GenPolynomialTokenizer extends java.lang.ObjectGenPolynomial 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.- See Also:
RingFactoryTokenizer
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static classGenPolynomialTokenizer.coeffTypeprivate static classGenPolynomialTokenizer.polyType
-
Field Summary
Fields Modifier and Type Field Description private static booleandebugprivate RingFactoryfacprivate static org.apache.logging.log4j.Loggerloggerprivate intnvarsprivate GenPolynomialTokenizer.coeffTypeparsedCoeffprivate GenPolynomialTokenizer.polyTypeparsedPolyprivate GenPolynomialRingpfacprivate java.io.Readerreaderprivate GenSolvablePolynomialRingspfacprivate RelationTabletableprivate java.io.StreamTokenizertokprivate TermOrdertordprivate java.lang.String[]vars
-
Constructor Summary
Constructors Constructor Description GenPolynomialTokenizer()No-args constructor reads from System.in.GenPolynomialTokenizer(GenPolynomialRing rf, java.io.Reader r)Constructor with Ring and Reader.GenPolynomialTokenizer(java.io.Reader r)Constructor with Reader.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) static booleandigit(char x)static java.lang.String[]expressionVariables(java.lang.String s)Extract variable list from expression.voidinitFactory(RingFactory rf, GenPolynomialTokenizer.coeffType ct)Initialize coefficient and polynomial factories.voidinitSolvableFactory(RingFactory rf, GenPolynomialTokenizer.coeffType ct)Initialize coefficient and solvable polynomial factories.(package private) static booleanletter(char x)RingFactorynextCoefficientRing()Parsing method for coefficient ring.voidnextComma()java.lang.StringnextComment()Parsing method for comments.longnextExponent()Parsing method for exponent (of variable).GenExteriorPolynomialnextExteriorPolynomial()Parsing method for exterior polynomial.GenExteriorPolynomialnextExteriorPolynomial(GenExteriorPolynomialRing wfac)Parsing method for exterior polynomial.java.util.List<GenExteriorPolynomial>nextExteriorPolynomialList()Parsing method for exterior polynomial list.java.util.List<GenExteriorPolynomial>nextExteriorPolynomialList(GenExteriorPolynomialRing wfac)Parsing method for exterior polynomial list.GenPolynomialnextPolynomial()Parsing method for GenPolynomial.java.util.List<GenPolynomial>nextPolynomialList()Parsing method for polynomial list.PolynomialListnextPolynomialSet()Parsing method for polynomial set.voidnextRelationTable()Parsing method for solvable polynomial relation table.GenSolvablePolynomialnextSolvablePolynomial()Parsing method for solvable polynomial.java.util.List<GenSolvablePolynomial>nextSolvablePolynomialList()Parsing method for solvable polynomial list.PolynomialListnextSolvablePolynomialSet()Parsing method for solvable polynomial set.java.util.List<java.util.List<GenSolvablePolynomial>>nextSolvableSubModuleList()Parsing method for solvable submodule list.ModuleListnextSolvableSubModuleSet()Parsing method for solvable module set.intnextSplitIndex()Parsing method for split index.java.util.List<java.util.List<GenPolynomial>>nextSubModuleList()Parsing method for submodule list.ModuleListnextSubModuleSet()Parsing method for module set.TermOrdernextTermOrder()Parsing method for term order name.java.lang.String[]nextVariableList()Parsing method for variable list.long[][]nextWeightArray()Parsing method for weight array.long[]nextWeightList()Parsing method for weight list.GenWordPolynomialnextWordPolynomial()Parsing method for word polynomial.GenWordPolynomialnextWordPolynomial(GenWordPolynomialRing wfac)Parsing method for word polynomial.java.util.List<GenWordPolynomial>nextWordPolynomialList()Parsing method for word polynomial list.java.util.List<GenWordPolynomial>nextWordPolynomialList(GenWordPolynomialRing wfac)Parsing method for word polynomial list.static java.lang.String[]variableList(java.lang.String s)Parse variable list from String.
-
-
-
Field Detail
-
logger
private static final org.apache.logging.log4j.Logger logger
-
debug
private static final boolean debug
-
vars
private java.lang.String[] vars
-
nvars
private int nvars
-
tord
private TermOrder tord
-
table
private RelationTable table
-
tok
private final java.io.StreamTokenizer tok
-
reader
private final java.io.Reader reader
-
fac
private RingFactory fac
-
parsedCoeff
private GenPolynomialTokenizer.coeffType parsedCoeff
-
pfac
private GenPolynomialRing pfac
-
parsedPoly
private GenPolynomialTokenizer.polyType parsedPoly
-
spfac
private GenSolvablePolynomialRing spfac
-
-
Constructor Detail
-
GenPolynomialTokenizer
public GenPolynomialTokenizer()
No-args constructor reads from System.in.
-
GenPolynomialTokenizer
public GenPolynomialTokenizer(GenPolynomialRing rf, java.io.Reader r)
Constructor with Ring and Reader.- Parameters:
rf- ring factory.r- reader stream.
-
GenPolynomialTokenizer
public GenPolynomialTokenizer(java.io.Reader r)
Constructor with Reader.- Parameters:
r- reader stream.
-
-
Method Detail
-
initFactory
public void initFactory(RingFactory rf, GenPolynomialTokenizer.coeffType ct)
Initialize coefficient and polynomial factories.- Parameters:
rf- ring factory.ct- coefficient type.
-
initSolvableFactory
public void initSolvableFactory(RingFactory rf, 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.IOExceptionParsing 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.IOExceptionParsing 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.IOExceptionParsing 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.IOExceptionParsing 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.IOExceptionParsing 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.IOExceptionParsing 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<GenPolynomial> nextPolynomialList() 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.IOExceptionParsing 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<GenSolvablePolynomial> nextSolvablePolynomialList() 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<GenWordPolynomial> nextWordPolynomialList() 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<GenWordPolynomial> nextWordPolynomialList(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<GenExteriorPolynomial> nextExteriorPolynomialList() 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
-
nextExteriorPolynomialList
public java.util.List<GenExteriorPolynomial> nextExteriorPolynomialList(GenExteriorPolynomialRing wfac) throws java.io.IOException
Parsing method for exterior polynomial list. Syntax:( p1, p2, p3, ..., pn )
- Parameters:
wfac- exterior polynomial ring.- Returns:
- the next exterior polynomial list.
- Throws:
java.io.IOException
-
digit
static boolean digit(char x)
-
letter
static boolean letter(char x)
-
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.
-
-