Why is this recursive code so slow? Planned maintenance scheduled April 23, 2019 at 23:30 UTC (7:30pm US/Eastern) Announcing the arrival of Valued Associate #679: Cesar Manara Unicorn Meta Zoo #1: Why another podcast?What are the hidden specifications for FindRootWhy does this function inside FindRoot fail to evaluate?Very slow mathematica finite differencesUsing Mathematica to solve a recursive system of differential equationsImproving the speed on an iterated differential systemForward iterations of coupled recursion equationsManipulate+FindRoot+Plot3D very slow/crashAttacking a “Mathematica can't solve” problemErrors using FindRoot on slow numerical functionAvoiding a for loop to create a list

Nose gear failure in single prop aircraft: belly landing or nose-gear up landing?

What is the difference between a "ranged attack" and a "ranged weapon attack"?

Why are vacuum tubes still used in amateur radios?

Trying to understand entropy as a novice in thermodynamics

Tips to organize LaTeX presentations for a semester

How to write capital alpha?

Why datecode is SO IMPORTANT to chip manufacturers?

two integers one line calculator

I can't produce songs

Is it dangerous to install hacking tools on my private linux machine?

Why is a lens darker than other ones when applying the same settings?

Understanding p-Values using an example

Is openssl rand command cryptographically secure?

Putting class ranking in CV, but against dept guidelines

Why is it faster to reheat something than it is to cook it?

How to change the tick of the color bar legend to black

What does 丫 mean? 丫是什么意思?

Moving a wrapfig vertically to encroach partially on a subsection title

Simple Http Server

Delete free apps from library

How to ternary Plot3D a function

Did any compiler fully use 80-bit floating point?

Is there hard evidence that the grant peer review system performs significantly better than random?

After Sam didn't return home in the end, were he and Al still friends?



Why is this recursive code so slow?



Planned maintenance scheduled April 23, 2019 at 23:30 UTC (7:30pm US/Eastern)
Announcing the arrival of Valued Associate #679: Cesar Manara
Unicorn Meta Zoo #1: Why another podcast?What are the hidden specifications for FindRootWhy does this function inside FindRoot fail to evaluate?Very slow mathematica finite differencesUsing Mathematica to solve a recursive system of differential equationsImproving the speed on an iterated differential systemForward iterations of coupled recursion equationsManipulate+FindRoot+Plot3D very slow/crashAttacking a “Mathematica can't solve” problemErrors using FindRoot on slow numerical functionAvoiding a for loop to create a list










5












$begingroup$


This code for the first five iterations the speed is okay, but after that the speed is very slow, I cannot understand what is wrong with this? Would you please help me fix it?



Clear[A, r, x, s, e]
s := 0.3405
e := 1.6539*10^-21
u[0] := 0.
u[1] := 0.1

A[r_] := A[r] =
Piecewise[r - 2.5 s - 48*e *s^12*r^-13 + 24*e*s^6*r^-7,
r > 2.5 s, -48*e*s^12*r^-13 + 24*e*s^6*r^-7,
s <= r <= 2.5 s, r - s -
24*e*s^-1, r < s]
For[i = 2, i < 101,
i++, u[i_] :=
x /. FindRoot[
u[i - 1] +
1/(i^2 (u[i - 1] - u[i - 2])^2) (u[i - 1] - u[i - 2]) -
0.9 A[x] == x , x, 1.]; Print[u[i]]]









share|improve this question











$endgroup$











  • $begingroup$
    How slow? How many minutes/seconds?
    $endgroup$
    – JonyD
    Apr 12 at 8:28















5












$begingroup$


This code for the first five iterations the speed is okay, but after that the speed is very slow, I cannot understand what is wrong with this? Would you please help me fix it?



Clear[A, r, x, s, e]
s := 0.3405
e := 1.6539*10^-21
u[0] := 0.
u[1] := 0.1

A[r_] := A[r] =
Piecewise[r - 2.5 s - 48*e *s^12*r^-13 + 24*e*s^6*r^-7,
r > 2.5 s, -48*e*s^12*r^-13 + 24*e*s^6*r^-7,
s <= r <= 2.5 s, r - s -
24*e*s^-1, r < s]
For[i = 2, i < 101,
i++, u[i_] :=
x /. FindRoot[
u[i - 1] +
1/(i^2 (u[i - 1] - u[i - 2])^2) (u[i - 1] - u[i - 2]) -
0.9 A[x] == x , x, 1.]; Print[u[i]]]









