Question about Stack and Roll
07-01-2016, 02:03 PM
Post: #1
 Antlab Junior Member Posts: 3 Joined: Jul 2016
Question about Stack and Roll
Hi all.
I have a question for the RPN experts.
To refresh my RPN skills, I am re-reading the original manual of the HP-15C, the Owner's Handbook. I dont' have the original HP-15C, but several Android emulators.
The question is this:
Page 34 of the manual reports the simple example that fills the four registers with the digits 1, 2, 3 and 4.
The normal method is obviously:
1) 1
2) Enter
3) 2
4) Enter
5) 3
6) Enter
7) 4

At this point, with the Roll Down key is possible to inspect and verify the contents of the registers.

My problem is that if I use Roll Down to inspect the register contents after each Enter of the previous sequence (returning each time to the X register) I found at the end that the registers are filled with the sequence:
T: 2.0000
Z: 3.0000
Y: 3.0000
X: 4.0000

This surprises me, because I was expecting the sequence 1, 2, 3, 4.
Probably I am missing some subtlety of the RPN Roll behaviuor, could you please help me to understand what happens?
Thanks.
07-01-2016, 02:53 PM
Post: #2
 striegel Member Posts: 221 Joined: May 2015
Must be a bad emulator
The behavior of that emulator is flawed. When using a physical HP-15C, it produces the expected result. On my iPhone, the Free 15C acts the same way as the real HP calculator does.

Alan
07-01-2016, 03:16 PM (This post was last modified: 07-01-2016 03:17 PM by wojtek.)
Post: #3
 wojtek Member Posts: 131 Joined: Dec 2015
RE: Question about Stack and Roll
(07-01-2016 02:03 PM)Antlab Wrote:  Hi all.
I have a question for the RPN experts.
To refresh my RPN skills, I am re-reading the original manual of the HP-15C, the Owner's Handbook. I dont' have the original HP-15C, but several Android emulators.
The question is this:
Page 34 of the manual reports the simple example that fills the four registers with the digits 1, 2, 3 and 4.
The normal method is obviously:
1) 1
2) Enter
3) 2
4) Enter
5) 3
6) Enter
7) 4

At this point, with the Roll Down key is possible to inspect and verify the contents of the registers.

My problem is that if I use Roll Down to inspect the register contents after each Enter of the previous sequence (returning each time to the X register) I found at the end that the registers are filled with the sequence:
T: 2.0000
Z: 3.0000
Y: 3.0000
X: 4.0000

This surprises me, because I was expecting the sequence 1, 2, 3, 4.
Probably I am missing some subtlety of the RPN Roll behaviuor, could you please help me to understand what happens?
Thanks.

It is correct (if you press Roll Down after each Enter). I believe all HP rpn calculators behave the same way. Make a quick test and clear the stack (press "clear" and Enter 4 times) then press: 1, Enter , 2. You will get the stack with: 0,0,1,2 (from T to X). But if you press Enter after 2 as well and then will inspect the stack it will contain: 0,1,2,2 (withs X register duplicated in Y). This is because of convention applied by HP that Enter moves up the stack and sets some flag what makes the next number entered replace the duplicated X register. If you press Roll down the flag is cleared and the duplicated value remains in X and Y registers
07-01-2016, 03:27 PM
Post: #4
 striegel Member Posts: 221 Joined: May 2015
Expected behavior would not drop the 1 from the stack
wojtek, I think you misunderstand that Antlab said the '1' was missing from the stack.
(07-01-2016 03:16 PM)wojtek Wrote:
(07-01-2016 02:03 PM)Antlab Wrote:  ... the registers are filled with the sequence:
T: 2.0000
Z: 3.0000
Y: 3.0000
X: 4.0000

This surprises me, because I was expecting the sequence 1, 2, 3, 4.
Probably I am missing some subtlety of the RPN Roll behaviuor, could you please help me to understand what happens?
Thanks.

It is correct (if you press Roll Down after each Enter). I believe all HP rpn calculators behave the same way. Make a quick test and clear the stack (press "clear" and Enter 4 times) then press: 1, Enter , 2. You will get the stack with: 0,0,1,2 (from T to X). But if you press Enter after 2 as well and then will inspect the stack it will contain: 0,1,2,2 (withs X register duplicated in Y). This is because of convention applied by HP that Enter moves up the stack and sets some flag what makes the next number entered replace the duplicated X register. If you press Roll down the flag is cleared and the duplicated value remains in X and Y registers
07-01-2016, 03:38 PM
Post: #5
 wojtek Member Posts: 131 Joined: Dec 2015
