{"id":455,"date":"2016-01-03T16:56:37","date_gmt":"2016-01-03T16:56:37","guid":{"rendered":"http:\/\/mathparser.org\/?page_id=455"},"modified":"2024-09-22T10:57:15","modified_gmt":"2024-09-22T10:57:15","slug":"user-defined-arguments","status":"publish","type":"page","link":"https:\/\/mathparser.org\/mxparser-tutorial\/user-defined-arguments\/","title":{"rendered":"User defined arguments"},"content":{"rendered":"\n<h6 class=\"wp-block-heading\">TO SUPPORT MY WORK, ORDER A COMMERCIAL LICENSE<\/h6>\n\n\n<div class='wpi_twin_buttons wpi_twin_button_1977'><a href='https:\/\/mathparser.org\/order-commercial-license\/' class='wpi_left_button wpi_designer_button wpi_shadow wpi_shadow_ wpi_designer_button_preset_242 wpi_icon wpi_icon_fa-shopping-cart   ' target='_blank' ><i class=''><\/i><span class='wpi_text'>ORDER Page<\/span><span class='wpi_or_txt'>or<\/span><\/a><a href='https:\/\/payhip.com\/INFIMA' class='wpi_right_button wpi_designer_button wpi_shadow wpi_shadow_ wpi_designer_button_preset_217 wpi_icon wpi_icon_fa-shopping-cart   ' target='_blank' ><i class=''><\/i><span class='wpi_text'>INFIMA Store<\/span><\/a><\/div>\n\n\n\n<h6 class=\"wp-block-heading\">THANK YOU!<\/h6>\n\n\n\n<h4 class=\"wp-block-heading\">The tutorial consists of more than 200 live examples from 50 sections given separately for JAVA, C# and C++. Each of the examples can be copied and run on your own environment. In addition, mXparser provides an extensive collection of over 500 built-in math functions, expressions and symbols. Familiarize yourself with the scope and the syntax. Live testing is the best way to learn. Good luck! \ud83d\ude42<\/h4>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><a href=\"https:\/\/mathparser.org\/wp-content\/uploads\/2024\/09\/mxparser-logo-700.png\"><img loading=\"lazy\" decoding=\"async\" width=\"700\" height=\"700\" src=\"https:\/\/mathparser.org\/wp-content\/uploads\/2024\/09\/mxparser-logo-700.png\" alt=\"\" class=\"wp-image-22231\" style=\"width:263px;height:auto\" srcset=\"https:\/\/mathparser.org\/wp-content\/uploads\/2024\/09\/mxparser-logo-700.png 700w, https:\/\/mathparser.org\/wp-content\/uploads\/2024\/09\/mxparser-logo-700-300x300.png 300w, https:\/\/mathparser.org\/wp-content\/uploads\/2024\/09\/mxparser-logo-700-150x150.png 150w\" sizes=\"auto, (max-width: 700px) 100vw, 700px\" \/><\/a><\/figure>\n<\/div>\n\n\n<iframe loading=\"lazy\" width=\"600\" height=\"371\" seamless=\"\" frameborder=\"0\" scrolling=\"no\" src=\"https:\/\/docs.google.com\/spreadsheets\/d\/e\/2PACX-1vS2EPIDjq_ruk0PXaEJ-9qrGg41u4EidBkQ2JawtswZBCDXGnDj4wS7OI0X-K5TVyUFg5Cg9Szq8VDB\/pubchart?oid=598931925&amp;format=interactive\"><\/iframe>\n\n\n\n<p class=\"has-text-align-center\"><a href='https:\/\/mathparser.org\/mxparser-tutorial\/' onclick='' class='wpi_designer_button   wpi_shadow wpi_shadow_ wpi_designer_button_preset_247 wpi_icon wpi_icon_code wpi_icon_left  ' target='' rel=''><i class=''><\/i><span class='wpi_text'>Tutorial<\/span><\/a> <a href='https:\/\/mathparser.org\/mxparser-math-collection\/' onclick='' class='wpi_designer_button   wpi_shadow wpi_shadow_ wpi_designer_button_preset_247 wpi_icon wpi_icon_fa-graduation-cap wpi_icon_left  ' target='' rel=''><i class=''><\/i><span class='wpi_text'>Math Collection<\/span><\/a> <a href='https:\/\/mathparser.org\/api\/' onclick='' class='wpi_designer_button   wpi_shadow wpi_shadow_ wpi_designer_button_preset_247 wpi_icon wpi_icon_book wpi_icon_left  ' target='' rel=''><i class=''><\/i><span class='wpi_text'>API spec<\/span><\/a> <a href='https:\/\/mathparser.org\/mxparser-downloads\/' onclick='' class='wpi_designer_button   wpi_shadow wpi_shadow_ wpi_designer_button_preset_247 wpi_icon wpi_icon_download wpi_icon_left  ' target='' rel=''><i class=''><\/i><span class='wpi_text'>Download<\/span><\/a><\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Below is the code for JAVA, C# (the code for C# is almost identical) and C++. To copy the code, double-click inside the frame.<\/h4>\n\n\n\n<h5 class=\"wp-block-heading\">You may also be interested in the following tutorial sections:<\/h5>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/mathparser.org\/mxparser-tutorial\/expression-pre-compilation\/\" data-type=\"page\" data-id=\"3201\" target=\"_blank\" rel=\"noreferrer noopener\">Expression pre-compilation<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/mathparser.org\/mxparser-tutorial\/user-defined-functions\/\" data-type=\"page\" data-id=\"468\" target=\"_blank\" rel=\"noreferrer noopener\">User defined functions<\/a><\/li>\n\n\n\n<li><a rel=\"noreferrer noopener\" href=\"https:\/\/mathparser.org\/mxparser-tutorial\/user-defined-constants\/\" data-type=\"page\" data-id=\"470\" target=\"_blank\">User defined constants<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/mathparser.org\/mxparser-tutorial\/efficient-calculations-in-loops\/\" data-type=\"page\" data-id=\"2949\" target=\"_blank\" rel=\"noreferrer noopener\">Efficient calculations in the loops<\/a><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Case 1: Dealing with free arguments<\/h2>\n\n\n<p>$$x,y, z,\\ldots\\in\\mathbb{R}$$<\/p>\n\n\n<p>$$\\sin(x+y)-\\cos(\\frac{y}{z})$$<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">Java\/C# code<\/h5>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: java; title: ; notranslate\" title=\"\">\n\/\/ JAVA: import org.mariuszgromada.math.mxparser.*;\n\/\/ C#: using org.mariuszgromada.math.mxparser;\n\/\/ ...\nArgument x = new Argument(\"x = 1\");\nArgument y = new Argument(\"y = 2*pi\");\nArgument z = new Argument(\"z\", 3);\nArgument n = new Argument(\"n\", 4);\n          \nExpression e = new Expression(\"n*( sin(x+y)-cos(y\/z) )\", x, y, z, n);\nmXparser.consolePrintln(\"Res 1: \" + e.getExpressionString() + \" = \" + e.calculate());\n  \nx.setArgumentValue(0);\nz.setArgumentValue(4);\nmXparser.consolePrintln(\"Res 2: \" + e.getExpressionString() + \" = \" + e.calculate());\n  \nx.setArgumentValue(5);\nmXparser.consolePrintln(\"Res 3: \" + x.getArgumentName() + \" = \" + x.getArgumentValue());\n<\/pre><\/div>\n\n\n<h5 class=\"wp-block-heading\">C++ code<\/h5>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\n#include &quot;org\/mariuszgromada\/math\/mxparser.hpp&quot;\n\/\/ ...\nArgumentPtr x = new_Argument(&quot;x = 1&quot;);\nArgumentPtr y = new_Argument(&quot;y = 2*pi&quot;);\nArgumentPtr z = new_Argument(&quot;z&quot;, 3);\nArgumentPtr n = new_Argument(&quot;n&quot;, 4);\n\nExpressionPtr e = new_Expression(&quot;n*( sin(x+y)-cos(y\/z) )&quot;, x, y, z, n);\nmXparser::consolePrintln(&quot;Res 1: &quot; + e-&gt;getExpressionString() + &quot; = &quot; + e-&gt;calculate());\n\nx-&gt;setArgumentValue(0);\nz-&gt;setArgumentValue(4);\nmXparser::consolePrintln(&quot;Res 2: &quot; + e-&gt;getExpressionString() + &quot; = &quot; + e-&gt;calculate());\n\nx-&gt;setArgumentValue(5);\nmXparser::consolePrintln(&quot;Res 3: &quot; + x-&gt;getArgumentName() + &quot; = &quot; + x-&gt;getArgumentValue());\n<\/pre><\/div>\n\n\n<h5 class=\"wp-block-heading\">Code result<\/h5>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: java; title: ; notranslate\" title=\"\">\n&#x5B;mXparser-v.5.2.1] Res 1: n*( sin(x+y)-cos(y\/z) ) = 5.365883939231586\n&#x5B;mXparser-v.5.2.1] Res 2: n*( sin(x+y)-cos(y\/z) ) = 0.0\n&#x5B;mXparser-v.5.2.1] Res 3: x = 5.0\n<\/pre><\/div>\n\n\n<h2 class=\"wp-block-heading\">Case 2: Defining dependent arguments<\/h2>\n\n\n<p>$$y=x^2$$<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">Java\/C# code<\/h5>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: java; title: ; notranslate\" title=\"\">\n\/\/ JAVA: import org.mariuszgromada.math.mxparser.*;\n\/\/ C#: using org.mariuszgromada.math.mxparser;\n\/\/ ...\nArgument x = new Argument(\"x\");     \nArgument y = new Argument(\"y = x^2\", x);\n          \nx.setArgumentValue(1);\nmXparser.consolePrintln(\"Res 1: \" + y.getArgumentName() + \" = \" + y.getArgumentValue());\n          \nx.setArgumentValue(2);\nmXparser.consolePrintln(\"Res 2: \" + y.getArgumentName() + \" = \" + y.getArgumentValue());\n          \nx.setArgumentValue(3);\nmXparser.consolePrintln(\"Res 3: \" + y.getArgumentName() + \" = \" + y.getArgumentValue());\n          \nExpression e = new Expression(\"x*y\", x, y);\nmXparser.consolePrintln(\"Res 4: \" + e.getExpressionString() + \" = \" + e.calculate());\n<\/pre><\/div>\n\n\n<h5 class=\"wp-block-heading\">C++ code<\/h5>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\n#include &quot;org\/mariuszgromada\/math\/mxparser.hpp&quot;\n\/\/ ...\nArgumentPtr x = new_Argument(&quot;x&quot;);\nArgumentPtr y = new_Argument(&quot;y = x^2&quot;, x);\n\nx-&gt;setArgumentValue(1);\nmXparser::consolePrintln(&quot;Res 1: &quot; + y-&gt;getArgumentName() + &quot; = &quot; + y-&gt;getArgumentValue());\n\nx-&gt;setArgumentValue(2);\nmXparser::consolePrintln(&quot;Res 2: &quot; + y-&gt;getArgumentName() + &quot; = &quot; + y-&gt;getArgumentValue());\n\nx-&gt;setArgumentValue(3);\nmXparser::consolePrintln(&quot;Res 3: &quot; + y-&gt;getArgumentName() + &quot; = &quot; + y-&gt;getArgumentValue());\n\nExpressionPtr e = new_Expression(&quot;x*y&quot;, x, y);\nmXparser::consolePrintln(&quot;Res 4: &quot; + e-&gt;getExpressionString() + &quot; = &quot; + e-&gt;calculate());\n<\/pre><\/div>\n\n\n<h5 class=\"wp-block-heading\">Code result<\/h5>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: java; title: ; notranslate\" title=\"\">\n&#x5B;mXparser-v.5.2.1] Res 1: y = 1.0\n&#x5B;mXparser-v.5.2.1] Res 2: y = 4.0\n&#x5B;mXparser-v.5.2.1] Res 3: y = 9.0\n&#x5B;mXparser-v.5.2.1] Res 4: x*y = 27.0\n<\/pre><\/div>\n\n\n<h2 class=\"wp-block-heading\">Case 3: Implementing your own Argument Extension<\/h2>\n\n\n\n<h5 class=\"wp-block-heading\">Java\/C# code<\/h5>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: java; title: ; notranslate\" title=\"\">\n\/\/ JAVA: ArgumentExtension interface implementation\n\/\/ ...\nimport org.mariuszgromada.math.mxparser.*;\nimport org.mariuszgromada.math.mxparser.mathcollection.*;\n\nclass PiMultArgExt implements ArgumentExtension {\n   private int multiple = 0;\n   public double getArgumentValue() {\n      multiple++;\n      return  MathConstants.PI * multiple;\n   }\n   public ArgumentExtension clone() {\n      return new PiMultArgExt();\n   }\n}\n<\/pre><\/div>\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\n\/\/ C#: ArgumentExtension interface implementation\n\/\/ ...\nusing org.mariuszgromada.math.mxparser;\nusing org.mariuszgromada.math.mxparser.mathcollection;\n\nclass PiMultArgExt : ArgumentExtension {\n   private int multiple = 0;\n   public double getArgumentValue() {\n      multiple++;\n      return  MathConstants.PI * multiple;\n   }\n   public ArgumentExtension clone() {\n      return new PiMultArgExt();\n   }\n}\n<\/pre><\/div>\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: java; title: ; notranslate\" title=\"\">\n\/\/ JAVA: import org.mariuszgromada.math.mxparser.*;\n\/\/ C#: using org.mariuszgromada.math.mxparser;\n\/\/ ...\n\n\/\/ Creating extended argument\nArgument pim = new Argument(\"pim\", new PiMultArgExt());\n\n\/\/ Using extended argument in expression\nExpression e = new Expression(\"pim\", pim);\n\nmXparser.consolePrintln(\"Res: 1st call: \" + e.getExpressionString() + \" = \" + e.calculate());\nmXparser.consolePrintln(\"Res: 2nd call: \" + e.getExpressionString() + \" = \" + e.calculate());\nmXparser.consolePrintln(\"Res: 3rd call: \" + e.getExpressionString() + \" = \" + e.calculate());\n<\/pre><\/div>\n\n\n<h5 class=\"wp-block-heading\">C++ code<\/h5>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\n\/\/ C++: ArgumentExtension interface implementation\n\/\/ ...\n#include &quot;org\/mariuszgromada\/math\/mxparser.hpp&quot;\n\/\/ ...\nclass PiMultArgExt : public ArgumentExtension {\nprivate:\n    int multiple = 0;\n\npublic:\n    double getArgumentValue() override {\n        multiple++;\n        return  Math::PI * multiple;\n    }\n    ArgumentExtensionPtr clone() override {\n        return std::make_shared&lt;PiMultArgExt&gt;();\n    }\n};\n\ninline ArgumentExtensionPtr new_PiMultArgExt() {\n    return std::make_shared&lt;PiMultArgExt&gt;();\n}\n<\/pre><\/div>\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\n\/\/ Creating extended argument\nArgumentExtensionPtr piMultArgExt = new_PiMultArgExt();\nArgumentPtr pim = new_Argument(&quot;pim&quot;, piMultArgExt);\n\n\/\/ Using extended argument in expression\nExpressionPtr e = new_Expression(&quot;pim&quot;, pim);\n\nmXparser::consolePrintln(&quot;Res: 1st call: &quot; + e-&gt;getExpressionString() + &quot; = &quot; + e-&gt;calculate());\nmXparser::consolePrintln(&quot;Res: 2nd call: &quot; + e-&gt;getExpressionString() + &quot; = &quot; + e-&gt;calculate());\nmXparser::consolePrintln(&quot;Res: 3rd call: &quot; + e-&gt;getExpressionString() + &quot; = &quot; + e-&gt;calculate());\n<\/pre><\/div>\n\n\n<h5 class=\"wp-block-heading\">Code result<\/h5>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: java; title: ; notranslate\" title=\"\">\n&#x5B;mXparser-v.5.2.1] Res: 1st call: pim = 3.141592653589793\n&#x5B;mXparser-v.5.2.1] Res: 2nd call: pim = 6.283185307179586\n&#x5B;mXparser-v.5.2.1] Res: 3rd call: pim = 9.42477796076938\n<\/pre><\/div>\n\n\n<h2 class=\"wp-block-heading\">Case 4: Getting list of missing user defined arguments<\/h2>\n\n\n\n<h5 class=\"wp-block-heading\">Java\/C# code<\/h5>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: java; title: ; notranslate\" title=\"\">\n\/\/ JAVA: import org.mariuszgromada.math.mxparser.*;\n\/\/ C#: using org.mariuszgromada.math.mxparser;\n\/\/ ...\nArgument x = new Argument(\"x = 2\");\nExpression e = new Expression(\"2x+3y+4*a\", x);\nmXparser.consolePrintln(\"syntax = \" + e.checkSyntax());\nmXparser.consolePrintln(e.getErrorMessage());\nmXparser.consolePrintln(\"List of missing user defined arguments:\");\nfor (String arg : e.getMissingUserDefinedArguments())\n   mXparser.consolePrintln(\"Argument '\" + arg + \"' has to be defined\");\n<\/pre><\/div>\n\n\n<h5 class=\"wp-block-heading\">C++ code<\/h5>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\n#include &quot;org\/mariuszgromada\/math\/mxparser.hpp&quot;\n\/\/ ...\nArgumentPtr x = new_Argument(&quot;x = 2&quot;);\nExpressionPtr e = new_Expression(&quot;2x+3y+4*a&quot;, x);\nmXparser::consolePrintln(&quot;syntax = &quot; + e-&gt;checkSyntax());\nmXparser::consolePrintln(e-&gt;getErrorMessage());\nmXparser::consolePrintln(&quot;List of missing user defined arguments:&quot;);\nfor (const StringPtr &amp;arg : *e-&gt;getMissingUserDefinedArguments())\n    mXparser::consolePrintln(&quot;Argument &#039;&quot; + arg + &quot;&#039; has to be defined&quot;);\n<\/pre><\/div>\n\n\n<h5 class=\"wp-block-heading\">Code result<\/h5>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: java; title: ; notranslate\" title=\"\">\n&#x5B;mXparser-v.5.2.1] syntax = false\n&#x5B;mXparser-v.5.2.1] &#x5B;2x+3y+4*a]: Starting syntax check...\n&#x5B;2x+3y+4*a]: Token 'y', index 7: Invalid token.\n&#x5B;2x+3y+4*a]: Token 'a', index 11: Invalid token.\n&#x5B;2x+3y+4*a]: Errors have been found.\n&#x5B;mXparser-v.5.2.1] List of missing user defined arguments:\n&#x5B;mXparser-v.5.2.1] Argument 'y' has to be defined\n&#x5B;mXparser-v.5.2.1] Argument 'a' has to be defined\n<\/pre><\/div>\n\n\n<h2 class=\"wp-block-heading\">Case 5: Possible conflict between Implied Multiplication and getting list of missing user defined arguments + recommended solutions<\/h2>\n\n\n\n<p>mXparser has many built-in constants. This list can also be expanded by user-defined arguments. As a result, a list of keywords recognized by mXparser is created. By default, the parser operates in implied multiplication mode. In this case, in many situations, these known constants \/ arguments will be treated as &#8220;hidden&#8221; multiplication. This is best illustrated by an example where &#8220;e&#8221; is a builtin famous Euler&#8217;s number.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">Java\/C# code<\/h5>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: java; title: ; notranslate\" title=\"\">\n\/\/ JAVA: import org.mariuszgromada.math.mxparser.*;\n\/\/ C#: using org.mariuszgromada.math.mxparser;\n\/\/ ...\nExpression e = new Expression(\"3*CasterAttack\");\nmXparser.consolePrintln(\"String '\" + e.getExpressionString() + \"' is interpreted as '\" + e.getCanonicalExpressionString() + \"'\");\nmXparser.consolePrintln(\"List of missing user defined arguments:\");\nfor (String arg : e.getMissingUserDefinedArguments())\n   mXparser.consolePrintln(\"Argument '\" + arg + \"' has to be defined\");\n<\/pre><\/div>\n\n\n<h5 class=\"wp-block-heading\">C++ code<\/h5>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\n#include &quot;org\/mariuszgromada\/math\/mxparser.hpp&quot;\n\/\/ ...\nExpressionPtr e = new_Expression(&quot;3*CasterAttack&quot;);\nmXparser::consolePrintln(&quot;String &#039;&quot; + e-&gt;getExpressionString() + &quot;&#039; is interpreted as &#039;&quot; + e-&gt;getCanonicalExpressionString() + &quot;&#039;&quot;);\nmXparser::consolePrintln(&quot;List of missing user defined arguments:&quot;);\nfor (const StringPtr &amp;arg : *e-&gt;getMissingUserDefinedArguments())\n    mXparser::consolePrintln(&quot;Argument &#039;&quot; + arg + &quot;&#039; has to be defined&quot;);\n<\/pre><\/div>\n\n\n<h5 class=\"wp-block-heading\">Code result<\/h5>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: java; title: ; notranslate\" title=\"\">\n&#x5B;mXparser-v.5.2.1] String '3*CasterAttack' is interpreted as '3*Cast*e*rAttack'\n&#x5B;mXparser-v.5.2.1] List of missing user defined arguments:\n&#x5B;mXparser-v.5.2.1] Argument 'Cast' has to be defined\n&#x5B;mXparser-v.5.2.1] Argument 'rAttack' has to be defined\n<\/pre><\/div>\n\n\n<h4 class=\"wp-block-heading\">Solution #1 &#8211; turn off the Implied Multiplication Mode (locally)<\/h4>\n\n\n\n<h5 class=\"wp-block-heading\">Java\/C# code<\/h5>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: java; title: ; notranslate\" title=\"\">\n\/\/ JAVA: import org.mariuszgromada.math.mxparser.*;\n\/\/ C#: using org.mariuszgromada.math.mxparser;\n\/\/ ...\nmXparser.consolePrintln(\"Solution #1\");\nExpression e = new Expression(\"3*CasterAttack\");\ne.disableImpliedMultiplicationMode();\nmXparser.consolePrintln(\"String '\" + e.getExpressionString() + \"' is interpreted as '\" + e.getCanonicalExpressionString() + \"'\");\nmXparser.consolePrintln(\"List of missing user defined arguments:\");\nfor (String arg : e.getMissingUserDefinedArguments())\n   mXparser.consolePrintln(\"Argument '\" + arg + \"' has to be defined\");\n<\/pre><\/div>\n\n\n<h5 class=\"wp-block-heading\">C++ code<\/h5>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\n#include &quot;org\/mariuszgromada\/math\/mxparser.hpp&quot;\n\/\/ ...\nmXparser::consolePrintln(&quot;Solution #1&quot;);\nExpressionPtr e = new_Expression(&quot;3*CasterAttack&quot;);\ne-&gt;disableImpliedMultiplicationMode();\nmXparser::consolePrintln(&quot;String &#039;&quot; + e-&gt;getExpressionString() + &quot;&#039; is interpreted as &#039;&quot; + e-&gt;getCanonicalExpressionString() + &quot;&#039;&quot;);\nmXparser::consolePrintln(&quot;List of missing user defined arguments:&quot;);\nfor (const StringPtr &amp;arg : *e-&gt;getMissingUserDefinedArguments())\n    mXparser::consolePrintln(&quot;Argument &#039;&quot; + arg + &quot;&#039; has to be defined&quot;);\n<\/pre><\/div>\n\n\n<h5 class=\"wp-block-heading\">Code result<\/h5>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: java; title: ; notranslate\" title=\"\">\n&#x5B;mXparser-v.5.2.1] Solution #1\n&#x5B;mXparser-v.5.2.1] String '3*CasterAttack' is interpreted as '3*CasterAttack'\n&#x5B;mXparser-v.5.2.1] List of missing user defined arguments:\n&#x5B;mXparser-v.5.2.1] Argument 'CasterAttack' has to be defined\n<\/pre><\/div>\n\n\n<h4 class=\"wp-block-heading\">Solution #2 &#8211; turn off the Implied Multiplication Mode (globally)<\/h4>\n\n\n\n<h5 class=\"wp-block-heading\">Java\/C# code<\/h5>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: java; title: ; notranslate\" title=\"\">\n\/\/ JAVA: import org.mariuszgromada.math.mxparser.*;\n\/\/ C#: using org.mariuszgromada.math.mxparser;\n\/\/ ...\nmXparser.consolePrintln(\"Solution #2\");\nmXparser.disableImpliedMultiplicationMode();\nExpression e = new Expression(\"3*CasterAttack\");\nmXparser.consolePrintln(\"String '\" + e.getExpressionString() + \"' is interpreted as '\" + e.getCanonicalExpressionString() + \"'\");\nmXparser.consolePrintln(\"List of missing user defined arguments:\");\nfor (String arg : e.getMissingUserDefinedArguments())\n   mXparser.consolePrintln(\"Argument '\" + arg + \"' has to be defined\");\n<\/pre><\/div>\n\n\n<h5 class=\"wp-block-heading\">C++ code<\/h5>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\n#include &quot;org\/mariuszgromada\/math\/mxparser.hpp&quot;\n\/\/ ...\nmXparser::consolePrintln(&quot;Solution #2&quot;);\nmXparser::disableImpliedMultiplicationMode();\nExpressionPtr e = new_Expression(&quot;3*CasterAttack&quot;);\nmXparser::consolePrintln(&quot;String &#039;&quot; + e-&gt;getExpressionString() + &quot;&#039; is interpreted as &#039;&quot; + e-&gt;getCanonicalExpressionString() + &quot;&#039;&quot;);\nmXparser::consolePrintln(&quot;List of missing user defined arguments:&quot;);\nfor (const StringPtr &amp;arg : *e-&gt;getMissingUserDefinedArguments())\n    mXparser::consolePrintln(&quot;Argument &#039;&quot; + arg + &quot;&#039; has to be defined&quot;);\n<\/pre><\/div>\n\n\n<h5 class=\"wp-block-heading\">Code result<\/h5>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: java; title: ; notranslate\" title=\"\">\n&#x5B;mXparser-v.5.2.1] Solution #2\n&#x5B;mXparser-v.5.2.1] String '3*CasterAttack' is interpreted as '3*CasterAttack'\n&#x5B;mXparser-v.5.2.1] List of missing user defined arguments:\n&#x5B;mXparser-v.5.2.1] Argument 'CasterAttack' has to be defined\n<\/pre><\/div>\n\n\n<h4 class=\"wp-block-heading\">Solution #3 &#8211; remove builtin keyword<\/h4>\n\n\n\n<h5 class=\"wp-block-heading\">Java\/C# code<\/h5>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: java; title: ; notranslate\" title=\"\">\n\/\/ JAVA: import org.mariuszgromada.math.mxparser.*;\n\/\/ C#: using org.mariuszgromada.math.mxparser;\n\/\/ ...\nmXparser.consolePrintln(\"Solution #3\");\nmXparser.removeBuiltinTokens(\"e\");\nExpression e = new Expression(\"3*CasterAttack\");\nmXparser.consolePrintln(\"String '\" + e.getExpressionString() + \"' is interpreted as '\" + e.getCanonicalExpressionString() + \"'\");\nmXparser.consolePrintln(\"List of missing user defined arguments:\");\nfor (String arg : e.getMissingUserDefinedArguments())\n   mXparser.consolePrintln(\"Argument '\" + arg + \"' has to be defined\");\n<\/pre><\/div>\n\n\n<h5 class=\"wp-block-heading\">C++ code<\/h5>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\n#include &quot;org\/mariuszgromada\/math\/mxparser.hpp&quot;\n\/\/ ...\nmXparser::consolePrintln(&quot;Solution #3&quot;);\nmXparser::removeBuiltinTokens(&quot;e&quot;);\nExpressionPtr e = new_Expression(&quot;3*CasterAttack&quot;);\nmXparser::consolePrintln(&quot;String &#039;&quot; + e-&gt;getExpressionString() + &quot;&#039; is interpreted as &#039;&quot; + e-&gt;getCanonicalExpressionString() + &quot;&#039;&quot;);\nmXparser::consolePrintln(&quot;List of missing user defined arguments:&quot;);\nfor (const StringPtr &amp;arg : *e-&gt;getMissingUserDefinedArguments())\n    mXparser::consolePrintln(&quot;Argument &#039;&quot; + arg + &quot;&#039; has to be defined&quot;);\n<\/pre><\/div>\n\n\n<h5 class=\"wp-block-heading\">Code result<\/h5>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: java; title: ; notranslate\" title=\"\">\n&#x5B;mXparser-v.5.2.1] Solution #3\n&#x5B;mXparser-v.5.2.1] String '3*CasterAttack' is interpreted as '3*CasterAttack'\n&#x5B;mXparser-v.5.2.1] List of missing user defined arguments:\n&#x5B;mXparser-v.5.2.1] Argument 'CasterAttack' has to be defined\n<\/pre><\/div>\n\n\n<h4 class=\"wp-block-heading\">Solution #4 &#8211; modify builtin keyword<\/h4>\n\n\n\n<h5 class=\"wp-block-heading\">Java\/C# code<\/h5>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: java; title: ; notranslate\" title=\"\">\n\/\/ JAVA: import org.mariuszgromada.math.mxparser.*;\n\/\/ C#: using org.mariuszgromada.math.mxparser;\n\/\/ ...\nmXparser.consolePrintln(\"Solution #4\");\nmXparser.modifyBuiltinToken(\"e\", \"ee\");\nExpression e = new Expression(\"3*CasterAttack\");\nmXparser.consolePrintln(\"String '\" + e.getExpressionString() + \"' is interpreted as '\" + e.getCanonicalExpressionString() + \"'\");\nmXparser.consolePrintln(\"List of missing user defined arguments:\");\nfor (String arg : e.getMissingUserDefinedArguments())\n   mXparser.consolePrintln(\"Argument '\" + arg + \"' has to be defined\");\n<\/pre><\/div>\n\n\n<h5 class=\"wp-block-heading\">C++ code<\/h5>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\n#include &quot;org\/mariuszgromada\/math\/mxparser.hpp&quot;\n\/\/ ...\nmXparser::consolePrintln(&quot;Solution #4&quot;);\nmXparser::modifyBuiltinToken(&quot;e&quot;, &quot;ee&quot;);\nExpressionPtr e = new_Expression(&quot;3*CasterAttack&quot;);\nmXparser::consolePrintln(&quot;String &#039;&quot; + e-&gt;getExpressionString() + &quot;&#039; is interpreted as &#039;&quot; + e-&gt;getCanonicalExpressionString() + &quot;&#039;&quot;);\nmXparser::consolePrintln(&quot;List of missing user defined arguments:&quot;);\nfor (const StringPtr &amp;arg : *e-&gt;getMissingUserDefinedArguments())\n    mXparser::consolePrintln(&quot;Argument &#039;&quot; + arg + &quot;&#039; has to be defined&quot;);\n<\/pre><\/div>\n\n\n<h5 class=\"wp-block-heading\">Code result<\/h5>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: java; title: ; notranslate\" title=\"\">\n&#x5B;mXparser-v.5.2.1] Solution #4\n&#x5B;mXparser-v.5.2.1] String '3*CasterAttack' is interpreted as '3*CasterAttack'\n&#x5B;mXparser-v.5.2.1] List of missing user defined arguments:\n&#x5B;mXparser-v.5.2.1] Argument 'CasterAttack' has to be defined\n<\/pre><\/div>\n\n\n<h6 class=\"wp-block-heading\"><a style=\"\" href=\"https:\/\/www.nuget.org\/packages\/MathParser.org-mXparser\/\" target=\"_blank\" rel=\"noreferrer noopener\">Nuget &#8211; Package Manager (<\/a><strong><a href=\"https:\/\/www.nuget.org\/packages\/MathParser.org-mXparser\/\" target=\"_blank\" rel=\"noreferrer noopener\">C#, F#, Visual Basic, &#8230;)<\/a><\/strong><\/h6>\n\n\n\n<p class=\"copy-cliboard has-background\" style=\"background-color:#404040\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-white-color\"><code>Install-Package <\/code><\/mark><code><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-yellow-color\">MathParser.org-mXparser<\/mark><\/strong><\/code><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-white-color\"><code> -Version <\/code><\/mark><code><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-yellow-color\"><strong>6.1.0<\/strong><\/mark><\/code><\/p>\n\n\n\n<p><strong><a rel=\"noreferrer noopener\" href=\"https:\/\/www.nuget.org\/packages\/MathParser.org-mXparser\/\" target=\"_blank\">Nuget &#8211; .NET CLI<\/a><\/strong><\/p>\n\n\n\n<p class=\"copy-cliboard has-background\" style=\"background-color:#404040\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-white-color\"><code>dotnet add package <\/code><\/mark><code><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-yellow-color\">MathParser.org-mXparser<\/mark><\/strong><\/code><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-white-color\"><code> --version <\/code><\/mark><code><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-yellow-color\">6.1.0<\/mark><\/strong><\/code><\/p>\n\n\n\n<p><strong><a rel=\"noreferrer noopener\" href=\"https:\/\/www.nuget.org\/packages\/MathParser.org-mXparser\/\" target=\"_blank\">Nuget &#8211; Package Reference<\/a><\/strong><\/p>\n\n\n\n<p class=\"copy-cliboard has-background\" style=\"background-color:#404040\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-white-color\"><code>&lt;PackageReference Include=<\/code><\/mark><code><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-yellow-color\">\"MathParser.org-mXparser\"<\/mark><\/strong><\/code><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-white-color\"><code> Version=<\/code><\/mark><code><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-yellow-color\">\"6.1.0\"<\/mark><\/strong><\/code><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-white-color\"><code>\/&gt;<\/code><\/mark><\/p>\n\n\n\n<h6 class=\"wp-block-heading\"><strong><a href=\"https:\/\/search.maven.org\/artifact\/org.mariuszgromada.math\/MathParser.org-mXparser\/5.0.2\/jar\" target=\"_blank\" rel=\"noreferrer noopener\">Maven &#8211; Dependency (Java, Kotlin, Scala, Groovy, &#8230;)<\/a><\/strong><\/h6>\n\n\n\n<p class=\"copy-cliboard has-background\" style=\"background-color:#404040\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-white-color\"><code>&lt;dependency&gt;<br>&lt;groupid&gt;<\/code><\/mark><code><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-yellow-color\">org.mariuszgromada.math<\/mark><\/strong><\/code><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-white-color\"><code>&lt;\/groupid&gt;<br>&lt;artifactid&gt;<\/code><\/mark><code><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-yellow-color\">MathParser.org-mXparser<\/mark><\/strong><\/code><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-white-color\"><code>&lt;\/artifactid&gt;<br>&lt;version&gt;<\/code><\/mark><code><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-yellow-color\">6.1.0<\/mark><\/strong><\/code><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-white-color\"><code>&lt;\/version&gt;<br>&lt;\/dependency&gt;<\/code><\/mark><\/p>\n\n\n\n<h6 class=\"wp-block-heading\"><a rel=\"noreferrer noopener\" href=\"https:\/\/search.maven.org\/artifact\/org.mariuszgromada.math\/MathParser.org-mXparser\/5.0.2\/jar\" target=\"_blank\">Maven &#8211; Gradle<\/a><\/h6>\n\n\n\n<p class=\"copy-cliboard has-background\" style=\"background-color:#404040\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-white-color\"><code>implementation <\/code><\/mark><code><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-yellow-color\">'org.mariuszgromada.math:MathParser.org-mXparser:6.1.0'<\/mark><\/strong><\/code><\/p>\n\n\n\n<h6 class=\"wp-block-heading\"><a href=\"https:\/\/github.com\/mariuszgromada\/MathParser.org-mXparser\/tree\/master\/CURRENT\/cpp\/lib\" target=\"_blank\" rel=\"noreferrer noopener\">CMake &#8211; Dependency \/ FetchContent (C++, MSVC, LLVM\/Clang, GNU\/GCC, MinGW, MSYS2, WSL, Windows, Linux, Unix, MacOS) <\/a><\/h6>\n\n\n\n<p class=\"copy-cliboard has-medium-font-size has-background\" style=\"background-color:#404040\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-white-color\"><code>include(FetchContent)<br>FetchContent_Declare(<br>   <\/code><\/mark><code><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-yellow-color\">MathParserOrgMxParser<\/mark><\/strong><\/code><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-white-color\"><code><br>   GIT_REPOSITORY <\/code><\/mark><code><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-yellow-color\">https:\/\/github.com\/mariuszgromada\/MathParser.org-mXparser.git<\/mark><\/strong><\/code><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-white-color\"><code><br>   GIT_TAG <\/code><\/mark><code><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-yellow-color\">v.6.1.0<\/mark><\/strong><\/code><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-white-color\"><code><br>   SOURCE_SUBDIR CURRENT\/cpp\/lib<br>)<br>FetchContent_MakeAvailable(<\/code><\/mark><code><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-yellow-color\">MathParserOrgMxParser<\/mark><\/strong><\/code><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-white-color\"><code>)<br>target_link_libraries(<strong>YourExecutable <\/strong><\/code><\/mark><code><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-yellow-color\">MathParserOrgMxParser<\/mark><\/strong><\/code><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-white-color\"><code>)<\/code><\/mark><\/p>\n\n\n\n<h6 class=\"wp-block-heading\"><a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/mariuszgromada\/MathParser.org-mXparser\" target=\"_blank\">GitHub<\/a><\/h6>\n\n\n\n<p class=\"copy-cliboard has-background\" style=\"background-color:#404040\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-white-color\"><code>git clone <\/code><\/mark><code><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-yellow-color\">https:\/\/github.com\/mariuszgromada\/MathParser.org-mXparser<\/mark><\/strong><\/code><\/p>\n\n\n\n<h6 class=\"wp-block-heading\"><strong>OTHER DOWNLOAD OPTIONS<\/strong><\/h6>\n\n\n<p><a href='https:\/\/github.com\/mariuszgromada\/MathParser.org-mXparser\/releases\/download\/v.6.1.0\/MathParser.org-mXparser-v.6.1.0-dotnet-bin-only.zip' onclick='' class='wpi_designer_button   wpi_shadow wpi_shadow_ wpi_designer_button_preset_348 wpi_icon wpi_icon_download wpi_icon_left  ' target='' rel=''><i class=''><\/i><span class='wpi_text'>Download latest release \u2013 v.6.1.0 Sagitara: .NET bin only<\/span><\/a><a href='https:\/\/github.com\/mariuszgromada\/MathParser.org-mXparser\/releases\/download\/v.6.1.0\/MathParser.org-mXparser-v.6.1.0-jdk-bin-only.zip' onclick='' class='wpi_designer_button   wpi_shadow wpi_shadow_ wpi_designer_button_preset_348 wpi_icon wpi_icon_download wpi_icon_left  ' target='' rel=''><i class=''><\/i><span class='wpi_text'>Download latest release \u2013 v.6.1.0 Sagitara: JAVA bin only<\/span><\/a><a href='https:\/\/github.com\/mariuszgromada\/MathParser.org-mXparser\/releases\/download\/v.6.1.0\/MathParser.org-mXparser-v.6.1.0.zip' onclick='' class='wpi_designer_button   wpi_shadow wpi_shadow_ wpi_designer_button_preset_348 wpi_icon wpi_icon_download wpi_icon_left  ' target='' rel=''><i class=''><\/i><span class='wpi_text'>Download latest release \u2013 v.6.1.0 Sagitara: bin + doc<\/span><\/a><\/p>\n\n\n\n<h6 class=\"wp-block-heading\">NEWS FROM MATHPARSER.ORG<\/h6>\n\n\n\n<div class=\"AW-Form-2120798082\"><\/div>\n<script type=\"text\/javascript\">(function(d, s, id) {\n    var js, fjs = d.getElementsByTagName(s)[0];\n    if (d.getElementById(id)) return;\n    js = d.createElement(s); js.id = id;\n    js.src = \"\/\/forms.aweber.com\/form\/82\/2120798082.js\";\n    fjs.parentNode.insertBefore(js, fjs);\n    }(document, \"script\", \"aweber-wjs-b53aopyuz\"));\n<\/script>\n\n\n\n<h6 class=\"wp-block-heading\">SOURCE CODE<\/h6>\n\n\n\n<p class=\"has-text-align-center\"><a href='https:\/\/github.com\/mariuszgromada\/mXparser\/zipball\/master' onclick='' class='wpi_designer_button   wpi_shadow wpi_shadow_ wpi_designer_button_preset_799 wpi_icon wpi_icon_download wpi_icon_left  ' target='_blank' rel=''><i class=''><\/i><span class='wpi_text'>Source code .zip<\/span><\/a><a href='https:\/\/github.com\/mariuszgromada\/mXparser\/tarball\/master' onclick='' class='wpi_designer_button   wpi_shadow wpi_shadow_ wpi_designer_button_preset_799 wpi_icon wpi_icon_download wpi_icon_left  ' target='' rel=''><i class=''><\/i><span class='wpi_text'>Source code .tar.gz<\/span><\/a><br><a href='https:\/\/github.com\/mariuszgromada\/mXparser' onclick='' class='wpi_designer_button   wpi_shadow wpi_shadow_ wpi_designer_button_preset_799 wpi_icon wpi_icon_github wpi_icon_left  ' target='_blank' rel=''><i class=''><\/i><span class='wpi_text'>View on GitHub<\/span><\/a><a href='http:\/\/mathspace.pl\/tag\/mxparser\/' onclick='' class='wpi_designer_button   wpi_shadow wpi_shadow_ wpi_designer_button_preset_799 wpi_icon wpi_icon_external wpi_icon_left  ' target='_blank' rel=''><i class=''><\/i><span class='wpi_text'>MathSpace.pl<\/span><\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">My other creative spaces<\/h2>\n\n\n\n<figure class=\"wp-block-embed is-type-rich is-provider-spotify wp-block-embed-spotify wp-embed-aspect-21-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe title=\"Spotify Embed: Relearn\" style=\"border-radius: 12px\" width=\"100%\" height=\"352\" frameborder=\"0\" allowfullscreen allow=\"autoplay; clipboard-write; encrypted-media; fullscreen; picture-in-picture\" loading=\"lazy\" src=\"https:\/\/open.spotify.com\/embed\/album\/3WIRgIVIFqtujgzULjOCt8?utm_source=oembed\"><\/iframe>\n<\/div><\/figure>\n\n\n\n<h6 class=\"wp-block-heading\">DONATION<\/h6>\n\n\n<div class='wpi_slide wpi_slide_1266'><div class='wpi_slide_image'><\/div><div id='wpi_slide_content' ><div class='wpi_slide_heading'><div><span>Did you find the software useful?<\/span><\/div><\/div><div class='wpi_slide_text'>Please consider donation \ud83d\ude42<\/div><a href='https:\/\/www.paypal.com\/cgi-bin\/webscr?cmd=_s-xclick&#038;hosted_button_id=QJYYH86583LEN' onclick='' class='wpi_designer_button   wpi_shadow wpi_shadow_ wpi_designer_button_preset_748 wpi_icon wpi_icon_no wpi_icon_left  ' target='_blank' rel=''><i class=''><\/i><span class='wpi_text'>DONATE<\/span><\/a><\/div><div class='wpi_slide_footer' >Donation with PayPal<\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Case 1: Dealing with free arguments Case 2: Defining dependent arguments Case 3: Implementing your own Argument Extension Case 4: Getting list of missing user defined arguments Case 5: Possible conflict between Implied Multiplication and getting list of missing user defined arguments + recommended solutions mXparser has many built-in constants. This list can also be &hellip; <a href=\"https:\/\/mathparser.org\/mxparser-tutorial\/user-defined-arguments\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">User defined arguments<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":432,"menu_order":6,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"footnotes":""},"class_list":["post-455","page","type-page","status-publish","hentry"],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/mathparser.org\/wp-json\/wp\/v2\/pages\/455","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mathparser.org\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/mathparser.org\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/mathparser.org\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mathparser.org\/wp-json\/wp\/v2\/comments?post=455"}],"version-history":[{"count":21,"href":"https:\/\/mathparser.org\/wp-json\/wp\/v2\/pages\/455\/revisions"}],"predecessor-version":[{"id":22161,"href":"https:\/\/mathparser.org\/wp-json\/wp\/v2\/pages\/455\/revisions\/22161"}],"up":[{"embeddable":true,"href":"https:\/\/mathparser.org\/wp-json\/wp\/v2\/pages\/432"}],"wp:attachment":[{"href":"https:\/\/mathparser.org\/wp-json\/wp\/v2\/media?parent=455"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}