share|improve this question











$endgroup$











  • $begingroup$
    How slow? How many minutes/seconds?
    $endgroup$
    – JonyD
    Apr 12 at 8:28













5












5








5





$begingroup$


This code for the first five iterations the speed is okay, but after that the speed is very slow, I cannot understand what is wrong with this? Would you please help me fix it?



Clear[A, r, x, s, e]
s := 0.3405
e := 1.6539*10^-21
u[0] := 0.
u[1] := 0.1

A[r_] := A[r] =
Piecewise[r - 2.5 s - 48*e *s^12*r^-13 + 24*e*s^6*r^-7,
r > 2.5 s, -48*e*s^12*r^-13 + 24*e*s^6*r^-7,
s <= r <= 2.5 s, r - s -
24*e*s^-1, r < s]
For[i = 2, i < 101,
i++, u[i_] :=
x /. FindRoot[
u[i - 1] +
1/(i^2 (u[i - 1] - u[i - 2])^2) (u[i - 1] - u[i - 2]) -
0.9 A[x] == x , x, 1.]; Print[u[i]]]









share|improve this question











$endgroup$




This code for the first five iterations the speed is okay, but after that the speed is very slow, I cannot understand what is wrong with this? Would you please help me fix it?



Clear[A, r, x, s, e]
s := 0.3405
e := 1.6539*10^-21
u[0] := 0.
u[1] := 0.1

A[r_] := A[r] =
Piecewise[r - 2.5 s - 48*e *s^12*r^-13 + 24*e*s^6*r^-7,
r > 2.5 s, -48*e*s^12*r^-13 + 24*e*s^6*r^-7,
s <= r <= 2.5 s, r - s -
24*e*s^-1, r < s]
For[i = 2, i < 101,
i++, u[i_] :=
x /. FindRoot[
u[i - 1] +
1/(i^2 (u[i - 1] - u[i - 2])^2) (u[i - 1] - u[i - 2]) -
0.9 A[x] == x , x, 1.]; Print[u[i]]]






equation-solving recursion






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Apr 12 at 8:27









Roman

5,80111131




5,80111131










asked Apr 12 at 4:08









morapimorapi

355




355











  • $begingroup$
    How slow? How many minutes/seconds?
    $endgroup$
    – JonyD
    Apr 12 at 8:28
















  • $begingroup$
    How slow? How many minutes/seconds?
    $endgroup$
    – JonyD
    Apr 12 at 8:28















$begingroup$
How slow? How many minutes/seconds?
$endgroup$
– JonyD
Apr 12 at 8:28




$begingroup$
How slow? How many minutes/seconds?
$endgroup$
– JonyD
Apr 12 at 8:28










1 Answer
1






active

oldest

votes


















12












$begingroup$

I recommend you learn the distinction between immediate (=) and delayed (:=) assignments. They make the difference between slow and fast code here. Start with this tutorial or this book chapter, then look at memoization.



s = 0.3405;
e = 1.6539*10^-21;
u[0] = 0.;
u[1] = 0.1;

A[r_] = Piecewise[r - 2.5 s - 48*e*s^12*r^-13 + 24*e*s^6*r^-7, r > 2.5 s,
-48*e*s^12*r^-13 + 24*e*s^6*r^-7, s <= r <= 2.5 s,
r - s - 24*e*s^-1, r < s];

u[i_] := u[i] = x /. FindRoot[
u[i - 1] + 1/(i^2 (u[i - 1] - u[i - 2])^2) (u[i - 1] - u[i - 2]) - 0.9 A[x] == x, x, 1.]

Array[u, 100]



0.1, 1.77164, 1.37065, 1.04259, 0.887781, 0.708344, 0.59461,
0.457228, 0.367364, 0.296071, 0.256104, 0.20463, 0.208487, 1.20917,
1.04197, 0.939331, 0.879865, 0.827963, 0.774591, 0.72775, 0.67934,
0.63666, 0.592369, 0.553172, 0.512352, 0.476112, 0.438261, 0.404563,
0.369277, 0.339073, 0.321616, 0.301118, 0.296195, 0.224688, 0.273538,
0.31357, 0.33593, 0.366902, 0.38813, 0.417572, 0.437777, 0.465834,
0.48511, 0.511907, 0.530336, 0.55598, 0.573633, 0.598219, 0.615159,
0.638772, 0.655054, 0.677768, 0.693441, 0.715321, 0.73043, 0.751535,
0.766118, 0.786503, 0.800596, 0.820306, 0.833941, 0.852182, 0.85901,
0.874152, 0.871531, 0.78396, 0.781416, 0.696402, 0.693931, 0.611329,
0.608927, 0.528603, 0.526267, 0.448099, 0.445825, 0.369701, 0.367485,
0.315658, 0.325798, 0.341207, 0.351098, 0.366134, 0.375788, 0.390468,
0.399897, 0.414237, 0.42345, 0.437466, 0.446473, 0.46018, 0.46899,
0.4824, 0.491022, 0.504149, 0.51259, 0.525444, 0.533712, 0.546306,
0.554408, 0.56675




