spd_learn.functional.NumericalContext#

class spd_learn.functional.NumericalContext(**kwargs)[source]#

Bases: object

Context manager for temporarily modifying numerical configuration.

This context manager allows temporary modification of the global numerical configuration. The original configuration is restored when exiting the context.

Parameters:

**kwargs – Configuration parameters to temporarily override.

Examples

>>> from spd_learn.functional.numerical import (
...     numerical_config, NumericalContext, get_epsilon
... )
>>> import torch
>>> # Default epsilon
>>> print(f"Default: {get_epsilon(torch.float32, 'eigval_clamp'):.2e}")
Default: 1.19e-03
>>> # Temporarily use more conservative threshold
>>> with NumericalContext(eigval_clamp_scale=1e6):
...     print(f"Conservative: {get_epsilon(torch.float32, 'eigval_clamp'):.2e}")
Conservative: 1.19e-01
>>> # Back to default
>>> print(f"Restored: {get_epsilon(torch.float32, 'eigval_clamp'):.2e}")
Restored: 1.19e-03