Source code for sysplot.signals

import numpy as np

from .config import get_config


[docs] def heaviside(x: np.ndarray, default_value: float | None = None) -> np.ndarray: """Evaluate the Heaviside step function. Returns 0 for ``x < 0``, ``default_value`` for ``x == 0``, and 1 for ``x > 0``. Args: x: Input array. default_value: Value returned where ``x == 0``. Must be in the range [0, 1]. Defaults to :attr:`~sysplot.SysplotConfig.heaviside_default_value`, which is 1. Returns: Array of the same shape as ``x`` with Heaviside values. .. minigallery:: sysplot.heaviside :add-heading: """ if not isinstance(x, np.ndarray): raise TypeError(f"'x' must be a numpy ndarray, got {type(x).__name__!r}") default_value = ( default_value if default_value is not None else get_config().heaviside_default_value ) if not isinstance(default_value, (int, float)): raise TypeError( f"'default_value' must be a float, got {type(default_value).__name__!r}" ) if not (0.0 <= default_value <= 1.0): raise ValueError(f"'default_value' must be in [0, 1], got {default_value!r}") return np.heaviside(x, default_value)