IP Library Granted Patent US 7,069,288
Granted Patent B2
US 7,069,288 · App. 10/035,582 · Granted Jun 27, 2006

Floating point system with improved support of interval arithmetic

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,069,288
App. No.
10/035,582
Granted
Jun 27, 2006
Kind
B2
Abstract

Embodiments consistent with the principles of the present invention provide improved results, compared to IEEE Std. 754, for floating point operations used in interval arithmetic calculations. One embodiment consistent with the principles of the present invention provides a method of enhancing support of an interval computation when performing a floating point arithmetic operation, comprising the steps, performed by a processor, of receiving a first floating point operand, receiving a second floating point operand, executing the floating point arithmetic operation on the first floating point operand and the second floating point operand, determining whether a NaN substitution is necessary, producing a floating point result if the NaN substitution is determined to be unnecessary, and substituting an alternative value as the floating point result if the NaN substitution is determined to be necessary.

Claims (74)

1. A method of enhancing support of an interval computation when performing a floating point arithmetic operation, comprising the steps, performed by a processor, of:

receiving a first floating point operand;

receiving a second floating point operand;

executing the floating point arithmetic operation on the first floating point operand and the second floating point operand;

determining whether a NaN substitution is necessary;

producing a floating point result if the NaN substitution is determined to be unnecessary; and

substituting an alternative value as the floating point result if the NaN substitution is determined to be necessary,

wherein the substituting step further comprises:

setting the floating point result to the alternative value if the floating point arithmetic operation is addition, and the first floating point operand and the second floating point operand, respectively, are from the group comprising: (1) negative infinity and positive infinity, and (2) positive infinity and negative infinity.

2. The method of claim 1 , wherein the alternative value depends upon a rounding mode associated with the floating point arithmetic operation.

3. The method of claim 1 , wherein the floating point arithmetic operation is one of the group comprising:

addition, subtraction, multiplication, and division.

4. The method of claim 1 , wherein the substituting step further comprises:

producing floating status information reflecting the alternative value if the NaN substitution is determined to be necessary; and

storing the floating point status information in a floating point status register, separate from the floating point result.

5. The method of claim 1 , wherein the substituting step further comprises:

producing floating status information reflecting the alternative value if the NaN substitution is determined to be necessary; and encoding the floating point status information within the floating point result.

6. The method of claim 1 , wherein the alternative value is positive infinity if a rounding mode for the floating point operation is round toward positive infinity.

7. The method of claim 1 , wherein the alternative value is negative infinity if a rounding mode for the floating point operation is round toward negative infinity.

8. The method of performing a floating point arithmetic operation of claim 1 , wherein the processor performs the method in response to an interval arithmetic computer instruction.

9. A method of enhancing support of an interval computation when performing a floating point arithmetic operation, comprising the steps, performed by a processor, of:

receiving a first floating point operand;

receiving a second floating point operand;

executing the floating point arithmetic operation on the first floating point operand and the second floating point operand;

determining whether a NaN substitution is necessary;

producing a floating point result if the NaN substitution is determined to be unnecessary; and

substituting an alternative value as the floating point result if the NaN substitution is determined to be necessary,

wherein the substituting step further comprises:

setting the floating point result to the alternative value if the floating point arithmetic operation is subtraction, and the first floating point operand and the second floating point operand, respectively, are from the group comprising: (1) negative infinity and negative infinity; and (2) positive infinity and positive infinity.

10. The method of claim 9 , wherein the alternative value is positive infinity if a rounding mode for the floating point operation is round toward positive infinity.

11. The method of claim 9 , wherein the alternative value is negative infinity if a rounding mode for the floating point operation is round toward negative infinity.

12. A method of enhancing support of an interval computation when performing a floating point arithmetic operation, comprising the steps, performed by a processor, of:

receiving a first floating point operand;

receiving a second floating point operand;

executing the floating point arithmetic operation on the first floating point operand and the second floating point operand;

determining whether a NaN substitution is necessary;

producing a floating point result if the NaN substitution is determined to be unnecessary; and

substituting an alternative value as the floating point result if the NaN substitution is determined to be necessary,

wherein the substituting step further comprises:

setting the floating point result to the alternative value if the floating point arithmetic operation is multiplication, and the first floating point operand and the second floating point operand are an infinity and a zero.

13. The method of claim 12 , wherein the alternative value is negative zero if a rounding mode for the floating point operation is round toward positive infinity, and the first floating point operand and the second floating point operand are an infinity and a zero of opposite sign from the infinity.

14. The method of claim 12 , wherein the alternative value is positive zero if a rounding mode for the floating point operation is round toward negative infinity, and the first floating point operand and the second floating point operand are an infinity and a zero of opposite sign from the infinity.

15. A method of enhancing support of an interval computation when performing a floating point arithmetic operation, comprising the steps, performed by a processor, of:

receiving a first floating point operand;

receiving a second floating point operand;

executing the floating point arithmetic operation on the first floating point operand and the second floating point operand;

determining whether a NaN substitution is necessary;

producing a floating point result if the NaN substitution is determined to be unnecessary; and

substituting an alternative value as the floating point result if the NaN substitution is determined to be necessary,

wherein the substituting step further comprises:

setting the floating point result to the alternative value if the floating point arithmetic operation is division, and the first floating point operand and the second floating point operand are a first infinity and a second infinity.

16. The method of claim 15 , wherein the alternative value is negative zero if a rounding mode for the floating point operation is round toward positive infinity, and the first floating point operand and the second floating point operand are a first infinity and a second infinity of opposite sign from the first infinity.

17. The method of claim 15 , wherein the alternative result is positive infinity if a rounding mode for the floating point operation is round toward positive infinity, and the first floating point operand and the second floating point operand are a first infinity and a second infinity of the same sign as the first infinity.

18. The method of claim 15 , wherein the alternative value is negative infinity if a rounding mode for the floating point operation is round toward negative infinity, and the first floating point operand and the second floating point operand are a first infinity and a second infinity of opposite sign from the first infinity.

19. The method of claim 15 , wherein the alternative value is positive zero if a rounding mode for the floating point operation is round toward negative infinity, and the first floating point operand and the second floating point operand are a first infinity and a second infinity of the same sign as the first infinity.

20. A method of enhancing support of an interval computation when performing a floating point arithmetic operation, comprising the steps, performed by a processor, of:

receiving a first floating point operand;

receiving a second floating point operand;

executing the floating point arithmetic operation on the first floating point operand and the second floating point operand;

determining whether a NaN substitution is necessary;

producing a floating point result if the NaN substitution is determined to be unnecessary; and

substituting an alternative value as the floating point result if the NaN substitution is determined to be necessary,

wherein the substituting step further comprises:

setting the floating point result to the alternative value if the floating point arithmetic operation is division, and the first floating point operand and the second floating point operand are a first zero and a second zero.

21. The method of claim 20 , wherein the alternative value is negative zero if a rounding mode for the floating point operation is round toward positive infinity, and the first floating point operand and the second floating point operand are a first zero and a second zero of opposite sign from the first zero.

22. The method of claim 20 , wherein the alternative value is positive infinity if a rounding mode for the floating point operation is round toward positive infinity, and the first floating point operand and the second floating point operand are a first zero and a second zero of the same sign as the first zero.

23. The method of claim 20 , wherein the alternative value is positive zero if a rounding mode for the floating point operation is round toward negative infinity, and the first floating point operand and the second floating point operand are a first zero and a second zero of the same sign as the first zero.

24. The method of claim 20 , wherein the alternative value is negative infinity if the rounding mode for the floating point operation is round toward negative infinity, and the first floating point operand and the second floating point operand are a first zero and a second zero of the opposite sign as the first zero.

25. A floating point adder circuit that provides enhanced support of an interval computation when performing a floating point arithmetic operation comprising;

an adder core circuit, connected to a first operand buffer, a second operand buffer, and a rounding mode means, for adding a first floating point operand and a second floating point operand and generating a floating point result; and

substituting means for determining whether the standards-compliant floating point result is a NaN and substituting an alternative value as the floating point result if the standards-compliant floating point result is determined to be a NaN.

26. The floating point adder circuit of claim 25 , wherein the substituting means are integral to the adder core circuit.

27. The floating point adder circuit of claim 25 , wherein the substituting means are logic gates external to an IEEE-754-standards-compliant adder core circuit.

28. The floating point adder circuit of claim 25 , wherein the alternative value depends upon a rounding mode determined by the rounding mode means.

Assignments (3)
MERGER AND CHANGE OF NAME Recorded Dec 16, 2015
From: ORACLE USA, INC.; SUN MICROSYSTEMS, INC.; ORACLE AMERICA, INC.
To: ORACLE AMERICA, INC.
Reel/Frame 037302/0633 →
MERGER AND CHANGE OF NAME Recorded Dec 14, 2015
From: ORACLE USA, INC.; SUN MICROSYSTEMS, INC.; ORACLE AMERICA, INC.
To: ORACLE AMERICA, INC.
Reel/Frame 037280/0232 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 28, 2001
From: STEELE, GUY L., JR.
To: SUN MICROSYSTEMS, INC.
Reel/Frame 012440/0319 →