(takes about 1.3 seconds)



Alternatively, use



Table[u[i], i, 1, 100]


(same result). Your combination of For and Print shows the results but doesn't let you keep using them for more calculations.






share|improve this answer











$endgroup$












  • $begingroup$
    thank you very much. I really appreciate it.
    $endgroup$
    – morapi
    Apr 12 at 6:35






  • 1




    $begingroup$
    delayed assignments definitely sound slower than immediate, even if I have never worked with Mathematica
    $endgroup$
    – Roland
    Apr 12 at 10:07







  • 2




    $begingroup$
    @Roland it's not just that one is necessarily faster or slower than the other, it's more that they are completely different things with very different applications. For some reason this point is often overlooked by beginners in Mathematica.
    $endgroup$
    – Roman
    Apr 12 at 10:14











Your Answer








StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "387"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);

else
createEditor();

);

function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);



);













draft saved

draft discarded


















StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmathematica.stackexchange.com%2fquestions%2f195054%2fwhy-is-this-recursive-code-so-slow%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes









12












$begingroup$

I recommend you learn the distinction between immediate (=) and delayed (:=) assignments. They make the difference between slow and fast code here. Start with this tutorial or this book chapter, then look at memoization.



s = 0.3405;
e = 1.6539*10^-21;
u[0] = 0.;
u[1] = 0.1;

A[r_] = Piecewise[r - 2.5 s - 48*e*s^12*r^-13 + 24*e*s^6*r^-7, r > 2.5 s,
-48*e*s^12*r^-13 + 24*e*s^6*r^-7, s <= r <= 2.5 s,
r - s - 24*e*s^-1, r < s];

u[i_] := u[i] = x /. FindRoot[
u[i - 1] + 1/(i^2 (u[i - 1] - u[i - 2])^2) (u[i - 1] - u[i - 2]) - 0.9 A[x] == x, x, 1.]

Array[u, 100]



0.1, 1.77164, 1.37065, 1.04259, 0.887781, 0.708344, 0.59461,
0.457228, 0.367364, 0.296071, 0.256104, 0.20463, 0.208487, 1.20917,
1.04197, 0.939331, 0.879865, 0.827963, 0.774591, 0.72775, 0.67934,
0.63666, 0.592369, 0.553172, 0.512352, 0.476112, 0.438261, 0.404563,
0.369277, 0.339073, 0.321616, 0.301118, 0.296195, 0.224688, 0.273538,
0.31357, 0.33593, 0.366902, 0.38813, 0.417572, 0.437777, 0.465834,
0.48511, 0.511907, 0.530336, 0.55598, 0.573633, 0.598219, 0.615159,
0.638772, 0.655054, 0.677768, 0.693441, 0.715321, 0.73043, 0.751535,
0.766118, 0.786503, 0.800596, 0.820306, 0.833941, 0.852182, 0.85901,
0.874152, 0.871531, 0.78396, 0.781416, 0.696402, 0.693931, 0.611329,
0.608927, 0.528603, 0.526267, 0.448099, 0.445825, 0.369701, 0.367485,
0.315658, 0.325798, 0.341207, 0.351098, 0.366134, 0.375788, 0.390468,
0.399897, 0.414237, 0.42345, 0.437466, 0.446473, 0.46018, 0.46899,
0.4824, 0.491022, 0.504149, 0.51259, 0.525444, 0.533712, 0.546306,
0.554408, 0.56675




(takes about 1.3 seconds)



Alternatively, use



Table[u[i], i, 1, 100]


(same result). Your combination of For and Print shows the results but doesn't let you keep using them for more calculations.






share|improve this answer