RE: Question about Stack and Roll
(07-01-2016 03:27 PM)striegel Wrote:  wojtek, I think you misunderstand that Antlab said the '1' was missing from the stack.
1 is missing because 3 has been duplicated. Of course I do not bet my head that I am correct :-)
07-01-2016, 04:05 PM
Post: #6
 Sylvain Cote Senior Member Posts: 1,700 Joined: Dec 2013
RE: Question about Stack and Roll
(07-01-2016 02:03 PM)Antlab Wrote:  This surprises me, because I was expecting the sequence 1, 2, 3, 4.
Probably I am missing some subtlety of the RPN Roll behaviuor, could you please help me to understand what happens?
Thanks.

The behaviour you should have IMHO is ...

with data entry then with a bunch of roll down
Code:
Key    X  Y  Z  T  L  StackLocked 1      1  ?  ?  ?  ?  ? ENTER  1  1  ?  ?  ?  yes 2      2  1  ?  ?  ?  yes ENTER  2  2  1  ?  ?  yes 3      3  2  1  ?  ?  yes ENTER  3  3  2  1  ?  yes 4      4  3  2  1  ?  yes RDN    3  2  1  4  ?  no RDN    2  1  4  3  ?  no RDN    1  4  3  2  ?  no RDN    4  3  2  1  ?  no

with data entry mixed with roll down
Code:
Key    X  Y  Z  T  L  StackLocked 1      1  ?  ?  ?  ?  ? RDN    ?  ?  ?  1  ?  no RDN    ?  ?  1  ?  ?  no RDN    ?  1  ?  ?  ?  no RDN    1  ?  ?  ?  ?  no 2      2  1  ?  ?  ?  no RDN    1  ?  ?  2  ?  no RDN    ?  ?  2  1  ?  no RDN    ?  2  1  ?  ?  no RDN    2  1  ?  ?  ?  no 3      3  2  1  ?  ?  no RDN    2  1  ?  3  ?  no RDN    1  ?  3  2  ?  no RDN    ?  3  2  1  ?  no RDN    3  2  1  ?  ?  no 4      4  3  2  1  ?  no RDN    3  2  1  4  ?  no RDN    2  1  4  3  ?  no RDN    1  4  3  2  ?  no RDN    4  3  2  1  ?  no

Sylvain
07-01-2016, 04:20 PM
Post: #7
 wojtek Member Posts: 131 Joined: Dec 2015
RE: Question about Stack and Roll
Sylvain, you have forgotten Enter after each number in the second example!
I have missed in turn that Antlab pressed Roll down 4 times after each Enter
07-01-2016, 06:18 PM (This post was last modified: 07-01-2016 11:19 PM by Sylvain Cote.)
Post: #8
 Sylvain Cote Senior Member Posts: 1,700 Joined: Dec 2013
RE: Question about Stack and Roll
(07-01-2016 04:20 PM)wojtek Wrote:  Sylvain, you have forgotten Enter after each number in the second example!
I have missed in turn that Antlab pressed Roll down 4 times after each Enter

You are right, but still, I suspect that Antlab did not do exactly what he says he did because I do not have the same result here
Code:
Key    X  Y  Z  T  L  StackLocked 1      1  ?  ?  ?  ?  ? ENTER  1  1  ?  ?  ?  yes RDN    1  ?  ?  1  ?  no RDN    ?  ?  1  1  ?  no RDN    ?  1  1  ?  ?  no RDN    1  1  ?  ?  ?  no 2      2  1  1  ?  ?  no ENTER  2  2  1  1  ?  yes RDN    2  1  1  2  ?  no RDN    1  1  2  2  ?  no RDN    1  2  2  1  ?  no RDN    2  2  1  1  ?  no 3      3  2  2  1  ?  no ENTER  3  3  2  2  ?  yes RDN    3  2  2  3  ?  no RDN    2  2  3  3  ?  no RDN    2  3  3  2  ?  no RDN    3  3  2  2  ?  no 4      4  3  3  2  ?  no ENTER  4  4  3  3  ?  yes RDN    4  3  3  4  ?  no RDN    3  3  4  4  ?  no RDN    3  4  4  3  ?  no RDN    4  4  3  3  ?  no

Best regards,

Sylvain

edit: copy/paste error, corrected
07-01-2016, 06:38 PM
Post: #9
 wojtek Member Posts: 131 Joined: Dec 2015
