IP Library Granted Patent US 8,719,322
Granted Patent B2
US 8,719,322 · App. 13/080,883 · Granted May 6, 2014

Floating point format converter

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 8,719,322
App. No.
13/080,883
Granted
May 6, 2014
Kind
B2
Abstract

A computer program product for converting from a first floating point format to a second floating point format, each floating point format having an associated base value and being represented by a significand value and a exponent value, comprising an executable algorithm to perform the steps of: determining the second exponent value by multiplying the first exponent value by a predefined constant and taking the integer portion of the result, the predefined constant being substantially equivalent to the logarithm of the first base value divided by the logarithm of the second base value; determining a bias value substantially equivalent to the second base value raised to the second exponent value divided by the first base value raised to the first exponent value; and determining the second significand value by multiplying the first significand value by the bias value.

Claims (71)

1. A computer program product for converting a first floating point number represented in a first floating point format to an equivalent second floating point number in a second floating point format, the first floating point format having an associated first base value and being represented by a first significand value and a first exponent value, and the second floating point format having an associated second base value different from the first base value and being represented by a second significand value and a second exponent value, wherein either the first base value or the second base value is an integer power of two, and the other base value is not an integer power of two, comprising a non-transitory tangible computer readable storage medium storing an executable algorithm for causing a data processing system to perform the steps of:

determining the second exponent value for the second floating point number by multiplying the first exponent value by a predefined constant and taking the integer portion of the result, the predefined constant being substantially equivalent to the logarithm of the first base value divided by the logarithm of the second base value;

determining a bias value that is substantially equivalent to the first base value raised to the first exponent value divided by the second base value raised to the second exponent value wherein the determination of the bias value includes:

determining an intermediate bias value by addressing a look-up table with the exponent value corresponding to the base that is not an integer power of two; and

determining the bias value by applying a binary shift operation to the intermediate bias value, wherein a magnitude of the binary shift is determined responsive to the exponent value corresponding to the base that is an integer power of two; and

determining the second significand value for the second floating point number by multiplying the first significand value by the bias value.

2. The computer program product of claim 1 wherein the binary shift operation is applied using a shift register.

3. The computer program product of claim 1 wherein the first floating point format is a binary floating point format having a first base value of two and the second floating point format is a decimal floating point format having a second base value of ten.

4. The computer program product of claim 3 wherein the binary floating point format is an IEEE 754-2008 binary floating point format and the decimal floating point format is an IEEE 754-2008 decimal floating point format.

5. The computer program product of claim 1 wherein the first floating point format is a decimal floating point format having a first base value of ten and the second floating point format is a binary floating point format having a second base value of two.

6. The computer program product of claim 5 wherein the binary floating point format is an IEEE 754-2008 binary floating point format and the decimal floating point format is an IEEE 754-2008 decimal floating point format.

7. The computer program product of claim 1 wherein the first floating point format further includes a first sign value and the second floating point format further includes a second sign value, and wherein the second sign value is set to be equal to the first sign value.

8. The computer program product of claim 1 further including performing a normalization process to the second floating point number, where the normalization process includes:

multiplying or dividing the second significand value by a scale value equal to the second base value raised to an integer power to provide a modified second significand value, wherein the modified second significand value falls within a specified range; and

decrementing or incrementing the second exponent value by a corresponding value equal to the integer power to provide a modified second exponent value.

9. The computer program product of claim 1 wherein the first floating point format has an associated first binary encoding including a first set of exponent bits representing the first exponent value and a first set of significand bits representing the first significand value, and further including determining the first exponent value and the first significand value by decoding the first set of exponent bits and the first set of significand bits, respectively.

10. The computer program product of claim 1 wherein the second floating point format has an associated second binary encoding including a second set of exponent bits representing the second exponent value and a second set of significand bits representing the second significand value, and further including performing an encoding process to determine the second set of significand bits and the second set of exponent bits needed to represent the second significand value and the second exponent value, respectively.