$endgroup$












  • $begingroup$
    thank you very much. I really appreciate it.
    $endgroup$
    – morapi
    Apr 12 at 6:35






  • 1




    $begingroup$
    delayed assignments definitely sound slower than immediate, even if I have never worked with Mathematica
    $endgroup$
    – Roland
    Apr 12 at 10:07







  • 2




    $begingroup$
    @Roland it's not just that one is necessarily faster or slower than the other, it's more that they are completely different things with very different applications. For some reason this point is often overlooked by beginners in Mathematica.
    $endgroup$
    – Roman
    Apr 12 at 10:14















12












$begingroup$

I recommend you learn the distinction between immediate (=) and delayed (:=) assignments. They make the difference between slow and fast code here. Start with this tutorial or this book chapter, then look at memoization.



s = 0.3405;
e = 1.6539*10^-21;
u[0] = 0.;
u[1] = 0.1;

A[r_] = Piecewise[r - 2.5 s - 48*e*s^12*r^-13 + 24*e*s^6*r^-7, r > 2.5 s,
-48*e*s^12*r^-13 + 24*e*s^6*r^-7, s <= r <= 2.5 s,
r - s - 24*e*s^-1, r < s];

u[i_] := u[i] = x /. FindRoot[
u[i - 1] + 1/(i^2 (u[i - 1] - u[i - 2])^2) (u[i - 1] - u[i - 2]) - 0.9 A[x] == x, x, 1.]

Array[u, 100]



0.1, 1.77164, 1.37065, 1.04259, 0.887781, 0.708344, 0.59461,
0.457228, 0.367364, 0.296071, 0.256104, 0.20463, 0.208487, 1.20917,
1.04197, 0.939331, 0.879865, 0.827963, 0.774591, 0.72775, 0.67934,
0.63666, 0.592369, 0.553172, 0.512352, 0.476112, 0.438261, 0.404563,
0.369277, 0.339073, 0.321616, 0.301118, 0.296195, 0.224688, 0.273538,
0.31357, 0.33593, 0.366902, 0.38813, 0.417572, 0.437777, 0.465834,
0.48511, 0.511907, 0.530336, 0.55598, 0.573633, 0.598219, 0.615159,
0.638772, 0.655054, 0.677768, 0.693441, 0.715321, 0.73043, 0.751535,
0.766118, 0.786503, 0.800596, 0.820306, 0.833941, 0.852182, 0.85901,
0.874152, 0.871531, 0.78396, 0.781416, 0.696402, 0.693931, 0.611329,
0.608927, 0.528603, 0.526267, 0.448099, 0.445825, 0.369701, 0.367485,
0.315658, 0.325798, 0.341207, 0.351098, 0.366134, 0.375788, 0.390468,
0.399897, 0.414237, 0.42345, 0.437466, 0.446473, 0.46018, 0.46899,
0.4824, 0.491022, 0.504149, 0.51259, 0.525444, 0.533712, 0.546306,
0.554408, 0.56675




(takes about 1.3 seconds)



Alternatively, use



Table[u[i], i, 1, 100]


(same result). Your combination of For and Print shows the results but doesn't let you keep using them for more calculations.






share|improve this answer











$endgroup$












  • $begingroup$
    thank you very much. I really appreciate it.
    $endgroup$
    – morapi
    Apr 12 at 6:35






  • 1




    $begingroup$
    delayed assignments definitely sound slower than immediate, even if I have never worked with Mathematica
    $endgroup$
    – Roland
    Apr 12 at 10:07







  • 2




    $begingroup$
    @Roland it's not just that one is necessarily faster or slower than the other, it's more that they are completely different things with very different applications. For some reason this point is often overlooked by beginners in Mathematica.
    $endgroup$
    – Roman
    Apr 12 at 10:14













12












12








12





$begingroup$

I recommend you learn the distinction between immediate (=) and delayed (:=) assignments. They make the difference between slow and fast code here. Start with this tutorial or this book chapter, then look at memoization.



s = 0.3405;
e = 1.6539*10^-21;
u[0] = 0.;
u[1] = 0.1;

A[r_] = Piecewise[r - 2.5 s - 48*e*s^12*r^-13 + 24*e*s^6*r^-7, r > 2.5 s,
-48*e*s^12*r^-13 + 24*e*s^6*r^-7, s <= r <= 2.5 s,
r - s - 24*e*s^-1, r < s];

u[i_] := u[i] = x /. FindRoot[
u[i - 1] + 1/(i^2 (u[i - 1] - u[i - 2])^2) (u[i - 1] - u[i - 2]) - 0.9 A[x] == x, x, 1.]

Array[u, 100]



