parent
adbe499db8
commit
75d4c2240c
1 changed files with 24 additions and 1 deletions
@ -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 |
# wpylib.math main module |
||||||
# Created: 20091204 |
# Created: 20091204 |
||||||
# Wirawan Purwanto |
# Wirawan Purwanto |
||||||
# |
# |
||||||
pass |
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…
Reference in new issue