From 6cbc0dd0c71f20eb9d7b87e13396e7713ff5381f Mon Sep 17 00:00:00 2001 From: mjalalzai <33738574+MForensic@users.noreply.github.com> Date: Sun, 4 Jun 2023 23:18:19 -0700 Subject: [PATCH] Compressing bitarrays --- carnot/PoS_attestation.py | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/carnot/PoS_attestation.py b/carnot/PoS_attestation.py index b9cf234..b1d0702 100644 --- a/carnot/PoS_attestation.py +++ b/carnot/PoS_attestation.py @@ -68,7 +68,22 @@ def merge_bitarrays(bitarray1, bitarray2): - +def compressBitArrays(*bit_arrays): + # Flatten the bit arrays into a single list + flat_array = [bit for bit_array in bit_arrays for bit in bit_array] + + # Convert the flat array to a bitarray object + bitarray_object = bitarray(flat_array) + + # Compress the bitarray using zlib compression + compressed_data = zlib.compress(bitarray_object.tobytes()) + + # Calculate the compression ratio + actual_data_size = len(bitarray_object) + compressed_data_size = len(compressed_data) + # compression_ratio = actual_data_size / compressed_data_size + + return compressed_data_size