Commit 89ff8afe authored by Theo Steininger's avatar Theo Steininger

Added limitted_exp to basic_arithmetics.py

parent eb02f1c4
Pipeline #16508 passed with stages
in 15 minutes and 35 seconds
......@@ -23,7 +23,7 @@ from nifty.field import Field
__all__ = ['cos', 'sin', 'cosh', 'sinh', 'tan', 'tanh', 'arccos', 'arcsin',
'arccosh', 'arcsinh', 'arctan', 'arctanh', 'sqrt', 'exp', 'log',
'conjugate', 'clipped_exp']
'conjugate', 'clipped_exp', 'limitted_exp']
def _math_helper(x, function):
......@@ -99,6 +99,19 @@ def clipped_exp(x):
return _math_helper(x, lambda z: np.exp(np.minimum(200, z)))
def limitted_exp(x):
thr = 200
expthr = np.exp(thr)
return _math_helper(x, lambda z: _limitted_exp_helper(z, thr, expthr))
def _limitted_exp_helper(x, thr, expthr):
mask = (x > thr)
result = np.exp(x)
result[mask] = ((1-thr) + x[mask])*expthr
return result
def log(x, base=None):
result = _math_helper(x, np.log)
if base is not None:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment