Source code for coax.value_transforms._base
[docs]class ValueTransform:
r"""
Abstract base class for value transforms. See
:class:`coax.value_transforms.LogTransform` for a specific implementation.
"""
__slots__ = ('_transform_func', '_inverse_func')
def __init__(self, transform_func, inverse_func):
self._transform_func = transform_func
self._inverse_func = inverse_func
@property
def transform_func(self):
r"""
The transformation function :math:`x\mapsto y=f(x)`.
Parameters
----------
x : ndarray
The values in their original representation.
Returns
-------
y : ndarray
The values in their transformed representation.
"""
return self._transform_func
@property
def inverse_func(self):
r"""
The inverse transformation function :math:`y\mapsto x=f^{-1}(y)`.
Parameters
----------
y : ndarray
The values in their transformed representation.
Returns
-------
x : ndarray
The values in their original representation.
"""
return self._inverse_func
def __iter__(self):
return iter((self.transform_func, self.inverse_func))