Bibliography of material on Decimal Arithmetic [Index]

Decimal Arithmetic: Miscellaneous

think 10

aber1992
¿Web?
Precise Computation Using Range Arithmetic, via C++, Oliver Aberth and Mark J Schaefer, ACM Transactions on Mathematical Software, Vol. 18 #4, pp481–491, ACM Press, December 1992.
Abstract: An arithmetic is described that can replace floating-point arithmetic for programming tasks requiring assured accuracy. A general explanation is given of how the arithmetic is constructed with C++, and a programming example in this language is supplied. Times for solving representative problems are presented.
allard1963
¿Web?
Mixed Congruential Random Number Generators for Decimal Machines, J. L. Allard, A. R. Dobell, and T. E. Hull, Journal of the ACM, Vol. 10 #2, pp131–141, ACM Press, April 1963.
Abstract: Random number generators of the mixed eongruential type have recently been proposed. They appear to have some advantages over those of the multiplicative congruential type, but they have not been thoroughly tested. This paper summarizes the results of extensive testing of these generators which has been carried out on a decimal machine. Most results are for word length 10, and special attention is given to simple multipliers which give fast generators. But other word lengths and many other multipliers are considered. A variety of additive constants is also used. It turns out that these mixed generators, in contrast to the multiplicative ones, are not consistently good from a statistical point of view. The cases which are bad seem to belong to a well-defined class which, unfor unfortunately, includes most of the generators associated with the simple multipliers. However, a surprise result is that all generators associated with one of the simplest and fastest multipliers, namely 101, turn out to be consistently good for word lengths greater than seven digits. A final section of the paper suggests a simple theoretical explanation of these experimental results.
allison2006
¿Web?
Where did all my decimals go?, Chuck Allison, Computing Sciences in Colleges, Vol. 21 #3, pp47–59, Consortium for Computing Sciences in Colleges, February 2006.
Abstract: It is tremendously ironic that computers were invented with number crunching in mind, yet nowadays most CS graduates leave school with little or no experience with the intricacies of numeric computation. This paper surveys what every CS graduate should know about floating-point arithmetic, based on experience teaching a recently-created course on modern numerical software development.
ashen1959
¿Web?
Unnormalized Floating Point Arithmetic, R. L. Ashenhurst and N. Metropolis, Journal of the ACM, Vol. 6 #3, pp415–428, ACM Press, July 1959.
Abstract: Algorithms for floating point computer arithmetic are described, in which fractional parts are not subject to the usual normalization convention. These algorithms give results in a form which furnishes some indication of their degree of precision. An analysis of one-stage error propagation is developed for each operation; a suggested statistical model for long run error propagation is also set forth.
babu2005
¿Web?
Design of a Reversible Binary Coded Decimal Adder by Using Reversible 4-bit Parallel Adder, Hafiz Md. Hasan Babu and Ahsan Raja Chowdhury, Proceedings of the 18th International Conference on VLSI Design (VLSID 2005), ISBN 0-7695-2264-5, pp255–260, IEEE, 2005.
Abstract: In this paper, we have proposed a design technique for the reversible circuit of binary coded decimal (BCD) adder. The proposed circuit has the ability to add two 4-bits binary variables and it transforms the addition into the appropriate BCD number with efficient error correcting modules where the operations are reversible. We also show that the proposed design technique generates the reversible BCD adder circuit with minimum number of gates as well as the minimum number of garbage outputs.
bashe1954
¿Web?
The IBM Type 702, An Electronic Data Processing Machine for Business, C. J. Bashe, W. Buchholz, and N. Rochester, Journal of the ACM (JACM), Vol. 1 #4, pp149–169, ACM Press, October 1954.
Abstract: The main features of the IBM Electronic Data Processing Machine, Type 702, are discussed from the programmer’s point of view to illustrate how it was designed specifically to solve large accounting and statistical problems in business, industry, and government. The 702 exploits in one integrated system the high speed and storage capacity of magnetic tape, the accessibility of electrostatic memory supplemented by large auxiliary storage on magnetic drums, the flexibility of punched-card document input, the page printing output of modern accounting machines, and the technology of general-purpose, stored-program, electronic computers. The 702 is a serial machine with decimal arithmetic. Its serial nature provides several unusual logical features of great aid in programming accounting problems.
beebe2007a
¿Web?
Extending TeX and METAFONT with floating-point arithmetic, Nelson H.F. Beebe, Proceedings of TUG 2007, TUGboat Vol. 28 #3, ISSN 0896-3207, pp319–328, TeX User's Group, July 2007.
Abstract: The article surveys the state of arithmetic in TeX and METAFONT, suggests that they could usefully be extended to support floating-point arithmetic, and shows how this could be done with a relatively small effort, without loss of the important feature of platform-independent results from those programs, and without invalidating any existing documents, or software written for those programs, including output drivers.
bernal2006
¿Web?
Integer Representation of Decimal Numbers for Exact Computations, Javier Bernal and Christoph Witzgall, Journal of Research of the National Institute of Standards and Technology, Vol. 111 #2, pp79–88, National Institute of Standards and Technology, March-April 2006.
Abstract: A scheme is presented and software is documented for representing as integers input decimal numbers that have been stored in a computer as double precision floating point numbers and for carrying out multiplications, additions and subtractions based on these numbers in an exact manner. The input decimal numbers must not have more than nine digits to the left of the decimal point. The decimal fractions of their floating point representations are all first rounded off at a prespecified location, a location no more than nine digits away from the decimal point. The number of digits to the left of the decimal point for each input number besides not being allowed to exceed nine must then be such that the total number of digits from the leftmost digit of the number to the location where round-off is to occur does not exceed fourteen.
bhat2007
¿Web?
Performance Characterization of Decimal Arithmetic in Commercial Java Workloads, M. Bhat, J. Crawford, R. Morin, and K. Shiv, IEEE International Symposium on Performance Analysis of Systems & Software, 2007 (ISPASS 2007) IEEE, pp54–61, April 2007.
Abstract: Binary floating-point numbers with finite precision cannot represent all decimal numbers with complete accuracy. This can often lead to errors while performing calculations involving floating point numbers. For this reason many commercial applications use special decimal representations for performing these calculations, but their use carries performance costs such as bi-directional conversion. The purpose of this study was to understand the total application performance impact of using these decimal representations in commercial workloads, and provide a foundation of data to justify pursuing optimized hardware support for decimal math. In Java, a popular development environment for commercial applications, the BigDecimal class is used for performing accurate decimal computations. BigDecimal provides operations for arithmetic, scale manipulation, rounding, comparison, hashing, and format conversion. We studied the impact of BigDecimal usage on the performance of server-side Java applications by analyzing its usage on two standard enterprise benchmarks, SPECjbb2005 and SPECjAppServer2004 as well as a real-life mission-critical financial workload, Morgan Stanley’s Trade Completion. In this paper, we present detailed performance characteristics and we conclude that, relative to total application performance, the overhead of using software decimal implementations is low, and at least from the point of view of these workloads, there is insufficient performance justification to pursue hardware solutions
brent1981
URL
¿Web?
MP User's Guide (Fourth Edition), Richard P. Brent, 73pp, Dept. Computer Science, Australian National University, Canberra, TR-CS-81-08, June 1981.
Abstract: MP is a multiple-precision floating-point arithmetic package. It is almost completely machine-independent, and should run on any machine with an ANSI Standard Fortran (ANS X3.9-1966) compiler, sufficient memory, and a wordlength (for integer arithmetic) of at least 16 bits. A precompiler (Augment) which facilitates the use of the MP package is available. ...
    MP works with normalized floating-point numbers. The base (B) and number of digits (T) are arbitrary, subject to some restrictions given below, and may be varied dynamically. ...
