Claims
- 1. A method that facilitates performing exception-free arithmetic operations within a computer system, comprising:
receiving an instruction to perform an arithmetic operation during execution of a program on the computer system, wherein the arithmetic operation manipulates floating-point values; and
in response to the instruction, performing the arithmetic operation; wherein if the arithmetic operation manipulates a floating-point value representing {+0}, the arithmetic operation is performed in a manner consistent with {+0} representing the limit of a sequence of values that approaches zero only from above; and wherein if the arithmetic operation manipulates a floating-point value representing {−0}, the arithmetic operation is performed in a manner consistent with {−0} representing the limit of a sequence of values that approaches zero only from below.
- 2. The method of claim 1, wherein the arithmetic operation is an interval operation that manipulates at least one interval, wherein the interval is defined by a first floating-point value that specifies a left endpoint (lower bound) of the interval and a second floating-point value that specifies a right endpoint (upper bound) of the interval.
- 3. The method of claim 1,
wherein if the arithmetic operation divides a floating-point value less than zero by {−0}, the result of the division is {+4}; wherein if the arithmetic operation divides a floating-point value less than zero by {+0}, the result of the division is {−4}; wherein if the arithmetic operation divides a floating-point value greater than zero by {−0}, the result of the division is {−4}; and wherein if the arithmetic operation divides a floating-point value greater than zero by {+0}, the result of the division is {+4}.
- 4. The method of claim 3,
wherein if the arithmetic operation divides {−4} by {−4}, {−0} by {−0}, {+0} by {+0} or {+4} by {+4}, the result of the division is the interval [+0,+4]; and wherein if the arithmetic operation divides {+4} by {−4}, {+0} by {−0}, {−0} by {+0} or {−4} by {+4}, the result of the division is the interval [−4,−0].
- 5. The method of claim 1,
wherein if the arithmetic operation multiplies {−0} by {−4} or {+0} by {+4}, the result of the multiplication is the interval [+0,+4]; and wherein if the arithmetic operation multiplies {+0} by {−4} or {−0} by {+4}, the result of the multiplication is the interval [−4,−0].
- 6. The method of claim 5,
wherein if the arithmetic operation multiplies {−0} by {−0} or {−0} by a floating-point value, x, wherein −4<x<−0, the result of the multiplication is {+0}; wherein if the arithmetic operation multiplies {−0} by {+0}, {+0} by {−0), {−0} by a floating-point value, y, +0<y<+4, or {+0} by a floating-point value, y, −4<y<−0, the result of the multiplication is {−0}; and wherein if the arithmetic operation multiplies {+0} by {+0} or {+0} by a floating-point value, y, wherein +0<y<+4, the result of the multiplication is {+0}.
- 7. The method of claim 1,
wherein if the arithmetic operation adds {−4} and {+4} or {+4} and {−4}, the result of the addition is R*; and wherein if the arithmetic operation adds {−0} and {+0} or {+0} and {−0}, the result of the addition is the set {−0,+0}=[−0,+0]=0.
- 8. The method of claim 1,
wherein if the arithmetic operation subtracts {−4} and {+4}, the result of the subtraction is R*; and wherein if the arithmetic operation subtracts {+0} from {+0} or {−0} from {+0}, the result of the subtraction is the set {−0,+0}=[−0,+0]=0.
- 9. A computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method that facilitates performing exception-free arithmetic operations within a computer system, the method comprising:
receiving an instruction to perform an arithmetic operation during execution of a program on the computer system, wherein the arithmetic operation manipulates floating-point values; and in response to the instruction, performing the arithmetic operation; wherein if the arithmetic operation manipulates a floating-point value representing {+0}, the arithmetic operation is performed in a manner consistent with {+0} representing the limit of a sequence of values that approaches zero only from above; and wherein if the arithmetic operation manipulates a floating-point value representing {−0}, the arithmetic operation is performed in a manner consistent with {−0} representing the limit of a sequence of values that approaches zero only from below.
- 10. The computer-readable storage medium of claim 9, wherein the arithmetic operation is an interval operation that manipulates at least one interval, wherein the interval is defined by a first floating-point value that specifies a left endpoint (lower bound) of the interval and a second floating-point value that specifies a right endpoint (upper bound) of the interval.
- 11. The computer-readable storage medium of claim 9,
wherein if the arithmetic operation divides a floating-point value less than zero by {−0}, the result of the division is {+4}; wherein if the arithmetic operation divides a floating-point value less than zero by {+0}, the result of the division is {−4}; wherein if the arithmetic operation divides a floating-point value greater than zero by {−0}, the result of the division is {−4}; and wherein if the arithmetic operation divides a floating-point value greater than zero by {+0}, the result of the division is {+4}.
- 12. The computer-readable storage medium of claim 11,
wherein if the arithmetic operation divides {−4} by {−4}, {−0} by {−0}, {+0} by {+0} or {+4} by {+4}, the result of the division is the interval [+0,+4]; and wherein if the arithmetic operation divides {+4} by {−4}, {+0} by {−0}, {−0} by {+0} or {−4} by {+4}, the result of the division is the interval [−4,−0].
- 13. The computer-readable storage medium of claim 9,
wherein if the arithmetic operation multiplies {−0} by {−4} or {+0} by {+4}, the result of the multiplication is the interval [+0,+4]; and wherein if the arithmetic operation multiplies {+0} by {−4} or {−0} by {+4}, the result of the multiplication is the interval [−4,−0].
- 14. The computer-readable storage medium of claim 13,
wherein if the arithmetic operation multiplies {−0} by {−0} or {−0} by a floating-point value, x, wherein −4<x<−0, the result of the multiplication is {+0}; wherein if the arithmetic operation multiplies {−0} by {+0}, {+0} by {−0), {−0} by a floating-point value, y, +0<y<+4, or {+0} by a floating-point value, y, −4<y<−0, the result of the multiplication is {−0}; and wherein if the arithmetic operation multiplies {+0} by {+0} or {+0} by a floating-point value, y, wherein +0<y<+4, the result of the multiplication is {+0}.
- 15. The computer-readable storage medium of claim 9,
wherein if the arithmetic operation adds {−4} and {+4} or {+4} and {−4}, the result of the addition is R*; and wherein if the arithmetic operation adds {−0} and {+0} or {+0} and {−0}, the result of the addition is the set {−0,+0}=[−0,+0]=0.
- 16. The computer-readable storage medium of claim 9,
wherein if the arithmetic operation subtracts {−4} and {+4}, the result of the subtraction is R*; and wherein if the arithmetic operation subtracts {+0} from {+0} or {−0} from {+0}, the result of the subtraction is the set {−0,+0}=[−0,+0]=0.
- 17. An apparatus that facilitates performing exception-free arithmetic operations within a computer system, comprising:
an execution mechanism that is configured to receive an instruction to perform an arithmetic operation during execution of a program on the computer system, wherein the arithmetic operation manipulates floating-point values; and
wherein in response to the instruction, the execution mechanism is configured to perform the arithmetic operation; wherein if the arithmetic operation manipulates a floating-point value representing {+0}, the arithmetic operation is performed in a manner consistent with {+0} representing the limit of a sequence of values that approaches zero only from above; and wherein if the arithmetic operation manipulates a floating-point value representing {−0}, the arithmetic operation is performed in a manner consistent with {−0} representing the limit of a sequence of values that approaches zero only from below.
- 18. The apparatus of claim 17, wherein the arithmetic operation is an interval operation that manipulates at least one interval, wherein the interval is defined by a first floating-point value that specifies a left endpoint (lower bound) of the interval and a second floating-point value that specifies a right endpoint (upper bound) of the interval.
- 19. The apparatus of claim 17,
wherein if the arithmetic operation divides a floating-point value less than zero by {−0}, the result of the division is {+4}; wherein if the arithmetic operation divides a floating-point value less than zero by {+0}, the result of the division is {−4}; wherein if the arithmetic operation divides a floating-point value greater than zero by {−0}, the result of the division is {−4}; and wherein if the arithmetic operation divides a floating-point value greater than zero by {+0}, the result of the division is {+4}.
- 20. The apparatus of claim 19,
wherein if the arithmetic operation divides {−4} by {−4}, {−0} by {−0}, {+0} by {+0} or {+4} by {+4}, the result of the division is the interval [+0,+4]; and wherein if the arithmetic operation divides {+4} by {−4}, {+0} by {−0}, {−0} by {+0} or {−4} by {+4}, the result of the division is the interval [−4,−0].
- 21. The apparatus of claim 17,
wherein if the arithmetic operation multiplies {−0} by {−4} or {+0} by {+4}, the result of the multiplication is the interval [+0,+4]; and wherein if the arithmetic operation multiplies {+0} by {−4} or {−0} by {+4}, the result of the multiplication is the interval [−4,−0].
- 22. The apparatus of claim 21,
wherein if the arithmetic operation multiplies {−0} by {−0} or {−0} by a floating-point value, x, wherein −4<x<−0, the result of the multiplication is {+0}; wherein if the arithmetic operation multiplies {−0} by {+0}, {+0} by {−0), {−0} by a floating-point value, y, +0<y<+4, or {+0} by a floating-point value, y, −4<y<−0, the result of the multiplication is {−0}; and wherein if the arithmetic operation multiplies {+0} by {+0} or {+0} by a floating-point value, y, wherein +0<y<+4, the result of the multiplication is {+0}.
- 23. The apparatus of claim 17,
wherein if the arithmetic operation adds {−4} and {+4} or {+4} and {−4}, the result of the addition is R*; and wherein if the arithmetic operation adds {−0} and {+0} or {+0} and {−0}, the result of the addition is the set {−0,+0}=[−0,+0]=0.
- 24. The apparatus of claim 17,
wherein if the arithmetic operation subtracts {−4} and {+4}, the result of the subtraction is R*; and wherein if the arithmetic operation subtracts {+0} from {+0} or {−0} from {+0}, the result of the subtraction is the set {−0,+0}=[−0,+0]=0.
RELATED APPLICATIONS
[0001] This application hereby claims priority under 35 U.S.C. §119 to U.S. Provisional Patent Application No. 60/313,358, filed on Aug. 17, 2001, entitled “Practical, Exception-Free Interval Arithmetic on the Extended Reals,” by inventors G. William Walster and Eldon R. Hansen (SUN-P6429PSP), and to U.S. Provisional Patent Application No. 60/357,192 filed on Feb. 15, 2002, entitled “Symmetry in the Theory of Containment Sets,” by inventors G. William Walster (SUN-P7603PSP).
Provisional Applications (2)
|
Number |
Date |
Country |
|
60313358 |
Aug 2001 |
US |
|
60357192 |
Feb 2002 |
US |