(35S) Smart quadratic equation solver with complex roots - 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) Smart quadratic equation solver with complex roots (/thread-8304.html) (35S) Smart quadratic equation solver with complex roots - stephane - 05-06-2017 10:36 AM Yet another quadratic solver, but I love mine because: - it preserves all the variables of the calculator - it uses only the stack (input and output) - it computes real or complex roots - it displays a text notifying if there are 1 or 2 real roots, or 2 complex roots Equation is of the form: a.x² + b.x + c = 0 Determinant is: delta = b² - 4.a.c Stack before the program: Z: a Y: b X: c Run the program: XEQ Q It first shortly displays one of the following messages: SINGLE ROOT 2 REAL ROOTS 2 CPLX ROOTS Stack after: T: b Z: delta (determinant) Y: x1 (first root) X: x2 (second root) Code of the solver: Code: ``` Q001 LBL Q Q002 SQ(REGY)-4*REGZ*REGX    CK=E203 LN=20 Q003 x<>y Q004 Rdown Q005 x!=0? Q006 GTO Q014 Q007 SF 10 Q008 SINGLE ROOT    CK=230E LN=11 Q009 PSE Q010 CF 10 Q011 -REGY/REGZ/2    CK=5AC5 LN=12 Q012 ENTER Q013 RTN Q014 x<0? Q015 GTO Q023 Q016 SF 10 Q017 2 REAL ROOTS    CK=9C4D LN=12 Q018 PSE Q019 CF 10 Q020 (-REGY+SQRT(REGX))/REGZ/2    CK=2A08 LN=25 Q021 (-REGZ-SQRT(REGY))/REGT/2    CK=E499 LN=25 Q022 RTN Q023 SF 10 Q024 2 CPLX ROOTS Q025 PSE Q026 CF 10 Q027 (-REGY+SQRT(-REGX)*i)/REGZ/2    CK=1DFA LN=28 Q028 (-REGZ-SQRT(-REGY)*i)/REGT/2    CK=D662 LN=28 Q029 RTN CK=75AA LN=260``` To check the code: 2.x²+3.x+4=0 2 ENTER 3 ENTER 4 XEQ Q ENTER should give: 2 CPLX ROOTS Z: -23.0000 Y: -0.7500 i 1.1990 X: -0.7500 i -1.1990 2.x²+7.x+3=0 2 ENTER 7 ENTER 3 XEQ Q ENTER should give: 2 REAL ROOTS Z: 25.0000 Y: -0.5000 X: -3.0000 2.x²-12.x+18=0 2 ENTER 12 +/- ENTER 18 XEQ Q ENTER should give: SINGLE ROOT Z: 0.0000 Y: 3.0000 X: 3.0000