brosgol1992
¿Web?
An Ada Decimal Arithmetic Capability, Benjamin M. Brosgol, Robert I. Eachus, and David E. Emery, CrossTalk, The Journal of Defense Software Engineering, Number 36, 8 (approx)pp, US Air Force Software Technology Support Center, September 1992.
Abstract: (None.)
    Support for financial processing requires suitable arithmetic facilities, representation control, and formatted output. This paper ... describes the possible approaches to the problem, the solution that the authors have developed, and the rationale for the choice. The name chosen for the solution, ADAR, stands for “Ada Decimal Arithmetic and Representations”

Note: Probably the same as or very similar to “Decimal arithmetic in Ada” by the same authors in the same year.
brosgol1994
¿Web?
Information Systems Development in Ada, Benjamin M. Brosgol, Robert I. Eachus, and David E. Emery, Eleventh Annual Washington Ada Symposium, pp2–16, ACM Press, June 1994.
Abstract: (None.)
    In this paper we survey how to use Ada (both Ada 83 and Ada 9X) for IS applications, with a focus on two principal issues: Specification of the information architecture of an IS application, and Programming techniques relevant to financial and related applications.
    We cover both the language features and the supplemental packages for IS development. Special attention will be paid to the Ada Decimal-Associated Reusabilia (“ADAR”) components for Ada 83 and transitioning to Ada 9X.
brown1974a
¿Web?
Some error correcting codes for certain transposition and transcription errors in decimal integers, D. A. H. Brown, The Computer Journal, Vol. 17 #1, pp9–12, OUP, February 1974.
Abstract: The standard theory of modulus 11 cyclic block error-correcting codes is applied to numbers expressed in the decimal system. An algorithm for error correction is given.
brown1974b
¿Web?
Biquinary decimal error detection codes with one, two and three check digits, D. A. H. Brown, The Computer Journal, Vol. 17 #3, pp201–204, OUP, August 1974.
Abstract: The biquinary system of representing the decimal integers 0 to 9 is combined with polynomial coding to produce true decimal codes having any required number of check digits added to an integer of any length.
burks1946
¿Web?
Preliminary discussion of the logical design of an electronic computing instrument, Arthur W. Burks, Herman H. Goldstine, and John von Neumann, 42pp, Inst. for Advanced Study, Princeton, N. J., June 28, 1946.
Abstract: Inasmuch as the completed device will be a general-purpose computing machine it should contain certain main organs relating to arithmetic, memory-storage, control and connection with the human operator. It is intended that the machine be fully automatic in character, i.e. independent of the human operator after the computation starts...
Note: Reprinted in von Neumann’s Collected Works, Vol. 5, A. H. Taub, Ed. (Pergamon, London, 1963), pp 34-79, and also in Computer Structures: Reading and Examples, Bell & Newell, McGraw-Hill Inc., 1971. Now widely available on the Internet.
    Contract W-36-034-ORD-H81. R&D Service, Ordnance Department, US Army and Institute for Advanced Study, Princeton
cornea2007
URL
¿Web?
A Software Implementation of the IEEE 754R Decimal Floating-Point Arithmetic Using the Binary Encoding Format, Marius Cornea, Cristina Anderson, John Harrison, Ping Tak Peter Tang, Eric Schneider, and Charles Tsen, Proceedings of the 18th IEEE Symposium on Computer Arithmetic, ISBN 0-7695-2854-6, ISBN 978-0-7695-2854-0, pp29–37, IEEE, June 2007.
Abstract: The IEEE Standard 754-1985 for Binary Floating-Point Arithmetic was revised, and an important addition is the definition of decimal floating-point arithmetic. This is intended mainly to provide a robust, reliable framework for financial applications that are often subject to legal requirements concerning rounding and precision of the results, because the binary floating-point arithmetic may introduce small but unacceptable errors. Using binary floating-point calculations to emulate decimal calculations in order to correct this issue has led to the existence of numerous proprietary software packages, each with its own characteristics and capabilities. IEEE 754R decimal arithmetic should unify the ways decimal floating-point calculations are carried out on various platforms. New algorithms and properties are presented in this paper which are used in a software implementation of the IEEE 754R decimal floatingpoint arithmetic, with emphasis on using binary operations efficiently. The focus is on rounding techniques for decimal values stored in binary format, but algorithms for the more important or interesting operations of addition, multiplication, division, and conversions between binary and decimal floating-point formats are also outlined. Performance results are included for a wider range of operations, showing promise that our approach is viable for applications that require decimal floating-point calculations.
cowlis2004
¿Web?
Fixed, floating, and exact computation with Java's BigDecimal, M. Cowlishaw, J. Bloch, and J.D. Darcy, Dr. Dobb's Journal Vol. 29 #7, ISSN 1044-789X, pp22–27, CMP Media, July 2004.
Abstract: Decimal data types are widely used in commercial, financial, and Web applications, and many general-purpose programming languages have either native decimal types or readily available decimal arithmetic packages. Since the 1.1 release, the libraries of the Java programming language supported decimal arithmetic via the Java.math.BigDecimal class. With the inclusion of JSR13 into J2SE 1.5, BigDecimal now has true floating-point operations consistent with those in the IEEE 754 revision. In this article, we first explain why decimal arithmetic is important and the differences between the BigDecimal class and binary float and double types.
dall1994
¿Web?
Dynamics of Arithmetic: A Connectionist View of Arithmetic Skills, Richard Z. Dallaway, ISSN 1350-3162, 159pp, CSRP 306, Univerity of Sussex, February 1994.
Abstract: Arithmetic takes time. Children need five or six years to master the one hundred multiplication facts (00 to99), and it takes adults approximately one second to recall an answer to a problem like 78. Multicolumn arithmetic (e.g., 4567) requires a sequence of actions, and children produce a host of systematic mistakes when solving such problems. This thesis models the time course and mistakes of adults and children solving arithmetic problems. Two models are presented, both of which are built from connectionist components.
davis1952
¿Web?
Automatic Recognition of Spoken Digits, K. Davis, R. Biddulph, and S. Balashek, Journal of the Acoustical Society of America, Vol. 24 (Possibly: American Journal of Otolaryngology, Vol. 24.), pp637–642, ASA, November 1952.
Abstract: The recognizer discussed will automatically recognize telephone-quality digits spoken at normal speech rates by a single individual, with an accuracy varying between 97 and 99 percent. After some preliminary analysis of the speech of any individual, the circuit can be adjusted to deliver a similar accuracy on the speech of that individual. The circuit is not, however, in its present configuration, capable of performing equally well on the speech of a series of talkers without recourse to such adjustment.
    Circuitry involves division of the speech spectrum into two frequency bands, one below and the other above 900 cps. Axis-crossing counts are then individually made of both band energies to determine the frequency of the maximum syllabic rate energy within each band. Simultaneous two-dimensional frequency portrayal is found to possess recognition significance. Standards are then determined, one for each digit of the ten-digit series, and are built into the recognizer as a form of elemental memory. By means of a series of calculations performed automatically on the spoken input digit, a best match type comparison is made with each of the ten standard digit patterns and the digit of best match selected.
dec1990
¿Web?
Software Product Description: COBOL-81/RSTS/E, Version 3.1, DEC, 3pp, Digital Equipment Corporation, December 1990.
Abstract: COBOL-81/RSTS/E is a high-level language for business data processing that operates under control of the RSTS/E Operating System. It is based on the 1985 ANSI COBOL Standard X3.23-1985 and includes all of the features necessary to achieve the intermediate level of that standard. COBOL-81/RSTS/E is a subset of VAX COBOL and includes various Digital Equipment Corporation extensions to COBOL, including screen handling at the source language level. COBOL-81/RSTS/E also supports the ANSI-1974 standard, and both standards are switch selectable using the /STA:V2 or /STA:85 switches.
dec1992
¿Web?
Software Product Description: VAX 9000 Series Diagnostic Set, DEC, 3pp, Digital Equipment Corporation, April 1992.
Abstract: VAX 9000 Series Diagnostic Set is a package of programs that allows users to maintain a VAX 9000 system. These diagnostics test all subsystems of the VAX 9000 system including the Power Control System, Service Processor System, CPU, Memory, I/O Adapters, and peripheral devices. The package includes firmwarebased tests, service-processor-based tests, and macrodiagnostics
delury1958
¿Web?
Computation with Approximate Numbers, Daniel B. Delury, The Mathematics Teacher 51, pp521–530, November 1958.
Abstract: There is room, I think, for the view that it is improper to speak at all of “approximate numbers”...
Note: Reprinted with permission of the Canadian School.
dietmeyer1968
¿Web?
Generating prime implicants via ternary encoding and decimal arithmetic, D. L. Dietmeyer and J. R. Duley, Communications of the ACM, Vol. 11 #7, ISSN 0001-0782, pp520–523, ACM Press, July 1968.
Abstract: Decimal arithmetic, ternary encoding of cubes, and topological considerations are used in an algorithm to obtain the extremals and prime implicants of Boolean functions. The algorithm, which has been programmed in the FORTRAN language, generally requires less memory than other minimization procedures, and treats DON’T CARE terms in an efficient manner.
duale2007
URL
¿Web?
Decimal floating-point in z9: An implementation and testing perspective, A. Y. Duale, M. H. Decker, H.-G. Zipperer, M Aharoni, and T. J. Bohizic, IBM Journal of Research and Development, Vol. 51 #1/2, ISSN 0018-8646, pp217–227, IBM, January 2007.
Abstract: Although decimal arithmetic is widely used in commercial and financial applications, the related computations are handled in software. As a result, applications that use decimal data may experience performance degradations. Use of the newly defined decimal floating-point (DFP) format instead of binary floating-point is expected to significantly improve the performance of such applications. System z9™ is the first IBM machine to support the DFP instructions. We present an overview of this implementation and provide some measurement of the performance gained using hardware assists. Various tools and techniques employed for the DFP verification on unit, element, and system levels are presented in detail. Several groups within IBM collaborated on the verification of the new DFP facility, using a common reference model to predict DFP results.
edgar1979
¿Web?
FOCUS Microcomputer Number System, Albert D. Edgar and Samuel C. Lee, Communications of the ACM Vol. 22 #3, pp166–177, ACM Press, March 1979.
Abstract: FOCUS is a number system and supporting computational algorithms especially useful for microcomputer control and other signal processing applications. FOCUS has the wide-ranging character of floating-point numbers with a uniformity of state distributions that give FOCUS better than a twofold accuracy advantage over an equal word length floating-point system. FOCUS computations are typically five times faster than single precision fixed-point or integer arithmetic for a mixture of operations, comparable in speed with hardware arithmetic for many applications. Algorithms for 8-bit and 16-bit implementations of FOCUS are included.
gold1992
¿Web?
The Design of Floating-Point Data Types, David Goldberg, ACM Letters on Programming Languages and Systems, Vol. 1 #2, pp138–151, ACM Press, June 1992.
Abstract: The issues involved in designing the floating-point part of a programming language are discussed. Looking at the language specifications for most existing languages might suggest that this design involves only trivial issues, such as whether to have one or two types of REALs or how to name the functions that convert from INTEGER to REAL. It is shown that there are more significant semantic issues involved. After discussing the trade-offs for the major design decisions, they are illustrated by presenting the design of the floating-point part of the Modula-3 language.
gord1998
URL
¿Web?
A Calculated Look at Fixed-Point Arithmetic, Robert Gordon, Embedded Systems Programming, Vol. 11 #4, pp72–78, Miller Freeman, Inc, April 1998.
Abstract: This article explores the subject of fixed-point numbers and presents techniques you can use to implement efficient, fixed-precision number applications.
gray2003
¿Web?
Before the B5000: Burroughs Computers, 1951-1963, George T. Gray and Ronald Q. Smith, IEEE Annals of the History of Computing, Vol. 25 #2, pp50–61, IEEE, April-June 2003.
Abstract: Like many companies entering the computer industry, Burroughs began by working on US government contracts. Once sufficient expertise had been gained, the company entered the general purpose computer market. The Datatron computer, obtained through the ElectroData Corporation acquisition, was a modest success in the late 1950s; however, pioneering work on transistor computers for military contracts was not immediately transferred to the commercial marketplace.
guedj1996
¿Web?
Numbers: The Universal Language, Denis Guedj, ISBN 0-8109-2845-0, 176pp, Harry N. Abrams, Inc, 1997.
Abstract: Numbers, like letter forms, have a rich and complex history. Who first invented them? How old are they, and how were they developed? ...
    With Chronology and Glossary. Many referenced illustrations.

