But author of the video was surprised that the calculator was using Reversed Polish Notation(RPN). Hewlett-Packard (HP) produced a whole line of calculators that also used RPN. It is a pretty smart idea to use on calculators where there is not a lot of memory available.
Depends on what you are doing, but it can be fewer keystrokes for more complicated calculations, aka not basic arithmetic like 33 x 42, which is six keystrokes either way (3,3,x,4,2,= or 3,3,Enter,4,2,x).
Edit: replaced asterisks as multiplication symbol for x’s to avoid markup processing.
RPN calculators are still being sold by HP. This includes financial, scientific, and graphing calculators.
The current RPN HP graphing calculators leave a lot left to be desired, and aren’t as good as the old ones. I have an HP 50g RPN graphing calculator which is amazing. But, there are even better ones that are no longer in production.
RPN is still being used, and it really should be taught in schools, including at the elementary levels. It makes more sense than traditional calculator entry. Once you learn it, you never go back.
The reason that RPN is used is because it reduces errors with calculation, although it can be fewer keystrokes. It certainly is more concise. It also makes more sense (logically) when entering numerical data. It is just like how you would write 128 + 256 on the whiteboard. On a whiteboard you would write a 128 and then a 256 on the row below it then a + (on the left hand side). In RPN it would be 128 ENTER 256 +.
Just FYI: RPN operates using stacks. Because of the way things are displayed on stacks, it helps prevent entry errors, as it is easier to decode and review.
On an RPN calcultor: if you put in 128 and press ENTER, it goes to the highest empty stack. The ENTER means that nothing else can be entered into the stack unless an operand meant for 2 stacks is used (+, -, *, /, etc.).
(Stack) 1: 128
(Stack) 2: (null--nothing here)
(Stack) 3: (null--nothing here)
When you press 256 the result looks like this in an RPN calculator.
(Stack) 1: 128
(Stack) 2: 256
(Stack) 3: (null--nothing here)
When you press + in the above state, Stack 1 is added to Stack 2, and Stack 2 becomes null (empty)
I am an American (culturally) who lives in Croatia, so I am aware of the educational system in mainland Europe and also the UK.
In the US, we only learn "traditional" (non-RPN), calculator entry, and this is even at university level! But, calculators are only allowed for checking our work in mathematics courses, at both secondary and university levels, and never for quizzes/exams/proctored material. But, computer science in secondary school (high school) may be an exception as RPN is a classic example of the usage of stacks.
I think a lot of this has to do with contracts that school districts in the United States have with the calculator ("educational") companies, which have educational material (which is integrated into standard textbooks that you use for the school year) to assist in teaching calculator entry techniques and usage. They also get quite good deals on Texas Instruments calculators, which have no RPN features whatsoever. I really do think that kids (and their educators) not knowing RPN is a huge disservice.
I personally taught myself RPN on an HP 50g while doing my undergraduate electrical engineering coursework, specifically during circuit analysis 1 and electromagnetics 1. Everyone else was using a TI-89 (Texas Instruments 89) and they were learning off of each other how to use various techniques to solve problems, while I was alone with learning stuff on the calculator. Because of the complex entry of various different unit types and integrals, it was a pretty steep learning curve, on the HP 50g, and it took me about a month to get proficient at it.(This is difficult to do on top of the coursework because you are going through your weed-out courses at a "traditional" engineering program where over half the class will not pass these courses! As in, they will either get a D+ or lower, or get a W--a withdrawal grade).
But, it saved me and paid off on exams, while I was using the HP 50t, as people made all sorts of errors on their TI-89s with these really difficult equations, and got major points off. Although many different types of errors are made, a critical one is a missing parenthesis, which causes a ton of points to be taken off on an exam. Also, people with TI-89s ran out of time "double checking for errors" (such as for a missing parenthesis) on exams, and this alone can be the difference between passing and failing a course. The way the stack works on a HP 50g seriously reduces errors.
My (American) father also taught himself RPN at university when he was studying to become an accountant. But, in his case, it was easier to learn, although still not necessarily easy.
The benefits of the units system in the HP 48/49/50 series really cannot be overstated. You don't just get free conversions between compatible unit types, you also get realtime type checking to prevent invalid operations on quantities with incompatible units. This eliminates a very common source of errors, and also encourages more rigorous labeling of quantities with units when you're working on paper.
The TI-89 technically can also compute using quantities tagged with unit information, but the UI for it is too convoluted to be useful.
I don't know where the notion that RPN is more intuitive comes from. My dad had an HP-45 when I was a kid and I didn't quite grasp the concept of a stack. You've also got it wrong in your example (you've got stack 1 and 2 reversed in step 2), so I guess it's not that obvious for grown ups either! When you write a formula on the blackboard it is something like (5+6)*3, not 3⏎5⏎6⏎+* or whatever. Takes a bit of mental gymnastics to convert between the two, and you need to keep the state of the stack in your head as you go. Not really viable for anything too complicated. I guess that regular calculators suck for that too, in my opinion the best are symbolic calcs where you enter the formula as you would write it, parenthesis and all, which as a bonus allows you to go back and fix mistakes and reuse formulas easily.
Of course for formula evaluation the ability to enter a formula directly and pressing EVAL is optimal. But for ad hoc calculation nothing beats RPN in my opinion. The HP 48 series calculators can do both.
It's tricky to learn that in RPN. It's nice to be able to go back to algebraic mode on the HP calculators in rare situations where you do not know the right syntax (which can be arbitrary by calculator) for entry of equations.
It took me about a month to learn RPN along with equation entry, and I did that while in my weed-out courses in engineering school. Everyone was using a different calculator than me, and while they could directly learn from each other, I had to figure out how to enter stuff on my own. But, it paid off on exams, as people who made parenthesis or entry errors got major points off. It also saved time on exams and I really did not have to double check for entry errors, which can be quite tedious on electrical engineering exams.
Descriptions of stack in B3-34 family - MK-54, MK-56, MK-61 included - went like this:
Imagine a stack with the following registers:
T: 0
Z: 0
Y: 0
X: 0
X1: 0
The X register is the same as what you see on the indicator. There are 3 registers above X and one special register ("previous result") which is X1. When you enter digits, they go into X register, so pressing "1" "2" "3" leads to changes in X:
X: 1
X: 12
X: 123
Now if you want to add another number to what you have in X, you have to somehow tell the calculator that you're done entering the number in X. The button for that was originally just "arrow up" (^) , later it became "B arrow up" (B^), when you press it, X gets copied to Y, previous Y content gets moved to Z, previous Z content - to T, previous T content is lost. So after "123" "B^" you have
T: 0
Z: 0
Y: 123
X: 123
X1: 0
Now you may enter a new number in X; right after B^ newly entered digit will replace the content in X, and after that each additional digit will be considered a part of the number being entered. So, after "123" "B^" "56" you have:
T: 0
Z: 0
Y: 123
X: 56
X1: 0
Now you can enter the operator - after you've already entered both operands, that's why it's "Reverse" Polish Notation (forward one is in e.g. Lisp lists). If you enter "+", you'll get:
T: 0
Z: 0
Y: 0
X: 179
X: 56
So the "+" operator works on content of Y and X, Z gets copied to Y, T gets copied to Z and previous T content remains in T. X1 now has previous value - what was in X before operator, that is, 56.
If you want to calculate 1 + 2 x 3, you enter 1 B^ 2 B^ 3 x + , and if you want to calculate (1 + 2) x 3, you enter 1 B^ 2 + 3 x . "x" here is "multiply". Notice you don't need to enter B^ again if what you have in X is the result of operator application, not just entered from the keyboard.
There are commands X <-> Y, which swaps X and Y (and X also gets copied to X1), and "circular" (looks like "recycle" icon, which is triangular with 3 arrows, only this icon is round), which sends X to T (and X1), T to Z, Z to Y and Y to X. Four level deep stack is usually enough for many manual problems.
23 comments
[ 5.4 ms ] story [ 61.9 ms ] threadBut author of the video was surprised that the calculator was using Reversed Polish Notation(RPN). Hewlett-Packard (HP) produced a whole line of calculators that also used RPN. It is a pretty smart idea to use on calculators where there is not a lot of memory available.
Edit: replaced asterisks as multiplication symbol for x’s to avoid markup processing.
The current RPN HP graphing calculators leave a lot left to be desired, and aren’t as good as the old ones. I have an HP 50g RPN graphing calculator which is amazing. But, there are even better ones that are no longer in production.
Swiss Micros makes remakes of such amazing HP calculators: https://www.swissmicros.com/products
At some point I will purchase the DM41X from there.
The reason that RPN is used is because it reduces errors with calculation, although it can be fewer keystrokes. It certainly is more concise. It also makes more sense (logically) when entering numerical data. It is just like how you would write 128 + 256 on the whiteboard. On a whiteboard you would write a 128 and then a 256 on the row below it then a + (on the left hand side). In RPN it would be 128 ENTER 256 +.
Just FYI: RPN operates using stacks. Because of the way things are displayed on stacks, it helps prevent entry errors, as it is easier to decode and review.
On an RPN calcultor: if you put in 128 and press ENTER, it goes to the highest empty stack. The ENTER means that nothing else can be entered into the stack unless an operand meant for 2 stacks is used (+, -, *, /, etc.).
(Stack) 1: 128
(Stack) 2: (null--nothing here)
(Stack) 3: (null--nothing here)
When you press 256 the result looks like this in an RPN calculator.
(Stack) 1: 128
(Stack) 2: 256
(Stack) 3: (null--nothing here)
When you press + in the above state, Stack 1 is added to Stack 2, and Stack 2 becomes null (empty)
(Stack) 1: 384
(Stack) 2: (null--nothing here)
(Stack) 3: (null--nothing here)
In the US, we only learn "traditional" (non-RPN), calculator entry, and this is even at university level! But, calculators are only allowed for checking our work in mathematics courses, at both secondary and university levels, and never for quizzes/exams/proctored material. But, computer science in secondary school (high school) may be an exception as RPN is a classic example of the usage of stacks.
I think a lot of this has to do with contracts that school districts in the United States have with the calculator ("educational") companies, which have educational material (which is integrated into standard textbooks that you use for the school year) to assist in teaching calculator entry techniques and usage. They also get quite good deals on Texas Instruments calculators, which have no RPN features whatsoever. I really do think that kids (and their educators) not knowing RPN is a huge disservice.
I personally taught myself RPN on an HP 50g while doing my undergraduate electrical engineering coursework, specifically during circuit analysis 1 and electromagnetics 1. Everyone else was using a TI-89 (Texas Instruments 89) and they were learning off of each other how to use various techniques to solve problems, while I was alone with learning stuff on the calculator. Because of the complex entry of various different unit types and integrals, it was a pretty steep learning curve, on the HP 50g, and it took me about a month to get proficient at it.(This is difficult to do on top of the coursework because you are going through your weed-out courses at a "traditional" engineering program where over half the class will not pass these courses! As in, they will either get a D+ or lower, or get a W--a withdrawal grade).
But, it saved me and paid off on exams, while I was using the HP 50t, as people made all sorts of errors on their TI-89s with these really difficult equations, and got major points off. Although many different types of errors are made, a critical one is a missing parenthesis, which causes a ton of points to be taken off on an exam. Also, people with TI-89s ran out of time "double checking for errors" (such as for a missing parenthesis) on exams, and this alone can be the difference between passing and failing a course. The way the stack works on a HP 50g seriously reduces errors.
My (American) father also taught himself RPN at university when he was studying to become an accountant. But, in his case, it was easier to learn, although still not necessarily easy.
The TI-89 technically can also compute using quantities tagged with unit information, but the UI for it is too convoluted to be useful.
These things seem to not be for me.
But do students still use calculators, at all? What do they use now? I honestly have no idea.
It took me about a month to learn RPN along with equation entry, and I did that while in my weed-out courses in engineering school. Everyone was using a different calculator than me, and while they could directly learn from each other, I had to figure out how to enter stuff on my own. But, it paid off on exams, as people who made parenthesis or entry errors got major points off. It also saved time on exams and I really did not have to double check for entry errors, which can be quite tedious on electrical engineering exams.
You can do amazing things with just 105 bytes of RAM, like playing real-time games using DEG-GRAD-RAD switch as a joystick, for example.
Imagine a stack with the following registers:
T: 0
Z: 0
Y: 0
X: 0
X1: 0
The X register is the same as what you see on the indicator. There are 3 registers above X and one special register ("previous result") which is X1. When you enter digits, they go into X register, so pressing "1" "2" "3" leads to changes in X:
X: 1
X: 12
X: 123
Now if you want to add another number to what you have in X, you have to somehow tell the calculator that you're done entering the number in X. The button for that was originally just "arrow up" (^) , later it became "B arrow up" (B^), when you press it, X gets copied to Y, previous Y content gets moved to Z, previous Z content - to T, previous T content is lost. So after "123" "B^" you have
T: 0
Z: 0
Y: 123
X: 123
X1: 0
Now you may enter a new number in X; right after B^ newly entered digit will replace the content in X, and after that each additional digit will be considered a part of the number being entered. So, after "123" "B^" "56" you have:
T: 0
Z: 0
Y: 123
X: 56
X1: 0
Now you can enter the operator - after you've already entered both operands, that's why it's "Reverse" Polish Notation (forward one is in e.g. Lisp lists). If you enter "+", you'll get:
T: 0
Z: 0
Y: 0
X: 179
X: 56
So the "+" operator works on content of Y and X, Z gets copied to Y, T gets copied to Z and previous T content remains in T. X1 now has previous value - what was in X before operator, that is, 56.
If you want to calculate 1 + 2 x 3, you enter 1 B^ 2 B^ 3 x + , and if you want to calculate (1 + 2) x 3, you enter 1 B^ 2 + 3 x . "x" here is "multiply". Notice you don't need to enter B^ again if what you have in X is the result of operator application, not just entered from the keyboard.
There are commands X <-> Y, which swaps X and Y (and X also gets copied to X1), and "circular" (looks like "recycle" icon, which is triangular with 3 arrows, only this icon is round), which sends X to T (and X1), T to Z, Z to Y and Y to X. Four level deep stack is usually enough for many manual problems.