IP Library Granted Patent US 7,321,914
Granted Patent B2
US 7,321,914 · App. 10/781,429 · Granted Jan 22, 2008

Fast method for calculating powers of two as a floating point data type

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,321,914
App. No.
10/781,429
Granted
Jan 22, 2008
Kind
B2
Abstract

A computing system is adapted to calculate an exponent portion of a floating point data type, and is preferably employed in calculating powers of two in a computer language processing environment supporting a union declaration functionality and a left shift functionality. Accordingly, an input receives an exponent value, and a bias application module biases the exponent value based on a selected precision of a floating point data type. Also, a storage module stores the exponent value in a storage variable having a size determined based on the selected precision. Further, a left shift application module shifts the exponent value left by a number of bits determined based on the selected precision. Finally, an output returns the storage variable as the floating point data type having the selected precision.

Claims (36)

1. A computing system that includes a computer-readable medium and calculates an exponent portion of a floating point data type, for use in calculating powers of two in a computer language processing environment supporting a union declaration functionality and a left shift functionality, comprising:

an input receptive of an exponent value;

a bias application module that biases the exponent value based on a selected precision of a floating point data type;

a storage module that stores the biased exponent value in a storage of the computer-readable medium having a size determined based on the selected precision;

a left shift application module that shifts the biased exponent value left by a number of bits determined based on the selected precision; and

an output module that outputs the biased exponent value from the storage as the floating point data type having the selected precision.

2. The system of claim 1 wherein the storage can store an integer data type and a float data type.

3. The system of claim 2 wherein the selected precision is single, and the storage can store a thirty-two bit integer data type and a single precision floating point data type.

4. The system of claim 2 wherein the selected precision is double, and the storage can store a sixty-four bit integer data type and a double precision floating point data type.

5. The system of claim 2 wherein said input is further receptive of the selected precision, said storage variable declaration module determines a bias size, a mantissa size, and the size of the storage variable based on the selected precision, said bias application module biases the exponent value based on the bias size, and said left shift application module shifts the storage variable left based on the mantissa size.

6. The system of claim 1 further comprising a limit application module that limits the exponent value based on an exponent value range determined based on the selected precision.

7. The system of claim 6 wherein the selected precision is single, and said limit application module determines whether the exponent value at least one of exceeds one-hundred twenty-seven and falls below negative one-hundred twenty-six, and to set the exponent value equal to at least one of one-hundred twenty-seven and negative one-hundred twenty-six when the exponent value respectively at least one of exceeds one-hundred twenty-seven and falls below negative one-hundred twenty-six.

8. The system of claim 6 wherein the selected precision is double, and said limit application module determines whether the exponent value at least one of exceeds one-thousand twenty-four and falls below negative one-thousand twenty-three, and to set the exponent value equal to at least one of one-thousand twenty-four and negative one-thousand twenty-three when the exponent value respectively at least one of exceeds one-thousand twenty-four and falls below negative one-thousand twenty-three.

9. The system of claim 1 wherein the selected precision is single, and said bias application module adds one-hundred twenty seven to the exponent value.

10. The system of claim 1 wherein the selected precision is double, and said bias application module adds one-thousand twenty-three to the exponent value.

11. A computing method for calculating an exponent portion of a floating point data type, for use in calculating powers of two in a computer language processing environment supporting a union declaration functionality and a shift left functionality, comprising:

receiving an exponent value;

biasing the exponent value based on a selected precision of a floating point data type;

storing the biased exponent value in a storage of a computer-readable medium, said storage having a size determined based on the selected precision;

shifting the biased exponent value left by a number of bits determined based on the selected precision; and

outputting the biased exponent value from the storage as the floating point data type having the selected precision.

12. The method of claim 11 wherein the storage can store an integer data type and a float data type.

13. The method of claim 12 wherein the selected precision is single, and the storage can store a thirty-two bit integer data type and a single precision floating point data type.

14. The method of claim 12 wherein the selected precision is double, and the storage can store a sixty-four bit integer data type and a double precision floating point data type.

15. The method of claim 11 further comprising limiting the exponent value based on an exponent value range determined based on the selected precision.

16. The method of claim 15 wherein the selected precision is single, and said limiting includes:

determining whether the exponent value at least one of exceeds one-hundred twenty-seven and falls below negative one-hundred twenty-six; and