Note: Translated from the French (Empire des nombres) by Lory Frankel.
hamilton1954
¿Web?
The IBM Magnetic Drum Calculator Type 650, F. E. Hamilton and E. C. Kubie, Journal of the ACM, Vol. 1 #1, pp13–20, ACM Press, January 1954.
Abstract: The IBM Magnetic Drum Calculator Type 650 is an electronic calculator intermediate in speed, capacity and cost. It takes a logical position between the IBM Card Programmed Electronic Calculator and the IBM Electronic Data Processing Machines Type 701. It is a more powerful computing tool as required by those who have “outgrown” the Card Programmed Electronic Calculator. It is also a machine which may be used economically by those who are not as yet ready for a large scale computer such as the 701. It will serve not only to perform their required computing tasks, but it will also result in gaining valuable experience for later use of large scale equipment. The Magnetic Drum Calculator, through its stored program control, comprehensive order list, punched card input-output, self-checking and moderate memory capacity, gains the flexibility required of a computer which is to serve in both the commercial and scientific computing fields...
hp71ref1987a
¿Web?
Math Reference, Hewlett Packard Company, HP-71 Reference Manual, Mfg. # 0071-90110, Reorder # 0071-90010, pp317–318, Hewlett Packard Company, October 1987.
Note: First edition October 1983. Subsections describe the numeric precisions available and the range of representable numbers. Manual available from The Museum of HP Calculators (www.hpmuseum.org).
hull1980
¿Web?
Principles, Preferences and Ideals for Computer Arithmetic, Thomas E. Hull, Christian H. Reinsch, and John R. Rice, CSD-TR-339, 13pp, Dept. of Computer Science, Purdue University, June 1980.
Abstract: This paper presents principles and preferences for the implementation of computer arithmetic and ideals for the arithmetic facilities in future programming languages. The implementation principles and preferences are for the current approaches to the design of arithmetic units. The ideals are for the long term development of programming languages, with the hope that arithmetic units will be built to support the requirements of programming languages.
hull1985a
¿Web?
Numerical Turing, T. E. Hull, A. Abrham, M. S. Cohen, A. F. X. Curley, C. B. Hall, D. A. Penny, and J. T. M. Sawchuk, SIGNUM Newsletter, vol. 20 # 3, pp26–34, ACM Press, July 1985.
Abstract: Numerical Turing is an extension of the Turing programming language. Turing is a Pascal-like language (with convenient string handling, dynamic arrays, modules, and more general parameter lists) developed at the University of Toronto. Turing has been in use since May, 1983, and is now available on several machines.
    The Numerical Turing extension is especialy designed for numerical calculations. The important new features are: (a) clean decimal arithmetic, along with convenient functions for directed roundings and exponent manipulation; (b) complete precision control of variables and operations. ...
hunter1975
¿Web?
A quantitative measure of precision, G. Hunter, The Computer Journal, Volume 18, Issue 3, pp231–233, OUP, August 1975.
Abstract: The precision zb of a real number is defined quantitatively in terms of the fractional error in the number, and the base of the arithmetic in which it is represented. The definition is an extension of the traditional rough measure of precision as the number of signification digits in the number. In binary arithmetic the integral part of zb is the number of binary digits required to store the number. Conversion of the precision from one base to another (such as binary/decimal) is discussed, and applied to consideration of the intrinsic precision of input/output routines and floating point arithmetic.
ifrah1981
¿Web?
The Universal History of Numbers, Georges Ifrah, ISBN 1-86046-324-X, 633pp, The Harvill Press Ltd., 1994.
Abstract: More than a history of counting and calculating from the caveman to the late twentieth century, this is the story of how the human race has learnt to think logically. The reader is taken through the whole art and science of numeration as it has developed all over the world, from Europe to China, via the Classical World, Mesopotamia, South America, and, above all, India and the Arab lands. ...
Note: Translated from the French by David Bellos, E. F. Harding, Sophie Wood, and Ian Monk.
    (Also published is a translation of an earlier edition – From One to Zero: A Universal History of Numbers. Translated by Lowell Bair. Viking, New York, 1985.)
