MCPcopy Index your code
hub / github.com/pydata/xarray / _get_alpha

Function _get_alpha

xarray/computation/rolling_exp.py:15–46  ·  view source on GitHub ↗

Convert com, span, halflife to alpha.

(
    com: float | None = None,
    span: float | None = None,
    halflife: float | None = None,
    alpha: float | None = None,
)

Source from the content-addressed store, hash-verified

13
14
15def _get_alpha(
16 com: float | None = None,
17 span: float | None = None,
18 halflife: float | None = None,
19 alpha: float | None = None,
20) -> float:
21 """
22 Convert com, span, halflife to alpha.
23 """
24 valid_count = count_not_none(com, span, halflife, alpha)
25 if valid_count > 1:
26 raise ValueError("com, span, halflife, and alpha are mutually exclusive")
27
28 # Convert to alpha
29 if com is not None:
30 if com < 0:
31 raise ValueError("commust satisfy: com>= 0")
32 return 1 / (com + 1)
33 elif span is not None:
34 if span < 1:
35 raise ValueError("span must satisfy: span >= 1")
36 return 2 / (span + 1)
37 elif halflife is not None:
38 if halflife <= 0:
39 raise ValueError("halflife must satisfy: halflife > 0")
40 return 1 - np.exp(np.log(0.5) / halflife)
41 elif alpha is not None:
42 if not 0 < alpha <= 1:
43 raise ValueError("alpha must satisfy: 0 < alpha <= 1")
44 return alpha
45 else:
46 raise ValueError("Must pass one of comass, span, halflife, or alpha")
47
48
49class RollingExp(Generic[T_DataWithCoords]):

Callers 1

__init__Method · 0.85

Calls 1

count_not_noneFunction · 0.90

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…