setting the exponent value equal to at least one of one-hundred twenty-seven and negative one-hundred twenty-six when the exponent value respectively at least one of exceeds one-hundred twenty-seven and falls below negative one-hundred twenty-six.

17. The method of claim 15 wherein the selected precision is double, and said limiting includes:

determining whether the exponent value at least one of exceeds one-thousand twenty-four and falls below negative one-thousand twenty-three; and

setting the exponent value equal to at least one of one-thousand twenty-four and negative one-thousand twenty-three when the exponent value respectively at least one of exceeds one-thousand twenty-four and falls below negative one-thousand twenty-three.

18. The method of claim 11 wherein the selected precision is single, and said biasing includes adding one-hundred twenty seven to the exponent value.

19. The method of claim 11 wherein the selected precision is double, and said biasing includes adding one-thousand twenty-three to the exponent value.

20. The method of claim 11 further comprising:

receiving the selected precision; and

determining a bias size, a mantissa size, and the size of the storage based on the selected precision, wherein said biasing is based on the bias size and said shifting is based on the mantissa size.

Assignments (13)
RELEASE OF SECURITY INTEREST Recorded Nov 7, 2014
From: WILMINGTON TRUST COMPANY
To: GM GLOBAL TECHNOLOGY OPERATIONS LLC
Reel/Frame 034371/0676 →
CHANGE OF NAME Recorded Feb 10, 2011
From: GM GLOBAL TECHNOLOGY OPERATIONS, INC.
To: GM GLOBAL TECHNOLOGY OPERATIONS LLC
Reel/Frame 025780/0902 →
SECURITY AGREEMENT Recorded Nov 8, 2010
From: GM GLOBAL TECHNOLOGY OPERATIONS, INC.
To: WILMINGTON TRUST COMPANY
Reel/Frame 025327/0262 →
RELEASE OF SECURITY INTEREST Recorded Nov 4, 2010
From: UNITED STATES DEPARTMENT OF THE TREASURY
To: GM GLOBAL TECHNOLOGY OPERATIONS, INC.
Reel/Frame 025245/0442 →
RELEASE OF SECURITY INTEREST Recorded Nov 4, 2010
From: UAW RETIREE MEDICAL BENEFITS TRUST
To: GM GLOBAL TECHNOLOGY OPERATIONS, INC.
Reel/Frame 025311/0770 →
SECURITY AGREEMENT Recorded Aug 28, 2009
From: GM GLOBAL TECHNOLOGY OPERATIONS, INC.
To: UAW RETIREE MEDICAL BENEFITS TRUST
Reel/Frame 023162/0001 →
SECURITY AGREEMENT Recorded Aug 27, 2009
From: GM GLOBAL TECHNOLOGY OPERATIONS, INC.
To: UNITED STATES DEPARTMENT OF THE TREASURY
Reel/Frame 023156/0052 →
RELEASE OF SECURITY INTEREST Recorded Aug 21, 2009
From: CITICORP USA, INC. AS AGENT FOR BANK PRIORITY SECURED PARTIES; CITICORP USA, INC. AS AGENT FOR HEDGE PRIORITY SECURED PARTIES
To: GM GLOBAL TECHNOLOGY OPERATIONS, INC.
Reel/Frame 023127/0468 →
RELEASE OF SECURITY INTEREST Recorded Aug 20, 2009
From: UNITED STATES DEPARTMENT OF THE TREASURY
To: GM GLOBAL TECHNOLOGY OPERATIONS, INC.
Reel/Frame 023124/0429 →
SECURITY AGREEMENT Recorded Apr 16, 2009
From: GM GLOBAL TECHNOLOGY OPERATIONS, INC.
To: CITICORP USA, INC. AS AGENT FOR BANK PRIORITY SECURED PARTIES; CITICORP USA, INC. AS AGENT FOR HEDGE PRIORITY SECURED PARTIES
Reel/Frame 022553/0446 →
SECURITY AGREEMENT Recorded Feb 4, 2009
From: GM GLOBAL TECHNOLOGY OPERATIONS, INC.
To: UNITED STATES DEPARTMENT OF THE TREASURY
Reel/Frame 022201/0610 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 14, 2009
From: GENERAL MOTORS CORPORATION
To: GM GLOBAL TECHNOLOGY OPERATIONS, INC.
Reel/Frame 022117/0022 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 19, 2004
From: KURNIK, JAMES T.
To: GENERAL MOTORS CORPORATION
Reel/Frame 014647/0707 →