Extended Precision Roots II

About the program

This program calculates and prints roots of numbers between 1 and 100 to 400 places. The program was originally written by Sven-Arne Wallin, after I had send him an article from the HP Journal [May 1977, pages 22-24] which described the method used in (HP-) calculators to find square roots. [Two extensions, which allow finding of roots of numbers with more than 10 digits and finding more than 400 digits, were written by me and an also included program for re-displaying the calculated root was originally written by Palmer O. Hanson, the editor of TI\PPC Notes]

The version presented here has been changed considerably with respect to Sven's original version. Modifications include:

Method Used

To obtain the high precision this program delivers, use is made of the following method: :lq.

  1. The estimated root, R, is set to zero.
  2. An auxiliary variable, Y, is set to one.
  3. The program now executes the following steps for every digit of the root that is wanted.
    1. The estimated root is multiplied with 10.
    2. After having performed the multiplication, it starts a second loop, which continues until Y is larger than X. In this loop it performs these steps:
      1. Y is subtracted from X, giving the new X.
      2. One is added to R, giving the next estimate of &SQR.X.
      3. Two is added to Y, giving the new Y.
      :lp.After dropping out of the above loop, R contains the first digit of &SQR.X.
    3. X is now multiplied by 100.
    4. Y is multiplied by 10 and 9 is subtracted from it.

The above process is a only a rough outline of the method used. A much better description can be found in the above mentioned article in the HP Journal. :note.Another way of expressing the above method can be found in the "Some last notes" section at the end of this chapter. :elq .pa

The TI-59[/PC-100] Versions

The Standard Version

User Instructions

  1. Enter the program listed on the next page.
  2. Enter the argument and press A. The argument must be greater than 1 and less than 100.
  3. Enter the number of groups of ten digits and press R/S. The number must not exceed 40.
  4. When a flashing\1 appears press 7 EE to start the calculations in Fast Mode.
  5. If a printer is being used then each group of ten digits is printed as it is completed. The calculator stops with a zero in the display when the calculations are complete.
  6. To generate additional groups of ten digits after the calculator has stopped, you can enter the number of additional groups and press C (for C(ontinue)). You must make sure that the total number of groups entered using modes A and C does not exceed 40.
  7. With the continue mode the calculator will stop with a flashing 1.\E10 in the display. Again, you press 7 EE to start calculations in Fast Mode. Additional groups of ten digits will be printed as they are completed.
  8. You may repeat the continue mode as many times as you like, providing that the total number of groups of ten digits does not exceed 40.
  9. For operation without a printer, you can change the NOP at step\087 into R/S. The program will stop to permit read-out of each group of ten digits as it is completed. Press R/S to proceed to the next group.
  10. After you have found 400 digits with this program, you can find 399 more with the Very Extended Precision Extension.

Listing of the Standard Version

