{"id":474,"date":"2016-01-03T19:04:48","date_gmt":"2016-01-03T19:04:48","guid":{"rendered":"http:\/\/mathparser.org\/?page_id=474"},"modified":"2024-09-21T13:20:27","modified_gmt":"2024-09-21T13:20:27","slug":"user-defined-recursion-not-limited","status":"publish","type":"page","link":"https:\/\/mathparser.org\/mxparser-tutorial\/user-defined-recursion-not-limited\/","title":{"rendered":"User defined recursion &#8211; not limited"},"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<h2 class=\"wp-block-heading\">Case 1: Fibonacci numbers using user defined recursive function<\/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\/\/ ...\nFunction fib = new Function(&quot;fib(n) = if( n&gt;1, fib(n-1)+fib(n-2), if(n&gt;0, 1, 0) )&quot;);\n\nExpression e = new Expression(&quot;fib(10)&quot;, fib);\n\nmXparser.consolePrintln(&quot;Res 1: &quot; + e.getExpressionString() + &quot; = &quot; + e.calculate());\nmXparser.consolePrintln(&quot;Res 2: fib(11) = &quot; + fib.calculate(11));\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 \"org\/mariuszgromada\/math\/mxparser.hpp\"\n\/\/ ...\n\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: fib(10) = 55.0\n&#x5B;mXparser-v.5.2.1] Res 2: fib(11) = 89.0\n<\/pre><\/div>\n\n\n<h2 class=\"wp-block-heading\">Case 2: Number of recursive parameters is not limited &#8211; binomial coefficient definition using user defined recursive function<\/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\/\/ ...\nFunction Cnk = new Function(&quot;Cnk(n,k) = if( k&gt;0, if( k&lt;n, Cnk(n-1,k-1)+Cnk(n-1,k), 1), 1)&quot;);\n\nExpression e = new Expression(&quot;Cnk(10,3) - C(10,3)&quot;, Cnk);\n\nmXparser.consolePrintln(&quot;Res 1: &quot; + e.getExpressionString() + &quot; = &quot; + e.calculate());\nmXparser.consolePrintln(&quot;Res 2: Cnk(10,3) = &quot; + Cnk.calculate(10,3));\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\/\/ ...\nFunctionPtr Cnk = new_Function(&quot;Cnk(n,k) = if( k&gt;0, if( k&lt;n, Cnk(n-1,k-1)+Cnk(n-1,k), 1), 1)&quot;);\n\nExpressionPtr e = new_Expression(&quot;Cnk(10,3) - C(10,3)&quot;, Cnk);\n\nmXparser::consolePrintln(&quot;Res 1: &quot; + e-&gt;getExpressionString() + &quot; = &quot; + e-&gt;calculate());\nmXparser_consolePrintln(&quot;Res 2: Cnk(10,3) = &quot; + Cnk-&gt;calculate(10,3));\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: Cnk(10,3) - C(10,3) = 0.0\n&#x5B;mXparser-v.5.2.1] Res 2: Cnk(10,3) = 120.0\n<\/pre><\/div>\n\n\n<h2 class=\"wp-block-heading\">Case 3: Mixing function parameters &#8211; part causing recursive calls, other part as &#8216;typical&#8217; parameter. Below example is presenting definition of Chebyshev polynomial using recursive function<\/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\/\/ ...\nFunction T = new Function(&quot;T(n,x) = if(n&gt;1, 2*x*T(n-1,x)-T(n-2,x), if(n&gt;0, x, 1) )&quot;);\n\nArgument k = new Argument(&quot;k = 5&quot;);\nArgument x = new Argument(&quot;x = 2&quot;);\n\nExpression e = new Expression(&quot;T(k,x) - ( (x + sqrt(x^2-1))^k + (x - sqrt(x^2-1))^k)\/2&quot;, T, k, x);\nmXparser.consolePrintln(&quot;Res : &quot; + e.getExpressionString() + &quot; = &quot; + 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\/\/ ...\nFunctionPtr T = new_Function(&quot;T(n,x) = if(n&gt;1, 2*x*T(n-1,x)-T(n-2,x), if(n&gt;0, x, 1) )&quot;);\n\nArgumentPtr k = new_Argument(&quot;k = 5&quot;);\nArgumentPtr x = new_Argument(&quot;x = 2&quot;);\n\nExpressionPtr e = new_Expression(&quot;T(k,x) - ( (x + sqrt(x^2-1))^k + (x - sqrt(x^2-1))^k)\/2&quot;, T, k, x);\nmXparser::consolePrintln(&quot;Res : &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 : T(k,x) - ( (x + sqrt(x^2-1))^k + (x - sqrt(x^2-1))^k)\/2 = 0.0\n<\/pre><\/div>\n\n\n<h2 class=\"wp-block-heading\">Case 4: Indirect recursion &#8211; approximating sin(x) and cos(x)<\/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\/\/ ...\nConstant a = new Constant(&quot;a = 0.0001&quot;);\n\nFunction s = new Function(&quot;s(x) = if( abs(x) &lt; a, x, 2*s(x\/2)*c(x\/2) )&quot;, a);\nFunction c = new Function(&quot;c(x) = if( abs(x) &lt; a, 1, c(x\/2)^2-s(x\/2)^2 )&quot;, a);\n\n\/*\n * Functions s and c must point to each other,\n * i.e. references should be added only after\n * they have been created\n *\/\ns.addDefinitions(c);\nc.addDefinitions(s);\n\nExpression e1 = new Expression(&quot;sin(5)-s(5)&quot;, s);\nExpression e2 = new Expression(&quot;cos(5)-c(5)&quot;, c);\n\nmXparser.consolePrintln(&quot;Res 1: &quot; + e1.getExpressionString() + &quot; = &quot; + e1.calculate());\nmXparser.consolePrintln(&quot;Res 2: &quot; + e2.getExpressionString() + &quot; = &quot; + e2.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\/\/ ...\nConstantPtr a = new_Constant(&quot;a = 0.0001&quot;);\n\nFunctionPtr s = new_Function(&quot;s(x) = if( abs(x) &lt; a, x, 2*s(x\/2)*c(x\/2) )&quot;, a);\nFunctionPtr c = new_Function(&quot;c(x) = if( abs(x) &lt; a, 1, c(x\/2)^2-s(x\/2)^2 )&quot;, a);\n\n\/*\n * Functions s and c must point to each other,\n * i.e. references should be added only after\n * they have been created\n *\/\ns-&gt;addDefinitions(c);\nc-&gt;addDefinitions(s);\n\nExpressionPtr e1 = new_Expression(&quot;sin(5)-s(5)&quot;, s);\nExpressionPtr e2 = new_Expression(&quot;cos(5)-c(5)&quot;, c);\n\nmXparser::consolePrintln(&quot;Res 1: &quot; + e1-&gt;getExpressionString() + &quot; = &quot; + e1-&gt;calculate());\nmXparser::consolePrintln(&quot;Res 2: &quot; + e2-&gt;getExpressionString() + &quot; = &quot; + e2-&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: sin(5)-s(5) = 1.829204866182E-4\n&#x5B;mXparser-v.5.2.1] Res 2: cos(5)-c(5) = -5.410012369295E-5\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: Fibonacci numbers using user defined recursive function Case 2: Number of recursive parameters is not limited &#8211; binomial coefficient definition using user defined recursive function Case 3: Mixing function parameters &#8211; part causing recursive calls, other part as &#8216;typical&#8217; parameter. Below example is presenting definition of Chebyshev polynomial using recursive function Case 4: &hellip; <a href=\"https:\/\/mathparser.org\/mxparser-tutorial\/user-defined-recursion-not-limited\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">User defined recursion &#8211; not limited<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":432,"menu_order":13,"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-474","page","type-page","status-publish","hentry"],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/mathparser.org\/wp-json\/wp\/v2\/pages\/474","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=474"}],"version-history":[{"count":9,"href":"https:\/\/mathparser.org\/wp-json\/wp\/v2\/pages\/474\/revisions"}],"predecessor-version":[{"id":22116,"href":"https:\/\/mathparser.org\/wp-json\/wp\/v2\/pages\/474\/revisions\/22116"}],"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=474"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}