Skip to content

capturegraph.scheduling.energy.inverse #

Inverse Energy Function#

Provides a regularized 1/(d+ε) inverse distance energy function.

inverse(max_energy=10 ** 6) #

Create a regularized inverse energy function.

Uses energy(d) = 1/(d + ε) where ε = 1/max_energy to avoid division by zero.

Parameters:

Name Type Description Default
max_energy float

Maximum energy value (returned when distance ≈ 0). Default is 10^6.

10 ** 6

Returns:

Type Description
Callable[[float], float]

A function distance -> energy for use with select_sessions.

Source code in capturegraph-lib/capturegraph/scheduling/energy/inverse.py
def inverse(max_energy: float = 10**6) -> Callable[[float], float]:
    """Create a regularized inverse energy function.

    Uses `energy(d) = 1/(d + ε)` where ε = 1/max_energy to avoid division by zero.

    Args:
        max_energy: Maximum energy value (returned when distance ≈ 0).
            Default is 10^6.

    Returns:
        A function `distance -> energy` for use with `select_sessions`.
    """
    epsilon = 1.0 / max_energy

    def _inverse(distance: float) -> float:
        return 1.0 / (distance + epsilon)

    return _inverse