eb

compression_safeguards.safeguards.pointwise.eb

Error bound safeguard.

Classes:

  • ErrorBoundSafeguard

    The ErrorBoundSafeguard guarantees that the pointwise error type is less than or equal to the provided bound eb.

ErrorBoundSafeguard

ErrorBoundSafeguard(
    type: str | ErrorBound,
    eb: int | float | str | Parameter,
    *,
    equal_nan: bool = False,
)

Bases: PointwiseSafeguard

flowchart LR compression_safeguards.safeguards.pointwise.eb.ErrorBoundSafeguard[ErrorBoundSafeguard] compression_safeguards.safeguards.pointwise.abc.PointwiseSafeguard[PointwiseSafeguard] compression_safeguards.safeguards.abc.Safeguard[Safeguard] compression_safeguards.safeguards.pointwise.abc.PointwiseSafeguard --> compression_safeguards.safeguards.pointwise.eb.ErrorBoundSafeguard compression_safeguards.safeguards.abc.Safeguard --> compression_safeguards.safeguards.pointwise.abc.PointwiseSafeguard click compression_safeguards.safeguards.pointwise.eb.ErrorBoundSafeguard href "" "compression_safeguards.safeguards.pointwise.eb.ErrorBoundSafeguard" click compression_safeguards.safeguards.pointwise.abc.PointwiseSafeguard href "" "compression_safeguards.safeguards.pointwise.abc.PointwiseSafeguard" click compression_safeguards.safeguards.abc.Safeguard href "" "compression_safeguards.safeguards.abc.Safeguard"

The ErrorBoundSafeguard guarantees that the pointwise error type is less than or equal to the provided bound eb.

Infinite values are preserved with the same bit pattern. If equal_nan is set to True, correcting a NaN value to a NaN value with a different bit pattern also satisfies the error bound. If equal_nan is set to False, NaN values are also preserved with the same bit pattern.

The error bound can be verified by casting the data and error bound to a sufficiently large floating-point type, selected by ToFloatMode.lossless.floating_point_dtype_for, using to_float.

Parameters:
  • type (str | ErrorBound) –

    The type of error bound that is enforced by this safeguard.

  • eb (int | float | str | Parameter) –

    The value of or late-bound parameter name for the error bound that is enforced by this safeguard.

  • equal_nan (bool, default: False ) –

    Whether correcting a NaN value to a NaN value with a different bit pattern satisfies the error bound.

Raises:
  • TypeCheckError

    if any parameter has the wrong type.

  • ValueError

    if type does not name a valid error bound.

  • ValueError

    if eb is an invalid error bound value for the error bound type.

Methods:

kind class-attribute

kind: str = 'eb'

late_bound property

late_bound: Set[Parameter]

The set of late-bound parameters that this safeguard has.

Late-bound parameters are only bound when checking and applying the safeguard, in contrast to the normal early-bound parameters that are configured during safeguard initialisation.

Late-bound parameters can be used for parameters that depend on the specific data that is to be safeguarded.

check_pointwise

check_pointwise(
    data: ndarray[S, dtype[T]],
    approximation: ndarray[S, dtype[T]],
    *,
    late_bound: Bindings,
    where: Literal[True] | ndarray[S, dtype[bool]] = True,
) -> ndarray[S, dtype[bool]]

Check which elements in the approximation array satisfy the error bound.

Parameters:
  • data (ndarray[S, dtype[T]]) –

    Original data array, relative to which the approximation is checked.

  • approximation (ndarray[S, dtype[T]]) –

    Approximation of the data array.

  • late_bound (Bindings) –

    Bindings for late-bound parameters, including for this safeguard.

  • where (Literal[True] | ndarray[S, dtype[bool]], default: True ) –

    Only check at data points where the condition is True.

Returns:
  • ok( ndarray[S, dtype[bool]] ) –

    Pointwise, True if the check succeeded for this element.

Raises:
  • LateBoundParameterResolutionError

    if the error bound eb is late-bound but its late-bound parameter is not in late_bound.

  • ValueError

    if the late-bound eb could not be broadcast to the data's shape.

  • ValueError

    if the late-bound eb is non-finite, i.e. infinite or NaN, or an invalid error bound value for the error bound type.

compute_safe_intervals

compute_safe_intervals(
    data: ndarray[S, dtype[T]],
    *,
    late_bound: Bindings,
    where: Literal[True] | ndarray[S, dtype[bool]] = True,
) -> IntervalUnion[T, int, int]

Compute the intervals in which the error bound is upheld with respect to the data.

Parameters:
  • data (ndarray[S, dtype[T]]) –

    Data for which the safe intervals should be computed.

  • late_bound (Bindings) –

    Bindings for late-bound parameters, including for this safeguard.

  • where (Literal[True] | ndarray[S, dtype[bool]], default: True ) –

    Only compute the safe intervals at pointwise checks where the condition is True.

Returns:
  • intervals( IntervalUnion[T, int, int] ) –

    Union of intervals in which the error bound is upheld.

Raises:
  • LateBoundParameterResolutionError

    if the error bound eb is late-bound but its late-bound parameter is not in late_bound.

  • ValueError

    if the late-bound eb could not be broadcast to the data's shape.

  • ValueError

    if the late-bound eb is non-finite, i.e. infinite or NaN, or an invalid error bound value for the error bound type.

compute_footprint

compute_footprint(
    foot: ndarray[S, dtype[bool]],
    *,
    late_bound: Bindings,
    where: Literal[True] | ndarray[S, dtype[bool]] = True,
) -> ndarray[S, dtype[bool]]

Compute the footprint of the foot array, e.g. for expanding data points into the pointwise checks that they contribute to.

The footprint is equivalent to foot & where.

Parameters:
  • foot (ndarray[S, dtype[bool]]) –

    Array for which the footprint is computed.

  • late_bound (Bindings) –

    Bindings for late-bound parameters, including for this safeguard.

  • where (Literal[True] | ndarray[S, dtype[bool]], default: True ) –

    Only compute the footprint at pointwise checks where the condition is True.

Returns:

compute_inverse_footprint

compute_inverse_footprint(
    foot: ndarray[S, dtype[bool]],
    *,
    late_bound: Bindings,
    where: Literal[True] | ndarray[S, dtype[bool]] = True,
) -> ndarray[S, dtype[bool]]

Compute the inverse footprint of the foot array, e.g. for expanding pointwise check fails into the points that could have contributed to the failures.

The inverse footprint is equivalent to foot & where.

Parameters:
  • foot (ndarray[S, dtype[bool]]) –

    Array for which the inverse footprint is computed.

  • late_bound (Bindings) –

    Bindings for late-bound parameters, including for this safeguard.

  • where (Literal[True] | ndarray[S, dtype[bool]], default: True ) –

    Only compute the inverse footprint at pointwise checks where the condition is True.

Returns:

get_config

get_config() -> dict[str, JSON]

Returns the configuration of the safeguard.

Returns:
  • config( dict[str, JSON] ) –

    Configuration of the safeguard.