* Function ztol: for zeroing out array elements below certain tolerance.

master
wirawan 14 years ago
parent adbe499db8
commit 75d4c2240c
  1. 25
      math/__init__.py

@ -1,7 +1,30 @@
# $Id: __init__.py,v 1.1 2010-01-20 03:11:01 wirawan Exp $
# $Id: __init__.py,v 1.2 2010-05-28 18:43:59 wirawan Exp $
#
# wpylib.math main module
# Created: 20091204
# Wirawan Purwanto
#
pass
import numpy
ZERO_TOL = 5.0e-16
def ztol(val, tol=None, copy=True):
"""Rounds down values to zero if they are below tolerance."""
if tol == None: tol = ZERO_TOL
if "__iter__" not in dir(val):
if numpy.abs(val) < tol:
return 0
else:
return val
elif isinstance(val, numpy.ndarray):
if copy:
rslt = val.copy()
else:
rslt = val
numpy.putmask(rslt, numpy.abs(rslt) < tol, [0])
return rslt
else:
raise ValueError, "Unsupported datatype: %s" % str(type(val))

Loading…
Cancel
Save