Hello cjiii,
That "bug" appeared in the TB forum on or about 20Nov15. It appeared to be a genuine numerical bug but sadly I do not remember exactly what was stated in the post, or what the apparently differing numbers were.
It somehow involved the value of 81/3. I replied to the post at the time, but unfortunately did not copy the original post which described the problem.
I think it amounted to the round-off "crumbs" resulting from the way values are displayed, if I recall correctly. But somehow there were conflicting values which looked as if it may have actually been some sort of bug. I am sure it has nothing to do with C or C++ because TB was NOT written in C or C++. Once I had some files with some of the original code and it looked to me to be more like machine language type stuff.
Anyway, here is a part of what was in my 22Nov15 post:
"Hmmm. That's the first bug I've ever encountered in True Basic. It's not just "version 6", since the underlying core code for any and all versions is exactly the same. I have Silver 5.33 and Gold 5.5b19, and both give this same anomaly. I'm sure the old DOS version would also behave the same, but I can't run that one now.
Since there is no one who knows how to change/modify the core code, it's not ever going to get fixed. This bug is disturbing.
Anyway, to get an idea of the problem, add the following lines and note that some digital "crumbs" are left over and somehow this may be causing the problem.
print 81/3 ! This rounds the value for display
print using "##.##############":81/3 ! Now you can see the actual value computed
print ip(81/3) ! ip() is doing exactly what it's supposed to do. It works on the actual value, not the displayed value.
print
print,"1-cube root of 1=";1-(11/3)
print,"2-cube root of 8=";2-(81/3)
print,"3-cube root of 27=";3-(271/3)
print,"4-cube root of 64=";4-(641/3)
print,"5-cube root of 125=";5-(1251/3)
print,"6-cube root of 216=";6-(2161/3)
print,"7-cube root of 343=";7-(3431/3)
print,"8-cube root of 512=";8-(5121/3)
print,"9-cube root of 729=";9-(7291/3)
print,"10-cube root of 1000=";10-(10001/3)
print,"11-cube root of 1331=";11-(13311/3)
print,"12-cube root of 1728=";12-(17281/3)
print,"13-cube root of 2197=";13-(21971/3) ! etc
print
LET x1=2^(log2(8)/3)
LET x2=10^(log10(8)/3)
LET x3=exp(log(8)/3) ! which seem to work correctly.
print
print, x1,x2,x3
END
----------------------"
Perhaps some other poster will happen along who remembers more details of this "bug" as it was posted. At any rate, if a real bug it has never caused any problem for me that I am aware of.
Hope this helps, at least a little bit.
Regards,
Mike C.
PS: I note that this forum changes the "caret" used for exponentiation in Basic notation to an actual superscript. You may have to edit the above code in order to actually run it. MC