ashok-khanna / RPN-30

GNU General Public License v2.0
1 stars 2 forks source link

Schematic for "Build Your Own Keypad" #10

Closed michaelaoash closed 4 years ago

michaelaoash commented 4 years ago

Here is a rough sketch of how Build-Your-Own-Keypad might work: https://photos.app.goo.gl/ABwLv5a9dvN56vuB9.

Users would see the 9-digits of the keypad with their current long-tap functions (on the left) and they would see a library of available functions (on the right, maybe grouped by math category). User would tap and drag a function to a keypad button, replacing the current long-tap function with the new one.

There should probably be a draggable "no function" or "blank" option.

We might or might not want to protect people against assigning the same function to two keys. If a function that is already assigned to a key is dragged to a new key, then both keys should be updated (leaving the previous assignment blank and ready).

This is way over my head in terms of Swift programming; I don't know very much about writing GUI. Would you be interested in presenting it as a hackathon challenge? There may be IT students at UMass or elsewhere who would have fun writing something like this as practice in Swift.

ashok-khanna commented 4 years ago

Dear Michael,

Hope you are well.

I’ve made some changes:

These changes should be pushed by Apple within 48 hours. Let me know if you don’t see it?

Still having a think about UI design, drag and drop unfortunately is quite difficult to implement.

I might create a few popular templates e.g. business (%), scientific (your layout), geometry (more trig functions, have pi as well)

At this part, I’m thinking of a broader redesign. One thing I’m thinking of is creating an “advanced” function that when you press it, it reads the x register and converts it into a function and then applies it to the two previous registers (treating y register as x and the one above yregister as y)

Eg say I want to do nPr - I would do Enter “n” ENTER Enter “r” ENTER 3 (lets set nPr function code to 3) ADV FN (e.g. longpress 1 if thats where its mapped to)

Say I want to do mean of numbers, I would enter all the numbers and then say 7 is the function code for mean, I would do 7 ENTER afterwards

How does that sound?

For people who would use this calculator frequently and make use of these advanced functions, they would quickly remember the codes they use.

Overall I’m happy with the calculator - I envisioned it only for basic arithmetic that is most user friendly. All these small add-ons are more for the outlier cases.

Cheers, Ashok


