Recursion in SMath

Recursion in SMath - Can we use recursion in SMath? - Messages

#1 Posted: 10/24/2023 1:28:09 PM
Valery Ochkov

Valery Ochkov

55 likes in 633 posts.

Group: User

Can we use recursion in SMath?
Fibo.png
#2 Posted: 10/24/2023 2:53:19 PM
Gerry_Bush

Gerry_Bush

12 likes in 14 posts.

Group: User

Yes, recursion is possible. Although I don't remember how many levels are allowed.

Here is your example in an smath file.

Fibo_recursion_example.sm (3 KiB) downloaded 27 time(s).
1 users liked this post
Valery Ochkov 10/24/2023 4:48:00 PM
#3 Posted: 10/24/2023 5:13:18 PM
Valery Ochkov

Valery Ochkov

55 likes in 633 posts.

Group: User

Wrote

Yes, recursion is possible. Although I don't remember how many levels are allowed.

Here is your example in an smath file.

Fibo_recursion_example.sm (3 KiB) downloaded 27 time(s).



Thanks! But I think it was not from me but from SMath error!
And the second!
Why 0!=1?
See
Factorial.sm (4 KiB) downloaded 26 time(s).
Factorial.png
#4 Posted: 10/24/2023 6:23:19 PM
Gerry_Bush

Gerry_Bush

12 likes in 14 posts.

Group: User

Here is the corrected Fibo recursive function...

Fibo_recursion_corrected.sm (4 KiB) downloaded 30 time(s).

As for 0!=1 the following page gives two explanations.

https://zero-factorial.com/whatis.html
#5 Posted: 10/24/2023 8:21:01 PM
Gerry_Bush

Gerry_Bush

12 likes in 14 posts.

Group: User

Here is a more streamlined version...

Fibonacci function
1 users liked this post
Valery Ochkov 10/24/2023 8:50:00 PM
#6 Posted: 10/24/2023 8:49:36 PM
Valery Ochkov

Valery Ochkov

55 likes in 633 posts.

Group: User

Wrote

Here is a more streamlined version...

Fibonacci function



Thanks!
And what about
https://en.wikipedia.org/wiki/Ackermann_function
#7 Posted: 10/24/2023 9:16:47 PM
Gerry_Bush

Gerry_Bush

12 likes in 14 posts.

Group: User

This seems to work for the Ackermann function...

Ackermann Function

Ackermann function.sm (4 KiB) downloaded 28 time(s).
1 users liked this post
Valery Ochkov 10/24/2023 10:08:00 PM
#8 Posted: 10/25/2023 8:32:50 PM
Jean Giraud

Jean Giraud

983 likes in 6866 posts.

Group: User

Wrote

Yes, recursion is possible. Although I don't remember how many levels are allowed.


Typical, factorial(n) command-line is limited ...factorial(40)
1 users liked this post
Valery Ochkov 10/25/2023 8:46:00 PM
#9 Posted: 10/25/2023 9:08:48 PM
Jean Giraud

Jean Giraud

983 likes in 6866 posts.

Group: User

Wrote

Originally Posted by: Gerry_Bush [url=/forum/yaf_postsm82817_Recursion-in-SMath.aspx#post82817][/url]Yes, recursion is possible. Although I don't remember how many levels are allowed.
Typical, factorial(n) command-line is limited ...factorial(40)


By same token, Fibonacci(n) command-line upper limit
Fibonacci(1473) ... 1.9069*10^307 ... Windows limit.
1 users liked this post
Valery Ochkov 10/26/2023 12:49:00 AM
#10 Posted: 10/25/2023 9:15:33 PM
overlord

overlord

551 likes in 1332 posts.

Group: Moderator

Wrote

Yes, recursion is possible. Although I don't remember how many levels are allowed.


Recursion in SMath has a limit of 50.
After that, it won't calculate.

Regards

2023-10-25_17-01.png
2 users liked this post
ioan92 10/25/2023 9:26:00 PM, Valery Ochkov 10/25/2023 9:46:00 PM
#11 Posted: 10/25/2023 10:37:39 PM
Alvaro Diaz Falconi

Alvaro Diaz Falconi

992 likes in 1674 posts.

Group: User

Hi. In this post you can see how to handle recursive formulas for more than 50 calls, with a small function rec()

Clipboard01.png

and in this other you can see the relationship between recursive and iterative algorithms, remembering that SMath is optimized for iterative ones.

Clipboard02.png

Best regards.
Alvaro
4 users liked this post
ioan92 10/26/2023 12:28:00 AM, Valery Ochkov 10/25/2023 11:27:00 PM, NDTM Amarasekera 10/25/2023 11:53:00 PM, Oscar Campo 10/26/2023 4:39:00 PM
#12 Posted: 10/26/2023 12:33:28 AM
Jean Giraud

Jean Giraud

983 likes in 6866 posts.

Group: User

Wrote

Typical, factorial(n) command-line is limited ...factorial(40)


The vectorized version n 170 ... 7.2574*10^306

1 users liked this post
Valery Ochkov 10/26/2023 12:49:00 AM
#13 Posted: 10/26/2023 2:00:47 AM
Valery Ochkov

Valery Ochkov

55 likes in 633 posts.

Group: User

Gamma.png

#14 Posted: 10/26/2023 2:02:25 AM
overlord

overlord

551 likes in 1332 posts.

Group: Moderator

Your RAM and OS is the limit.

Regards

fib_fact.sm (11 KiB) downloaded 19 time(s).

2023-10-25_22-00.png
2 users liked this post
Valery Ochkov 10/26/2023 2:39:00 AM, Oscar Campo 10/26/2023 4:40:00 PM
#15 Posted: 10/26/2023 4:07:27 AM
Jean Giraud

Jean Giraud

983 likes in 6866 posts.

Group: User

Valery, Smath Gamma(x) is known 4 decimals.
Reported years ago, ignored.
Alvaro Gamma(x) 15 decimals
#16 Posted: 10/26/2023 9:07:36 AM
Alvaro Diaz Falconi

Alvaro Diaz Falconi

992 likes in 1674 posts.

Group: User

Wrote

... And what about
https://en.wikipedia.org/wiki/Ackermann_function



Ackermann function is not 'primitive recursive', which means that it can't be computed only with for loops. Here an iterative implementation with a stack and no recursion.

Ackermann-Iterative.sm (8 KiB) downloaded 23 time(s).

Clipboard01.png

Best regards.
Alvaro.
2 users liked this post
Valery Ochkov 10/26/2023 12:04:00 PM, Oscar Campo 10/26/2023 4:41:00 PM
  • New Posts New Posts
  • No New Posts No New Posts