09-24-2016, 04:02 AM
Hello
Reduce the number of orders for the algorithm roots quadratic equation
Reduce the number of orders for the algorithm roots quadratic equation
Code:
«
@ HALT
@ 1. -3. 2.
@ 1. 2. 3.
@ A B C
-4 * @ Multiplica por -4 el primer nivel → A B -4*C
PICK3 * @ copia nivel 3 (A) al nivel 1, y luego lo multiplica con el nivel 2 → A B -4*C A → A B -4*C*A
OVER SQ + @ copia nivel 2 (B) a 1, lo eleva al cuadrado y suma → A B -4*C*A+B^2
√ @ saca raíz cuadrada → A B '√(B^2-4*A*C)'
UNROT @ Sube al 3cer nivel → '√(B^2-4*A*C)' A B
SWAP 2 * @ Invierte y multiplica * 2 → '√(B^2-4*A*C)' B 2*A
SWAP NEG @ Invierte y negativo → '√(B^2-4*A*C)' 2*A -B
DUP2 @ duplica los dos primeros niveles → '√(B^2-4*A*C)' 2*A -B 2*A -B
5 PICK + @ copia nivel 5 (√B^2-4*A*C) a 1 y suma → '√B^2-4*A*C' 2*A -B 2*A '-B+√(B^2-4*A*C)'
SWAP / @ Invierte y divide → '√B^2-4*A*C' 2*A -B '-B+√(B^2-4*A*C)/2*A'
4 ROLLD @ Sube al 4to nivel → '-B+√(B^2-4*A*C)/2*A' '√(B^2-4*A*C)' 2*A -B
ROT @ baja el 3cer nivel al 1er nivel → '-B+√(B^2-4*A*C)/2*A' 2*A -B '√(B^2-4*A*C)'
- SWAP / @ resta, invierte y divide → '-B+√(B^2-4*A*C)/2*A' '-B-√(B^2-4*A*C)/2*A'
»
the previous code have 26 instructions