From: Michael Ash notifications@github.com Sent: Wednesday, April 15, 2020 6:56:29 PM To: premier-education/RPN-30 RPN-30@noreply.github.com Cc: Subscribed subscribed@noreply.github.com Subject: [premier-education/RPN-30] Schematic for "Build Your Own Keypad" (#10)

Here is a rough sketch of how Build-Your-Own-Keypad might work: https://photos.app.goo.gl/ABwLv5a9dvN56vuB9https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fphotos.app.goo.gl%2FABwLv5a9dvN56vuB9&data=02%7C01%7C%7C8dccaea2a8fd4633846408d7e14d2df0%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637225593903501891&sdata=cT9l4V%2BJ6IYuHjQPFIBDRcxLpeZWmDq68uNb3t67hQM%3D&reserved=0.

Users would see the 9-digits of the keypad with their current long-tap functions (on the left) and they would see a library of available functions (on the right, maybe grouped by math category). User would tap and drag a function to a keypad button, replacing the current long-tap function with the new one.

There should probably be a draggable "no function" or "blank" option.

We might or might not want to protect people against assigning the same function to two keys. If a function that is already assigned to a key is dragged to a new key, then both keys should be updated (leaving the previous assignment blank and ready).

This is way over my head in terms of Swift programming; I don't know very much about writing GUI. Would you be interested in presenting it as a hackathon challenge? There may be IT students at UMass or elsewhere who would have fun writing something like this as practice in Swift.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHubhttps://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fpremier-education%2FRPN-30%2Fissues%2F10&data=02%7C01%7C%7C8dccaea2a8fd4633846408d7e14d2df0%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637225593903511885&sdata=jQ%2BypaLEk7sopozzuAvZ7Z3%2BpGgpX418gfCkUosfHp4%3D&reserved=0, or unsubscribehttps://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FALEWW23PEXQDORDANMAUGKDRMXDJ3ANCNFSM4MIURXVA&data=02%7C01%7C%7C8dccaea2a8fd4633846408d7e14d2df0%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637225593903511885&sdata=6%2BSdtGoWPKQHBYZQ1PZNusRWxLznNh%2BSodoer4nKVmM%3D&reserved=0.

ashok-khanna commented 4 years ago

Just thinking.

Say I put sin, cos, tan, asin, acos, atan to 1-6 respectively of the advanced (ADV.FN) function codes, we can then only have one optimal layout:

e^x lnx EE x! % chg ADV.FN y^x radical 1/x

etc. (above doesn’t look particularly symmetrical however)


From: Ashok Khanna ashok.khanna@hotmail.com Sent: Wednesday, April 15, 2020 11:57:47 PM To: premier-education/RPN-30 reply@reply.github.com; premier-education/RPN-30 RPN-30@noreply.github.com Cc: Subscribed subscribed@noreply.github.com Subject: Re: [premier-education/RPN-30] Schematic for "Build Your Own Keypad" (#10)

Dear Michael,

Hope you are well.

I’ve made some changes:

These changes should be pushed by Apple within 48 hours. Let me know if you don’t see it?

Still having a think about UI design, drag and drop unfortunately is quite difficult to implement.

I might create a few popular templates e.g. business (%), scientific (your layout), geometry (more trig functions, have pi as well)

At this part, I’m thinking of a broader redesign. One thing I’m thinking of is creating an “advanced” function that when you press it, it reads the x register and converts it into a function and then applies it to the two previous registers (treating y register as x and the one above yregister as y)

Eg say I want to do nPr - I would do Enter “n” ENTER Enter “r” ENTER 3 (lets set nPr function code to 3) ADV FN (e.g. longpress 1 if thats where its mapped to)

Say I want to do mean of numbers, I would enter all the numbers and then say 7 is the function code for mean, I would do 7 ENTER afterwards

How does that sound?

For people who would use this calculator frequently and make use of these advanced functions, they would quickly remember the codes they use.

Overall I’m happy with the calculator - I envisioned it only for basic arithmetic that is most user friendly. All these small add-ons are more for the outlier cases.

Cheers, Ashok


From: Michael Ash notifications@github.com Sent: Wednesday, April 15, 2020 6:56:29 PM To: premier-education/RPN-30 RPN-30@noreply.github.com Cc: Subscribed subscribed@noreply.github.com Subject: [premier-education/RPN-30] Schematic for "Build Your Own Keypad" (#10)

Here is a rough sketch of how Build-Your-Own-Keypad might work: https://photos.app.goo.gl/ABwLv5a9dvN56vuB9https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fphotos.app.goo.gl%2FABwLv5a9dvN56vuB9&data=02%7C01%7C%7C8dccaea2a8fd4633846408d7e14d2df0%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637225593903501891&sdata=cT9l4V%2BJ6IYuHjQPFIBDRcxLpeZWmDq68uNb3t67hQM%3D&reserved=0.

Users would see the 9-digits of the keypad with their current long-tap functions (on the left) and they would see a library of available functions (on the right, maybe grouped by math category). User would tap and drag a function to a keypad button, replacing the current long-tap function with the new one.

There should probably be a draggable "no function" or "blank" option.

We might or might not want to protect people against assigning the same function to two keys. If a function that is already assigned to a key is dragged to a new key, then both keys should be updated (leaving the previous assignment blank and ready).

This is way over my head in terms of Swift programming; I don't know very much about writing GUI. Would you be interested in presenting it as a hackathon challenge? There may be IT students at UMass or elsewhere who would have fun writing something like this as practice in Swift.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHubhttps://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fpremier-education%2FRPN-30%2Fissues%2F10&data=02%7C01%7C%7C8dccaea2a8fd4633846408d7e14d2df0%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637225593903511885&sdata=jQ%2BypaLEk7sopozzuAvZ7Z3%2BpGgpX418gfCkUosfHp4%3D&reserved=0, or unsubscribehttps://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FALEWW23PEXQDORDANMAUGKDRMXDJ3ANCNFSM4MIURXVA&data=02%7C01%7C%7C8dccaea2a8fd4633846408d7e14d2df0%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637225593903511885&sdata=6%2BSdtGoWPKQHBYZQ1PZNusRWxLznNh%2BSodoer4nKVmM%3D&reserved=0.

ashok-khanna commented 4 years ago

Here is a rough sketch of how Build-Your-Own-Keypad might work: https://photos.app.goo.gl/ABwLv5a9dvN56vuB9.

Users would see the 9-digits of the keypad with their current long-tap functions (on the left) and they would see a library of available functions (on the right, maybe grouped by math category). User would tap and drag a function to a keypad button, replacing the current long-tap function with the new one.

There should probably be a draggable "no function" or "blank" option.

We might or might not want to protect people against assigning the same function to two keys. If a function that is already assigned to a key is dragged to a new key, then both keys should be updated (leaving the previous assignment blank and ready).

This is way over my head in terms of Swift programming; I don't know very much about writing GUI. Would you be interested in presenting it as a hackathon challenge? There may be IT students at UMass or elsewhere who would have fun writing something like this as practice in Swift.

I'm just seeing this comment (only saw the sketch before). Happy to have it as a hackathon challenge. Draggable is time-consuming but doable, so it would be a good intro project for IT students at UMass or somebody else. From how I understand swift, you have to move away from predetermined buttons (like I have used, e.g. UIButton) and move into more game-like coding, where you would draw each of the objects and then let it move as your finger moves across the screen.

michaelaoash commented 4 years ago

Dear Ashok,

The calculator is really great.  As you point out, the main point is ready access to RPN arithmetic, and it already does that beautifully.

Several comments:

  1. The ADV.FN idea is excellent and in particular putting the entire trig set into ADV.FN makes a lot of sense.  Everyone thinks "sin, cos, tan, asin, acos, atan" in that order; so it would be easy to remember as 1-6.  You might add Pi, D->R, and R->D to fill out 7,8,9.
  2. My thought on radical is that it might be better as strictly square root, i.e., a unary action, which people use frequently. Most people who want cube root, fourth root, 3/5th root, etc., will be comfortable using y^x having transformed x with 1/x, etc. 
  3. As I mentioned before %D is not that important to me because y/x or y/x - 1 gets the related results so quickly; I would prefer log10, which is useful in chemistry, astronomy, etc.

Happy to discuss. Thanks again and I look forward to the Testflight. 

Best regards, Michael

PS Let me ask a colleague who runs the IT minor if they have any hackathon plans. 

ashok-khanna commented 4 years ago

Dear Michael,

Great. Agree on radical, let me change it to square root. I’ll implement the adv.fn key and with that I don’t think we need the user customization screen per se. Will have a think about Log 10, % D is my most cherished function :)

Then I have to add a page for the codes for all the functions, build out the advance function list and I should really add a proper user guide as well.

Perhaps once this is done, the students can take it on and build something more from it, using their imaginations. As a simple exercise they could add functions to advanced function list. As an advanced exercise they could create a programmable calculator where users can define their own macros and then reassign the adv.fn codes to them.

And then of course, they could spend time sprucing up the animations and styling. I would be happy for the calculator to take a life of its own with the students, the main benefit being we can implicitly recruit more users to RPN :)

I will move on to looking at the FRED spreadsheet and also will be working on my mathematics wiki project.

Thanks Ashok


From: Michael Ash notifications@github.com Sent: Thursday, April 16, 2020 12:33:32 AM To: premier-education/RPN-30 RPN-30@noreply.github.com Cc: Ashok Khanna ashok.khanna@hotmail.com; Comment comment@noreply.github.com Subject: Re: [premier-education/RPN-30] Schematic for "Build Your Own Keypad" (#10)

Dear Ashok,

The calculator is really great. As you point out, the main point is ready access to RPN arithmetic, and it already does that beautifully.

Several comments:

  1. The ADV.FN idea is excellent and in particular putting the entire trig set into ADV.FN makes a lot of sense. Everyone thinks "sin, cos, tan, asin, acos, atan" in that order; so it would be easy to remember as 1-6. You might add Pi, D->R, and R->D to fill out 7,8,9.
  2. My thought on radical is that it might be better as strictly square root, i.e., a unary action, which people use frequently. Most people who want cube root, fourth root, 3/5th root, etc., will be comfortable using y^x having transformed x with 1/x, etc.
  3. As I mentioned before %D is not that important to me because y/x or y/x - 1 gets the related results so quickly; I would prefer log10, which is useful in chemistry, astronomy, etc.

Happy to discuss. Thanks again and I look forward to the Testflight.

Best regards, Michael

PS Let me ask a colleague who runs the IT minor if they have any hackathon plans.

— You are receiving this because you commented. Reply to this email directly, view it on GitHubhttps://eur04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fpremier-education%2FRPN-30%2Fissues%2F10%23issuecomment-614265540&data=02%7C01%7C%7Ca25b3e0985e6455b6e9308d7e17c44a1%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637225796177913737&sdata=jvE1AXwi10bKzGM4rHb7RuT503cIxZr%2B11VG937yPKU%3D&reserved=0, or unsubscribehttps://eur04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FALEWW242OV2454C3KY3IUG3RMYKZZANCNFSM4MIURXVA&data=02%7C01%7C%7Ca25b3e0985e6455b6e9308d7e17c44a1%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637225796177923741&sdata=q%2BpU1aHl2o7uAPX1DlGY7eBJG6cEkxbgdXMr18Th6ig%3D&reserved=0.

michaelaoash commented 4 years ago

I'd be happy to help with the user guide or other documentation. Please let me know if you plan to write it in Google Docs or LaTeX or if there is a dedicated iOS documentation system. Anyway, I'm happy to help if I can.

Please tell me more about the mathematics wiki. My father is a retired math prof, and maybe he can be pressed into service on the project.

ashok-khanna commented 4 years ago

Thanks Michael. I'm not aware of any dedicated iOS documented system (goes to show how much apps lag behind desktop computer applications), but I will probably just enter the basic guide in text within the app.

Below is a write up I did a while back on RPN, would be great if you could have a read and see if it makes sense or if there are any edits to be made :) Only if you have some time

On the maths wiki project, at this stage, its very basic. I'm trying to get my head around the following book on analysis and then store my notes online in a wiki format. The plan then is to use this experience to come up with a stylish website like GitHub that can be used as a maths resource. There are many resources on the net, but with time I want to create a comprehensive resource for undergraduate mathematics at least. Goal is to be easy to explain and understand and also to challenge thought. In my very uneducated view, I feel like a lot of students race past the fundamentals without truly questioning them or understanding the real idea behind what they are studying. Unfortunately, this can end up with many over complicated systems with verbose terminology that misses the forest for the trees. For example, in my previous field of study in Quantitative Finance, we spent so much time modelling exotic derivatives and advanced modelling techniques, but barely spent any time on sensitivity to inputs - e.g. what is the quantum of error to the system if our distribution assumptions do not hold. Its definitely touched upon, but not to the extend I feel it should be. A lot of sensitivity analysis is done via Monte Carlo simulation, but my gut feel is that we can come up with some sort of system theory to put a better framework around the impact of departures from sensitivities. This is something else I want to work on in the future, but I need to get a full understanding of analysis and group theory I think first. Sorry for going off topic 🙂

Once I develop the skeletal project with the first book, I will be sure to share with you, and perhaps once the knowledge becomes sufficiently advanced, it could be an interesting place for your father to add some of his thoughts too :) I am expecting it to take roughly 9 months to 1.5 years to complete at this rate, partly because I'm at a beginner level in university mathematics. A large part of the project is to bring myself up to speed with maths.

https://www.amazon.ae/Elementary-Complex-Analysis-Georgi-Shilov/dp/0486689220 Elementary Real and Complex Analysis by Shilov, Georgi E. - Amazon.aehttps://www.amazon.ae/Elementary-Complex-Analysis-Georgi-Shilov/dp/0486689220 Buy Elementary Real and Complex Analysis by Shilov, Georgi E. online on Amazon.ae at best prices. ✓ Fast and free shipping ✓ free returns ✓ cash on delivery available on eligible purchase. www.amazon.ae

Reverse Polish Notation (“RPN”) is a postfix mathematical notation in which operators follow their operands (digits). For example, RPN would calculate 5 + 3 as 5 3 +.

Basic Operations

RPN works on the following input method: Number1 ENTER Number2 Operator. In the example of 5 + 3, we can rewrite in RPN to 5 3 + and 5 is stored in the y-register while 3 is stored in the x-register. When entering numbers into the calculator, the use of the ENTER key separates Number1 from Number2.

Below are examples of calculations possible that use two numbers as input (binary operations).

Operator

Example in “normal” notation

(Polish Notation)

Reverse Polish Notation - Sequential Input

Result

First

Second

Third

Fourth

Addition

5 + 3 = 8

5

ENTER

3

+

8

Subtraction

10 – 3 = 7

10

ENTER

3

7

Multiplication

15 x 8 = 120

15

ENTER

5

x

120

Division

81 ÷ 3 = 27

81

ENTER

3

÷

27

y ^ x

5 ^2 = 25

5

ENTER

2

y^x

25

x √ y

3√64 = 4

64

ENTER

3

x √ y

4

EE

5.123 EE 8 = 5.123 x 108

5.123

ENTER

8

EE

5.123 x 108

Below are some custom operations in the RPN calculator that make our lives easier:

%

100 x 8% = 8

100

ENTER

8

%

8

% Δ

(60 – 55) / 55 = 0.091

55

ENTER

60

% Δ

0.091

% TOT

60 / (60 + 55) = 0.522

55

ENTER

60

% TOT

0.522

Some operations only use one number as input (unary operations). Examples below. Note how the ENTER sign is not used here as we are only dealing with one number and not two as above.

Operator

RPN Example

Result

First

Second

e^x

5

e^x

e5

ln x

7

ln x

ln(7)

1/x

8

1/x

0.125

sin x

0.5

sin

sin(0.5)

Understanding the process

(A) Understanding stack registers – part 1

Stack registers, a set of ordered list of saved numbers, is crucial to understanding an RPNcalculator.

An example of stack register is below.

Register

Stored value

5

50

4

100

3

70

2

30

1 (“y-register”)

5

0 (“x-register”)

3

The example above is a six register stack (note our calculator has an unlimited size register stack). The first two registers have special names “x-register” and “y-register” have very special importance. The values in these registers are used for your calculations. E.g. in the above examples, Number1 is stored in the “y-register” while Number 2 is stored in the “x-register”.

This brings the question on why did we have to press ENTER in our examples above? The intuitive answer is that pressing enter separates the two numbers when inputting. However, the fully correct answer is that the use of the ENTER key transfers the values in the registers up the stack.

The number you input into the calculator is ALWAYS stored in the “x-register”. To transfer this value to the “y-register” you press the ENTER key. This is illustrated below.

Step

Keystroke

Register values after keystroke

0 (x-reg)

1 (y-reg)

2

3

4

5

1

Before any keystroke

0

0

0

0

0

0

2

5

5

0

0

0

0

0

3

ENTER

0

5

0

0

0

0

4

3

3

5

0

0

0

0

Similarly, if you keep pressing the ENTER key, the values stored in the register continue to move up the stack

Step

Keystroke

Register values after keystroke

0 (x-reg)

1 (y-reg)

2

3

4

5

5

ENTER

0

3

5

0

0

0

6

ENTER

0

0

3

5

0

0

7

ENTER

0

0

0

3

5

0

8

ENTER

0

0

0

0

3

5

9

ENTER

0

0

0

0

0

3

Note that in this example, we are using a limited length stack register and values in the last register (number 5) will drop off when the stack is pushed up. However, in our calculator we use an unlimited length stack register so this drop off event does not take place.

To summarise:

  1. RPN calculators store numbers in an ordered list of registers called the stack.

  2. The number you enter into the calculator is automatically stored in the lowest register (called x-register).

  3. Pressing the ENTER key moves stored values up the stack. This is the sole purpose and effect of the ENTER key.

(B) Use of operands

Operands can be divided into two groups, binary operations that work on two numbers (stored in the y- and x-registers) and unary operations that work on one numbers (stored in the x-registers). Examples of operands available in our calculator are noted above.

An binary operation example that combines this with a view of the stack register is below.

Step

Keystroke

Register values after keystroke

0 (x-reg)

1 (y-reg)

2

3

4

5

1

Before any keystroke

0

0

0

0

0

0

2

5

5

0

0

0

0

0

3

ENTER

0

5

0

0

0

0

4

3

3

5

0

0

0

0

5

+

8

0

0

0

0

0

The result of an operation is stored in the x-register (e.g. 8 in the above). The inputs to the calculation (3 and 5 in our case) are discarded as they are no longer required.

Lets look at a similar example which uses a unary operation.

Step

Keystroke

Register values after keystroke

0 (x-reg)

1 (y-reg)

2

3

4

5

1

Before any keystroke

0

0

0

0

0

0

2

5

5

0

0

0

0

0

3

ENTER

0

5

0

0

0

0

4

3

3

5

0

0

0

0

5

1/x

0.333…

5

0

0

0

0

Again, the result of the operation (1/x or 1/3 in this case) is stored in the x-register and previous value of the x-register is discarded. However, since this calculation only uses one input, the value in the y-register is not discarded.

This means we can continue to use the value of y-register in our calculation. E.g.

Step

Keystroke

Register values after keystroke

0 (x-reg)

1 (y-reg)

2

3

4

5

1

Before any keystroke

0

0

0

0

0

0

2

5

5

0

0

0

0

0

3

ENTER

0

5

0

0

0

0

4

3

3

5

0

0

0

0

5

1/x

0.333…

5

0

0

0

0

6

/

15

0

0

0

0

0

Note in this example, we undertook a binary operation (division) without having to enter any numbers. This is because the y- and x-registers were already populated. To summarise, binary operations operate on both the y- and x-registers while unary operations operate only the x-register. Let’s continue with another example:

Step

Keystroke

Register values after keystroke

0 (x-reg)

1 (y-reg)

2

3

4

5

1

Before any keystroke

0

0

0

0

0

0

2

5

5

0

0

0

0

0

3

ENTER

0

5

0

0

0

0

4

3

3

5

0

0

0

0

5

1/x

0.333…

5

0

0

0

0

6

/

15

0

0

0

0

0

7

+

15

0

0

0

0

0

In this case, we completed another binary operation (+) but there was no values stored in the y-register. Our calculator will continue to complete calculations without a y-register value as it will use zero it’s in place (in our example 0 + 15 = 15).

The stack registers can be best thought of as stores of value which will be used for future calculations. Let’s look at a more complicated example: (5 + 3) * (10 / 2).

Step

Keystroke

Register values after keystroke

0 (x-reg)

1 (y-reg)

2

3

4

5

1

Before any keystroke

0

0

0

0

0

0

2

5

5

0

0

0

0

0

3

ENTER

0

5

0

0

0

0

4

3

3

5

0

0

0

0

5

+

8

0

0

0

0

0

6

ENTER

0

8

0

0

0

0

7

10

10

8

0

0

0

0

8

ENTER

0

10

8

0

0

0

9

2

2

10

8

0

0

0

10

/

5

8

0

0

0

0

11

X

40

0

0

0

0

0

You should be able to follow all the steps except the second last (step 10). It makes sense that the result of 10 / 2 = 5 in step 10 is stored in the x-register, but why is the value of 8 moved down to y-register from the register above (to the right)?

This is known as dropping the stack. [xxx]

To summarise:

  1. Unary operations store the results in the x-register but do not affect the rest of the stack

  2. Binary operations store the results in the x-register, discard the y-register and move the rest of the stack that is above the y-register down

And that’s it to understanding RPN!


From: Michael Ash notifications@github.com Sent: Thursday, 16 April 2020 7:20 AM To: premier-education/RPN-30 RPN-30@noreply.github.com Cc: Ashok Khanna ashok.khanna@hotmail.com; Comment comment@noreply.github.com Subject: Re: [premier-education/RPN-30] Schematic for "Build Your Own Keypad" (#10)

I'd be happy to help with the user guide or other documentation. Please let me know if you plan to write it in Google Docs or LaTeX or if there is a dedicated iOS documentation system. Anyway, I'm happy to help if I can.

Please tell me more about the mathematics wiki. My father is a retired math prof, and maybe he can be pressed into service on the project.

— You are receiving this because you commented. Reply to this email directly, view it on GitHubhttps://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fpremier-education%2FRPN-30%2Fissues%2F10%23issuecomment-614286253&data=02%7C01%7C%7C9842a06a4b8d4c7414ba08d7e182e03c%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637225824527678302&sdata=XEkWXdaRKuBWB%2F%2FUTSQC7srmvaXkz2MBeK6k9Jvm2qM%3D&reserved=0, or unsubscribehttps://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FALEWW24HQR7LG2IKDMMPY7DRMYQLHANCNFSM4MIURXVA&data=02%7C01%7C%7C9842a06a4b8d4c7414ba08d7e182e03c%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637225824527688305&sdata=sBUPYar8OgIN8mmicB2wwalXZUJkEjy6aPODGjvvauI%3D&reserved=0.

michaelaoash commented 4 years ago

Dear Ashok, A couple of quick thoughts on the math wiki project:

(1) My father's field is harmonic analysis and he knows a lot about complex and real analysis. Feel free to sign him up. He is looking for opportunities to tutor advanced students (free, of course). He is J. Marshall Ash (Professor Emeritus, Depaul University). I can let him know if you think you might contact him. He's really nice and a good teacher.

(2) You might enjoy Street Fighting Mathematics (https://mitpress.mit.edu/books/street-fighting-mathematics) which is by a friend of a friend.

(3) The Shilov looks hard -- definitely more my father's speed than mine.

I'll move your RPN documentation to a document on Google Docs if that's ok and it should be easy to co-edit it if that's ok with you. I'll send the link by conventional email.

Best, Michael

ashok-khanna commented 4 years ago

Dear Michael.

Many thanks. Harmonic analysis is also one of my favourite fields (Fourier transforms and the link between waves and physics (both my parents are physicists), and also the graphical nature of waves and trignometry). His papers on Riemann derivatives, Lebesgue measures, various uniqueness proofs look very, very interesting and I will be reading through these in my spare time, once I get a grasp of the fundamentals.

It would be fantastic to get additional help, but of course, I'd don't want to be a burden on anyone or waste his time with very basic questions. My plan is to study 1 hour each evening and then 4 hours on each weekend consistently, with a goal to eventually reach sufficient foundational knowledge to then experiment with the ideas I have in my head. Whilst I complete Shilov's book, I'm also writing down a lot of questions and not just taking statements on face value (e.g. I spent some time on looking at why multiplication is distributive over addition [a(b + c) = ab + ac] and not addition is distributive over multiplication [a + (b c) = (a + b) (a + c).], which was very insightful for me). Perhaps I could share these with your father once I'm done, if he may have some time to look at these? I think I need to get through Shilov's book and a couple of others before becoming a "useable" student.

There is a lot of work to be done on the wiki project, but I need to set the foundations correctly otherwise the issue is that all the information that people add will be difficult to transcribe to a newer, more correct format. Since a lot of knowledge is in written words (and of course in mathematical equations), so I need to do it in a way that maximum information can be extracted from it. E.g. I've set up an "equation writer" that https://34.74.20.38/wiki/Equation_Writer that allows me to create a JSON file that splits each step in the proof into its one distinct data row. I want to also create some tools to make it easier for people to use (e.g. better LaTex integration, predictive suggestions when writing information, automated theorem proving etc.)

I will definitely have a read through Street Fighting Mathematics, I have heard of it on reddit a while back on reddit, finding the time is the hardest part!

Best wishes, Ashok


From: Michael Ash notifications@github.com Sent: Friday, 17 April 2020 5:57 AM To: premier-education/RPN-30 RPN-30@noreply.github.com Cc: Ashok Khanna ashok.khanna@hotmail.com; Comment comment@noreply.github.com Subject: Re: [premier-education/RPN-30] Schematic for "Build Your Own Keypad" (#10)

Dear Ashok, A couple of quick thoughts on the math wiki project:

(1) My father's field is harmonic analysis and he knows a lot about complex and real analysis. Feel free to sign him up. He is looking for opportunities to tutor advanced students (free, of course). He is J. Marshall Ash (Professor Emeritus, Depaul University). I can let him know if you think you might contact him. He's really nice and a good teacher.

(2) You might enjoy Street Fighting Mathematics (https://mitpress.mit.edu/books/street-fighting-mathematicshttps://nam01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fmitpress.mit.edu%2Fbooks%2Fstreet-fighting-mathematics&data=02%7C01%7C%7C3370601872f6452cba3808d7e24062d6%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637226638474951681&sdata=R397S0fFtON%2BxrYRLSPDrzqFwy3T7292KKJYRhovhV8%3D&reserved=0) which is by a friend of a friend.

(3) The Shilov looks hard -- definitely more my father's speed than mine.

I'll move your RPN documentation to a document on Google Docs if that's ok and it should be easy to co-edit it if that's ok with you. I'll send the link by conventional email.

Best, Michael

— You are receiving this because you commented. Reply to this email directly, view it on GitHubhttps://nam01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fpremier-education%2FRPN-30%2Fissues%2F10%23issuecomment-614863814&data=02%7C01%7C%7C3370601872f6452cba3808d7e24062d6%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637226638474961673&sdata=nNxVJ3ZdNFAEmnehxMhqJQ8xFQsYlLnRocGFPTj56So%3D&reserved=0, or unsubscribehttps://nam01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FALEWW2YMK3BMZ7UHLYHY3SDRM5PKLANCNFSM4MIURXVA&data=02%7C01%7C%7C3370601872f6452cba3808d7e24062d6%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637226638474971668&sdata=cGoQ5lFgxzz08UNeGS7bjRENpQJ4tEGm1vTdW6b2RkI%3D&reserved=0.