11. The computer program product of claim 1 wherein the base value that is an integer power of two is equal to two so that the corresponding floating point number is a binary floating point number, wherein the base value that is not an integer power of two is equal to ten so that the corresponding floating point number is a decimal floating point number.

12. The computer program product of claim 1 wherein the non-transitory tangible computer readable storage medium is a component of a hardware floating-point unit.

13. A computer program product for converting a binary floating point number represented in a binary floating point format to an equivalent decimal floating point number in a decimal floating point format, the binary floating point format having an associated first base value of two and being represented by a first significand value and a first exponent value, and the decimal floating point format having an associated second base value of ten and being represented by a second significand value and a second exponent value, comprising a non-transitory tangible computer readable storage medium storing an executable algorithm for causing a data processing system to perform the steps of:

determining the second exponent value for the decimal floating point number by multiplying the first exponent value by a predefined constant and taking the integer portion of the result, the predefined constant being substantially equivalent to the logarithm of two divided by the logarithm of ten;

determining a bias value that is substantially equivalent to two raised to the first exponent value divided by ten raised to the second exponent value, wherein the determination of the bias value includes:

determining an intermediate bias value by addressing a look-up table with the second exponent value; and

determining the bias value by applying a binary shift operation to the intermediate bias value, wherein a magnitude of the binary shift is determined responsive to the first exponent value; and

determining the second significand value for the second floating point number by multiplying the first significand value by the bias value.

14. The computer program product of claim 13 wherein the look-up table stores representations of the intermediate bias values for a range of different possible second exponent values, and wherein the intermediate bias values are determined by:

bias i [E 2 ]=10 −E 2

where E 2 is the second exponent value and bias i [E 2 ] is the intermediate bias value.

15. The computer program product of claim 13 wherein the magnitude of the binary shift includes a term equal to the first exponent value.

16. The computer program product of claim 13 wherein the stored representations of the intermediate bias values includes a fixed point number and a shift value, and wherein the magnitude of the binary shift includes a term equal to the shift value.

17. The computer program product of claim 13 wherein the determination of the magnitude of the binary shift is also responsive to the second exponent value.

18. The computer program product of claim 17 wherein the determination of the magnitude of the binary shift is given by:

Δ E 1 =E 1 −Int[ E 2 log 2 10]

where E 1 is the first exponent value, E 2 is the second exponent value, and ΔE 1 is the magnitude of the binary shift.

19. The computer program product of claim 13 wherein the look-up table stores representations of the intermediate bias values for a range of different possible second exponent values, and wherein the intermediate bias values are determined by:

bias

i

[

E

2

]

=

2

Int

[

E

2

log

2

10

]

10

E

2

where E 2 is the second exponent value and bias i [E 2 ] is the intermediate bias value.

20. The computer program product of claim 13 wherein the non-transitory tangible computer readable storage medium is a component of a hardware floating-point unit.

21. A floating-point unit including a floating point format converter for converting a binary floating point number represented in a binary floating point format to an equivalent decimal floating point number in a decimal floating point format, the binary floating point format having an associated first base value of two and being represented by a first significand value and a first exponent value, and the decimal floating point format having an associated second base value of ten and being represented by a second significand value and a second exponent value, comprising:

a multiplier for determining the second exponent value for the decimal floating point number by multiplying the first exponent value by a predefined constant and taking the integer portion of the result, the predefined constant being substantially equivalent to the logarithm of two divided by the logarithm of ten;

a look-up table unit for determining an intermediate bias value by addressing an intermediate bias look-up table with the second exponent value;

a shift register for determining a bias value by applying a binary shift operation to the intermediate bias value, the magnitude of the binary shift being determined responsive to the first exponent value, wherein the determined bias value is substantially equivalent to two raised to the first exponent value divided by ten raised to the second exponent value; and

a multiplier for determining the second significand value for the second floating point number by multiplying the first significand value by the bias value.

22. The floating-point unit of claim 21 further including a normalization unit for applying a normalization process to the second floating point number, where the normalization process includes:

a multiplier or divider for multiplying or dividing the second significand value by a scale value equal to the second base value raised to an integer power to provide a modified second significand value, wherein the modified second significand value falls within a specified range; and

