Bit Operations Module

The bitops module provides optimized bit manipulation functions for SEU injection.

Float32 Operations

Optimized IEEE 754 Float32 bit manipulation operations.

This module contains high-performance implementations of bit-level manipulation functions for float32 values. These functions are designed for production use and prioritize speed and memory efficiency.

seu_injection.bitops.float32.bitflip_float32_optimized(values, bit_position, inplace=False)[source]

High-performance bit flipping using direct memory manipulation and vectorization.

Parameters:
  • values (Union[float, np.ndarray]) – Input float32 value or numpy array.

  • bit_position (int) – Bit position to flip in IEEE 754 representation.

  • inplace (bool) – Whether to modify input array directly for memory efficiency.

Returns:

Value(s) with specified bit flipped.

Return type:

Union[float, np.ndarray]

seu_injection.bitops.float32.bitflip_float32_fast(x, bit_i=None, inplace=False)[source]

Intelligent bit flipping with automatic performance optimization and fallback handling.

Parameters:
  • x (Union[float, np.ndarray]) – Input float32 value or numpy array to manipulate.

  • bit_i (Optional[int]) – Bit position to flip in IEEE 754 representation.

  • inplace (bool) – If True, modifies the input array in place (only for numpy arrays).

Returns:

Value(s) with specified bit flipped.

Return type:

Union[float, np.ndarray]

Bitflip Function

seu_injection.bitops.bitflip_float32(x, bit_i=None)[source]

Flip a specific bit in IEEE 754 float32 values using string-based manipulation.

Parameters:
  • x (Union[float, np.ndarray]) – Input float32 value or numpy array of values.

  • bit_i (Optional[int]) – Bit position to flip in IEEE 754 representation.

Returns:

Value(s) with the specified bit flipped.

Return type:

Union[float, np.ndarray]

Raises:
  • ValueError – If bit_i is not in valid range [0, 31] when specified.

  • TypeError – If input contains non-numeric values.

Utilities

Utility functions for IEEE 754 Float32 bit manipulation.

This module contains shared utility functions used across both legacy and optimized implementations of float32 bit manipulation.

seu_injection.bitops.utils.float32_to_binary(f)[source]

Convert a float32 value to its IEEE 754 binary representation.

Parameters:

f (float) – Float32 value to convert.

Return type:

str

Returns:

32-character binary string representation.

seu_injection.bitops.utils.binary_to_float32(binary_str)[source]

Convert a 32-bit binary string to a float32 value.

Parameters:

binary_str (str) – 32-character binary string.

Return type:

float

Returns:

Corresponding float32 value.

Raises:

ValueError – If binary_str is not exactly 32 characters.