HP49-50G Square root many (50 or more) digits
|
04-24-2021, 11:08 PM
Post: #1
|
|||
|
|||
HP49-50G Square root many (50 or more) digits
HP49-50G Square root many digits
Of course there are plenty ways of calculating the square root. Here is a sequence of commands included in one single program that can be used as a user-assigned key. ROOT2 \<< "\[] 1 Arg \[] Put below 101 if you want 100 digits " DROP 51 \-> digit \<< -105 CF DUP "\v/" SWAP + SWAP DUP \v/ SWAP DUP \->STR SWAP FP \-> nb f \<< IF f 0 \=/ THEN nb "." POS 1 - \-> pos \<< nb "." "" SREPL DROP DUP SIZE \-> nb1 sz1 \<< pos 2 / FP 0 == IF THEN sz1 2 / FP 0 \=/ IF THEN nb1 0 + 'nb1' STO END ELSE sz1 2 / FP 0 == IF THEN nb1 0 + 'nb1' STO END END nb1 \>> \>> ELSE nb "." "" SREPL DROP END \>> DUP SIZE 2 / FP 0 == "" 0 IFTE SWAP + DUP SIZE 2 / \-> n sz \<< { } 0 sz 1 - FOR i n i 2 * 1 + DUP 1 + SUB OBJ\-> + NEXT 'n' STO 0 0 0 0 1 \-> a b m s k \<< WHILE k digit < REPEAT a b - 100 * 'a' STO k sz \<= IF THEN n k GET 'a' STO+ END 1 'k' STO+ 9 's' STO WHILE 20 m * s + s * a > REPEAT -1 's' STO+ END 20 m * s + s * 'b' STO 10 m * s + 'm' STO END m \->STR \-> st \<< st 2 50 FOR i st i digit 1 - SUB OBJ\-> 0 == IF THEN 1 i 1 - SUB digit 1 - 'i' STO END NEXT OBJ\-> DUP2 == IF THEN SWAP DROP END \>> \>> \>> \>> \>> 52.3 ASN (Or 52.1 ASN or 52.2 ASN.) We assign (ASN command) this program to the square root key 52. Example 1 Introduce for instance 9 and LS User Then sqrt-key (under the EVAL-key). You get in level stack 2 sqrt(9) 3 in level stack 1 Example 2 Introduce now 9 and LS User Then sqrt-key (under the EVAL-key). You get in level stack 3 sqrt(900) 30 in level stack 2 (normally an approximation). 3, which represents the first "50 digits, less the redundant zeroes". Example 3 Insure yourself that you are in exact mode. Type 1234567891234 Then press ENTER Then press a second time ENTER Ptess * in order to multiply both identical numbers in the stack. You should get 1524157878065965654042756 Now LS User Then sqrt-key (under the EVAL-key). You get in level stack 3 "Sqrt(1524157878065965654042756)" In stack level 2 the approximative result 1.23456789124E12 And 1234567891234 in level 1 (the zeroes after the second digit 4 on the right are left out). Example 4 Insure yourself that you are in exact mode. Type as argument 1524157878065965654042757 (757 at the end, and not 756). Now LS User Then sqrt-key (under the EVAL-key). You get in level stack 3 "Sqrt(1524157878065965654042756)" In stack level 2 the approximative result 1.23456789124E12 And 1234567891234 in level 1 (the zeroes after the second digit 4 on the right are left out). Example 4 Insure yourself that you are in exact mode. Type as argument 1524157878065965654042757 (757 at the end, and not 756). Now LS User Then sqrt-key (under the EVAL-key). You get in level stack 3 "Sqrt(1524157878065965654042757)" In stack level 2 the approximative result 1.23456789124E12 And 12345678912340000000000004050000032806863265750682 in level 1. Note that, this time, the zeroes after the second digit 4 on the right do appear as, after them, do appear also different ≠0-digits. Example 5 12.178 LS-User SQRT-Key Gives "sqrt(12.178) " in stack level 3 3.48969912743 in stack level 2 and, in stack level 1, 34896991274320484031821999216879351359311052016725 Example 6 Sqrt 1.2178 Gives, in stack level 3,"sqrt(1.2178)" 1.10353975914 in stack level 2 and, in stack level 1, 11035397591387453041375873710499307803985079728862. Seems to work fine. Best is to use the phone EMU48 application if you don't want to way too much for the answers. Note that you can modify the number of digits to be calculated and shown. Regards, Gil Campart |
|||
« Next Oldest | Next Newest »
|
Messages In This Thread |
HP49-50G Square root many (50 or more) digits - Gil - 04-24-2021 11:08 PM
RE: HP49-50G Square root many (50 or more) digits - Gil - 04-27-2021, 05:30 PM
RE: HP49-50G Square root many (50 or more) digits - Gil - 05-04-2021, 02:24 PM
RE: HP49-50G Square root many (50 or more) digits - Gil - 05-04-2021, 08:19 PM
|
User(s) browsing this thread: 1 Guest(s)