0.1, 1.77164, 1.37065, 1.04259, 0.887781, 0.708344, 0.59461,
0.457228, 0.367364, 0.296071, 0.256104, 0.20463, 0.208487, 1.20917,
1.04197, 0.939331, 0.879865, 0.827963, 0.774591, 0.72775, 0.67934,
0.63666, 0.592369, 0.553172, 0.512352, 0.476112, 0.438261, 0.404563,
0.369277, 0.339073, 0.321616, 0.301118, 0.296195, 0.224688, 0.273538,
0.31357, 0.33593, 0.366902, 0.38813, 0.417572, 0.437777, 0.465834,
0.48511, 0.511907, 0.530336, 0.55598, 0.573633, 0.598219, 0.615159,
0.638772, 0.655054, 0.677768, 0.693441, 0.715321, 0.73043, 0.751535,
0.766118, 0.786503, 0.800596, 0.820306, 0.833941, 0.852182, 0.85901,
0.874152, 0.871531, 0.78396, 0.781416, 0.696402, 0.693931, 0.611329,
0.608927, 0.528603, 0.526267, 0.448099, 0.445825, 0.369701, 0.367485,
0.315658, 0.325798, 0.341207, 0.351098, 0.366134, 0.375788, 0.390468,
0.399897, 0.414237, 0.42345, 0.437466, 0.446473, 0.46018, 0.46899,
0.4824, 0.491022, 0.504149, 0.51259, 0.525444, 0.533712, 0.546306,
0.554408, 0.56675




(takes about 1.3 seconds)



Alternatively, use



Table[u[i], i, 1, 100]


(same result). Your combination of For and Print shows the results but doesn't let you keep using them for more calculations.






share|improve this answer











$endgroup$



I recommend you learn the distinction between immediate (=) and delayed (:=) assignments. They make the difference between slow and fast code here. Start with this tutorial or this book chapter, then look at memoization.



s = 0.3405;
e = 1.6539*10^-21;
u[0] = 0.;
u[1] = 0.1;

A[r_] = Piecewise[r - 2.5 s - 48*e*s^12*r^-13 + 24*e*s^6*r^-7, r > 2.5 s,
-48*e*s^12*r^-13 + 24*e*s^6*r^-7, s <= r <= 2.5 s,
r - s - 24*e*s^-1, r < s];

u[i_] := u[i] = x /. FindRoot[
u[i - 1] + 1/(i^2 (u[i - 1] - u[i - 2])^2) (u[i - 1] - u[i - 2]) - 0.9 A[x] == x, x, 1.]

Array[u, 100]



0.1, 1.77164, 1.37065, 1.04259, 0.887781, 0.708344, 0.59461,
0.457228, 0.367364, 0.296071, 0.256104, 0.20463, 0.208487, 1.20917,
1.04197, 0.939331, 0.879865, 0.827963, 0.774591, 0.72775, 0.67934,
0.63666, 0.592369, 0.553172, 0.512352, 0.476112, 0.438261, 0.404563,
0.369277, 0.339073, 0.321616, 0.301118, 0.296195, 0.224688, 0.273538,
0.31357, 0.33593, 0.366902, 0.38813, 0.417572, 0.437777, 0.465834,
0.48511, 0.511907, 0.530336, 0.55598, 0.573633, 0.598219, 0.615159,
0.638772, 0.655054, 0.677768, 0.693441, 0.715321, 0.73043, 0.751535,
0.766118, 0.786503, 0.800596, 0.820306, 0.833941, 0.852182, 0.85901,
0.874152, 0.871531, 0.78396, 0.781416, 0.696402, 0.693931, 0.611329,
0.608927, 0.528603, 0.526267, 0.448099, 0.445825, 0.369701, 0.367485,
0.315658, 0.325798, 0.341207, 0.351098, 0.366134, 0.375788, 0.390468,
0.399897, 0.414237, 0.42345, 0.437466, 0.446473, 0.46018, 0.46899,
0.4824, 0.491022, 0.504149, 0.51259, 0.525444, 0.533712, 0.546306,
0.554408, 0.56675




(takes about 1.3 seconds)



Alternatively, use



Table[u[i], i, 1, 100]


(same result). Your combination of For and Print shows the results but doesn't let you keep using them for more calculations.







share|improve this answer














share|improve this answer



share|improve this answer








edited Apr 12 at 8:53

























answered Apr 12 at 4:43









RomanRoman

5,80111131




