Hi, I find that the exponentiation sign works well in mathprint mode on TI-84+CE (normal right associativity behavior). For those who don't know about operator associativity, it's just the order in which a bunch of same consecutive operators is applied in a math expression. Normally, exponentiation is right associative, meaning that expressions like a^b^c are evaluated as a^(b^c), calculated/associating operands from right to left.

However, when I switched to classic mode, the expression is evaluated from left to right, like a^b^c is evaluated as (a^b)^c.

For the reason why exponentiation is right associative, look here.
That bug has been there since at least 1999 (in the TI-83 Plus) and probably since the TI-81 came out in 1990. (The TI-84 Plus CE software still shares most of its core mathematics code with the TI-81.) My guess is that the TI-81's EOS didn't simply support right associativity, whether through oversight or just having run out room in the ROM, and they never got around to adding it back until MathPrint came about. It's likely not a bug that the correct behavior is only used with MathPrint; making it that way provides for compatibility with existing BASIC code and formulas that assumed the incorrect behavior would be used.

The TI-89 doesn't do it, though. Its software was written from-scratch and shares no code with e/Z80 calculators like the TI-83 Plus.

It's not the worst unfixed bug, though. At least that occurs consistently and follows an obvious logic. Previous models would rarely throw an ERR:BAD ADDRESS when trying to unarchive variables due to TI using an ADC instead of ADD instruction for no apparent reason. The ERR:BAD ADDRESS bug was is in every calculator from the TI-83 Plus to the TI-84 Plus C SE. The only reason the TI-84 Plus CE doesn't have it is because they had to rewrite the archive routines for the eZ80 CPU.
In mathprint mode, when you type in 2^3^4 it is actually automatically inserting parentheses, so ^ is translated to ^(.

If you enter that in mathprint mode, then hit enter, switch to classic and recall the entry ([2nd][ENTER]), you will see that it is explicitly represented as 2^(3^4).

It's not the parser doing the work, it's MathPrint correcting the expression before passing it to the parser.
I've noticed this before and was told that it was a known thing, but that fixing it would be complicated and it would break cross-compatibility between older and newer basic programs if you suddenly assume the opposite of what was previously assumed. This bug isn't present in HP and Casio calcs (obviously they haven't all been checked but assuming all the models use similar roms) though, which can sometimes lead to the exact same expression being evaluated differently depending on the manufacturer of the calc Laughing
Thank you guys so much for your detailed replies. I will watch out for the bug. This is one of the things that drive me crazy about TI calculators.
alienk wrote:
This is one of the things that drive me crazy about TI calculators.

Join the club
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 1 of 1
» All times are GMT - 5 Hours
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum