HP Forums
(35s 42s/DM42 50G) Quadratic formula - Printable Version

+- HP Forums (https://www.hpmuseum.org/forum)
+-- Forum: HP Software Libraries (/forum-10.html)
+--- Forum: General Software Library (/forum-13.html)
+--- Thread: (35s 42s/DM42 50G) Quadratic formula (/thread-15052.html)



(35s 42s/DM42 50G) Quadratic formula - mchris - 05-24-2020 09:54 PM

Probably someone has done it before, but...
Inspired by a HP41C program I found for the quadratic formula that uses only the 4 level stack, no INPUTs, no extra registers, I thought maybe I could do something similar with the HP35s, despite that it doesn't have the register arithmetic with the stack registers. The program uses the equivalent formula -(b/2a)±SQRT((b/2a)^2-(c/a)). The fact there is only 2 terms makes it easier. I don't think it could be done with the (-b±SQRT(b^2-4ac))/2a formula. We press a ENTER b ENTER c XEQ Q and the 2 solutions, real or complex returned in X and Y registers. No INPUTs, no extra registers, just the stack, in just 29 steps.
Code:
Q001        LBL Q
Q002        EQN REGZ
Q003        /
Q004        RDN
Q005        X<>Y
Q006        /
Q007        2
Q008        /
Q009        +/-
Q010        ENTER
Q011        X^2
Q012        RUP
Q013        -
Q014        X>=0?
Q015        GTO Q021
Q016        +/-
Q017        SQRT
Q018        i
Q019        *
Q020        GTO Q022
Q021        SQRT
Q022        ENTER
Q023        ENTER
Q024        EQN REGT
Q025        +
Q026        RDN
Q027        -
Q028        RUP
Q029        RTN



RE: (HP35s) Quadratic formula - PedroLeiva - 05-25-2020 11:23 AM

I tried this examples from HP 25 Application Program Manual:

ax2 + bx + c = 0

Examples
1 . X2 + X - 6 = 0
2. 3 X2 + 2x -1 = 0
3. 2X2 - 3x + 5 = 0

Solution
1. D = 6.25
Xl = -3.00
X2 = 2.00
2. D = 0.44
Xl = -1.00
X2 = 0.33
3. D = -1.94
Xl , X2 = 0.75 ± 1.39 i

For the first case with your program: x1= -3, x2= 3; the rest INVALID DATA
The program looks nice, but some corrections have to be made. Pedro


RE: (HP35s) Quadratic formula - mchris - 05-25-2020 03:52 PM

I tried the examples you mentioned and I get the correct answers. Did you key the program correctly?


RE: (HP35s) Quadratic formula - PedroLeiva - 05-25-2020 04:19 PM

(05-25-2020 03:52 PM)mchris Wrote:  I tried the examples you mentioned and I get the correct answers. Did you key the program correctly?
Yes I did. Only one doubt, in steps 04 and 26, RDN code I got it by pressing blue shift (right arrow) and key coordinate 1,4 (first colum, forth row) -> E, wich shows in blue RND intaed of RDN. Maybe I am confused. Please confirm. Another option is to send an emulator file. Pedro


RE: (HP35s) Quadratic formula - pinkman - 05-25-2020 04:23 PM

(05-25-2020 03:52 PM)mchris Wrote:  I tried the examples you mentioned and I get the correct answers. Did you key the program correctly?

Same for me, it works fine.


RE: (HP35s) Quadratic formula - pinkman - 05-25-2020 04:25 PM

(05-25-2020 04:19 PM)PedroLeiva Wrote:  
(05-25-2020 03:52 PM)mchris Wrote:  I tried the examples you mentioned and I get the correct answers. Did you key the program correctly?
Yes I did. Only one doubt, in steps 04 and 26, RDN code I got it by pressing blue shift (right arrow) and key coordinate 1,4 (first colum, forth row) -> E, wich shows in blue RND intaed of RDN. Maybe I am confused. Please confirm. Pedro

RDN stands for Register Down: R↓
RUP stands for Register Up: R↑


RE: (HP35s) Quadratic formula - PedroLeiva - 05-25-2020 04:49 PM

(05-25-2020 04:25 PM)pinkman Wrote:  
(05-25-2020 04:19 PM)PedroLeiva Wrote:  Yes I did. Only one doubt, in steps 04 and 26, RDN code I got it by pressing blue shift (right arrow) and key coordinate 1,4 (first colum, forth row) -> E, wich shows in blue RND intaed of RDN. Maybe I am confused. Please confirm. Pedro

RDN stands for Register Down: R↓
RUP stands for Register Up: R↑
Great, TYVM. It Works perfect now. Pedro


RE: (35s 42s 50g) Quadratic formula - mchris - 05-04-2023 09:02 PM

The same logic can be ported to 42s/DM42 and 50g.
42s/DM42
Code:
01▸LBL "QE"
02 RCL ST Z
03 +/-
04 STO÷ ST Z
05 ÷
06 X<>Y
07 2
08 ÷
09 STO ST Z
10 STO ST T
11 X↑2
12 +
13 SQRT
14 STO- ST Z
15 +
16 END
50g
Code:
« 3 PICK / 3 ROLLD SWAP / 2 / NEG DUP SQ ROT – √ DUP2 + EVAL 3 ROLLD – EVAL »



RE: (35s 42s/DM42 50G) Quadratic formula - Joe Horn - 05-04-2023 09:59 PM

This is "cheating" Smile but the 50g can do it in two steps:

<< →V3 PROOT >>

BYTES: 18 #75EEh


RE: (35s 42s/DM42 50G) Quadratic formula - John Keith - 05-04-2023 10:57 PM

(05-04-2023 09:02 PM)mchris Wrote:  50g
Code:
« 3 PICK / 3 ROLLD SWAP / 2 / NEG DUP SQ ROT – √ DUP2 + EVAL 3 ROLLD – EVAL »

On the HP 49 and HP 50, 3 PICK can be replaced by PICK3, and 3 ROLLD can be replaced by UNROT. Each of those changes saves 2.5 bytes and a small amount of time.

Also, on the 28 and 48, ROT ROT is faster than 3 ROLLD. This only matters inside a loop but it may be useful to know.


RE: (35s 42s/DM42 50G) Quadratic formula - mchris - 05-05-2023 07:37 AM

Thanks, I'm beginner RPL user.