000  92 RTN         060  06  06         120  13  13         180  93  .
001  09  9          061  01  1          121  02  2          181  07  7
002  00  0          062  93  .          122  42 STO         182  02  2
003  42 STO         063  97 DSZ         123  07  07         183  54  )
004  03  03         064  07  07         124  05  5          184  61 GTO
005  42 STO         065  00  00         125  00  0          185  02  02
006  05  05         066  40  40         126  42 STO         186  39  39
007  05  5          067  69 OP          127  06  06         187  00  0
008  00  0          068  29  29         128  43 RCL         188  00  0
009  42 STO         069  02  2          129  08  08         189  00  0
010  04  04         070  44 SUM         130  48 EXC         190  00  0
011  42 STO         071  89  89         131  03  03         191  00  0
012  06  06         072  61 GTO         132  29 CP          192  00  0
013  43 RCL         073  00  00         133  22 INV         193  00  0
014  08  08         074  01  01         134  74 SM*         194  00  0
015  42 STO         075  97 DSZ         135  06  06         195  00  0
016  07  07         076  00  00         136  69 OP          196  00  0
017  94 +/-         077  00  00         137  36  36         197  00  0
018  44 SUM         078  96  96         138  32 X:T         198  00  0
019  03  03         079  24 CE          139  74 SM*         199  00  0
020  44 SUM         080  01  1          140  06  06         200  76 LBL
021  04  04         081  00  0          141  53  (          201  11  A
022  73 RC*         082  48 EXC         142  73 RC*         202  50 IxI
023  03  03         083  00  00         143  06  06         203  32 X:T
024  69 OP          084  48 EXC         144  55  ö          204  69 OP
025  23  23         085  09  09         145  43 RCL         205  00  00
026  32 X:T         086  99 PRT         146  01  01         206  69 OP
027  73 RC*         087  68 NOP         147  54  )          207  05  05
028  04  04         088  69 OP          148  53  (          208  09  9
029  69 OP          089  28  28         149  59 INT         209  69 OP
030  24  24         090  97 DSZ         150  65  x          210  17  17
031  67 X=T         091  02  02         151  32 X:T         211  47 CMS
032  00  00         092  00  00         152  43 RCL         212  32 X:T
033  22  22         093  96  96         153  01  01         213  42 STO
034  22 INV         094  00  0          154  54  )          214  49  49
035  77 XòT         095  81 RST         155  97 DSZ         215  99 PRT
036  00  00         096  43 RCL         156  03  03         216  92 RTN
037  75  75         097  07  07         157  01  01         217  42 STO
038  29 CP          098  42 STO         158  33  33         218  02  02
039  00  0          099  03  03         159  09  9          219  01  1
040  69 OP          100  01  1          160  00  0          220  00  0
041  35  35         101  00  0          161  97 DSZ         221  42 STO
042  69 OP          102  49 PRD         162  07  07         222  00  00
043  36  36         103  09  09         163  01  01         223  22 INV
044  22 INV         104  69 OP          164  26  26         224  28 LOG
045  74 SM*         105  35  35         165  09  9          225  42 STO
046  06  06         106  64 PD*         166  94 +/-         226  01  01
047  73 RC*         107  05  05         167  61 GTO         227  01  1
048  05  05         108  97 DSZ         168  00  00         228  42 STO
049  22 INV         109  03  03         169  70  70         229  08  08
050  74 SM*         110  01  01         170  76 LBL         230  42 STO
051  06  06         111  04  04         171  13  C          231  89  89
052  73 RC*         112  33 Xý          172  42 STO         232  69 OP
053  06  06         113  69 OP          173  02  02         233  05  05
054  77 XòT         114  36  36         174  53  (          234  60 DEG
055  00  00         115  64 PD*         175  43 RCL         235  04  4
056  62  62         116  06  06         176  01  01         236  05  5
057  43 RCL         117  97 DSZ         177  85  +          237  30 TAN
058  01  01         118  07  07         178  01  1          238  33 Xý
059  74 SM*         119  01  01         179  01  1          239  86 STF
<\pre>

The Long Number Version

User Instructions

  1. Enter the program listed on the next page.
  2. Enter the number of digits in the number, divided by 10 and rounded to the next greater integer and press A. The number of digits must be greater than 10 and less than or equal to 400.
  3. Enter the number in groups of ten digits and press R/S. The number has to be entered from the left to the right (pad the last group with zeroes) and all parts must have the same exponent, except for trailing zeroes.

    An example:

    To find the root of 1.2345\67891\01112\13141\51617, you perform the following steps:

    1. Enter 3 and press A.
    2. Enter 1.234567891 and press R/S.
    3. Enter 0.111213141 and press R/S.
    4. Enter 5.161700000 and press R/S.
  4. When a flashing 1 appears press 7 EE to start the calculations in Fast Mode.
  5. If a printer is being used then each group of ten digits is printed as it is completed. The calculator stops with a zero in the display when the calculations are complete.

    The program will find the first 10N digits of the root of the number you have entered, where N\=\INT((#\of\digits\+\10)\/\10)

  6. For operation without a printer, you can change the command at program step\087 from NOP to R/S. The program will stop to permit read-out of each group of ten digits as it is completed. Press R/S to proceed to the next group.
  7. Once the program has ended, you can enter the Standard Version, use a -1 in the display to read the card, to find more digits of the number you entered. To do so, you must use the C-option of that program. Once again you must make sure that the total number of groups of ten digits does not exceed 40. [For the above example you cannot enter more than 37]

Listing of the Long Number Version

000  92 RTN         060  06  06         120  33 Xý          180  41  41
001  09  9          061  01  1          121  69 OP          181  09  9
002  00  0          062  93  .          122  36  36         182  94 +/-
003  42 STO         063  97 DSZ         123  64 PD*         183  69 OP
004  03  03         064  07  07         124  06  06         184  22  22
005  42 STO         065  00  00         125  97 DSZ         185  61 GTO
006  05  05         066  40  40         126  07  07         186  00  00
007  05  5          067  69 OP          127  01  01         187  70  70
008  00  0          068  29  29         128  21  21         188  76 LBL
009  42 STO         069  02  2          129  02  2          189  11  A
010  04  04         070  44 SUM         130  42 STO         190  32 X:T
011  42 STO         071  89  89         131  07  07         191  69 OP
012  06  06         072  61 GTO         132  53  (          192  00  00
013  43 RCL         073  00  00         133  05  5          193  69 OP
014  08  08         074  01  01         134  00  0          194  05  05
015  42 STO         075  97 DSZ         135  85  +          195  09  9
016  07  07         076  00  00         136  43 RCL         196  69 OP
017  94 +/-         077  00  00         137  02  02         197  17  17
018  44 SUM         078  96  96         138  42 STO         198  47 CMS
019  03  03         079  24 CE          139  03  03         199  04  4
020  44 SUM         080  01  1          140  54  )          200  09  9
021  04  04         081  00  0          141  42 STO         201  42 STO
022  73 RC*         082  48 EXC         142  06  06         202  00  00
023  03  03         083  00  00         143  43 RCL         203  32 X:T
024  69 OP          084  48 EXC         144  08  08         204  42 STO
025  23  23         085  09  09         145  44 SUM         205  02  02
026  32 X:T         086  99 PRT         146  03  03         206  42 STO
027  73 RC*         087  68 NOP         147  29 CP          207  03  03
028  04  04         088  69 OP          148  00  0          208  92 RTN
029  69 OP          089  28  28         149  22 INV         209  50 IxI
030  24  24         090  97 DSZ         150  74 SM*         210  72 ST*
031  67 X=T         091  02  02         151  06  06         211  00  00
032  00  00         092  00  00         152  69 OP          212  69 OP
033  22  22         093  96  96         153  36  36         213  20  20
034  22 INV         094  00  0          154  32 X:T         214  99 PRT
035  77 XòT         095  81 RST         155  74 SM*         215  97 DSZ
036  00  00         096  69 OP          156  06  06         216  03  03
037  75  75         097  32  32         157  53  (          217  02  02
038  29 CP          098  43 RCL         158  73 RC*         218  08  08
039  00  0          099  07  07         159  06  06         219  01  1
040  69 OP          100  42 STO         160  55  ö          220  00  0
041  35  35         101  03  03         161  43 RCL         221  42 STO
042  69 OP          102  43 RCL         162  01  01         222  00  00
043  36  36         103  02  02         163  54  )          223  22 INV
044  22 INV         104  44 SUM         164  53  (          224  28 LOG
045  74 SM*         105  06  06         165  59 INT         225  42 STO
046  06  06         106  44 SUM         166  65  x          226  01  01
047  73 RC*         107  07  07         167  32 X:T         227  01  1
048  05  05         108  01  1          168  43 RCL         228  42 STO
049  22 INV         109  00  0          169  01  01         229  08  08
050  74 SM*         110  49 PRD         170  54  )          230  42 STO
051  06  06         111  09  09         171  97 DSZ         231  89  89
052  73 RC*         112  69 OP          172  03  03         232  69 OP
053  06  06         113  35  35         173  01  01         233  05  05
054  77 XòT         114  64 PD*         174  49  49         234  60 DEG
055  00  00         115  05  05         175  09  9          235  04  4
056  62  62         116  97 DSZ         176  00  0          236  05  5
057  43 RCL         117  03  03         177  97 DSZ         237  30 TAN
058  01  01         118  01  01         178  07  07         238  33 Xý
059  74 SM*         119  12  12         179  01  01         239  86 STF
<\pre>

The Very Extended Precision Extension I

User Instructions

  1. Enter the program listed on the next page. The program should be recorded in a 9\OP\17 partitioning!
  2. Enter the number of additional groups of ten digits and press E'. The number of additional groups should not exceed the total number of groups you have generated with the A and C options of the Standard Version! It is important to realise that you do not have to generate the maximum possible number of digits with the Standard Version.
  3. When a flashing 1.\E10 appears press 7 EE to start the calculations in Fast Mode.
  4. The program will stop with every group of ten digits in the display and if a printer is connected, it will print the group. The calculator will stop with a zero in the display when the calculations are complete. :note.If you have a printer, you may replace the R/S at step 084 with NOP, to avoid having to press R/S every time.
  5. To generate more additional groups of ten digits after the calculator has stopped, you can enter the number of additional groups and press E. You must make sure that the total number of of groups entered using modes E' and E is not larger than twice the total number of digits generated by the Standard Version.
  6. Again the calculator will stop with a flashing 1.\E10 in the display, and again you press 7 EE to start calculations in Fast Mode. Additional groups of ten digits will be displayed and printed as they are completed.
:note.Using the Very Extended Precision Extension I without a printer yields very inconvenient operation, so if you don't have one it might be better to use the second version of this extension, even though it is a little less accurate.

Listing of the Very Extended Precision Extension I

000  92 RTN         060  06  06         120  53  (          180  00  0
001  09  9          061  01  1          121  73 RC*         181  00  0
002  00  0          062  93  .          122  06  06         182  00  0
003  42 STO         063  97 DSZ         123  55  ö          183  00  0
004  03  03         064  07  07         124  43 RCL         184  00  0
005  42 STO         065  00  00         125  01  01         185  00  0
006  05  05         066  40  40         126  54  )          186  00  0
007  05  5          067  69 OP          127  53  (          187  00  0
008  00  0          068  29  29         128  59 INT         188  00  0
009  42 STO         069  61 GTO         129  65  x          189  00  0
010  04  04         070  00  00         130  32 X:T         190  00  0
011  42 STO         071  01  01         131  43 RCL         191  00  0
012  06  06         072  97 DSZ         132  01  01         192  00  0
013  43 RCL         073  00  00         133  54  )          193  00  0
014  08  08         074  00  00         134  97 DSZ         194  00  0
015  42 STO         075  91  91         135  07  07         195  00  0
016  07  07         076  24 CE          136  01  01         196  00  0
017  94 +/-         077  01  1          137  12  12         197  00  0
018  44 SUM         078  00  0          138  61 GTO         198  00  0
019  03  03         079  48 EXC         139  00  00         199  00  0
020  44 SUM         080  00  00         140  01  01         200  00  0
021  04  04         081  48 EXC         141  00  0          201  00  0
022  73 RC*         082  09  09         142  00  0          202  00  0
023  03  03         083  99 PRT         143  00  0          203  00  0
024  69 OP          084  68 NOP         144  00  0          204  00  0
025  23  23         085  97 DSZ         145  00  0          205  00  0
026  32 X:T         086  02  02         146  00  0          206  00  0
027  73 RC*         087  00  00         147  00  0          207  00  0
028  04  04         088  91  91         148  00  0          208  00  0
029  69 OP          089  00  0          149  00  0          209  00  0
030  24  24         090  81 RST         150  00  0          210  00  0
031  67 X=T         091  01  1          151  00  0          211  00  0
032  00  00         092  00  0          152  00  0          212  00  0
033  22  22         093  49 PRD         153  00  0          213  00  0
034  22 INV         094  09  09         154  00  0          214  00  0
035  77 XòT         095  69 OP          155  00  0          215  00  0
036  00  00         096  36  36         156  00  0          216  00  0
037  72  72         097  64 PD*         157  00  0          217  00  0
038  29 CP          098  06  06         158  00  0          218  00  0
039  00  0          099  97 DSZ         159  00  0          219  00  0
040  69 OP          100  07  07         160  00  0          220  00  0
041  35  35         101  00  00         161  00  0          221  76 LBL
042  69 OP          102  95  95         162  00  0          222  10 E'
043  36  36         103  05  5          163  00  0          223  69 OP
044  22 INV         104  00  0          164  00  0          224  38  38
045  74 SM*         105  42 STO         165  00  0          225  76 LBL
046  06  06         106  06  06         166  00  0          226  15  E
047  73 RC*         107  43 RCL         167  00  0          227  42 STO
048  05  05         108  08  08         168  00  0          228  02  02
049  22 INV         109  48 EXC         169  00  0          229  53  (
050  74 SM*         110  07  07         170  00  0          230  43 RCL
051  06  06         111  29 CP          171  00  0          231  01  01
052  73 RC*         112  22 INV         172  00  0          232  85  +
053  06  06         113  74 SM*         173  00  0          233  01  1
054  77 XòT         114  06  06         174  00  0          234  01  1
055  00  00         115  69 OP          175  00  0          235  93  .
056  62  62         116  36  36         176  00  0          236  02  2
057  43 RCL         117  32 X:T         177  00  0          237  02  2
058  01  01         118  74 SM*         178  00  0          238  54  )
059  74 SM*         119  06  06         179  00  0          239  86 STF
<\pre>

The Very Extended Precision Extension II

User Instructions

  1. Enter the program listed on the next page. The program should be recorded in a 9\OP\17 partitioning!
  2. Enter the number of additional groups of ten digits and press E'. The number of additional groups should not exceed the total number of groups you have generated with the A and C options of the Standard Version! It is important to realise that you do not have to generate the maximum possible number of digits with the Standard Version.
  3. When a flashing\1 appears press 7 EE to start the calculations in Fast Mode.
  4. The program will stop with every group of ten digits in the display and if a printer is connected, it will print the group. The calculator will stop with a zero in the display when the calculations are complete. :note.To get an uninterrupted printout, you may replace the R/S at step 165 with a NOP, even in case you don't have a printer, as the result can always be recalled by using the builtin reprint root routine.
  5. To generate more additional groups of ten digits after the calculator has stopped, you can enter the number of additional groups and press E. You must make sure that the total number of of groups entered using modes E' and E is not larger than twice the total number of digits generated by the Standard Version.
  6. Again the calculator will stop with a flashing\1 in the display, and again you press 7 EE to start calculations in Fast Mode. Additional groups of ten digits will be displayed and printed as they are completed.
  7. To redisplay or reprint the solution, you can press B, repeatedly followed by R/S. The read-out is complete when a flashing zero appears.
:note.This second version of the Very Extended Precision Extension is a little less accurate than the first version. In the case of &SQR.3, the result is good to only 796 places, as opposed to 799 digits for the first version.

Listing of the Very Extended Precision Extension II

000  92 RTN         060  43 RCL         120  00  00         180  42 STO
001  01  1          061  08  08         121  00  00         181  02  02
002  00  0          062  42 STO         122  01  01         182  54  )
003  49 PRD         063  07  07         123  43 RCL         183  42 STO
004  09  09         064  94 +/-         124  08  08         184  03  03
005  69 OP          065  44 SUM         125  42 STO         185  43 RCL
006  36  36         066  03  03         126  03  03         186  08  08
007  64 PD*         067  44 SUM         127  94 +/-         187  22 INV
008  06  06         068  04  04         128  44 SUM         188  44 SUM
009  97 DSZ         069  73 RC*         129  05  05         189  02  02
010  07  07         070  03  03         130  44 SUM         190  73 RC*
011  00  00         071  69 OP          131  06  06         191  03  03
012  05  05         072  23  23         132  43 RCL         192  69 OP
013  05  5          073  32 X:T         133  09  09         193  23  23
014  00  0          074  73 RC*         134  63 EX*         194  99 PRT
015  42 STO         075  04  04         135  05  05         195  91 R/S
016  06  06         076  69 OP          136  69 OP          196  97 DSZ
017  43 RCL         077  24  24         137  25  25         197  02  02
018  08  08         078  67 X=T         138  97 DSZ         198  01  01
019  48 EXC         079  00  00         139  03  03         199  90  90
020  07  07         080  69  69         140  01  01         200  00  0
021  29 CP          081  22 INV         141  34  34         201  69 OP
022  22 INV         082  77 XòT         142  00  0          202  68  68
023  74 SM*         083  01  01         143  63 EX*         203  92 RTN
024  06  06         084  19  19         144  06  06         204  00  0
025  69 OP          085  29 CP          145  69 OP          205  00  0
026  36  36         086  00  0          146  26  26         206  00  0
027  32 X:T         087  69 OP          147  97 DSZ         207  00  0
028  74 SM*         088  35  35         148  07  07         208  00  0
029  06  06         089  69 OP          149  01  01         209  00  0
030  53  (          090  36  36         150  43  43         210  00  0
031  73 RC*         091  22 INV         151  69 OP          211  00  0
032  06  06         092  74 SM*         152  38  38         212  00  0
033  55  ö          093  06  06         153  43 RCL         213  00  0
034  43 RCL         094  73 RC*         154  08  08         214  00  0
035  01  01         095  05  05         155  42 STO         215  00  0
036  54  )          096  22 INV         156  07  07         216  00  0
037  53  (          097  74 SM*         157  01  1          217  00  0
038  59 INT         098  06  06         158  00  0          218  00  0
039  65  x          099  73 RC*         159  48 EXC         219  00  0
040  32 X:T         100  06  06         160  00  00         220  00  0
041  43 RCL         101  77 XòT         161  48 EXC         221  76 LBL
042  01  01         102  01  01         162  09  09         222  10 E'
043  54  )          103  09  09         163  24 CE          223  69 OP
044  97 DSZ         104  43 RCL         164  99 PRT         224  38  38
045  07  07         105  01  01         165  91 R/S         225  32 X:T
046  00  00         106  74 SM*         166  97 DSZ         226  43 RCL
047  22  22         107  06  06         167  02  02         227  08  08
048  09  9          108  01  1          168  00  00         228  82 HIR
049  00  0          109  93  .          169  01  01         229  08  08
050  42 STO         110  97 DSZ         170  00  0          230  32 X:T
051  03  03         111  07  07         171  81 RST         231  76 LBL
052  42 STO         112  00  00         172  76 LBL         232  15  E
053  05  05         113  87  87         173  12  B          233  42 STO
054  05  5          114  69 OP          174  53  (          234  02  02
055  00  0          115  29  29         175  09  9          235  04  4
056  42 STO         116  61 GTO         176  00  0          236  05  5
057  04  04         117  00  00         177  75  -          237  30 TAN
058  42 STO         118  48  48         178  82 HIR         238  33 Xý
059  06  06         119  97 DSZ         179  18  18         239  86 STF
<\pre>

The Reprint Root Routine

Using the Standard and Long Number Versions without a printer yields very inconvenient operation. To overcome this problem you can use the following short program to re-display or reprint the result. The program can be used at any moment, without disturbing any registers, so you may use it after having generated for example 200 digits, and continue afterwards with more digits!

User Instructions

  1. Enter the program below. It should be recorded in a 9\OP\17 partitioning.
  2. Press B, repeatedly followed by R/S to display and print the result again. The read-out is complete when a flashing zero appears.

When you have used this program after the Standard Version and you want to continue with that program, you must re-enter the card containing that program with a -1 in the display.

Listing of the Reprint Root Routine

000  76 LBL         011  42 STO         022  43 RCL         033  91 R/S
001  12  B          012  03  03         023  01  01         034  69 OP
002  53  (          013  00  0          024  48 EXC         035  23  23
003  09  9          014  42 STO         025  04  04         036  97 DSZ
004  00  0          015  04  04         026  75  -          037  02  02
005  75  -          016  53  (          027  22 INV         038  00  00
006  43 RCL         017  73 RC*         028  59 INT         039  16  16
007  07  07         018  03  03         029  49 PRD         040  00  0
008  42 STO         019  55  ö          030  04  04         041  69 OP
009  02  02         020  02  2          031  54  )          042  68  68
010  54  )          021  85  +          032  99 PRT         043  92 RTN
<\pre>
.sp 5
.ce
This page intentionally left blank.
.pa

The TI-58 Versions

The user instructions for all of the TI-58 versions of the program are equal to those of the corresponding TI-59 versions. The difference is the fact that the TI-58 programs can only calculate roots up to 100 places. :note.Even though it is very well possible to use all versions on a TI-58, it requires a lot of determination to key in every program. I personally wouldn't do it!

The modifications needed to create the TI-58 versions are described below.

The Standard Version

To modify the Standard Version for use on a TI-58, you must make the following changes:

  • Change step 001 into "3".
  • Change step 007 into "2".
  • Change step 071 into "29".
  • Change step 124 into "2".
  • Change step 159 into "3".
  • Change step 214 into "19".
  • Change step 231 into "29".
  • Delete steps 208-210.
  • Insert three zeroes after step 186.

The Long Number Version

To modify the Long Number Version for use on a TI-58, you must make the following changes:

  • Change step 001 into "3".
  • Change step 007 into "2".
  • Change step 071 into "29".
  • Change step 133 into "2".
  • Change step 175 into "3".
  • Change step 199 into "1".
  • Change step 231 into "29".
  • Delete steps 196-198.
  • Insert three zeroes after step 187.

The Very Extended Precision Extension I

To modify the Very Extended Precision Extension I for use on a TI-58, you must make the following changes:

  • Change step 001 into "3".
  • Change step 007 into "2".
  • Change step 103 into "2".

The Very Extended Precision Extension II

To modify the Very Extended Precision Extension II for use on a TI-58, you must make the following changes:

  • Change step 013 into "2".
  • Change step 048 into "3".
  • Change step 054 into "2".

The Reprint Root Routine

To modify the Reprint Root Routine for use on a TI-58, you must make the following change:

  • Change step 003 into "3".
.pa

The TI-66 Versions

The Standard Version

User Instructions

  1. Set the partitioning to 191.39. [Part 40]
  2. Enter the program listed on the next page.
  3. Enter the argument and press A. The argument must be greater that 1 and less than 100.
  4. Enter the number of groups of ten digits and press R/S. The number must not exceed 15. After having pressed R/S, the program starts.
  5. If a printer is being used then each group of ten digits is printed as it is completed. The calculator stops with a zero in the display when the calculations are complete.
  6. To generate additional groups of ten digits after the calculator has stopped, you can enter the number of additional groups and press C (for C(ontinue)). You must make sure that the total number of groups entered using modes A and C does not exceed 15.
  7. You may repeat the continue mode as many times as you like, providing that the total number of groups of ten digits does not exceed 15.
  8. For operation without a printer, you can change the NOP at step\078 into R/S. The program will stop to permit read-out of each group of ten digits as it is completed. Press R/S to proceed to the next group.
  9. After you have found 150 digits with this program, you can find 149 more with the Very Extended Precision Extension.

Listing of the Standard Version

000  04  4          050  FB  06         100  B9  94         150  00  0
001  00  0          051  69 XòT         101  37 Xý          151  65 DSZ
002  32 STO         052  D0  58         102  23 OP          152  FC  07
003  F8  03         053  33 RCL         103  9A  36         153  F6  01
004  32 STO         054  F6  01         104  F4 PD*         154  85  15
005  FA  05         055  B4 SM*         105  FB  06         155  09  9
006  02  2          056  FB  06         106  65 DSZ         156  1A +/-
007  05  5          057  01  1          107  FC  07         157  27 GTO
008  32 STO         058  19  .          108  F6  01         158  D7  65
009  F9  04         059  65 DSZ         109  F7  02         159  29 LBL
010  32 STO         060  FC  07         110  02  2          160  14  C
011  FB  06         061  9B  37         111  32 STO         161  32 STO
012  33 RCL         062  23 OP          112  FC  07         162  F7  02
013  FD  08         063  93  29         113  02  2          163  27 GTO
014  32 STO         064  02  2          114  05  5          164  EC  86
015  FC  07         065  34 SUM         115  32 STO         165  29 LBL
016  1A +/-         066  9D  39         116  FB  06         166  10  A
017  34 SUM         067  26 RST         117  33 RCL         167  6B CMS
018  F8  03         068  65 DSZ         118  FD  08         168  59 PRT
019  34 SUM         069  F5  00         119  73 EXC         169  32 STO
020  F9  04         070  EC  86         120  F8  03         170  8E  24
021  B3 RC*         071  01  1          121  41 CP          171  A9 RTN
022  F8  03         072  00  0          122  29 LBL         172  32 STO
023  23 OP          073  73 EXC         123  B4 SM*         173  F7  02
024  8D  23         074  F5  00         124  FB  06         174  01  1
025  24 X:T         075  73 EXC         125  23 OP          175  00  0
026  B3 RC*         076  FE  09         126  9A  36         176  32 STO
027  F9  04         077  59 PRT         127  24 X:T         177  F5  00
028  23 OP          078  63 NOP         128  B4 SM*         178  31 INV
029  8E  24         079  23 OP          129  FB  06         179  75 LOG
030  64 X=T         080  92  28         130  2A  (          180  32 STO
031  8B  21         081  65 DSZ         131  B3 RC*         181  F6  01
032  31 INV         082  F7  02         132  FB  06         182  01  1
033  69 XòT         083  EC  86         133  3D  /          183  32 STO
034  DA  68         084  00  0          134  33 RCL         184  FD  08
035  41 CP          085  A9 RTN         135  F6  01         185  32 STO
036  00  0          086  33 RCL         136  2B  )          186  9D  39
037  23 OP          087  FC  07         137  2A  (          187  26 RST
038  99  35         088  32 STO         138  76 INT
039  23 OP          089  F8  03         139  3C  x
040  9A  36         090  01  1          140  24 X:T
041  31 INV         091  00  0          141  33 RCL
042  B4 SM*         092  74 PRD         142  F6  01
043  FB  06         093  FE  09         143  2B  )
044  B3 RC*         094  23 OP          144  1A +/-
045  FA  05         095  99  35         145  65 DSZ
046  31 INV         096  F4 PD*         146  F8  03
047  B4 SM*         097  FA  05         147  F6  01
048  FB  06         098  65 DSZ         148  8D  23
049  B3 RC*         099  F8  03         149  04  4
<\pre>

The Very Extended Precision Extension

User Instructions

  1. Enter the program listed on the next page.
  2. Enter the number of additional groups of ten digits and press E'. The number of additional groups should not exceed the total number of groups you have generated with the A and C options of the Standard Version! It is important to realise that you do not have to generate the maximum possible number of digits with the Standard Version.
  3. The program will stop with every group of ten digits in the display and if a printer is connected, it will print the group. The calculator will stop with a zero in the display when the calculations are complete. :note.If you have a printer, you may replace the R/S at step 075 with NOP, to avoid having to press R/S every time.
  4. To generate more additional groups of ten digits after the calculator has stopped, you can enter the number of additional groups and press E. You must make sure that the total number of of groups entered using modes E' and E is not larger than twice the total number of digits generated by the Standard Version.
:note.Using the Very Extended Precision Extension without a printer yields very inconvenient operation. To solve this problem, you can make more or less the same changes as in the TI-59 version.

Listing of the Very Extended Precision Extension

000  04  4          040  9A  36         080  A9 RTN         120  33 RCL
001  00  0          041  31 INV         081  01  1          121  F6  01
002  32 STO         042  B4 SM*         082  00  0          122  2B  )
003  F8  03         043  FB  06         083  74 PRD         123  1A +/-
004  32 STO         044  B3 RC*         084  FE  09         124  65 DSZ
005  FA  05         045  FA  05         085  23 OP          125  FC  07
006  02  2          046  31 INV         086  9A  36         126  F6  01
007  05  5          047  B4 SM*         087  F4 PD*         127  F7  02
008  32 STO         048  FB  06         088  FB  06         128  26 RST
009  F9  04         049  B3 RC*         089  65 DSZ         129  29 LBL
010  32 STO         050  FB  06         090  FC  07         130  58 E'
011  FB  06         051  69 XòT         091  EB  85         131  23 OP
012  33 RCL         052  D0  58         092  02  2          132  9C  38
013  FD  08         053  33 RCL         093  05  5          133  29 LBL
014  32 STO         054  F6  01         094  32 STO         134  18  E
015  FC  07         055  B4 SM*         095  FB  06         135  32 STO
016  1A +/-         056  FB  06         096  33 RCL         136  F7  02
017  34 SUM         057  01  1          097  FD  08         137  27 GTO
018  F8  03         058  19  .          098  73 EXC         138  E7  81
019  34 SUM         059  65 DSZ         099  FC  07
020  F9  04         060  FC  07         100  41 CP
021  B3 RC*         061  9B  37         101  29 LBL
022  F8  03         062  23 OP          102  B4 SM*
023  23 OP          063  93  29         103  FB  06
024  8D  23         064  26 RST         104  23 OP
025  24 X:T         065  65 DSZ         105  9A  36
026  B3 RC*         066  F5  00         106  24 X:T
027  F9  04         067  E7  81         107  B4 SM*
028  23 OP          068  01  1          108  FB  06
029  8E  24         069  00  0          109  2A  (
030  64 X=T         070  73 EXC         110  B3 RC*
031  8B  21         071  F5  00         111  FB  06
032  31 INV         072  73 EXC         112  3D  /
033  69 XòT         073  FE  09         113  33 RCL
034  D7  65         074  59 PRT         114  F6  01
035  41 CP          075  25 R/S         115  2B  )
036  00  0          076  65 DSZ         116  2A  (
037  23 OP          077  F7  02         117  76 INT
038  99  35         078  E7  81         118  3C  x
039  23 OP          079  00  0          119  24 X:T
<\pre>

The Reprint Root Routine

Using the Standard Version without a printer yields very inconvenient operation. To overcome this problem you can use the following short program to re-display or reprint the result.

User Instructions

  1. Enter the program below.
  2. Press B, repeatedly followed by R/S to display and print the result again. The read-out is complete when a zero appears.

Listing of the Reprint Root Routine

000  29 LBL         011  32 STO         022  33 RCL         033  25 R/S
001  12  B          012  F8  03         023  F6  01         034  23 OP
002  2A  (          013  00  0          024  73 EXC         035  8D  23
003  04  4          014  32 STO         025  F9  04         036  65 DSZ
004  00  0          015  F9  04         026  3B  -          037  F7  02
005  3B  -          016  2A  (          027  31 INV         038  86  16
006  33 RCL         017  B3 RC*         028  76 INT         039  00  0
007  FC  07         018  F8  03         029  74 PRD         040  A9 RTN
008  32 STO         019  3D  /          030  F9  04
009  F7  02         020  02  2          031  2B  )
010  2B  )          021  3A  +          032  59 PRT
<\pre>

Some last notes about the programs

  • The precision of the result of various programs is:
  • .fo off
    • For the TI-59[/PC-100] versions: 400(799) digits.
    • For the TI-58 version : 100(199) digits.
    • For the TI-66 version : 150(299) digits.
    .fo on
  • The approximate execution times for the Standard Version of the program are:
  • .fo off
    • For the TI-59[/PC-100] versions: 12h15' for 400 digits.
    • For the TI-58 version : 0h52' for 100 digits.
    • For the TI-66 version : 6h 5' for 150 digits.
    .fo on
  • If you're only interested in speed, and not in ultimate accuracy, it is best to use the second version of the Very Extended Precision Extension, as it is quite a lot faster than the original one. As a test, I used the Standard Version to generate 100 digits of &SQR.3, which took about 54 minutes. The results of the two versions for an extra 100 digits were:
    • Version\\I: 1h14'22" execution time for 99 correct digits.
    • Version\II: 0h45'45" execution time for 98 correct digits.
  • You may notice that I haven't translated the Long Number Version for use on the TI-66. The reason for this omission is the fact that the storage format of such a version would be incompatible with the other programs.
  • If you are interested in finding a root to any number of places between 20N and 20N-19, you can save yourself a lot of time by using the Standard Version to find 10N+10 places. After having them, you can use the Very Extended Precision Extension to calculate the other 10N-10 to 10N+9 places.
  • As promised in the "Method used" section, here is an alternative, more visual, way of describing the method used: .fo off

    Let's find &SQR.3,\[1.73205\08075\68877\29352\...] .sk \\\\\\\\\\\\\\\\3.00\00\00\00\00 \\\\\\\\?\x\?\\\\\\|\\|\\|\\|\\|\\\\\Find the largest ?, so that \\\\\\\\\\\\\\\\\\\|\\|\\|\\|\\|\\\\\? &ML ? is as close to 3 as 1\\\\\\\1\x\1\=\1.\|\\|\\|\\|\\|\\\\\possible. Subract. \\\\\\\\\\\\\\\\2.00\\|\\|\\|\\|\\\\\Add 1 and 1 \\\\\\\2?\x\?\\\\\\\\\|\\|\\|\\|\\\\\Find the largest ?, so that \\\\\\\\\\\\\\\\\\\\\\|\\|\\|\\|\\\\\2? &ML ? is as close to 200 as 7\\\\\\27\x\7\=\1.89\\|\\|\\|\\|\\\\\possible. Subtract. \\\\\\\\\\\\\\\\\\11\00\\|\\|\\|\\\\\Add 27 and 7 \\\\\\34?\x\?\\\\\\\\\\\\|\\|\\|\\\\\Find the largest ?, so that \\\\\\\\\\\\\\\\\\\\\\\\\|\\|\\|\\\\\34? &ML ? is as close to 1100 3\\\\\343\x\3\=\\\10\29\\|\\|\\|\\\\\as possible. Subtract. \\\\\\\\\\\\\\\\\\\\\71\00\\|\\|\\\\\Add 343 and 3 \\\\\346?\x\?\\\\\\\\\\\\\\\|\\|\\\\\Etc \\\\\\\\\\\\\\\\\\\\\\\\\\\\|\\| 2\\\\3462\x\2\=\\\\\\69\24\\|\\| \\\\\\\\\\\\\\\\\\\\\\1\76\00\\|\\\\\Add 3462 and 2 \\\\3464?\x\?\\\\\\\\\\\\\\\\\\|\\\\\Etc \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\| 0\\\34640\x\0\=\\\\\\\0\00\00\\| \\\\\\\\\\\\\\\\\\\\\\1\76\00\00\\\\\Add 34640 and 0 \\\34640?\x\?\\\\\\\\\\\\\\\\\\\\\\\\Etc .sk 5\\346405\x\5\=\\\\\\\1\73\20\25 \\\\\\\\\\\\\\\\\\\\\\\\\2\79\75\\\\\Add 346405 and 5 .fo on

    You see that the ?'s placed after each other are &SQR.3, at this point we have 1.73205. You can continue the process as long as you like.

    The above "figure" has another advantage over the mathematical description of the method:

    If you take a closer look at it, you will notice that the first factor only changes in the last digits. Also having noticed that fact, it seemed very natural to me to try to divide 27975 by 346410. Doing so I got 0.0807\56906\55581. It can be seen that the first 6 digits after the decimal point of this quotient are the next 6 digits of &SQR.3, that is we can find &SQR.3 to at least 11 valid digits by first finding 6 digits by the above method and then dividing the rest by two times the first 6 digits! It was the above "figure" that led to the Very Extended Precision Extension of the program!

  • To use the programs in Normal Mode, you can press RST R/S R/S when the flashing 1 or 1.\E10 appears. This is useful when you want to SST through them or use them with a PC-100 in TRACE mode.