Files
concrete/docs/dev/api/concrete.fhe.extensions.truncate_bit_pattern.md
2025-04-30 10:20:28 +01:00

4.0 KiB

module concrete.fhe.extensions.truncate_bit_pattern

Declaration of truncate_bit_pattern extension.

Global Variables

  • MAXIMUM_TLU_BIT_WIDTH

function truncate_bit_pattern

truncate_bit_pattern(
    x: Union[int, integer, list, ndarray, Tracer],
    lsbs_to_remove: Union[int, AutoTruncator]
)  Union[int, integer, list, ndarray, Tracer]

Round the bit pattern of an integer.

If lsbs_to_remove is an AutoTruncator: corresponding integer value will be determined by adjustment process.

x = 0b_0000 , lsbs_to_remove = 2 => 0b_0000 x = 0b_0001 , lsbs_to_remove = 2 => 0b_0000 x = 0b_0010 , lsbs_to_remove = 2 => 0b_0000 x = 0b_0100 , lsbs_to_remove = 2 => 0b_0100 x = 0b_0110 , lsbs_to_remove = 2 => 0b_0100 x = 0b_1100 , lsbs_to_remove = 2 => 0b_1100 x = 0b_abcd , lsbs_to_remove = 2 => 0b_ab00

Args: x (Union[int, np.integer, np.ndarray, Tracer]): input to truncate

lsbs_to_remove (Union[int, AutoTruncator]): number of the least significant bits to clear or an auto truncator object which will be used to determine the integer value

Returns: Union[int, np.integer, np.ndarray, Tracer]: Tracer that represents the operation during tracing truncated value(s) otherwise


class Adjusting

Adjusting class, to be used as early stop signal during adjustment.

method __init__

__init__(truncator: 'AutoTruncator', input_min: int, input_max: int)

class AutoTruncator

AutoTruncator class, to optimize for the number of msbs to keep during truncate operation.

method __init__

__init__(target_msbs: int = 16)

method adjust

adjust(
    function: Callable,
    inputset: Union[Iterable[Any], Iterable[tuple[Any, ]]]
)

Adjust AutoTruncators in a function using an inputset.


method dump_dict

dump_dict()  dict

Dump properties of the truncator to a dict.


classmethod load_dict

load_dict(properties: dict)  AutoTruncator

Load previously dumped truncator.