The Museum of HP Calculators

HP Forum Archive 16

[ Return to Index | Top of Index ]

When all else fails ...
Message #1 Posted by Palmer O. Hanson, Jr. on 20 Jan 2007, 9:03 p.m.

In a recent thread Karl Schneider wrote of the TI-30:

"Accuracy not fully justified by its three guard digits. Example: [1][INV][lnx] = 2.7182818 is displayed. Subtract 2.71 and multiply by 100: .82818301 is displayed; .82818284 are the correct digits. Why compute three extra digits that are not quite accurate?"

Page 25 of the Owner's Manual for the TI-30 discusses the guard digit methodology implemented in the TI-30. It states in part:

"Each calculation produces an 11 digit result. These 11 digits are more than are displayed. The result is therefore rounded to a 8-digit standard display or to 5 digits for scientific notation. The 5/4 rounding technique built into this calculator adds 1 to the least significant digit of the display if the next, non-displayed digit is five or more. If this digit is less than five no rounding is applied. In the absence of these extra digits, inaccurate results would frequently be displayed .. "

I did not own a TI-30 back in the olden days. I have several in my collection and also have several SR-40's which operate in the same manner. However, the only time I have seriously used a TI-30 to calculate anything was to demonstrate that it can easily solve the Mach Number challenge I did use the TI-59 extensively. The TI-59 used a similar guard digit methodology but with a 13 digit calculation and a 10 digit standard display. TI-59 users found that the guard digits could be used in many ways other than as guard digits; e.g., to expand printer control capabilities and to provide a thirteen digit factor finding capability.

There no doubt that the thirteen digit methodology used by TI (before the TI-95) is different from the ten digit methodology used by the HP-35 and subsequent HP calculators prior to the HP-28. Each methodology has both advantages and limitations. The fans of either side have been arguing about it for over thirty years.

Karl also wrote that the TI-30 has:

"Lack of rigor in display format: pi / 10 displays .31415927. pi / 1 [EE]1 displays "3.1416 00" (3.1416 x 100). Now, just try to get out of scientific-format display mode! Move the decimal place repeatedly to the left using [INV][EE], and watch the mantissa be obliterated, as significant digits fall into the "bit bucket" until "0 06" ( 0 x 106) is displayed. Not good. Perhaps TI's youthful customers didn't care, but HP's professional customers certainly would have. "

I agree with Karl's result for pi / 10 . I have been unable to get his result for pi / 1 EE 1 . I get the correct 3.1416-01 using three different TI-30's and two different SR-40's. I cannot explain why we should get different results. I do note that the display "3.1416 00 " is NOT 3.1416 x 100 but IS 3.1416 x 10^00.

Karl then writes "Now, just try to get out of scientific-format display mode!" That really isn't too hard. You can do it by multiplying the displayed value by the sequence 1 INV EE = as illustrated on page 12 of the Owner's Manual . If you do that after previously having generated 3.1416-01 in the display with the sequence pi / 1 EE 1 = you will get .31415927 in the display.

Karl also writes: " Move the decimal place repeatedly to the left using [INV][EE], and watch the mantissa be obliterated, as significant digits fall into the "bit bucket" until "0 06" ( 0 x 106) is displayed. Not good." NOT SO! The paragraph "Exponential Shift" on pages 13-14 of the Owner's Manual explain that the technique can be used to change the displayed value without changiing the value in the display register. To get back to the normalized display a user can simply press =, or if the user does not want to disturb any pending operations he can press EXC EXC.

Finally, Karl writes: "Perhaps TI's youthful customers didn't care, but HP's professional customers certainly would have." Some professional customers would have decided to read the Owner's Manual when they received results that they didn't understand. One can only hope and trust that HP's professional customers would have done the same.

      
Re: [TI-30] When all else fails ...
Message #2 Posted by Karl Schneider on 21 Jan 2007, 2:44 a.m.,
in response to message #1 by Palmer O. Hanson, Jr.

Hello, Palmer --

Quote:
When all else fails ...

Er, "... read the manual"? You seem to reproach me for allegedly not having done so, yet you couldn't have known whether I actually had one. The LED TI-30 I bought was from eBay; the one I damaged a quarter-century ago has long since been discarded, manual and all.

But, I'll admit it: The package did include manuals in English and French. I had quickly flipped through the English manual, but didn't see the need for perusing it in detail, since I already knew my way around the TI-30, and -- well -- it's so simple, it ought to be intuitive.

BTW, the manual is quite a bit better than what one typically receives nowadays for low-end calculators. Of course, US$25 (1976) is substantial by modern standards for a low-end calculator.

Now, on to the topics you discussed:

Quote:
Page 25 of the Owner's Manual for the TI-30 discusses the guard digit methodology implemented in the TI-30.

...

There no doubt that the thirteen digit methodology used by TI (before the TI-95) is different from the ten digit methodology used by the HP-35 and subsequent HP calculators prior to the HP-28. Each methodology has both advantages and limitations. The fans of either side have been arguing about it for over thirty years.


It's on page 24 in my manual; my real point, however, was, "Why make three extra (but unreliable) digits available to the user in the complete result for accurate rounding, when one guard digit would suffice?" It's like providing eleven significant digits when only eight are justified (the last one being uncertain and rounded). I showed that the extra digits for e^1 were unreliable. 2.71828183 would have been acceptable; 2.7182818301 was an incorrect calculation, although the displayed result was accurate to eight digits as advertised.

Casio took a sensible approach in the same era: The 1981 fx-3600P provides one guard digit to help ensure accurate displayed answers. The modern fx-115MS provides two guard digits, and both are correct (last one rounded) for e^x and 10/7. (Both of these calculators display 10 digits.)

The three guard digits didn't seem to help the trigonometric calculations on the old TI-30's. Here's a comparison:

                          Sine of "almost-pi" radians:

Value of pi TI-30 Casio fx-3600P HP-41 HP-32SII

3.14159265359 --- --- --- -2.068E-13 3.1415926536 4.778E-09 0 --- -1.021E-11 3.141592654 4.096E-10 -4.E-10 -4.1E-10 -4.102E-10

It is curious that the TI-30's error is larger with the 11-digit value of pi, than with the 10-digit value.

The results from the HP-32SII, with its rigorous math, are exactly correct to its 12 digits (but rounded in the table).

The Casio's result of exactly zero may utilize rounding for user "reassurance", much as the HP-30S does.

Quote:
I agree with Karl's result for pi / 10 . I have been unable to get his result for pi / 1 EE 1 . I get the correct 3.1416-01 using three different TI-30's and two different SR-40's. I cannot explain why we should get different results. I do note that the display "3.1416 00 " is NOT 3.1416 x 100 but IS 3.1416 x 10^00.

I made several editing errors, after noticing similar behavior using 1.0 as the divisor as well as 10. My statement should have read,

"pi / 10 displays .31415927. pi / 1 [EE]1 displays "3.1416-01" (3.1416 x 10-1)."

Quote:
Karl then writes "Now, just try to get out of scientific-format display mode!"

That really isn't too hard. You can do it by multiplying the displayed value by the sequence 1 INV EE = as illustrated on page 12 of the Owner's Manual .


The fundamental problem is that [EE] combines the functions of [EEX] and [SCI]. There was no specific operation to escape scientific-notation display mode (such as [FIX] or [ALL]) while preserving the displayed number.

To do so, the user could multiply or divide a result by "1 [INV][EE]", but not "1" or "1 [EE]", or "45 [tan]", or ....). That was included within an example on page 12, but was not an explicitly stated procedure. It's not very intuitive; a better method would have been hitting [=][=].

Another workaround is to [STO] the result, then hit [ON/C] and [RCL].

Quote:
Karl also writes: " Move the decimal place repeatedly to the left using [INV][EE], and watch the mantissa be obliterated, as significant digits fall into the "bit bucket" until "0 06" ( 0 x 106) (sic, after Palmer's quoting) is displayed. Not good."

NOT SO! The paragraph "Exponential Shift" on pages 13-14 of the Owner's Manual explain that the technique can be used to change the displayed value without changiing the value in the display register. To get back to the normalized display a user can simply press =, or if the user does not want to disturb any pending operations he can press EXC EXC.


