Ackermann Function
#21
try a larger stack size, in my case 10MB worked, try with 16MB
Reply
#22
(07-16-2022, 11:47 PM)Jack Wrote: try a larger stack size, in my case 10MB worked, try with 16MB

I changed the stack to 26 MB but it just doesn't work with A(4,1).  Huh
Code: (Select All)
c_compiler\bin\g++ -s -Wfatal-errors -w -Wall qbx.cpp -lws2_32 -lwinspool parts\core\os\win\src.a -lopengl32 -lglu32 -lwinmm -lgdi32 -mwindows -static-libgcc -static-libstdc++ -D GLEW_STATIC -D FREEGLUT_STATIC -lksguid -lole32 -lwinmm -ldxguid -o ..\..\ -Wl, --stack, 26485760

It works up to A(3, 11), at A(3, 12) it's over again. There is now a time measurement for this.
Code: (Select All)
'Ackermann Funktion - 15. Juli 2022
'Absturz schon bei 4, 1 = 65533 (?)
'Na endlich funktioniert jetzt die Zeitmessung - 19. Juli 2022

Option _Explicit

Declare Function ackermann(m as Integer, n as Integer) as Long

Dim m, n As Long
Dim i, j As Integer
Dim t_start, t_end As Single

Print
Print "Ackermann Funktion - Geben Sie zwei Zahlen ein"
Print
Input "Zahl 1: ", m
Input "Zahl 2: ", n
Print

t_start = Timer
i = 0: j = 0
For i = 0 To m
  For j = 0 To n
    Print Using "Ackermann (#, ###) = ######"; i, j, ackermann(i, j)
  Next j
Next i

Print
t_end = Timer
Print Using "Verstrichene Zeit: ###.### Sekunden"; t_end - t_start;

End 'Hauptprogramm

Function ackermann (m As _Unsigned Integer, n As _Unsigned Integer)

  If m = 0 Then ackermann = n + 1

  If m > 0 And n = 0 Then
    ackermann = ackermann(m - 1, 1)
  End If
  If m > 0 And n > 0 Then
    ackermann = ackermann(m - 1, ackermann(m, n - 1))
  End If
End Function
Reply
#23
here's what my makeline_win.txt looks like
Code: (Select All)
c_compiler\bin\g++ -O2 -Wl,--stack,16777216 -s -Wfatal-errors -w -Wall qbx.cpp -lws2_32 -lwinspool parts\core\os\win\src.a -lopengl32 -lglu32 -lwinmm -lgdi32 -mwindows -static-libgcc -static-libstdc++ -D GLEW_STATIC -D FREEGLUT_STATIC -lksguid -lole32 -lwinmm -ldxguid -o ..\..\
Reply
#24
It just want not work! Not even with 26 MB. I suppose it's an attitude on my part, . . . but which?

Your "makeline":
Code: (Select All)
c_compiler\bin\g++ -O2 -Wl,--stack,26777216 -s -Wfatal-errors -w -Wall qbx.cpp -lws2_32 -lwinspool parts\core\os\win\src.a -lopengl32 -lglu32 -lwinmm -lgdi32 -mwindows -static-libgcc -static-libstdc++ -D GLEW_STATIC -D FREEGLUT_STATIC -lksguid -lole32 -lwinmm -ldxguid -o ..\..\

[Image: Ackermann-Jack2022-07-19-223757.jpg]
Reply
#25
the only thing I can think of is that the compiler is not rebuilding your program, try making some minor change to the code and see if it works
or perhaps you are editing the wrong makeline_win.txt in case that you have more than one version of QB64 installed
Reply
#26
Quote:the only thing I can think of is that the compiler is not rebuilding your program, try making some minor change to the code and see if it works
Well, but what?  Huh



Quote:or perhaps you are editing the wrong makeline_win.txt in case that you have more than one version of QB64 installed
No, it's the makeline of QB64 0.82. -- I just renamed the original "makeline" to "xmakeline..." - no change. Game over!


[Image: makeline2022-07-20-005245.jpg]
Reply
#27
I usually add a space then delete it right after, just as long the editor notices a change the compiler should rebuild your program
Reply
#28
@Kernelpanic
the problem is that in version .82 compiler options were added and it seems to ignore makeline_win.txt
click on C++ Compiler Settings and then in the C++ Linker Flags paste -Wl,--stack,16777216
Reply
#29
(07-19-2022, 11:40 PM)Jack Wrote: @Kernelpanic
the problem is that in version .82 compiler options were added and it seems to ignore makeline_win.txt
click on C++ Compiler Settings and then in the C++ Linker Flags paste  -Wl,--stack,16777216

I don't have that. But I can think of something: gcc 8.1 is obviously being used, but I already have GCC 11.2.0 installed. Maybe that has an impact. . .  Huh
And now: Thanks for your help, and Good Night. See you later . . .

[Image: GCC-11-2-0-2022-07-20-024206.jpg]
Reply
#30
I really don't understand, are you using version .82 or some other version?
[Image: image.png]
Reply




Users browsing this thread: 2 Guest(s)