IP Library Granted Patent US 9,417,842
Granted Patent B2
US 9,417,842 · App. 14/006,071 · Granted Aug 16, 2016

Idempotent representation of numbers in extensible languages

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 9,417,842
App. No.
14/006,071
Granted
Aug 16, 2016
Kind
B2
Abstract

Technologies and implementations for representing floating-point numbers in an extensible language are generally disclosed.

Claims (91)

1. A method to encode a floating-point number for use with an extensible language, the method comprising:

determining a significand value based at least in part on the floating-point number;

determining an exponent value based at least in part on the floating-point number;

determining a base based at least in part on the floating-point number;

determining a bit width of the floating point number, wherein the bit width represents a number of bits of precision of the floating point number;

generating key-value pairs to represent the determined significand value, the determined exponent value, and the determined base; and

encoding the generated key-value pairs as a dictionary in the extensible language.

2. The method of claim 1 , wherein the dictionary only includes key-value pairs meant to be interpreted as floating-point numbers.

3. The method of claim 1 , wherein determining a bit width of the floating point number comprises:

determining a fixed-width value based at least in part on the floating-point number; and

generating a key-value pair to represent the determined fixed-width value.

4. The method of claim 1 , wherein determining a bit width of the floating point number comprises:

determining a first precision value based at least in part on the determined significand value;

determining a second precision value based at least in part on the determined exponent value; and

generating key-value pairs to represent the determined first precision value and the determined second precision value.

5. The method of claim 1 , wherein the value of the generated key-value pairs representing the determined significand value and the determined exponent value are integers.

6. The method of claim 1 , wherein the value of the generated key-value pair representing the determined base is a string.

7. The method of claim 1 , wherein the extensible language is Extensible Markup Language (XML).

8. The method of claim 1 , wherein the extensible language is Java Script Object Notation (JSON).

9. A machine readable non-transitory medium having stored therein instructions that, when executed by one or more processors, operatively enable an extensible language encoder module to:

determine a significand value based at least in part on the floating-point number;

determine an exponent value based at least in part on the floating-point number;

determine a base based at least in part on the floating-point number;

determine a bit width of the floating point number, wherein the bit width represents a number of bits of precision of the floating point number; and

generate key-value pairs to represent the determined significand value, the determined exponent value, and the determined base; and

encode the generated key-value pairs as a dictionary in the extensible language, wherein the dictionary only includes key-value pairs meant to be interpreted as floating-point numbers.

10. The machine readable non-transitory medium of claim 9 , wherein the stored instructions to determine a bit width of the floating point number further comprise instructions that, when executed by one or more processors, further operatively enable the communication module to:

determine a fixed-width value based at least in part on the floating-point number; and

generate a key-value pair to represent the determined fixed-width value.

11. The machine readable non-transitory medium of claim 9 , wherein the stored instructions to determine a bit width of the floating point number further comprise instructions that, when executed by one or more processors, further operatively enable the communication module to:

determine a first precision value based at least in part on the determined significand value;

determine a second precision value based at least in part on the determined exponent value; and

generate key-value pairs to represent the determined first precision value and the determined second precision value.

12. The machine readable non-transitory medium of claim 9 , wherein the value of the generated key-value pairs representing the determined significand value and the determined exponent value are integers.

13. The machine readable non-transitory medium of claim 9 , wherein the value of the generated key-value pair representing the determined base is a string.

14. The machine readable non-transitory medium of claim 9 , wherein the extensible language is Extensible Markup Language (XML).

15. The machine readable non-transitory medium of claim 9 , wherein the extensible language is Java Script Object Notation (JSON).

16. A system comprising:

an extensible language encoding module including an extensible language in Java Script Object Notation (JSON);

a machine readable medium having stored therein instructions that, when executed by one or more processors, operatively enable the extensible language encoding module to:

determine a significand value based at least in part on the floating-point number;

determine an exponent value based at least in part on the floating-point number;

determine a base based at least in part on the floating-point number;

determine a bit width of the floating point number, wherein the bit width represents a number of bits of precision of the floating point number; and

generate key-value pairs to represent the determined significand value, the determined exponent value, and the determined base.

17. The system of claim 16 , wherein the stored instructions that, when executed by one or more processors, further operatively enable the extensible language encoding module to encode the generated key-value pairs as a dictionary in the extensible language.

18. The system of claim 17 , wherein the dictionary only includes key-value pairs meant to be interpreted as floating-point numbers.

19. The system of claim 16 , wherein the stored instructions to determine a bit width of the floating point number further comprise instructions that, when executed by one or more processors, further operatively enable the extensible language encoding module to:

determine a fixed-width value based at least in part on the floating-point number; and

generate a key-value pair to represent the determined fixed-width value.

20. The system of claim 16 , wherein the stored instructions to determine a bit width of the floating point number further comprise instructions that, when executed by one or more processors, further operatively enable the extensible language encoding module to:

determine a first precision value based at least in part on the determined significand value;

determine a second precision value based at least in part on the determined exponent value; and

generate key-value pairs to represent the determined first precision value and the determined second precision value.

21. The system of claim 16 , wherein the value of the generated key-value pairs representing the determined significand value and the determined exponent value are integers.

22. The system of claim 16 , wherein the value of the generated key-value pair representing the determined base is a string.

23. A method for decoding a floating-point number from an extensible language, the method comprising:

receiving a plurality of key-value pairs representing a floating-point number wherein the plurality of key-value pairs are encoded as a dictionary in the extensible language;

determining a significand value based at least in part on one or more of the plurality of the key-value pairs;

determining an exponent value based at least in part on one or more of the plurality of the key-value pairs;

determining a base based at least in part on one or more of the key-value pairs;

determining a bit width based at least in part on one or more of the plurality of the key-value pairs; and

determining the floating-point number based at least in part on the determined significand, the determined exponent, and the determined base.

24. The method of claim 23 , wherein the dictionary only includes key-value pairs meant to be interpreted as floating-point numbers.

25. The method of claim 23 , wherein determining a bit width of the floating point number comprises:

determining a fixed-width value based at least in part on one or more of the key-value pairs, and wherein determining the floating-point number includes determining the floating-point number based at least in part on the determined fixed-width value.

26. The method of claim 23 , wherein determining a bit width of the floating point number comprises:

determining a first precision value based at least in part on one or more of the plurality of key-value pairs;

determining a second precision value based at least in part on one or more of the plurality of key-value pairs; and wherein determining the floating-point number includes determining the floating-point number based at least in part on the determined first precision value and the determined second precision value.

27. A machine readable non-transitory medium having stored therein instructions that, when executed by one or more processors, operatively enable an extensible language encoder module to:

receive a plurality of key-value pairs representing a floating-point number wherein the plurality of key-value pairs are encoded as a dictionary;

determine a significand value based at least in part on one or more of the plurality of the key-value pairs;

determine an exponent value based at least in part on one or more of the plurality of the key-value pairs;

determine a base based at least in part on one or more of the key-value pairs;

determine a bit width based at least in part on one or more of the plurality of the key-value pairs; and

determine the floating-point number based at least in part on the determined significand, the determined exponent, and the determined base.

28. The machine readable non-transitory medium of claim 27 , wherein the dictionary only includes key-value pairs meant to be interpreted as floating-point numbers.

29. The machine readable non-transitory medium of claim 27 , wherein the stored instructions to determine a bit width of the floating point number further comprise instructions that, when executed by one or more processors, further operatively enable the communication module to:

determine a fixed-width value based at least in part on one or more of the key-value pairs, and wherein determining the floating-point number includes determining the floating-point number based at least in part on the determined fixed-width value.

30. The machine readable non-transitory medium of claim 27 , wherein the stored instructions to determine a bit width of the floating point number further comprise instructions that, when executed by one or more processors, further operatively enable the communication module to:

determine a first precision value based at least in part on one or more of the plurality of key-value pairs;

determine a second precision value based at least in part on one or more of the plurality of key-value pairs; and wherein determining the floating-point number includes determining the floating-point number based at least in part on the determined first precision value and the determined second precision value.

31. A system comprising:

an extensible language encoding module;

a machine readable medium having stored therein instructions that, when executed by one or more processors, operatively enable the extensible language encoding module to:

receive a plurality of key-value pairs representing a floating-point number wherein the plurality of key-value pairs are encoded as a dictionary;

determine a significand value based at least in part on one or more of the plurality of the key-value pairs;

determine an exponent value based at least in part on one or more of the plurality of the key-value pairs;

determine a base based at least in part on one or more of the key-value pairs;

determine a bit width based at least in part on one or more of the plurality of the key-value pairs; and

determine the floating-point number based at least in part on the determined significand, the determined exponent, and the determined base.

Assignments (4)
RELEASE OF SECURITY INTEREST Recorded Nov 29, 2023
From: CRESTLINE DIRECT FINANCE, L.P.
To: EMPIRE TECHNOLOGY DEVELOPMENT LLC
Reel/Frame 065712/0585 →
SECURITY INTEREST Recorded Jan 29, 2019
From: EMPIRE TECHNOLOGY DEVELOPMENT LLC
To: CRESTLINE DIRECT FINANCE, L.P.
Reel/Frame 048373/0217 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 18, 2013
From: CILIBRASI, RUDI
To: MORE FUN TECHNOLOGIES, LLC
Reel/Frame 031235/0961 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 18, 2013
From: MORE FUN TECHNOLOGIES, LLC
To: EMPIRE TECHNOLOGY DEVELOPMENT LLC
Reel/Frame 031235/0971 →