(Please don't neglect to re-instate formatting codes (e.g, [super]) when using [quote]. They don't copy over, so "106" is turned into "106".)

Now, please try this on your vintage TI's. Is this what you see?

keystrokes           display
pi / 1 [EE] =        3.1416 00
[INV][EE]            .31416 01    
[INV][EE]            .03141 02
[INV][EE]            .00314 03
[INV][EE]            .00031 04
[INV][EE]            .00003 05
[INV][EE]                 0 06
[INV][EE]                 0 07
[EE]                      0 06
[EE]                      0 05               
[=]                  3.1416 00

Displaying a number as "zero times a non-zero power of ten" ain't very good, and neither is to apparently display "zero equals pi". It led me to an incorrect conclusion regarding actual loss of digits.

BTW, I can't force any of my HP's to accept or display " 0 [EE]" to any exponent other than zero -- not even the HP-35, which had been in production for four years by 1976. The Casios convert an entered 0Enn to zero upon any operation. They also won't "squeeze out" all the significant digits in a display when the user moves the decimal place to the left with "<-ENG".

Quote:
Finally, Karl writes: "Perhaps TI's youthful customers didn't care, but HP's professional customers certainly would have."

Some professional customers would have decided to read the Owner's Manual when they received results that they didn't understand.

One can only hope and trust that HP's professional customers would have done the same.


Karl now writes, "Please refrain from chiding, sir." Documentation of unsound implementations, or of arcane procedures that ought to be simple and intuitive, does not excuse either the unsoundness or the arcaneness.

This applies to modern products, as well as to 30-year-old vintage ones.

Best regards,

-- KS

Edited: 22 Jan 2007, 1:21 a.m.

            
Re: [TI-30] When all else fails ...
Message #3 Posted by Bill Wiese on 21 Jan 2007, 9:25 p.m.,
in response to message #2 by Karl Schneider

Folks,

Do remember that almost all 70s TI LED calcs (likely scientifics as well as other models) had multiplication problems that likely led to further side effects

See Rick Furr's website page entitled 'Early TI Calculators' Accuracy': [url]http://www.vcalc.net/ti-accry.htm[/url]

quoted here:

Quote:
For a couple of years, TI was the only calculator maker which used a wrong method for multiplication, causing the final digits of many products to be incorrect! For example, 1.9999999 * 4.9999999 happens to be exactly 9.99999930000001, so that any self-respecting "truncating" calculator giving 8 to 14 digits of result should have given the answer as 9.9999993; however, the TI Programmer (and *all* other TI models of that era having internal registers that kept nine significant digits and rounded the display to eight digits) would have displayed 9.9999987 or so! Other models which kept 11 internal digits (but still displayed only eight) also had this same fundamental bug, but the errors were usually concealed by the fact that the last three digits of the internal result, which were incorrect, remained unseen; you can nonetheless "see" the hidden incorrect digits by subtracting out the correct leading portion of the result (e.g. subtract 9.99999 in the above example), which will then disclose all the following digits (a final multiplication by, say 100000, may be necessary also, to shift all displayable digits into view)....

All scientific models which used algorithms to derive other functions (log, trig, etc.) were likewise affected by the fact that every time they did a multiplcation as part of that algorithm, the answer came out a bit too small, producing a distinct tendency for "chained" results (e.g. 30 SIN INV SIN SIN INV SIN ...) to keep dropping in value.

My analysis of how TI did this feat is that instead of correctly starting with the least-significant multiplier digit, and then shifting rightward the fully-developed rightmost digits of what otherwise would have been a fully correct double-precision result as each successive more-significant multiplier digit was used, some hacker at TI decided to start with the most-significant multiplier digit, and then shift rightward the other factor, dropping off its least significant digit even before the second most-significant multiplier digit was used, etc.

Naturally, you can see immediately that the product of the least significant digits of each factor will never be included in this scheme; in fact many other of the "digit cross-products" are neglected as well. If you look at the numerical example I gave above, even the very least significant "9*9" product is essential for generating a "carry" which propagates all the way leftward into the eighth most-significant digit position of the correct answer, so obviously the result of the "hack" method is already clearly going to be incorrect. If you take into account the internal register widths actually used and the sum of all the "lost" digit cross-products, you successfully predict the exact wrong results which those TI calcs delivered for several years!