imajo2000
¿Web?
COBOL Script: A Business-Oriented Scripting Language, T. Imajo, T. Miyake, S. Sato, T. Ito, D. Yokotsuka, Y. Tsujihata, and S. Uemura, Proceedings of the Fourth International Conference on Enterprise Distributed Object Computing (EDOC'00), pp231–240, IEEE, September 2000.
Abstract: This paper describes COBOL Script, a Web-oriented script language developed by Hitachi. COBOL Script includes the following features: (1) The language specifications, which consist of functions required for Web computing, are a subset of COBOL85, the most frequently used programming language in business information systems. (2) COBOL Script supports decimal arithmetic functions that have the same precision as in standard COBOL85 on mainframe computers. (3) Efficient implementation was based on analysis of the pros and cons of the COBOL processing system. Using COBOL Script, users can: (1) Process applications requiring high precision, such as account-related applications, over the Web. (2) Use a test debugger and a Coverage Function with COBOL Script for large-scale development projects. (3) Use Japanese in programs. (4) Achieve good run-time performance.
jacob1973
¿Web?
A Combinatoric Division Algorithm for Fixed-Integer Divisors, David H. Jacobsohn, IEEE Transactions on Computers, Vol. C-22 #6, pp608–610, IEEE, June 1973.
Abstract: A procedure is presented for performing a combinatoric fixed-integer division that satisfies the division algorithm in regard to both quotient and remainder. In this procedure, division is performed by multiplying the dividend by the reciprocal of the divisor. The reciprocal is, in all nontrivial cases, of necessity a repeating binary fraction, and two treatments for finding the product of an integer and repeating binary fraction are developed. Two examples of the application of the procedure are given.
jointcomm2006
URL
¿Web?
The Official "Do Not Use" List, The Joint Commission, URL: http://www.jointcommission.org/PatientSafety/DoNotUseList/, 1p, 2006.
Abstract: In May 2005, The Joint Commission affirmed its “do not use” list of abbreviations. The list was originally created in 2004 by the Joint Commission as part of the requirements for meeting National Patient Safety Goal (NPSG) requirement 2B (Standardize a list of abbreviations, acronyms and symbols that are not to be used throughout the organization). Summit conclusions were posted on the Joint Commission website for public comment. During the four-week comment period, the Joint Commission received 5,227 responses, including 15,485 comments. More than 80 percent of the respondents supported the creation and adoption of a “do not use” list.
jones1984
¿Web?
A Significance Rule for Multiple-Precision Arithmetic, Christopher B. Jones, ACM Transactions on Mathematical Software (TOMS), Vol. 10 #1, pp97–107, ACM Press, March 1984.
Abstract: Multiple-precision arithmetic overcomes the round-off error incurred in conventional floating-point arithmetic, at the cost of increased processing overhead. Significance arithmetic takes into account the inexactness of the operands of a calculation, but can lead to loss of significant digits after a long series of operations. A new technique is described which alleviates the overhead of multiple-precision arithmetic by allowing nonsignificant digits to be discarded, while limiting the significance loss per operation to a controllable and acceptable rate. The technique is based on storing an inexact number as an interval, using a criterion of significance to determine the precision with which the limits of the interval should be stored. A procedure referred to as a significance rule uses this criterion to remove some of the nonsignificant digits from the limits of an interval prior to storage. A certain number of nonsignificant digits are retained as guard digits. Calculations are performed using exact interval arithmetic and the significance-rule procedure is invoked after each operation to remove superfluous diglts. Round-off in the procedure causes a slight increase in the interval width on each operation. This results in a cumulative loss of significance at a rate related to the number of guard digits.
kahan1983
URL
¿Web?
Mathematics Written in Sand, W. Kahan, Proc. Joint Statistical Mtg. of the American Statistical Association, pp12–26, American Statistical Association, 1983.
Abstract: Simplicity is a Virtue; yet we continue to cram ever more complicated circuits ever more densely into silicon chips, hoping all the while that their internal complexity will promote simplicity of use. This paper exhibits how well that hope has been fulfilled by several inexpensive devices widely used nowadays for numerical computation. One of them is the Hewlett-Packard hp-15C programmable shirtpocket calculator, on which only a few keys need be pressed to perform tasks like these:
    Real and Complex arithmetic, including the elementary transcendental functions and their inverses; Matrix arithmetic including inverse, transpose, determinant, residual, norms, prompted input/output and complex-real conversion; Solve an equation and evaluate an Integral numerically; simple statistics; G and combinatorial functions; ...
    For instance, a stroke of its [1/X] key inverts an 8x8 matrix of 10-sig.-dec. numbers in 90 sec.
    This calculator costs under $100 by mail-order. Mathematically dense circuitry is also found in Intel’s 8087 coprocessor chip, currently priced below $200, which has for two years augmented the instruction repertoire of the 8086 and 8088 microcomputer chips to cope with ...
    Three binary floating-point formats 32, 64 and 80 bits wide; three binary integer formats 16, 32 and 64 bits wide; 18-digit BCDecimal integers; rational arithmetic, square root, format conversion and exception handling all in conformity with p754, the proposed IEEE arithmetic standard (see “Computer” Mar. 1, 1981); the kernels of transcendental functions exp, log, tan and arctan; and an internal stack of eight registers each 80 bits wide.
    For instance, the 8087 has been used to invert a 100x100 matrix of 64-bit floating-point numbers in 90 sec. Among the machines that can use this chip are the widely distributed IBM Personal Computers, each containing a socket already wired for an 8087. Several other manufacturers now produce arithmetic engines that, like the 8087, conform to the proposed IEEE arithmetic standard, so software that exploits its refined arithmetic properties should be widespread soon.
    As sophisticated mathematical operations come into use ever more widely, mathematical proficiency appears to rise; in a sense it actually declines. Computations formerly reserved for experts lie now within reach of whoever might benefit from them regardless of how little mathematics he understands; and that little is more likely to have been gleaned from handbooks for calculators and personal computers than from professors. This trend is pronounced among users of financial calculators like the hp-12C. Such trends ought to affect what and how we teach, as well as how we use mathematics, regardless of whether large fast computers, hitherto dedicated mostly to speed, ever catch up with some smaller machines’ progress towards mathematical robustness and convenience.
kahn2004
¿Web?
The child-engineering of arithmetic in ToonTalk, Ken Kahn, Proceedings of the 2004 conference on Interaction Design and Children, ISBN 1-58113-791-5, pp141–142, ACM Press, 2004.
Abstract: Providing a child-appropriate interface to an arithmetic package with large numbers and exact fractions is surprisingly challenging. We discuss solutions to problems ranging from how to present fractions such as 1/3 to how to deal with numbers with tens of thousands of digits. As with other objects in ToonTalk®, we strive to make the enhanced numbers work in a concrete and playful manner.
kaplan1999
¿Web?
The Nothing That Is – A Natural History of Zero, Robert Kaplan, ISBN 0-19-512842-7, 225pp, Oxford University Press, 1999.
Abstract: If you look at zero you see nothing; but look through it and you will see the world. For zero brings into focus the great, organic sprawl of mathematics, and mathematics in turn the complex nature of things. ...
Note: Also available in paperback: ISBN 0-19-514237-3.
karpin1925
¿Web?
The History of Arithmetic, Louis Charles Karpinski, 200pp, Rand McNally & Company, 1925.
Abstract: The purpose of this book is to present the development of arithmetic as a vital and integral part of the history of civilization. Particular attention is paid to the material of arithmetic which continues to be taught in our elementary schools and to the historical phases of that work with which the teacher of arithmetic should be familiar...
Note: Reprint: Russell & Russell, New York, 1965.
kautz1958
¿Web?
Binary and truth-function operations on a decimal computer with an extract command, William H. Kautz, Communications of the ACM, Vol. 1 #5, pp12–13, ACM Press, May 1958.
Abstract: It occasionally becomes desirable to solve, on automatic digital computing machines which are capable of handling only decimal numbers, problems in logic, class structure, coding, binary relations or binary arithmetic. This note describes how the major logical and binary operations can be carried out on one such machine, the DATATRON 205, without any circuit modifications to the computer. These procedures would be applicable with little modification to any decimal computer with an extract command, however.
klerer1967
¿Web?
Chapt. 1.4 Computer Characteristics Table, Melvin Klerer et al, Digital Computer User's Handbook, 67pp, McGraw-Hill, NY, 1967.
Abstract: Section I: General-purpose Solid-state Computers Manufactured in the United States and Designed for a Wide Variety of Business and Scientific Applications
   Section II: Systems Manufactured in the United States with General-purpose Capabilities but Used Principally in Process Control, Message Switching, and Other Specialized Applications
   Section III: General-purpose Computers Manufactured in Countries Other Than the United States
   Section IV: Vacuum-tube Computers No Longer Manufactured but Still in Use
   Section V: Chronological Listing of Vacuum-tube and Solid-state Computers Manufactured in the United States and Installed between 1951 and 1965
knuth1986
¿Web?
The IBM 650: An Appreciation from the Field, Donald E. Knuth, IEEE Annals of the History of Computing, Vol. 8 #1, pp50–55, IEEE, January-March 1986.
Abstract: I suppose it was natural for a person like me to fall in love with his first computer. But there was something special about the IBM 650, something that has provided the inspiration for much of my life’s work. Somehow this machine was powerful in spite of its severe limitations. Somehow it was friendly in spite of its primitive man-machine interface...
lee1989
URL
¿Web?
Multistep Gradual Rounding, Corinna Lee, IEEE Transactions on Computers, Vol. 28 #4, pp595–600, IEEE, April 1989.
Abstract: A value V is to be rounded to an arbitrary precision resulting in the value V“. Conventional rounding technique uses one step to accomplish this. Alternatively, multistep rounding uses several steps to round the value V to successively shorter precisions with the final rounding step producing the desired value V”. This alternate rounding method is one way to implement, with the minimum of hardware, the denormalization process that the IEEE Floating-Point Standard 754 requires when underflow occurs. There are certain cases for which multistep rounding produces a different result than single-step rounding. To prevent such a step error, the author introduces a rounding procedure called gradual rounding that is very similar to conventional rounding with the addition of two tag bits associated with each floating-point register.
lemieux2001
URL
¿Web?
Fixed-Point Math in C, Joe Lemieux, Embedded Systems Programming, Vol. 14 #4, EDTN, April 2001.
Abstract: Floating-point arithmetic can be expensive if you’re using an integer-only processor. But floating-point values can be manipulated as integers, as a less expensive alternative.
liu1978
¿Web?
Error-Correcting Codes in Binary-Coded-Decimal Arithmetic, Chao-Kai Liu and Tse Lin Wang, IEEE Transactions on Computers, Vol. 27 #11, pp977–984, IEEE, November 1978.
Abstract: Error-correcting coding schemes devised for binary arithmetic are not in general applicable to BCD arithmetic. In this paper, we investigate the new problem of using such coding schemes in BCD systems. We first discuss the general characteristics of arithmetic errors and define the arithmetic weight and distance in BCD systems. We show that the distance is a metric function. Number theory is used to construct a class of single-error-correcting codes for BCD arithmetic. It is shown that the generator of these codes possesses a very simple form and the structure of these codes can be analytically determined.
mano1965
¿Web?
Pracniques: simulation of Boolean functions in a decimal computer, M. Morris Mano, Communications of the ACM, Vol. 8 #1, ISSN 0001-0782, pp39–40, ACM Press, January 1965.
Abstract: A method is presented here for simulating logical functions in a digital computer by means of simple arithmetic and control instructions. This method is of practical value when the computer used does not have built-in logical instructions.
marsaglia2005
URL
¿Web?
On the Randomness of Pi and Other Decimal Expansions, George Marsaglia, Interstat October 2005 #5, 17pp, Interstat (interstat.statjournals.net), October 2005.
Abstract: Tests of randomness much more rigorous than the usual frequency-of-digit counts are applied to the decimal expansions of π, e and √2, using the Diehard Battery of Tests adapted to base 10 rather than the original base 2. The first 109 digits of π, e and √2 seem to pass the Diehard tests very well. But so do the decimal expansions of most rationals k/p with large primes p. Over the entire set of tests, only the digits of √2 give a questionable result: the monkey test on 5-letter words. Its significance is discussed in the text. Three specific k/p are used for comparison. The cycles in their decimal expansions are developed in reverse order by the multiply-with-carry (MWC) method. They do well in the Diehard tests, as do many fast and simple MWC RNGs that produce base-b ‘digits’ of the expansions of k/p for b = 232 or b = 232− 1. Choices of primes p for such MWC RNGs are discussed, along with comments on their implementation.
mennin1958
¿Web?
Number Words and Number Symbols: A Cultural History of Numbers, Karl Menninger, ISBN 0-486-27096-3, 480pp, Dover Publications, Inc., 1992.
Abstract: This book is ... a multifacted linguistic and historical analysis of how numbers have developed and evolved in many different cultures. “... especially good on early counting and calculating devices ...”.
Note: First published in English by the MIT Press, 1969. Translated from the German by Paul Broneer.
mosh1954
¿Web?
The Generation of Pseudo-Random Numbers on a Decimal Calculator, Jack Moshman, Journal of the ACM Vol. 1 #2, pp88–91, ACM Press, April 1954.
Abstract: (None.) Describes the generation of pseudo-random numbers on the decimal UNIVAC machine.
perk1956
¿Web?
EASIAC, A Pseudo-Computer, Robert Perkins, Journal of the ACM, Vol. 3 #2, pp65–72, ACM Press, April 1956.
Abstract: One of the primary functions of the MIDAC installation at the University of Michigan is the instruction of beginners in the various aspects of digital machine use including programming and coding. ... In conducting these courses it was soon found to be extremely difficult, in five or six instruction periods, to bring a complete newcomer up to the point where he can code and check out on MIDAC anything more than a rather trivial routine. As might be expected the difficulty centers around problems of scaling, instruction modification and binary representation. ... To alleviate these problems it was decided that a new computer was needed: one designed to make programming easier. At the cost of some of MIDAC’s speed and capacity plus two or three man-months of programming time EASIAC, the EASy Instruction Automatic Computer, was realized as a translation- interpretation program in MIDAC.
rosen1969
URL
¿Web?
Electronic Computers: A Historical Survey, Saul Rosen, ACM Computing Surveys (CSUR), Vol. 1 #1, ISSN 0360-0300, pp7–36, ACM Press, March 1969.
Abstract: The first large scale electronic computers were built in connection with university projects sponsored by government military and research organizations. Many established companies, as well as new companies, entered the computer field during the first generation, 1947-1959, in which the vacuum tube was almost universally used as the active component in the implementation of computer logic. The second generation was characterized by the transistorized computers that began to appear in 1959. Some of the computers built then and since are considered super computers; they attempt to go to the limit of current technology in terms of size, speed, and logical complexity. From 1965 onward, most new computers belong to a third generation, which features integrated circuit technology and multiprocessor multiprogramming systems.
sacks1982
¿Web?
Applications of Redundant Number Representations to Decimal Arithmetic, R. Sacks-Davis, The Computer Journal, Vol. 25 #4, pp471–477, November 1982.
Abstract: A decimal arithmetic unit is proposed for both integer and floating-point computations. To achieve comparable speed to a binary arithmetic unit, the decimal unit is based on a redundant number representation. With this representation no loss of compactness is made relative to binary coded decimal (BCD) form. In this paper the hardware required for the implementation of the basic operations of addition, subtraction, multiplication and division are described and the properties of floating-point arithmetic based on a redundant number representation are investigated.
schmid1968
¿Web?
An electronic digital slide rule, Hermann Schmid and David Busch, The Electronic Engineer, pp54–64, July 1968.
Abstract: The Electronic Digital Slide Rule (EDSR) of the future not only will be smaller and easier to operate than the conventional slide rule, but it will also be more accurate.
schmid1974
¿Web?
Decimal Computation, Hermann Schmid, ISBN 047176180X, 266pp, Wiley, 1974.
Abstract: This book is thus a collection, a catalog, and a review of BCD computation techniques. The book describes how each of the most common arithmetic and transcendental operations can be implemented in a variety of ways. ... covers ... A review of number systems, BCD codes, of early calculating instruments and electronic calculating machines ... An outline of BCD computing circuit applications in the automotive, consumer, education, and entertainment fields, illustrated with some specific examples ... Mathematical developments of the algorithms ... Discussions and comparisons of circuit complexity and performance (accuracy, resolution, and speed of operation) for the different algorithms ...
Note: Reprinted 1983, ISBN 0-89874-318-4, Robert E. Krieger Publishing Co.
schulte2004
URL
¿Web?
Design Exploration for Decimal Floating-Point Arithmetic {IBM} University Partnership Program Proposal, Michael J. Schulte and Eric Schwarz, 4pp, IBM, 11 March 2004.
Abstract: Commercial applications and databases typically store numerical data in decimal format. Currently, however, microprocessors do not provide instructions or hardware support for decimal floating-point arithmetic. Consequently, decimal numbers are often read into computers, converted to binary numbers, and then processed using binary floating-point arithmetic. Results are then converted back to decimal before being stored. Besides being time-consuming, this process is error-prone, since most decimal numbers cannot be exactly represented as binary numbers. Thus, if binary floating-point arithmetic is used to process decimal data, unexpected results may occur after a few computations...
schulte2005
URL
¿Web?
Performance Evaluation of Decimal Floating-Point Arithmetic, Michael J. Schulte, Nick Lindberg, and Anitha Laxminarain, Proceedings of the 6th IBM Austin Center for Advanced Studies Conference, Austin, TX,, 8pp, IBM, February 2005.
Abstract: The prominence of decimal data in commercial and financial applications has led researchers to pursue efficient techniques for performing decimal floating-point arithmetic. While several software implementations of decimal floating-point arithmetic have been implemented, there is a growing need to provide hardware support for decimal floating-point arithmetic to keep up with the processing demands of emerging commercial and financial applications. This paper evaluates and compares the performance of decimal floating-point arithmetic operations when implemented on superscalar processors using either software libraries or specialized hardware designs. Our comparisons show that hardware implementations of decimal floating-point arithmetic operations are one to two orders of magnitude faster than software implementations.
scott1991
¿Web?
Mathematics and computer science at odds over real numbers, Thomas J. Scott, ACM SIGCSE Bulletin, Vol. 23 #1 (Technical Symposium on Computer Science Education 1991), pp130–139, ACM Press, 1991.
Abstract: This paper discusses the “real number” data type as implemented by “floating point” numbers. Floating point implementations and a theorem that characterizes their truncations are presented. A teachable floating point system is presented, chosen so that most problems can be worked out with paper and pencil. Then major differences between floating point number systems and the continuous real number system are presented. Important floating point formats are next discussed. Two examples derived from actual computing practice on mainframes, minicomputers, and PCs are presented. The paper concludes with a discussion of where floating point arithmetic should be taught in standard courses in the ACM curriculum.
seife2000
¿Web?
ZERO – The Biography of a Dangerous Idea, Charles Seife, ISBN 0-670-88457-X, 248pp, Penguin Books Ltd., 2000.
Abstract: The Babylonians invented it, the Greeks banned it, the Hindus worshipped it, and the Church used it to fend off heretics. For centuries, the power of zero savored of the demonic; once harnessed, it became the most important tool in mathematics...
Note: Also available in paperback: ISBN 0-14-02-9647-6.
shiba2000
¿Web?
Decimal arithmetic in applications and hardware, Akira Shibamiya, 2pp, pers. comm., 14 June 2000.
Abstract: (None)
siss1958
¿Web?
An Improved Decimal Redundancy Check, Roger L. Sisson, Communications of the ACM, Vol. 1 #5, pp10–12, ACM Press, May 1958.
Abstract: As more emphasis is placed on improving the accuracy of data fed into automatic computing systems, more emphasis will be placed on redundancy checking of predicable fields within the input. Two systems (at least) of checking a field of decimal digits have been proposed. In both of these it is assumed that the field to be checked is all numeric and that the redundancy must be of only one digit.
smith2003
URL
¿Web?
Using multiple-precision arithmetic, David M Smith, Computing in Science and Engineering, Vol. 5 #4, pp88–93, IEEE Computer Society, July 2003.
Abstract: High-precision arithmetic is useful in many different computational problems. The most common is a numerically unstable algorithm, for which, say, 53-bit (ANSI/IEEE 754-1985 Standard) double precision would not yield a sufficiently accurate result.
Note: Related papers by same author at: http://myweb.lmu.edu/dmsmith/FMLIB.html
thimbleby1995
URL
¿Web?
A new calculator and why it is necessary, Harold Thimbleby, The Computer Journal, Vol. 38 #6, pp418–433, OUP, 1995.
Abstract: Conventional calculators are badly designed: they suffer from bad computer science – they are unnecessarily difficult to use and buggy. I describe a solution, avoiding the problems caused by conventional calculators, one that is more powerful and arguably much easier to use. The solution has been implemented, and design issues are discussed.
    This paper shows an interactive system that is declarative, with the advantages of clarity and power that entails. It frees people from working out how a calculation should be expressed to concentrating on what they want solved. An important contribution is to demonstrate the very serious problems users face when using conventional calculators, and hence what a freedom a declarative design brings.
tsang1991
¿Web?
A Study of DataBase 2 Customer Queries, Annie Tsang and Manfred Olschanowsky, IBM Technical Report TR 03.413, 25pp, IBM Santa Teresa Laboratory, San Jose, CA, April 1991.
Abstract: Over 200 Database 2 read-only and update queries were collected from 30 major DB2 customers during 1989 and 1990. These queries were considered representative of customers using DB2. Analysis of these queries were made in order to determine their characteristics and also to determine which SQL funetions were commonly used and how frequently they were used by these customers.
    Results of this study can be used in various ways, induding:
  • provide input to the planning and development organizations to enable them to implement new functions, enhance existing functions, and improve performance of functions that are most commonly used by customers.
  • allow developers to develop realistic workloads for benchmarking.
vanemden2007
¿Web?
Functions to Support Input and Output of Intervals, M. H., van Emden, B. Moa, and S. C. Somosan, Report DCS-311-IR, 16pp, University of Victoria, Canada, February 2007.
Abstract: Interval arithmetic is hardly feasible without directed rounding as provided, for example, by the IEEE floating-point standard. Equally essential for interval methods is directed rounding for conversion between the external decimal and internal binary numerals. This is not provided by the standard I/O libraries. Conversion algorithms exist that guarantee identity upon conversion followed by its inverse. Although it may be possible to adapt these algorithms for use in decimal interval I/O, we argue that outward rounding in radix conversion is computationally a simpler problem than guaranteeing identity. Hence it is preferable to develop decimal interval I/O ab initio, which is what we do in this paper.
walters1994
¿Web?
A Complete Term Rewriting System for Decimal Integer Arithmetic, H. R. Walters, Technical Report CS-9435, 9pp, Centrum voor Wiskunde en Informatica (CWI), August 1994.
Abstract: We present a term rewriting system for decimal integers with addition and subtraction. We prove that the system is confluent and terminating.
wang2007d
¿Web?
Processor support for decimal floating-point arithmetic, Liang-Kai Wang, ISBN 978-0-549-19463-7, 157pp, University of Wisconsin at Madison, 2007.
Abstract: Decimal data permeates society, as humans most commonly use base-ten numbers. Although microprocessors normally use base-two binary arithmetic to obtain faster execution times and simpler circuitry, binary numbers cannot represent decimal fractions exactly. This leads to large errors being accumulated after several decimal operations. Furthermore, binary floating-point arithmetic operations perform binary rounding instead of decimal rounding. Consequently, applications, such as financial, commercial, tax, and Internet-based applications, which are sensitive to representation and rounding errors, often require decimal arithmetic. Due to the increasing importance of and demand for decimal arithmetic, its formats and operations have been specified in the IEEE Draft Standard for Floating-point Arithmetic (IEEE P754).
   Most decimal applications use software routines and binary arithmetic to emulate decimal operations. Although this approach eliminates errors due to converting between binary and decimal numbers and provides decimal rounding to mirror manual calculations, it results in long latencies for numerically intensive commercial applications. This is because software emulation of decimal floating-point (DFP) arithmetic has significant overhead due to function calls, dealing with decimal formats, operand alignment, decimal rounding, and special case and exception handling.
   This dissertation investigates processor support for decimal floating-point arithmetic. It first reviews recent progress in decimal arithmetic, including decimal encodings, the IEEE P754 Draft Standard, and software packages, hardware designs, and benchmark suites for decimal arithmetic. Next, this dissertation presents novel arithmetic algorithms and hardware designs for basic DFP operations, including DFP addition, subtraction, division, square root, and others. Most of the hardware designs presented in this dissertation are the first published designs compliant with the IEEE P754 Draft Standard. Finally, to study the performance impact of DFP instructions and hardware, this dissertation presents the first publicly available benchmark suite for DFP arithmetic. This benchmark suite, along with instruction set extensions and a decimal-enhanced processor simulator, are used to demonstrate that providing fast hardware support for DFP operations leads to significant performance benefits to DFP-intensive applications.
watanabe2006
¿Web?
Formal Design of Decimal Arithmetic Circuits Using Arithmetic Description Language, Yuki Watanabe, Naofumi Homma, Takafumi Aoki, and Tatsuo Higuchi, IEEE International Symposium on Intelligent Signal Processing and Communications, 2006 (ISPACS '06), ISBN 0-7803-9733-9, pp419–422, IEEE, December 2006.
Abstract: This paper presents a formal design of decimal arithmetic circuits using an arithmetic description language called ARITH. The use of ARITH makes possible (i) formal description of arithmetic algorithms including those using unconventional number systems, (ii) formal verification of described arithmetic algorithms, and (iii) translation of arithmetic algorithms to the equivalent HDL descriptions. In this paper, we demonstrate the potential of ARITH through an experimental design of binary coded decimal (BCD) arithmetic circuits.

The 71 references listed on this page are selected from the bibliography on Decimal Arithmetic collected by Mike Cowlishaw. Please see the index page for more details and other categories.

Last updated: 10 Mar 2011
Some elements Copyright © IBM Corporation, 2002, 2009. All rights reserved.