![]() |
DATAMATH CALCULATOR MUSEUM |
Last but not least the article mentiones
the "Logarithm Bug - Reloaded". The Bug
Essentially, the TI-35X calculates inaccurate values for ln(1 + x) where
x is a small number,
The yx FunctionA strange side effect of the logarithm bug is the
related yx function, most calculators use the rule Example: 35: e(3 * ln(5)) = 125
The best way to demonstrate the logarithm bug could be found with the exponential function, one of the most important functions in mathematics. It is written as ex and can be defined as a limit of a sequence:
The following table compares the results of the above expression for some values of n using four different calculators (rounded to 8 digits, RED numbers indicate wrong results):
Affected Calculator ModelsThe Logarithm Bug is present in all calculators based on the algorithm of the Toshiba T6A57 (TI-36X Solar) , T6A58 (TI-35X), T6A61 (TI-30X), T6M38 (TI-30X Solar), T6M79 (TI-30Xa Solar, TI-30Xa SE) and T6M80 (TI-30Xa). These calculators could identified by a result of 9.00000229461 running Mike Sebastian's "Calculator forensics". A typical feature of the affected calculators is a 10-digit display and 12-digit precision of the internal calculations. Different CalculatorsDuring the research of the calculating precision realized in different calculators we noticed some strange results:
Logarithm Bug - ReloadedTexas Instruments stopped in 2000 the production of the new two-line calculators TI-30X IIB, TI-30X IIS, TI-34 II, and TI-40 Collège II and announced a replacement offer running through January 31, 2001. What happened ? Customers reported the calculators with production date codes earlier than N1299 or C1299 returned incorrect answers on specific, multi-decimal-place values in combination with specific functions. The chance of this situation occuring in an individual's average use is remote but engineers of Texas Instruments fixed the software bug. Please find the original announcement retrieved from the Texas Instruments calculator website: Important Notice for Owners of the TI-30X IIS, TI-30X IIB, TI-34 II, and TI-40 College IIThis replacement offer is good through January 31, 2001 We listen to our customers, especially when you tell us things you don't
like. We halted production of these products and fixed the software. As we
did so, our engineers concluded that the chance of this situation occurring in an individual's average use is remote, given the specific
functions and combinations needed. (These are detailed below.) New, revised product is now shipping to stores. If, however, you have
affected product*, and you're concerned about its performance, please contact us at the phone numbers or email address listed below and we
will replace your product. [Telephone numbers and email addess omitted.] Background - TI-34 II, TI-40 College IIFor the TI-34 II and the TI-40 College II, the following functions and ranges will give incorrect results for products with date codes earlier than 1299. The result for the range limits shown will be correct and the values between these limits will be incorrect. The log() and ln() FunctionAlso YX if Y is inside the range shwn and X is any value other than
an integer in the range {0,9}. Entry Value between 1.020201346154 and 1.020202020203 Entry Value between 1.002002001340 and 1.002002002003 Entry Value between 1.000200020001 and 1.000200020003 Entry Value between 0.9801980198019 and 0.9801986674200 Entry Value between 0.9980019980019 and 0.9980019986620 Background - TI-30X IIS, TI-30X IIBFor the TI-30X IIS and the TI-30X IIB, the following functions and ranges will give incorrect results for products with date codes earlier than 1299. The results for the range limits shown will be correct and the values between these limits will be incorrect. The log() and ln() FunctionAlso YX if Y is inside the range shwn and X is any value other than
an integer in the range {0,9}. Entry Value between 1.020201346154 and 1.020202020203 Entry Value between 1.002002001340 and 1.002002002003 Entry Value between 1.000200020001 and 1.000200020003 Entry Value between 0.9801980198019 and 0.9801986674200 Entry Value between 0.9980019980019 and 0.9980019986620 The tanh-1() FunctionAlso gives incorrect results for the negatives of the values below: Entry Value between 9.966799777635 e-02 and 1.0 e-01 Entry Value between 9.999669682703 e-03 and 1.0 e-02 Entry Value between 9.999996696697 e-04 and 1.0 e-03 Entry Value between 9.999999966966 e-05 and 1.0 e-04 Entry Value between 9.999999999669 e-06 and 1.0 e-05 Entry Value between 9.999999999996 e-07 and 1.0 e-06 The cosh-1() FunctionEntry Value between 1.005004168374 and 1.005037815260 Entry Value between 1.000050000446 and 1.000050003751 The sinh-1() FunctionAlso gives incorrect results for the negatives of the values listed below: Entry Value between 1.001667532187 e-01 and 1.005037815259 e-01 Entry Value between 1.000016967064 e-02 and 1.000050003750 e-02 Entry Value between 1.000000169669 e-03 and 1.000000500000 e-0 Entry Value between 1.000000001696 e-04 and 1.000000005000 e-04 Entry Value between 1.000000000016 e-05 and 1.000000000050 e-05 (c) Copyright 2000 Texas Instruments Incorporated. All rights reserved. |
![]()
If you have additions to the above article please email: joerg@datamath.org.
© Bob Senzer, Mike Sebastian and Joerg Woerner, July 12, 2004 and October 11, 2005. No reprints without written permission.