If you have any old LED models (starting from about when the very crummy old 5x8 standard keyboards were introduced), or even the SR-50 or some-era early LCD models (same keyboard!), try the above example to confirm this!


Bill Wiese [/nl] San Jose, CA USA

                  
Multiplication problems with TI Calculators ...
Message #4 Posted by Palmer O. Hanson, Jr. on 22 Jan 2007, 10:59 p.m.,
in response to message #3 by Bill Wiese

First let me say again that I have very limited experience with the TI machines prior to the TI-59. I will try to work through your results but it will take a while. I did become fairly familiar with the TI-59 and later TI machines. My perception is that it was TI's position that the three guard digits with the TI-59 satisfactorily protected the ability of the machine to deliver ten correct digits. Users of that machine found that it typically did better than that.

I am familiar with the non-commutative multiply which was present in the TI-59 architecture. I read Professor Kahan's description of it in his paper "Mathematics Written in Sand". where he described the characteristic as "egregious." He presented detailed results from several test cases which showed that many of the machines in the HP product line would yield results which were superior to those obtainable with a TI-59.

Near the end of the paper he proposed the problem where E is a multple of the Hilbert matrix: E(i,j) = 360360/(i + j - 1) for 1<= i,j <= 8. He reported that the HP-15C gets the inverse of the eighth order matrix E correct to roughly three significant decimals. He did not present comparative results for that problem. If he had he would have reported that the ML-02 program on the TI-59 gets the inverse correct to roughly five significant decimals -- two orders of magnitude more accurately than the HP-15C.

                  
Early TI math problems
Message #5 Posted by Karl Schneider on 22 Jan 2007, 11:43 p.m.,
in response to message #3 by Bill Wiese

Hi, Bill --

Thanks for the background story!

My LED TI-30 gives 9.9999992965 as the answer, which is rounded to eight digits correctly in the display.

I tried the problem on a few of my calculators. No others -- not the HP-35, neither Casio, not the HP-30S, not the Rockwell R18, not even the Le World -- made the same error.

-- KS

Edited: 23 Jan 2007, 2:49 a.m.

            
Re: [TI-30] When all else fails ...
Message #6 Posted by Palmer O. Hanson, Jr. on 22 Jan 2007, 11:31 p.m.,
in response to message #2 by Karl Schneider

Hello, Karl

You had written

"Perhaps TI's youthful customers didn't care, but HP's professional customers certainly would have."

I thought that was poking a little bit of fun at the TI-30 and at the TI community. As a result, I thought that you would not be taken aback if I poked a little bit of fun at the HP communnity in return. Your response "Please refrain from chiding, sir." tells me that I was mistaken. I should have known better. Back in the 1970's one bilingual commented on some of the more virulent byplay between the HP and TI communities by noting that "when I poke fun at your side it is just good natured banter, but when you poke fun at my side it is a gratuitous insult.

I apologize for any offense. None was intended.

Palmer

                  
Re: [TI-30] When all else fails ...
Message #7 Posted by Karl Schneider on 23 Jan 2007, 12:49 a.m.,
in response to message #6 by Palmer O. Hanson, Jr.

Hello, Palmer --

Apology graciously accepted. Your responses seemed to challenge the fundamental points of my statements, while mildly admonishing me -- in an oblique way -- that I really ought to have read the fine manual.

Regarding the TI-30, some hazy memories of long ago are starting to come back. I recall feeling somewhat annoyed after hitting [EE] to enter or "parse" a large number (no commas in the display), and then not seeing an expedient way to revert to "normal" display mode. [*][1][INV][EE][=] was a hassle; I probably did [STO][ON/C][RCL] or just [ON/C].

I did not delve deeply into the details of the internal calculations back then. Bill Wiese's info may help reveal the root causes of what I've recently seen on the LED TI-30, which wasn't exactly "cheap" in 1976: Its $25 price then is the equivalent of $86 today, according to the Inflation Calculator.

Best,

-- KS

Edited: 23 Jan 2007, 2:47 a.m.


[ Return to Index | Top of Index ]

Go back to the main exhibit hall