IP Library Granted Patent US 12,307,089
Granted Patent B2
US 12,307,089 · App. 18/479,024 · Granted May 20, 2025

System and method for compaction of floating-point numbers within a dataset

Inventors: Joshua Cooper (Columbia, SC); Aliasghar Riahi (Orinda, CA); Mojgan Haddad (Orinda, CA); Ryan Kourosh Riahi (Orinda, CA); Razmin Riahi (Orinda, CA); Charles Yeomans (Orinda, CA)
Assignee: ATOMBEAM TECHNOLOGIES INC
G06F3/0608G06F3/0623G06F3/0659G06F3/067H03M7/6005H03M7/6011
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 12,307,089
App. No.
18/479,024
Filed
Sep 30, 2023
Granted
May 20, 2025
Kind
B2
Art Unit
2136
USPC
711/154
Abstract

A system and method for compaction of floating-point numbers within a dataset, comprising a pre-encoder, a data deconstruction engine, a library manager, a codeword storage, and a data reconstruction engine. A pre-encoder may receive a plurality of data sourcepackets with may contain one or more floating-point numbers and the received data sourcepackets are scanned to identify floating-point numbers and the identified floating-point numbers. Identified floating-point numbers may be pre-encoded into binary string representations which are low-distortion embeddings of real numbers into a Hamming space. The binary string representation may be indexed to indicate it represents a floating-point number before being compacted by a data deconstruction engine and library manager. The pre-encoding of floating-point numbers located within a sourcepacket enables the system to maximize the benefit of the compaction capabilities of the data deconstruction engine.

Claims (40)

1. A system for compaction of floating-point numbers within a dataset, comprising:

a computing device comprising a processor, a memory, and a non-volatile data storage device;

a pre-encoder comprising a plurality of programming instructions stored in the memory and operable on the processor, wherein the plurality of programming instructions, when operating on the processor, causes the processor to:

receive a dataset for encoding, the dataset comprising one or more floating-point numbers;

scan the dataset to identify the one or more floating-point numbers;

for each identified floating-point number in the dataset:

pre-encode the floating-point number into a binary string representation;

replace the floating-point number with its binary string representation in the dataset to create a pre-encoded data set; and

create an index and logically link the binary string representation with the index, wherein the index indicates the binary string represents a floating-point number in the pre-encoded dataset.

2. The system of claim 1 , further comprising a data deconstruction engine comprising a second plurality of programming instructions stored in the memory and operable on the processor, wherein the second plurality of programming instructions, when operating on the processor, causes the processor to:

receive a pre-encoded dataset;

deconstruct the pre-encoded dataset into a plurality of sourceblocks; and

compact each of the plurality of sourceblocks by assigning a codeword to a reference code associated with each of the plurality of sourceblocks; and

wherein the pre-encoder is further configured to send the pre-encoded dataset to a data deconstruction engine.

3. The system of claim 1 , wherein the binary string representations are low-distortion embeddings of real numbers into Hamming space.

4. The system of claim 1 , wherein the binary string representation is a fixed-point representation.

5. The system of claim 1 , further comprising a codeword database configured to store a plurality of codewords.

6. The system of claim 1 , further comprising a data reconstruction engine comprising a third plurality of programming instructions stored in the memory and operable on the processor, wherein the third plurality of programming instructions, when operating on the processor, causes the processor to:

receive a plurality of sourceblocks;

check whether each of the plurality of sourceblocks has been logically linked to an index, wherein the presence of an index indicates the sourceblock is a binary string representation of a floating-point number; and

divide the sourceblocks that have been logically linked to an index by a fixed power of two in order to transform the sourceblock into its floating-point number form.

7. A method for compaction of floating-point numbers within a dataset, comprising the steps of:

receiving, at a pre-encoder, a dataset for encoding, the dataset comprising one or more floating-point numbers;

scanning the dataset to identify the one or more floating-point numbers;

for each identified floating-point number in the dataset:

pre-encoding the floating-point number into a binary string representation;

replacing the floating-point number with its binary string representation in the dataset to create a pre-encoded data set; and

creating an index and logically linking the binary string representation with the index, wherein the index indicates the binary string represents a floating-point number in the pre-encoded dataset.

8. The method of claim 7 , further comprising the steps of:

sending the pre-encoded dataset to a data deconstruction engine;

receiving, at the data deconstruction engine, the pre-encoded dataset;

deconstructing the pre-encoded dataset into a plurality of sourceblocks; and

compacting each of the plurality of sourceblocks by assigning a codeword to a reference code associated with each of the plurality of sourceblocks.

9. The method of claim 6 , wherein the binary string representations are low-distortion embeddings of real numbers into Hamming space.

10. The method of claim 6 , wherein the binary string representation is a fixed-point representation.

11. The method of claim 6 , further comprising a codeword database configured to store a plurality of codewords.

12. The method of claim 6 , further comprising the steps of:

receiving a plurality of sourceblocks;

checking whether each of the plurality of sourceblocks has been logically linked to an index, wherein the presence of an index indicates the sourceblock is a binary string representation of a floating-point number; and

dividing the sourceblocks that have been logically linked to an index by a fixed power of two in order to transform the sourceblock into its floating-point number form.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 7, 2024
From: COOPER, JOSHUA; RIAHI, ALIASGHAR; HADDAD, MOJGAN; RIAHI, RYAN KOUROSH; RIAHI, RAZMIN; YEOMANS, CHARLES
To: ATOMBEAM TECHNOLOGIES INC.
Reel/Frame 068216/0186 →
Continuity (10)
Continuation 18083437 · Dec 16, 2022
Continuation In Part 17953946 · Sep 27, 2022
Continuation 17727913 · Apr 25, 2022
Continuation 17404699 · Aug 17, 2021
Continuation In Part 16455655 · Jun 27, 2019
Continuation In Part 16200466 · Nov 26, 2018
Continuation In Part 15975741 · May 9, 2018
Provisional Application 63248665 · Sep 27, 2021
Provisional Application 62578824 · Oct 30, 2017
Related Publication 20240020006A1 · Jan 18, 2024
References Cited (6)
US 9513813B1 · Blaettler et al. · 2016 [cited by applicant]
US 20140208068A1 · Wegener · 2014 [cited by examiner]
US 20180196609A1 · Niesen · 2018 [cited by applicant]
US 20200395955A1 · Choi et al. · 2020 [cited by applicant]
US 20210351786A1 · Lacey · 2021 [cited by examiner]
US 20230280902A1 · Snyder · 2023 [cited by examiner]