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.