RE: Question about Stack and Roll
(07-01-2016 06:18 PM)Sylvain Cote Wrote:  You are right, but still, I suspect that Antlab did not do exactly what he says he did because I do not have the same result here

Yes, that's possible. It is very easy to make a mistake, for example press Roll down once more or once less instead of 4 times assumed
07-01-2016, 07:07 PM
Post: #10
 Antlab Junior Member Posts: 3 Joined: Jul 2016
RE: Question about Stack and Roll
Thanks a lot.
If I understand correctly, the answer to my doubt is explained by the effects of the flag created by pressing Enter and removed by pressing Roll Down, as Wojtek illustrated. I did not know about the flag, this makes sense now.
Actually, Sylvain, also your example is helpful. I think you obtain a slightly different result because I did not press Enter after inserting the final digit, 4.
I will make some further tests, but I am glad I asked here, because in the manual the question of the flag was not clearly explained.
07-01-2016, 07:33 PM (This post was last modified: 07-01-2016 07:44 PM by Guenter Schink.)
Post: #11
 Guenter Schink Senior Member Posts: 414 Joined: Dec 2013
RE: Question about Stack and Roll
(07-01-2016 02:03 PM)Antlab Wrote:  Hi all.
I have a question for the RPN experts.
To refresh my RPN skills, I am re-reading the original manual of the HP-15C, the Owner's Handbook. I dont' have the original HP-15C, but several Android emulators.
The question is this:
Page 34 of the manual reports the simple example that fills the four registers with the digits 1, 2, 3 and 4.
The normal method is obviously:
1) 1
2) Enter
3) 2
4) Enter
5) 3
6) Enter
7) 4

At this point, with the Roll Down key is possible to inspect and verify the contents of the registers.

My problem is that if I use Roll Down to inspect the register contents after each Enter of the previous sequence (returning each time to the X register) I found at the end that the registers are filled with the sequence:
T: 2.0000
Z: 3.0000
Y: 3.0000
X: 4.0000

This surprises me, because I was expecting the sequence 1, 2, 3, 4.
Probably I am missing some subtlety of the RPN Roll behaviuor, could you please help me to understand what happens?
Thanks.

It's the same on the real 15c. When you enter "1" "Enter" "Rdn" you'll recognise that at the first "Rdn" the "1" blinks shortly and only the next "Rdn" will show another value. If you don't enter other values rather than continue pushing "Rdn" you'll see that "1" is twice on the stack.

And this happens consequently as you continue to enter the numbers 2,3,and 4 this way.
The two "1s" and one of the duplicate "2s" are pushed from the stack, leaving one remaining "2", the two "3s" and finally the "4".

Page 33 of the manual. "enter"copies the number in the display to the y-register and prepares the x-register (display) for another input. But when you don't enter a number but execute a function (e.g. sin, ln) this will be done on the x-register. "Rdn" also is such a function, therefore you end up with the y and x-register having the same content and actually the "Rdn" didn't do a roll down yet.

HTH, Günter

Edit: have a look at appendix B "Stack lift ..."
07-02-2016, 04:52 PM
Post: #12
 Antlab Junior Member Posts: 3 Joined: Jul 2016
RE: Question about Stack and Roll
Hi Guenter,
thanks for the further explanation.
Following your suggestion, I also checked the Appendix B of the manual. The problem, in my opinion, is that the precise behaviour of the Roll function is not well described. For this reason I am happy I asked here in the forum, now I have a clear answer to my original doubt.
07-02-2016, 06:24 PM (This post was last modified: 07-02-2016 06:25 PM by Guenter Schink.)
Post: #13
 Guenter Schink Senior Member Posts: 414 Joined: Dec 2013
RE: Question about Stack and Roll
(07-02-2016 04:52 PM)Antlab Wrote:  Hi Guenter,
thanks for the further explanation.
Following your suggestion, I also checked the Appendix B of the manual. The problem, in my opinion, is that the precise behaviour of the Roll function is not well described. For this reason I am happy I asked here in the forum, now I have a clear answer to my original doubt.

Yes perhaps it could be explained better. But if you look at the top of page 210, you'll read that there are only 4 "Stack disabling functions". Further, on page 211 neutral operations are listed with their specific behaviour described. "Rdn" isn't on either list, so...

Günter
 « Next Oldest | Next Newest »

User(s) browsing this thread: 1 Guest(s)