Package org.mariuszgromada.math.mxparser
Class mXparser
- java.lang.Object
-
- org.mariuszgromada.math.mxparser.mXparser
-
public final class mXparser extends Object
mXparser class provides usefull methods when parsing, calculating or parameters transforming.- Version:
- 5.0.2
- Author:
- Mariusz Gromada
MathParser.org - mXparser project page
mXparser on GitHub
INFIMA place to purchase a commercial MathParser.org-mXparser software license
info@mathparser.org
ScalarMath.org - a powerful math engine and math scripting language
Scalar Lite
Scalar Pro
MathSpace.pl - See Also:
RecursiveArgument,Expression,Function,Constant
-
-
Field Summary
Fields Modifier and Type Field Description static StringBUIT_FORFramework used to compile mXparserstatic StringLICENSELicense info.static StringNAMEv10static StringNAMEv20static StringNAMEv23static StringNAMEv24static StringNAMEv30static StringNAMEv40static StringNAMEv41static StringNAMEv42static StringNAMEv43static StringNAMEv44static StringNAMEv50static intPRIMES_CACHE_NOT_INITIALIZEDstatic PrimesCacheprimesCachePrime numbers cachestatic StringVERSIONmXparser versionstatic StringVERSION_CODE_NAMEstatic StringVERSION_NAME
-
Constructor Summary
Constructors Constructor Description mXparser()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static double[]arrayList2double(List<Double> numbers)Converts List of double to double[]static voidcancelCurrentCalculation()Method give a signal to other methods to cancel current calculation.static booleancheckIfAlmostIntRounding()Returns state of almost integer rounding option causing rounding final calculation result to precise integer if and only if result is very close to integer.static booleancheckIfAttemptToFixExpStrMode()Gets attempt to fix expression string modestatic booleancheckIfCanonicalRounding()Double floating-point precision arithmetic causes rounding problems, i.e. 0.1 + 0.1 + 0.1 is slightly different than 0.3, additionally doubles are having a lot of advantages providing flexible number representation regardless of number size. mXparser is fully based on double numbers and that is why is providing intelligent canonical rounding to minimize misleading results.static booleancheckIfDegreesMode()Checks whether mXparser operates in degrees mode for trigonometric functions.static booleancheckIfEpsilonMode()Checks if epsilon comparison mode is active;static booleancheckIfExactMode()Checks if exact comparison mode is active;static booleancheckIfImpliedMultiplicationMode()Gets implied multiplication statusstatic booleancheckIfRadiansMode()Checks whether mXparser operates in radians mode for trigonometric functions.static booleancheckIfsetToOverrideBuiltinTokens()Checks whether mXparser is set to override built-in tokens.static booleancheckIfUlpRounding()Double floating-point precision arithmetic causes rounding problems, i.e. 0.1 + 0.1 + 0.1 is slightly different than 0.3, additionally doubles are having a lot of advantages providing flexible number representation regardless of number size. mXparser is fully based on double numbers and that is why is providing intelligent ULP rounding to minimize misleading results.static booleancheckIfUnicodeBuiltinKeyWordsMode()Gets unicode built-in parser keywords modestatic voidconsolePrint(Object o)Prints object.toString to the Consolestatic voidconsolePrint(List<Token> tokens)Prints tokens to the console.static voidconsolePrintHelp()Prints all help content.static voidconsolePrintHelp(String word)Prints filtered help content.static voidconsolePrintLicense()Prints to the console license terms and conditions of MathParser.org-mXparser softwarestatic voidconsolePrintln()Prints new line to the Console, no new linestatic voidconsolePrintln(Object o)Prints object.toString to the Console + new linestatic voidconsolePrintln(String[] stringArray)Prints array of stringsstatic voidconsolePrintln(List<Token> tokens)Prints tokens to the console.static voidconsolePrintSettings()static voidconsolePrintSettings(String prefix)static voidconsolePrintTokens(List<Token> tokens)Prints tokens to the console.static StringconvDecimal2OthBase(double decimalNumber, int numeralSystemBase)Decimal number to other numeral system conversion with base between 1 and 36.static StringconvDecimal2OthBase(double decimalNumber, int numeralSystemBase, int format)Decimal number to other numeral system conversion with base between 1 and 36.static doubleconvOthBase2Decimal(double numeralSystemBase, double... digits)Other base to decimal conversion.static doubleconvOthBase2Decimal(int numeralSystemBase, int... digits)Other base to decimal conversion.static doubleconvOthBase2Decimal(String numberLiteral)Other base (base between 1 and 36) number literal conversion to decimal number.static doubleconvOthBase2Decimal(String numberLiteral, int numeralSystemBase)Other base (base between 1 and 36) number literal conversion to decimal number.static voiddisableAlmostIntRounding()Disables almost integer rounding option causing rounding final calculation result to precise integer if and only if result is very close to integer.static voiddisableAttemptToFixExpStrMode()Disables attempt to fix the expression String.static voiddisableCanonicalRounding()Disables canonical rounding.static voiddisableImpliedMultiplicationMode()Disables implied multiplicationstatic voiddisableUlpRounding()Disables ULP rounding.static voiddisableUnicodeBuiltinKeyWordsMode()Disables unicode built-in parser keywords, this flag informs the parser that built-in unicode keywords are not supported and will not be recognized as functions or operators.static voidenableAlmostIntRounding()Enables almost integer rounding option causing rounding final calculation result to precise integer if and only if result is very close to integer.static voidenableAttemptToFixExpStrMode()Enables attempt to fix the expression String.static voidenableCanonicalRounding()Enables canonical rounding.static voidenableImpliedMultiplicationMode()Sets implied multiplicationstatic voidenableUlpRounding()Enables ULP rounding.static voidenableUnicodeBuiltinKeyWordsMode()Enables unicode built-in parser keywords, this flag informs the parser that built-in unicode keywords are supported and will be recognized as functions or operators.static StringfractionToString(double[] fraction)Converts array representing fraction to fraction string representation.static String[][]getBuiltinTokensToModify()Return details on tokens marked to be modified.static String[]getBuiltinTokensToRemove()Returns current list of tokens marked to be removed.static StringgetConsoleOutput()Returns console output string, console output string is being built by consolePrintln(), consolePrint().static doublegetEpsilon()Returns current epsilon value.static doublegetFunctionValue(Expression f, Argument x, double x0)Calculates function f(x0) (given as expression) assigning Argument x = x0;static double[]getFunctionValues(Expression f, Argument index, double from, double to, double delta)Returns array of double values of the function f(i) calculated on the range: i = from to i = to by step = deltastatic StringgetHelp()General mXparser expression helpstatic StringgetHelp(String word)General mXparser expression help - in-line key word searchingstatic List<KeyWord>getKeyWords()Returns list of key words known to the parserstatic List<KeyWord>getKeyWords(String query)Returns list of key words known to the parserstatic StringgetLicense()Gets license infostatic intgetMaxAllowedRecursionDepth()Internal limit to avoid infinite loops while calculating expression defined in the way shown by below examples.static intgetMaxNumInPrimesCache()Returns maximum integer number in primes cachestatic intgetThreadsNumber()Gets maximum threads numberstatic longgetToFractionInitSearchSize()Gets initial search size used by the toFraction methodstatic StringgetTokenTypeDescription(int tokenTypeId)Returns token type description.static StringhexString2AsciiString(String hexString)Converts hex string into ASCII string, where each letter is represented by two hex digits (byte) from the hex string.static voidinitPrimesCache()Initialization of prime numbers cache.static voidinitPrimesCache(int mximumNumberInCache)Initialization of prime numbers cache.static voidinitPrimesCache(PrimesCache primesCache)Initialization of prime numbers cache.static booleanisCurrentCalculationCancelled()Check whether a flag to cancel current calculation process is set.static booleanisInitPrimesCacheSuccessful()Returns true in case when primes cache initialization was successful, otherwise returns false.static voidmodifyBuiltinToken(String currentToken, String newToken)Method to change definition of built-in token - more precisely using this method allows to modify token string recognized by the parser (i.e. sin(x) to sinus(x)).static voidmodifyBuiltinToken(String currentToken, String newToken, String newTokenDescription)Method to change definition of built-in token - more precisely using this method allows to modify token string recognized by the parser (i.e. sin(x) to sinus(x)).static StringnumberToAsciiString(double number)Converts (long)double number into ASCII string, where each letter is represented by two hex digits (byte) from the hex representation of the original number casted to long type.static StringnumberToAsciiString(int number)Converts number into ASCII string, where each letter is represented by two hex digits (byte) from the hex representation of the original numberstatic StringnumberToAsciiString(long number)Converts number into ASCII string, where each letter is represented by two hex digits (byte) from the hex representation of the original numberstatic StringnumberToHexString(double number)Converts (long)double number to hex string (plain text)static StringnumberToHexString(int number)Converts integer number to hex string (plain text)static StringnumberToHexString(long number)Converts long number to hex string (plain text)static booleanregexMatch(String str, String pattern)Function used to introduce some compatibility between JAVA and C# while regexp matching.static voidremoveBuiltinTokens(String... tokens)Removes built-in tokens form the list of tokens recognized by the parsers.static voidresetCancelCurrentCalculationFlag()Resets a flag giving signal to the engine to cancel current calculation.static voidresetConsoleOutput()Resets console output string, console output string is being built by consolePrintln(), consolePrint().static voidsetAlmostIntRounding(boolean almostIntRoundingState)Enables / disables almost integer rounding option causing rounding final calculation result to precise integer if and only if result is very close to integer.static voidsetCanonicalRounding(boolean canonicalRoundingState)Enables / disables canonical rounding.static voidsetConsoleOutputPrefix(String consoleOutputPrefix)Sets console output string prefix.static voidsetConsolePrefix(String consolePrefix)Sets console prefix.static voidsetDefaultConsoleOutputPrefix()Sets default console output string prefix.static voidsetDefaultConsolePrefix()Sets default console prefix.static voidsetDefaultEpsilon()Sets default epsilon value.static voidsetDefaultOptions()Sets default mXparser optionsstatic voidsetDefaultThreadsNumber()Sets default threads numberstatic voidsetDegreesMode()Set mXparser to operate in degrees mode for trigonometric functionsstatic voidsetEpsilon(double epsilon)Sets epsilon value.static voidsetEpsilonComparison()Sets comparison mode to EPSILON.static voidsetExactComparison()Sets comparison mode to EXACT.static voidsetMaxAllowedRecursionDepth(int maxAllowedRecursionDepth)Internal limit to avoid infinite loops while calculating expression defined in the way shown by below examples.static voidsetNoPrimesCache()SetsprimesCacheto nullstatic voidsetNotToOverrideBuiltinTokens()Sets mXparser not to override built-in tokens by user defined tokens.static voidsetRadiansMode()Set mXparser to operate in radians mode for trigonometric functionsstatic voidsetRandomGenerator(Random randomGenerator)Modifies random generator used by the ProbabilityDistributions class.static voidsetThreadsNumber(int threadsNumber)Sets threads numberstatic voidsetToFractionInitSearchSize(long n)Sets initial search size for the toFraction methodstatic voidsetToOverrideBuiltinTokens()Sets mXparser to override built-in tokens by user defined tokens.static voidsetUlpRounding(boolean ulpRoundingState)Enables / disables ULP rounding.static double[]toFraction(double value)Converts double value to its fraction representation.static StringtoFractionString(double value)Converts number to its fraction string representation.static double[]toMixedFraction(double value)Converts double value to its mixed fraction representation.static StringtoMixedFractionString(double value)Converts number to its mixed fraction string representation.static voidunmodifyAllBuiltinTokens()Un-marks all tokens previously marked to be modified.static voidunmodifyBuiltinTokens(String... currentOrNewTokens)Un-marks tokens previously marked to be modified.static voidunremoveAllBuiltinTokens()Un-marks all tokens previously marked to be removed.static voidunremoveBuiltinTokens(String... tokens)Un-marks tokens previously marked to be removed.static voidwait(int n)Waits given number of milliseconds
-
-
-
Field Detail
-
VERSION
public static final String VERSION
mXparser version- See Also:
- Constant Field Values
-
VERSION_CODE_NAME
public static final String VERSION_CODE_NAME
- See Also:
- Constant Field Values
-
VERSION_NAME
public static final String VERSION_NAME
- See Also:
- Constant Field Values
-
BUIT_FOR
public static final String BUIT_FOR
Framework used to compile mXparser- See Also:
- Constant Field Values
-
primesCache
public static volatile PrimesCache primesCache
Prime numbers cache
-
PRIMES_CACHE_NOT_INITIALIZED
public static final int PRIMES_CACHE_NOT_INITIALIZED
- See Also:
- Constant Field Values
-
LICENSE
public static final String LICENSE
License info.- See Also:
- Constant Field Values
-
NAMEv10
public static final String NAMEv10
- See Also:
- Constant Field Values
-
NAMEv20
public static final String NAMEv20
- See Also:
- Constant Field Values
-
NAMEv23
public static final String NAMEv23
- See Also:
- Constant Field Values
-
NAMEv24
public static final String NAMEv24
- See Also:
- Constant Field Values
-
NAMEv30
public static final String NAMEv30
- See Also:
- Constant Field Values
-
NAMEv40
public static final String NAMEv40
- See Also:
- Constant Field Values
-
NAMEv41
public static final String NAMEv41
- See Also:
- Constant Field Values
-
NAMEv42
public static final String NAMEv42
- See Also:
- Constant Field Values
-
NAMEv43
public static final String NAMEv43
- See Also:
- Constant Field Values
-
NAMEv44
public static final String NAMEv44
- See Also:
- Constant Field Values
-
NAMEv50
public static final String NAMEv50
- See Also:
- Constant Field Values
-
-
Method Detail
-
initPrimesCache
public static void initPrimesCache()
Initialization of prime numbers cache. Cache size according toPrimesCache.DEFAULT_MAX_NUM_IN_CACHE- See Also:
PrimesCache
-
initPrimesCache
public static void initPrimesCache(int mximumNumberInCache)
Initialization of prime numbers cache.- Parameters:
mximumNumberInCache- The maximum integer number that will be stored in cache.- See Also:
PrimesCache
-
initPrimesCache
public static void initPrimesCache(PrimesCache primesCache)
Initialization of prime numbers cache.- Parameters:
primesCache- The primes cache object- See Also:
PrimesCache
-
isInitPrimesCacheSuccessful
public static boolean isInitPrimesCacheSuccessful()
Returns true in case when primes cache initialization was successful, otherwise returns false.- Returns:
- Returns true in case when primes cache initialization was successful, otherwise returns false.
-
setNoPrimesCache
public static void setNoPrimesCache()
SetsprimesCacheto null
-
getMaxNumInPrimesCache
public static int getMaxNumInPrimesCache()
Returns maximum integer number in primes cache- Returns:
- If primes cache was initialized then maximum number in
primes cache, otherwise
PRIMES_CACHE_NOT_INITIALIZED
-
getThreadsNumber
public static int getThreadsNumber()
Gets maximum threads number- Returns:
- Threads number.
-
setDefaultThreadsNumber
public static void setDefaultThreadsNumber()
Sets default threads number
-
setThreadsNumber
public static void setThreadsNumber(int threadsNumber)
Sets threads number- Parameters:
threadsNumber- Thread number.
-
getFunctionValue
public static double getFunctionValue(Expression f, Argument x, double x0)
Calculates function f(x0) (given as expression) assigning Argument x = x0;- Parameters:
f- the expressionx- the argumentx0- the argument value- Returns:
- f.calculate()
- See Also:
Expression
-
arrayList2double
public static double[] arrayList2double(List<Double> numbers)
Converts List of double to double[]- Parameters:
numbers- the numbers list- Returns:
- numbers array
-
getFunctionValues
public static double[] getFunctionValues(Expression f, Argument index, double from, double to, double delta)
Returns array of double values of the function f(i) calculated on the range: i = from to i = to by step = delta- Parameters:
f- Function expressionindex- Index argumentfrom- 'from' valueto- 'to' valuedelta- 'delta' step definition- Returns:
- Array of function values
-
setRandomGenerator
public static void setRandomGenerator(Random randomGenerator)
Modifies random generator used by the ProbabilityDistributions class.- Parameters:
randomGenerator- Random generator.- See Also:
ProbabilityDistributions,ProbabilityDistributions.randomGenerator
-
setExactComparison
public static void setExactComparison()
Sets comparison mode to EXACT.- See Also:
BinaryRelations
-
setEpsilonComparison
public static void setEpsilonComparison()
Sets comparison mode to EPSILON.- See Also:
BinaryRelations
-
setEpsilon
public static void setEpsilon(double epsilon)
Sets epsilon value.- Parameters:
epsilon- Epsilon value (grater than 0).- See Also:
setEpsilonComparison(),BinaryRelations
-
setDefaultEpsilon
public static void setDefaultEpsilon()
Sets default epsilon value.
-
getEpsilon
public static double getEpsilon()
Returns current epsilon value.- Returns:
- Returns current epsilon value.
- See Also:
setEpsilonComparison(),BinaryRelations
-
checkIfEpsilonMode
public static boolean checkIfEpsilonMode()
Checks if epsilon comparison mode is active;- Returns:
- True if epsilon mode is active, otherwise returns false.
- See Also:
setEpsilonComparison(),setExactComparison(),BinaryRelations
-
checkIfExactMode
public static boolean checkIfExactMode()
Checks if exact comparison mode is active;- Returns:
- True if exact mode is active, otherwise returns false.
- See Also:
setEpsilonComparison(),setExactComparison(),BinaryRelations
-
enableUlpRounding
public static void enableUlpRounding()
Enables ULP rounding. Double floating-point precision arithmetic causes rounding problems, i.e. 0.1 + 0.1 + 0.1 is slightly different than 0.3, additionally doubles are having a lot of advantages providing flexible number representation regardless of number size. mXparser is fully based on double numbers and that is why is providing intelligent ULP rounding to minimize misleading results. By default this option is enabled resulting in automatic rounding only in some cases. Using this mode 0.1 + 0.1 + 0.1 = 0.3
-
disableUlpRounding
public static void disableUlpRounding()
Disables ULP rounding. Double floating-point precision arithmetic causes rounding problems, i.e. 0.1 + 0.1 + 0.1 is slightly different than 0.3, additionally doubles are having a lot of advantages providing flexible number representation regardless of number size. mXparser is fully based on double numbers and that is why is providing intelligent ULP rounding to minimize misleading results. By default this option is enabled resulting in automatic rounding only in some cases. Disabling this mode 0.1 + 0.1 + 0.1 will be slightly different than 0.3.
-
setUlpRounding
public static void setUlpRounding(boolean ulpRoundingState)
Enables / disables ULP rounding. Double floating-point precision arithmetic causes rounding problems, i.e. 0.1 + 0.1 + 0.1 is slightly different than 0.3, additionally doubles are having a lot of advantages providing flexible number representation regardless of number size. mXparser is fully based on double numbers and that is why is providing intelligent ULP rounding to minimize misleading results. By default this option is enabled resulting in automatic rounding only in some cases. Disabling this mode 0.1 + 0.1 + 0.1 will be slightly different than 0.3.- Parameters:
ulpRoundingState- True to enable, false to disable
-
checkIfUlpRounding
public static boolean checkIfUlpRounding()
Double floating-point precision arithmetic causes rounding problems, i.e. 0.1 + 0.1 + 0.1 is slightly different than 0.3, additionally doubles are having a lot of advantages providing flexible number representation regardless of number size. mXparser is fully based on double numbers and that is why is providing intelligent ULP rounding to minimize misleading results. By default this option is enabled resulting in automatic rounding only in some cases. Using this mode 0.1 + 0.1 + 0.1 = 0.3- Returns:
- True if ULP rounding is enabled, otherwise false.
-
enableCanonicalRounding
public static void enableCanonicalRounding()
Enables canonical rounding. Double floating-point precision arithmetic causes rounding problems, i.e. 0.1 + 0.1 + 0.1 is slightly different than 0.3, additionally doubles are having a lot of advantages providing flexible number representation regardless of number size. mXparser is fully based on double numbers and that is why is providing intelligent canonical rounding to minimize misleading results. By default this option is enabled resulting in automatic rounding only in some cases. Using this mode 2.5 - 2.2 = 0.3
-
disableCanonicalRounding
public static void disableCanonicalRounding()
Disables canonical rounding. Double floating-point precision arithmetic causes rounding problems, i.e. 0.1 + 0.1 + 0.1 is slightly different than 0.3, additionally doubles are having a lot of advantages providing flexible number representation regardless of number size. mXparser is fully based on double numbers and that is why is providing intelligent canonical rounding to minimize misleading results. By default this option is enabled resulting in automatic rounding only in some cases. Using this mode 2.5 - 2.2 = 0.3
-
setCanonicalRounding
public static void setCanonicalRounding(boolean canonicalRoundingState)
Enables / disables canonical rounding. Double floating-point precision arithmetic causes rounding problems, i.e. 0.1 + 0.1 + 0.1 is slightly different than 0.3, additionally doubles are having a lot of advantages providing flexible number representation regardless of number size. mXparser is fully based on double numbers and that is why is providing intelligent ULP rounding to minimize misleading results. By default this option is enabled resulting in automatic rounding only in some cases. Disabling this mode 0.1 + 0.1 + 0.1 will be slightly different than 0.3.- Parameters:
canonicalRoundingState- True to enable, false to disable
-
checkIfCanonicalRounding
public static boolean checkIfCanonicalRounding()
Double floating-point precision arithmetic causes rounding problems, i.e. 0.1 + 0.1 + 0.1 is slightly different than 0.3, additionally doubles are having a lot of advantages providing flexible number representation regardless of number size. mXparser is fully based on double numbers and that is why is providing intelligent canonical rounding to minimize misleading results. By default this option is enabled resulting in automatic rounding only in some cases. Using this mode 2.5 - 2.2 = 0.3- Returns:
- True if Canonical rounding is enabled, otherwise false.
-
enableAlmostIntRounding
public static void enableAlmostIntRounding()
Enables almost integer rounding option causing rounding final calculation result to precise integer if and only if result is very close to integer. Very close condition depends on epsilon.- See Also:
setEpsilon(double),getEpsilon(),Expression.calculate()
-
disableAlmostIntRounding
public static void disableAlmostIntRounding()
Disables almost integer rounding option causing rounding final calculation result to precise integer if and only if result is very close to integer. Very close condition depends on epsilon.- See Also:
setEpsilon(double),getEpsilon(),Expression.calculate()
-
setAlmostIntRounding
public static void setAlmostIntRounding(boolean almostIntRoundingState)
Enables / disables almost integer rounding option causing rounding final calculation result to precise integer if and only if result is very close to integer. Very close condition depends on epsilon.- Parameters:
almostIntRoundingState- True to enable, false to disable
-
checkIfAlmostIntRounding
public static boolean checkIfAlmostIntRounding()
Returns state of almost integer rounding option causing rounding final calculation result to precise integer if and only if result is very close to integer. Very close condition depends on epsilon.- Returns:
- true if option enabled, false otherwise
- See Also:
setEpsilon(double),getEpsilon(),Expression.calculate()
-
setMaxAllowedRecursionDepth
public static void setMaxAllowedRecursionDepth(int maxAllowedRecursionDepth)
Internal limit to avoid infinite loops while calculating expression defined in the way shown by below examples. Argument x = new Argument("x = 2*y"); Argument y = new Argument("y = 2*x"); x.addDefinitions(y); y.addDefinitions(x); Function f = new Function("f(x) = 2*g(x)"); Function g = new Function("g(x) = 2*f(x)"); f.addDefinitions(g); g.addDefinitions(f); Currently does not affect properly defined recursive mode.- Parameters:
maxAllowedRecursionDepth- Maximum number of allowed recursion calls
-
getMaxAllowedRecursionDepth
public static int getMaxAllowedRecursionDepth()
Internal limit to avoid infinite loops while calculating expression defined in the way shown by below examples. Argument x = new Argument("x = 2*y"); Argument y = new Argument("y = 2*x"); x.addDefinitions(y); y.addDefinitions(x); Function f = new Function("f(x) = 2*g(x)"); Function g = new Function("g(x) = 2*f(x)"); f.addDefinitions(g); g.addDefinitions(f); Currently does not affect properly defined recursive mode.- Returns:
- Max allowed recursion calls
-
setRadiansMode
public static void setRadiansMode()
Set mXparser to operate in radians mode for trigonometric functions
-
setDegreesMode
public static void setDegreesMode()
Set mXparser to operate in degrees mode for trigonometric functions
-
checkIfRadiansMode
public static boolean checkIfRadiansMode()
Checks whether mXparser operates in radians mode for trigonometric functions.- Returns:
- true - if radians mode, false - otherwise
-
checkIfDegreesMode
public static boolean checkIfDegreesMode()
Checks whether mXparser operates in degrees mode for trigonometric functions.- Returns:
- true - if degrees mode, false - otherwise
-
enableImpliedMultiplicationMode
public static void enableImpliedMultiplicationMode()
Sets implied multiplication
-
disableImpliedMultiplicationMode
public static void disableImpliedMultiplicationMode()
Disables implied multiplication
-
checkIfImpliedMultiplicationMode
public static boolean checkIfImpliedMultiplicationMode()
Gets implied multiplication status- Returns:
- true if implied multiplication is enabled, otherwise returns false.
-
enableUnicodeBuiltinKeyWordsMode
public static void enableUnicodeBuiltinKeyWordsMode()
Enables unicode built-in parser keywords, this flag informs the parser that built-in unicode keywords are supported and will be recognized as functions or operators.
-
disableUnicodeBuiltinKeyWordsMode
public static void disableUnicodeBuiltinKeyWordsMode()
Disables unicode built-in parser keywords, this flag informs the parser that built-in unicode keywords are not supported and will not be recognized as functions or operators.
-
checkIfUnicodeBuiltinKeyWordsMode
public static boolean checkIfUnicodeBuiltinKeyWordsMode()
Gets unicode built-in parser keywords mode- Returns:
- true if unicode built-in parser keywords is enabled, otherwise returns false.
-
enableAttemptToFixExpStrMode
public static void enableAttemptToFixExpStrMode()
Enables attempt to fix the expression String. For example, situations such as: "++" change to "+", "+-" changed tro "-" "-+" changed tro "-" "--" changed tro "-"
-
disableAttemptToFixExpStrMode
public static void disableAttemptToFixExpStrMode()
Disables attempt to fix the expression String. For example, situations such as: "++" change to "+", "+-" changed tro "-" "-+" changed tro "-" "--" changed tro "-"
-
checkIfAttemptToFixExpStrMode
public static boolean checkIfAttemptToFixExpStrMode()
Gets attempt to fix expression string mode- Returns:
- true attempt to fix expression string mode is enabled, otherwise returns false.
-
setToFractionInitSearchSize
public static void setToFractionInitSearchSize(long n)
Sets initial search size for the toFraction method- Parameters:
n- initial search size, has to be non-zero positive.- See Also:
NumberTheory.toFraction(double)
-
getToFractionInitSearchSize
public static long getToFractionInitSearchSize()
Gets initial search size used by the toFraction method- Returns:
- initial search size used by the toFraction method
- See Also:
NumberTheory.toFraction(double)
-
removeBuiltinTokens
public static void removeBuiltinTokens(String... tokens)
Removes built-in tokens form the list of tokens recognized by the parsers. Procedure affects only tokens classified to built-in functions, built-in constants, built-in units, built-in random variables.- Parameters:
tokens- List of tokens to remove.
-
unremoveBuiltinTokens
public static void unremoveBuiltinTokens(String... tokens)
Un-marks tokens previously marked to be removed.- Parameters:
tokens- List of tokens to un-mark.
-
unremoveAllBuiltinTokens
public static void unremoveAllBuiltinTokens()
Un-marks all tokens previously marked to be removed.
-
getBuiltinTokensToRemove
public static String[] getBuiltinTokensToRemove()
Returns current list of tokens marked to be removed.- Returns:
- Current list of tokens marked to be removed
-
modifyBuiltinToken
public static void modifyBuiltinToken(String currentToken, String newToken)
Method to change definition of built-in token - more precisely using this method allows to modify token string recognized by the parser (i.e. sin(x) to sinus(x)). Procedure affects only tokens classified to built-in functions, built-in constants, built-in units, built-in random variables.- Parameters:
currentToken- Current token namenewToken- New token name
-
modifyBuiltinToken
public static void modifyBuiltinToken(String currentToken, String newToken, String newTokenDescription)
Method to change definition of built-in token - more precisely using this method allows to modify token string recognized by the parser (i.e. sin(x) to sinus(x)). Procedure affects only tokens classified to built-in functions, built-in constants, built-in units, built-in random variables.- Parameters:
currentToken- Current token namenewToken- New token namenewTokenDescription- New token description (if null the previous one will be used)
-
unmodifyBuiltinTokens
public static void unmodifyBuiltinTokens(String... currentOrNewTokens)
Un-marks tokens previously marked to be modified.- Parameters:
currentOrNewTokens- List of tokens to be un-marked (current or modified).
-
unmodifyAllBuiltinTokens
public static void unmodifyAllBuiltinTokens()
Un-marks all tokens previously marked to be modified.
-
getBuiltinTokensToModify
public static String[][] getBuiltinTokensToModify()
Return details on tokens marked to be modified.- Returns:
- String[i][0] - current token, String[i][1] - new token, String[i][2] - new token description.
-
setToOverrideBuiltinTokens
public static void setToOverrideBuiltinTokens()
Sets mXparser to override built-in tokens by user defined tokens.
-
setNotToOverrideBuiltinTokens
public static void setNotToOverrideBuiltinTokens()
Sets mXparser not to override built-in tokens by user defined tokens.
-
checkIfsetToOverrideBuiltinTokens
public static boolean checkIfsetToOverrideBuiltinTokens()
Checks whether mXparser is set to override built-in tokens.- Returns:
- True if mXparser is set to override built-in tokens by user defined tokens, otherwise false.
-
setDefaultOptions
public static void setDefaultOptions()
Sets default mXparser options
-
getTokenTypeDescription
public static String getTokenTypeDescription(int tokenTypeId)
Returns token type description.- Parameters:
tokenTypeId- Token type id- Returns:
- String representing token type description.
-
numberToHexString
public static String numberToHexString(int number)
Converts integer number to hex string (plain text)- Parameters:
number- Integer number- Returns:
- Hex string (i.e. FF23)
-
numberToHexString
public static String numberToHexString(long number)
Converts long number to hex string (plain text)- Parameters:
number- Long number- Returns:
- Hex string (i.e. FF23)
-
numberToHexString
public static String numberToHexString(double number)
Converts (long)double number to hex string (plain text)- Parameters:
number- Double number- Returns:
- Hex string (i.e. FF23)
-
hexString2AsciiString
public static String hexString2AsciiString(String hexString)
Converts hex string into ASCII string, where each letter is represented by two hex digits (byte) from the hex string.- Parameters:
hexString- Hex string (i.e. 48656C6C6F)- Returns:
- ASCII string (i.e. '48656C6C6F' = 'Hello')
-
numberToAsciiString
public static String numberToAsciiString(int number)
Converts number into ASCII string, where each letter is represented by two hex digits (byte) from the hex representation of the original number- Parameters:
number- Integer number (i.e. 310939249775 = '48656C6C6F')- Returns:
- ASCII string (i.e. '48656C6C6F' = 'Hello')
-
numberToAsciiString
public static String numberToAsciiString(long number)
Converts number into ASCII string, where each letter is represented by two hex digits (byte) from the hex representation of the original number- Parameters:
number- Long number (i.e. 310939249775 = '48656C6C6F')- Returns:
- ASCII string (i.e. '48656C6C6F' = 'Hello')
-
numberToAsciiString
public static String numberToAsciiString(double number)
Converts (long)double number into ASCII string, where each letter is represented by two hex digits (byte) from the hex representation of the original number casted to long type.- Parameters:
number- Double number (i.e. 310939249775 = '48656C6C6F')- Returns:
- ASCII string (i.e. '48656C6C6F' = 'Hello')
-
convOthBase2Decimal
public static double convOthBase2Decimal(String numberLiteral, int numeralSystemBase)
Other base (base between 1 and 36) number literal conversion to decimal number.- Parameters:
numberLiteral- Number literal in given numeral system with base between 1 and 36. Digits: 0:0, 1:1, 2:2, 3:3, 4:4, 5:5, 6:6, 7:7, 8:8, 9:9, 10:A, 11:B, 12:C, 13:D, 14:E, 15:F, 16:G, 17:H, 18:I, 19:J, 20:K, 21:L, 22:M, 23:N, 24:O, 25:P, 26:Q, 27:R, 28:S, 29:T, 30:U, 31:V, 32:W, 33:X, 34:Y, 35:ZnumeralSystemBase- Numeral system base, between 1 and 36- Returns:
- Decimal number after conversion. If conversion was not possible the Double.NaN is returned.
-
convOthBase2Decimal
public static double convOthBase2Decimal(String numberLiteral)
Other base (base between 1 and 36) number literal conversion to decimal number. Base specification included in number literal. Examples: 2 for b2.1001 or b.1001, 1 for b1.111, 23 for b23.123afg 16 for b16.123acdf or h.123acdf.- Parameters:
numberLiteral- Number literal string. Base format: b1. b2. b. b3. b4. b5. b6. b7. b8. o. b9. b10. b11. b12. b13. b14. b15. b16. h. b17. b18. b19. b20. b21. b22. b23. b24. b25. b26. b27. b28. b29. b30. b31. b32. b33. b34. b35. b36. Digits: 0:0, 1:1, 2:2, 3:3, 4:4, 5:5, 6:6, 7:7, 8:8, 9:9, 10:A, 11:B, 12:C, 13:D, 14:E, 15:F, 16:G, 17:H, 18:I, 19:J, 20:K, 21:L, 22:M, 23:N, 24:O, 25:P, 26:Q, 27:R, 28:S, 29:T, 30:U, 31:V, 32:W, 33:X, 34:Y, 35:Z- Returns:
- Decimal number after conversion. If conversion was not possible the Double.NaN is returned.
-
convOthBase2Decimal
public static double convOthBase2Decimal(int numeralSystemBase, int... digits)Other base to decimal conversion.- Parameters:
numeralSystemBase- Numeral system base has to be above 0.digits- List of digits- Returns:
- Number after conversion. If conversion is not possible then Double.NaN is returned.
-
convOthBase2Decimal
public static double convOthBase2Decimal(double numeralSystemBase, double... digits)Other base to decimal conversion.- Parameters:
numeralSystemBase- Numeral system base has to be above 0.digits- List of digits- Returns:
- Number after conversion. If conversion is not possible then Double.NaN is returned.
-
convDecimal2OthBase
public static String convDecimal2OthBase(double decimalNumber, int numeralSystemBase)
Decimal number to other numeral system conversion with base between 1 and 36.- Parameters:
decimalNumber- Decimal numbernumeralSystemBase- Numeral system base between 1 and 36- Returns:
- Number literal representing decimal number in given numeral numeral system. Digits 0:0, 1:1, 2:2, 3:3, 4:4, 5:5, 6:6, 7:7, 8:8, 9:9, 10:A, 11:B, 12:C, 13:D, 14:E, 15:F, 16:G, 17:H, 18:I, 19:J, 20:K, 21:L, 22:M, 23:N, 24:O, 25:P, 26:Q, 27:R, 28:S, 29:T, 30:U, 31:V, 32:W, 33:X, 34:Y, 35:Z. If conversion was not possible the "NaN" string is returned.
-
convDecimal2OthBase
public static String convDecimal2OthBase(double decimalNumber, int numeralSystemBase, int format)
Decimal number to other numeral system conversion with base between 1 and 36.- Parameters:
decimalNumber- Decimal numbernumeralSystemBase- Numeral system base between 1 and 36format- If 1 then always bxx. is used, i.e. b1. or b16. If 2 then for binary b. is used, for octal o. is used, for hexadecimal h. is used, otherwise bxx. is used where xx is the numeral system base specification.- Returns:
- Number literal representing decimal number in given numeral numeral system. Base format: b1. b2. b. b3. b4. b5. b6. b7. b8. o. b9. b10. b11. b12. b13. b14. b15. b16. h. b17. b18. b19. b20. b21. b22. b23. b24. b25. b26. b27. b28. b29. b30. b31. b32. b33. b34. b35. b36. Digits: 0:0, 1:1, 2:2, 3:3, 4:4, 5:5, 6:6, 7:7, 8:8, 9:9, 10:A, 11:B, 12:C, 13:D, 14:E, 15:F, 16:G, 17:H, 18:I, 19:J, 20:K, 21:L, 22:M, 23:N, 24:O, 25:P, 26:Q, 27:R, 28:S, 29:T, 30:U, 31:V, 32:W, 33:X, 34:Y, 35:Z If conversion was not possible the "NaN" string is returned.
-
toFraction
public static double[] toFraction(double value)
Converts double value to its fraction representation.- Parameters:
value- Value to be converted- Returns:
- Array representing fraction. Sign at index 0, numerator at index 1, denominator at index 2. If conversion is not possible then Double.NaN is assigned to all the fields.
-
toMixedFraction
public static double[] toMixedFraction(double value)
Converts double value to its mixed fraction representation.- Parameters:
value- Value to be converted- Returns:
- Array representing fraction. Sign at index 0, whole number at index 1, numerator at index 2, denominator at index 3. If conversion is not possible then Double.NaN is assigned to both numerator and denominator.
-
fractionToString
public static String fractionToString(double[] fraction)
Converts array representing fraction to fraction string representation.- Parameters:
fraction- Array representing fraction (including mix fractions)- Returns:
- String representation of fraction.
- See Also:
NumberTheory.toFraction(double),NumberTheory.toMixedFraction(double)
-
toFractionString
public static String toFractionString(double value)
Converts number to its fraction string representation.- Parameters:
value- Given number- Returns:
- String representation of fraction.
- See Also:
NumberTheory.toFraction(double),NumberTheory.fractionToString(double[])
-
toMixedFractionString
public static String toMixedFractionString(double value)
Converts number to its mixed fraction string representation.- Parameters:
value- Given number- Returns:
- String representation of fraction.
- See Also:
NumberTheory.toMixedFraction(double),NumberTheory.fractionToString(double[])
-
consolePrintln
public static void consolePrintln(Object o)
Prints object.toString to the Console + new line- Parameters:
o- Object to print
-
consolePrintln
public static void consolePrintln(String[] stringArray)
Prints array of strings- Parameters:
stringArray- array of strinfs
-
consolePrintln
public static void consolePrintln()
Prints new line to the Console, no new line
-
consolePrint
public static void consolePrint(Object o)
Prints object.toString to the Console- Parameters:
o- Object to print
-
consolePrintSettings
public static void consolePrintSettings(String prefix)
-
consolePrintSettings
public static void consolePrintSettings()
-
resetConsoleOutput
public static void resetConsoleOutput()
Resets console output string, console output string is being built by consolePrintln(), consolePrint().
-
setDefaultConsolePrefix
public static void setDefaultConsolePrefix()
Sets default console prefix.
-
setDefaultConsoleOutputPrefix
public static void setDefaultConsoleOutputPrefix()
Sets default console output string prefix.
-
setConsolePrefix
public static void setConsolePrefix(String consolePrefix)
Sets console prefix.- Parameters:
consolePrefix- String containing console prefix definition.
-
setConsoleOutputPrefix
public static void setConsoleOutputPrefix(String consoleOutputPrefix)
Sets console output string prefix.- Parameters:
consoleOutputPrefix- String containing console output prefix definition.
-
getConsoleOutput
public static String getConsoleOutput()
Returns console output string, console output string is being built by consolePrintln(), consolePrint().- Returns:
- Console output string
- See Also:
consolePrint(Object),consolePrintln(Object),consolePrintln(),resetConsoleOutput()
-
getHelp
public static String getHelp()
General mXparser expression help- Returns:
- String with all general help content
-
getHelp
public static String getHelp(String word)
General mXparser expression help - in-line key word searching- Parameters:
word- Key word to be searched- Returns:
- String with all help content lines containing given keyword
-
consolePrintHelp
public static void consolePrintHelp()
Prints all help content.
-
consolePrintHelp
public static void consolePrintHelp(String word)
Prints filtered help content.- Parameters:
word- Key word.
-
getKeyWords
public static List<KeyWord> getKeyWords()
Returns list of key words known to the parser- Returns:
- List of keywords known to the parser.
- See Also:
KeyWord,KeyWord.wordTypeId,getHelp()
-
getKeyWords
public static List<KeyWord> getKeyWords(String query)
Returns list of key words known to the parser- Parameters:
query- Give any string to filter list of key words against this string. User more precise syntax: str=tokenString, desc=tokenDescription, syn=TokenSyntax, sin=tokenSince, wid=wordId, tid=wordTypeId to narrow the result.- Returns:
- List of keywords known to the parser filter against query string.
- See Also:
KeyWord,KeyWord.wordTypeId,getHelp(String)
-
regexMatch
public static boolean regexMatch(String str, String pattern)
Function used to introduce some compatibility between JAVA and C# while regexp matching.- Parameters:
str- Stringpattern- Pattern (regexp)- Returns:
- True if pattern matches entirely, False otherwise
-
consolePrintTokens
public static void consolePrintTokens(List<Token> tokens)
Prints tokens to the console.- Parameters:
tokens- Tokens list.- See Also:
Expression.getCopyOfInitialTokens(),Token
-
consolePrint
public static void consolePrint(List<Token> tokens)
Prints tokens to the console.- Parameters:
tokens- Tokens list.- See Also:
Expression.getCopyOfInitialTokens(),Token
-
consolePrintln
public static void consolePrintln(List<Token> tokens)
Prints tokens to the console.- Parameters:
tokens- Tokens list.- See Also:
Expression.getCopyOfInitialTokens(),Token
-
consolePrintLicense
public static void consolePrintLicense()
Prints to the console license terms and conditions of MathParser.org-mXparser software
-
getLicense
public static String getLicense()
Gets license info- Returns:
- license info as string
-
wait
public static void wait(int n)
Waits given number of milliseconds- Parameters:
n- Number of milliseconds
-
cancelCurrentCalculation
public static void cancelCurrentCalculation()
Method give a signal to other methods to cancel current calculation. This is a flag, remember to reset this flag after process is cancelled and you are going to start new calculation process.
-
resetCancelCurrentCalculationFlag
public static void resetCancelCurrentCalculationFlag()
Resets a flag giving signal to the engine to cancel current calculation.cancelCurrentCalculation()
-
isCurrentCalculationCancelled
public static boolean isCurrentCalculationCancelled()
Check whether a flag to cancel current calculation process is set.cancelCurrentCalculation()resetCancelCurrentCalculationFlag()- Returns:
- true in case cancel calculation flag is active, otherwise false
-
-