a signed adder for decrementing or incrementing the second exponent value by a corresponding value equal to the integer power to provide a modified second exponent value.

23. The floating-point unit of claim 21 wherein the first floating point format has an associated first binary encoding including a set of first exponent bits representing the first exponent value and a first set of significand bits representing the first significand value, and further including a decoding unit for applying a decoding process to determine the first exponent value and the first significand value by decoding the first set of exponent bits and the first set of significand bits, respectively.

24. The floating-point unit of claim 21 wherein the second floating point format has an associated second binary encoding including a second set of exponent bits representing the second exponent value and a second set of significand bits representing the second significand value, and further including an encoding unit for applying an encoding process to determine the second set of significand bits and the second set of exponent bits needed to represent the second significand value and the second exponent value, respectively.

25. The floating-point unit of claim 21 further including a reverse floating point format converter for converting a decimal floating point number represented in the decimal floating point format to an equivalent binary floating point number in the binary floating point format, wherein the reverse floating point format converter includes a look-up table unit for determining a bias value by addressing the intermediate bias look-up table associated with the floating point format converter using a negative of the exponent value for the decimal floating point number.

Assignments (13)
SHORT-FORM PATENTS SECURITY AGREEMENT Recorded Sep 5, 2025
From: KODAK ALARIS LLC
To: ENCINA PRIVATE CREDIT SPV 2, LLC, AS COLLATERAL AGENT
Reel/Frame 072818/0674 →
RELEASE OF SECURITY INTEREST Recorded Aug 29, 2025
From: FGI WORLDWIDE LLC
To: KODAK ALARIS LLC
Reel/Frame 072740/0681 →
CHANGE OF NAME Recorded Oct 31, 2024
From: KODAK ALARIS INC.
To: KODAK ALARIS LLC
Reel/Frame 069282/0866 →
RELEASE OF SECURITY INTEREST Recorded Aug 7, 2024
From: THE BOARD OF THE PENSION PROTECTION FUND
To: KODAK ALARIS INC.
Reel/Frame 068481/0300 →
SECURITY AGREEMENT Recorded Aug 2, 2024
From: KODAK ALARIS INC.
To: FGI WORLDWIDE LLC
Reel/Frame 068325/0938 →
ASSIGNMENT OF SECURITY INTEREST Recorded Nov 17, 2021
From: KPP (NO. 2) TRUSTEES LIMITED
To: THE BOARD OF THE PENSION PROTECTION FUND
Reel/Frame 058175/0651 →
SECURITY INTEREST Recorded Oct 5, 2020
From: KODAK ALARIS INC.
To: KPP (NO. 2) TRUSTEES LIMITED
Reel/Frame 053993/0454 →
CHANGE OF NAME Recorded Oct 9, 2013
From: 111616 OPCO (DELAWARE) INC.
To: KODAK ALARIS INC.
Reel/Frame 031394/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 6, 2013
From: EASTMAN KODAK COMPANY
To: 111616 OPCO (DELAWARE) INC.
Reel/Frame 031172/0025 →
RELEASE OF SECURITY INTEREST IN PATENTS Recorded Sep 5, 2013
From: CITICORP NORTH AMERICA, INC., AS SENIOR DIP AGENT; WILMINGTON TRUST, NATIONAL ASSOCIATION, AS JUNIOR DIP AGENT
To: EASTMAN KODAK COMPANY; PAKON, INC.
Reel/Frame 031157/0451 →
PATENT SECURITY AGREEMENT Recorded Apr 1, 2013
From: EASTMAN KODAK COMPANY; PAKON, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS AGENT
Reel/Frame 030122/0235 →
SECURITY INTEREST Recorded Feb 21, 2012
From: EASTMAN KODAK COMPANY; PAKON, INC.
To: CITICORP NORTH AMERICA, INC., AS AGENT
Reel/Frame 028201/0420 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 6, 2011
From: BISHOP, DAVID W.
To: EASTMAN KODAK
Reel/Frame 026082/0609 →