Maple Professional
Maple Academic
Maple Student Edition
Maple Personal Edition
Maple Player
Maple Player for iPad
MapleSim Professional
MapleSim Academic
Maple T.A. - Testing & Assessment
Maple T.A. MAA Placement Test Suite
Möbius - Online Courseware
Machine Design / Industrial Automation
Aerospace
Vehicle Engineering
Robotics
Power Industries
System Simulation and Analysis
Model development for HIL
Plant Modeling for Control Design
Robotics/Motion Control/Mechatronics
Other Application Areas
Mathematics Education
Engineering Education
High Schools & Two-Year Colleges
Testing & Assessment
Students
Financial Modeling
Operations Research
High Performance Computing
Physics
Live Webinars
Recorded Webinars
Upcoming Events
MaplePrimes
Maplesoft Blog
Maplesoft Membership
Maple Ambassador Program
MapleCloud
Technical Whitepapers
E-Mail Newsletters
Maple Books
Math Matters
Application Center
MapleSim Model Gallery
User Case Studies
Exploring Engineering Fundamentals
Teaching Concepts with Maple
Maplesoft Welcome Center
Teacher Resource Center
Student Help Center
Numeric Computation References
Description
The numeric computation environment in Maple is based on the IEEE Standard 754 for Binary Floating-Point Arithmetic [1], and its subsequent generalization to base 10 machines, known as IEEE/854 [2]. These standards have natural generalizations to the arbitrary precision computing environment in Maple, and by adopting such natural generalizations the hardware and software numeric computing environments are formed into a cohesive whole.
The hardware computation environment simulated within Maple (currently under development) is referred to as the Maple hardware computation environment, to distinguish it from the underlying physical hardware computation environment.
Floating point systems are specified by four parameters, Fl(B, p, L, U), and elements of these systems are specified by three parameters, (s, m, e):
s is the sign of a floating-point number,
m is its (unsigned) mantissa, and
e is its exponent.
Certain values of these parameters are reserved for special values (for example, to represent objects within the system that do not have interpretations as numbers). Otherwise, the number represented is s * m * B^e.
B is the base of the number system.
p is the precision. It specifies the maximum number of base-B digits in the mantissa of a floating-point number in the machine. Unspecified trailing digits, if any, are assumed to be 0.
L is the largest negative (base-B) exponent of a representable number. The smallest positive, normalized, representable number is (1, 1, L).
U is the largest positive (base-B) exponent of a representable number. The largest positive representable number is (1, ddd...d, U), where the mantissa has p d's and d = B - 1.
Maple's software floating-point environment can be viewed as a large (effectively infinite) collection of distinct virtual machines, with b = 10, and these machines are distinguished only by the value of the parameter p. That is, all machines are base 10, and floating-point numbers in all machines have the same ranges of possible exponent values. The smallest value of p is 1; the largest can be dependent on the underlying physical machine architecture.
Note: To avoid certain difficulties, Maple considers the largest representable software float to be (1, 9, U), independent of Digits.
These virtual machines coexist with each other according to the following rule: A software float (s,m,e) belongs to no virtual machine until it is used in a computation in which a specific virtual machine is required, at which time it is "entered" into that machine. "Entering" a software float (s, m, e) into a machine Fl(10, p, L, U) requires nothing to be done if the length of m is no more than p. However, if the length of m is more than p, then m must be properly rounded to p digits. Similarly, software floats are "entered" into the Maple hardware computational environment only when this operation is required, and Maple hardware floats are "entered" into a virtual machine only when required. A software float that results from a floating-point computation is again treated as belonging to no specific virtual machine.
References
[1] "IEEE Standard 754-1985 for Binary Floating-Point Arithmetic." Reprinted in ACM SIGPLAN Notices, Vol. 22 No. 2. (1987): 9-25.
[2] "A Proposed Radix- and Word-Length-Independent Standard for Floating-Point Arithmetic." Reprinted in IEEE Micro, (August 1984): 86-100.
[3] Goldberg, D. "What Every Computer Scientist Should Know About Floating-Point Arithmetic." ACM Comp. Surv. Vol. 23. (1991): 5-48.
[4] "Programming Languages - C." ISO/IEC 9899 "C9X" (esp. Annexes "F" and "G").
[5] "Information technology - Language independent arithmetic." ISO/IEC 10967-1 (1994).
Download Help Document