5,80111131











  • $begingroup$
    thank you very much. I really appreciate it.
    $endgroup$
    – morapi
    Apr 12 at 6:35






  • 1




    $begingroup$
    delayed assignments definitely sound slower than immediate, even if I have never worked with Mathematica
    $endgroup$
    – Roland
    Apr 12 at 10:07







  • 2




    $begingroup$
    @Roland it's not just that one is necessarily faster or slower than the other, it's more that they are completely different things with very different applications. For some reason this point is often overlooked by beginners in Mathematica.
    $endgroup$
    – Roman
    Apr 12 at 10:14
















  • $begingroup$
    thank you very much. I really appreciate it.
    $endgroup$
    – morapi
    Apr 12 at 6:35






  • 1




    $begingroup$
    delayed assignments definitely sound slower than immediate, even if I have never worked with Mathematica
    $endgroup$
    – Roland
    Apr 12 at 10:07







  • 2




    $begingroup$
    @Roland it's not just that one is necessarily faster or slower than the other, it's more that they are completely different things with very different applications. For some reason this point is often overlooked by beginners in Mathematica.
    $endgroup$
    – Roman
    Apr 12 at 10:14















$begingroup$
thank you very much. I really appreciate it.
$endgroup$
– morapi
Apr 12 at 6:35




$begingroup$
thank you very much. I really appreciate it.
$endgroup$
– morapi
Apr 12 at 6:35




1




1




$begingroup$
delayed assignments definitely sound slower than immediate, even if I have never worked with Mathematica
$endgroup$
– Roland
Apr 12 at 10:07





$begingroup$
delayed assignments definitely sound slower than immediate, even if I have never worked with Mathematica
$endgroup$
– Roland
Apr 12 at 10:07





2




2




$begingroup$
@Roland it's not just that one is necessarily faster or slower than the other, it's more that they are completely different things with very different applications. For some reason this point is often overlooked by beginners in Mathematica.
$endgroup$
– Roman
Apr 12 at 10:14




$begingroup$
@Roland it's not just that one is necessarily faster or slower than the other, it's more that they are completely different things with very different applications. For some reason this point is often overlooked by beginners in Mathematica.
$endgroup$
– Roman
Apr 12 at 10:14

















draft saved

draft discarded
















































Thanks for contributing an answer to Mathematica Stack Exchange!


  • Please be sure to answer the question. Provide details and share your research!

But avoid


  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.

Use MathJax to format equations. MathJax reference.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmathematica.stackexchange.com%2fquestions%2f195054%2fwhy-is-this-recursive-code-so-slow%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Export of reprojected layer from GEE fails Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern) Announcing the arrival of Valued Associate #679: Cesar Manara Unicorn Meta Zoo #1: Why another podcast?Iterate over features and years to export images for each feature-yearEarth engine reproject: why does reprojecting a pixel at 30m scale gives me pixels with an area of ~550?Exporting slope raster for entire country in GEEGEE Landsat SR year composite // mask cloud / shadow out w/ other method than quality pixel"export region contains no valid (un-masked) pixels - Google Earth EgineGoogle Earth Engine, how to distinguish between rivers/streams and ponds/lakes in a water maskPython script tool fails when processing rainfall data from Google Earth EngineGoogle Earth Engine Error: Number of pixels requested from Image.load exceeds the maximum allowedCloudfree images in small area from Sentinel-2Using Image exportToDrive in Google Earth Engine?

Creating closest line along the point''s azimuth using PostgreSQL Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern) Announcing the arrival of Valued Associate #679: Cesar Manara Unicorn Meta Zoo #1: Why another podcast?Drawing line between points at specific distance in PostGIS?How to efficiently find the closest point over the dateline?How to find the nearest point by using PostGIS function?PostGIS nearest point with LATERAL JOIN in PostgreSQL 9.3+Creating a table and inserting selected streets using plpgsql functionsCreating a table that stores Distances and other columnSaving select query results (year wise) from PostgreSQL/PostGIS to text filesWhat is the information behind this geometry?How to give start and end vertex ids dynamically in pgr_dijkstra?Point to Polygon nearest distance DS_distance is not using geography index & knn <-> or <#> does not give result in orderLine to point conversion with start point and end point detection?

Crop image to path created in TikZ? Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern)Crop an inserted image?TikZ pictures does not appear in posterImage behind and beyond crop marks?Tikz picture as large as possible on A4 PageTransparency vs image compression dilemmaHow to crop background from image automatically?Image does not cropTikzexternal capturing crop marks when externalizing pgfplots?How to include image path that contains a dollar signCrop image with left size given