diff options
| author | J08nY | 2020-03-05 14:40:05 +0100 |
|---|---|---|
| committer | J08nY | 2020-03-05 14:40:05 +0100 |
| commit | 79de2bbc6f099b0bd1d79427aabd6113e87c31d3 (patch) | |
| tree | 8d4cb9f762006eb59fb6e6ca1693f241683cc24f /pyecsca/sca/trace/combine.py | |
| parent | 0c3c4a8d6725c01d8c4ba7b4a4e5f43922ec1e65 (diff) | |
| download | pyecsca-79de2bbc6f099b0bd1d79427aabd6113e87c31d3.tar.gz pyecsca-79de2bbc6f099b0bd1d79427aabd6113e87c31d3.tar.zst pyecsca-79de2bbc6f099b0bd1d79427aabd6113e87c31d3.zip | |
Add proper plotting.
Diffstat (limited to 'pyecsca/sca/trace/combine.py')
| -rw-r--r-- | pyecsca/sca/trace/combine.py | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/pyecsca/sca/trace/combine.py b/pyecsca/sca/trace/combine.py index 2ab552a..0e7f325 100644 --- a/pyecsca/sca/trace/combine.py +++ b/pyecsca/sca/trace/combine.py @@ -1,6 +1,7 @@ +from typing import Callable, Optional + import numpy as np from public import public -from typing import Callable, Optional from .trace import Trace, CombinedTrace @@ -23,7 +24,8 @@ def average(*traces: Trace) -> Optional[CombinedTrace]: @public -def conditional_average(*traces: Trace, condition: Callable[[Trace], bool]) -> Optional[CombinedTrace]: +def conditional_average(*traces: Trace, condition: Callable[[Trace], bool]) -> Optional[ + CombinedTrace]: """ Average `traces` for which the `condition` is True, sample-wise. @@ -47,3 +49,16 @@ def standard_deviation(*traces: Trace) -> Optional[CombinedTrace]: dtype = traces[0].samples.dtype result_samples = np.std(np.array([trace.samples for trace in traces]), axis=0).astype(dtype) return CombinedTrace(result_samples, None, None) + + +@public +def subtract(one: Trace, other: Trace) -> CombinedTrace: + """ + Subtract `other` from `one`, sample-wise. + + :param one: + :param other: + :return: + """ + result_samples = one.samples - other.samples + return CombinedTrace(result_samples, None, None) |
