Utilities

Helper functions and internal utilities for core module operations.

_util

Numerical utilities for stable fuzzy-logic operations.

clamp_probs

clamp_probs(x: Tensor, eps: float = EPS) -> Tensor

Clamp tensor values to the open interval (eps, 1 - eps).

PARAMETER DESCRIPTION
x

Input tensor with values nominally in [0, 1].

TYPE: Tensor

eps

Clamping margin.

TYPE: float DEFAULT: EPS

RETURNS DESCRIPTION
Tensor

Clamped tensor.

Source code in src/quivers/core/_util.py
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
def clamp_probs(x: torch.Tensor, eps: float = EPS) -> torch.Tensor:
    """Clamp tensor values to the open interval (eps, 1 - eps).

    Parameters
    ----------
    x : torch.Tensor
        Input tensor with values nominally in [0, 1].
    eps : float
        Clamping margin.

    Returns
    -------
    torch.Tensor
        Clamped tensor.
    """
    return x.clamp(min=eps, max=1.0 - eps)

safe_log1p_neg

safe_log1p_neg(x: Tensor, eps: float = EPS) -> Tensor

Compute log(1 - x) in a numerically stable way.

Uses torch.log1p(-x) after clamping x away from 1.

PARAMETER DESCRIPTION
x

Input tensor with values in [0, 1].

TYPE: Tensor

eps

Clamping margin.

TYPE: float DEFAULT: EPS

RETURNS DESCRIPTION
Tensor

log(1 - x), with values in (-inf, 0].

Source code in src/quivers/core/_util.py
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
def safe_log1p_neg(x: torch.Tensor, eps: float = EPS) -> torch.Tensor:
    """Compute log(1 - x) in a numerically stable way.

    Uses torch.log1p(-x) after clamping x away from 1.

    Parameters
    ----------
    x : torch.Tensor
        Input tensor with values in [0, 1].
    eps : float
        Clamping margin.

    Returns
    -------
    torch.Tensor
        log(1 - x), with values in (-inf, 0].
    """
    return torch.log1p(-clamp_probs(x, eps))