diff options
author | Travis Oliphant <oliphant@enthought.com> | 2005-09-19 20:49:50 +0000 |
---|---|---|
committer | Travis Oliphant <oliphant@enthought.com> | 2005-09-19 20:49:50 +0000 |
commit | dc87df7f9c06d35ab172d9961f7c81a0148a212d (patch) | |
tree | 53a42f2d291d99ffaaa10da471ebf27862395a07 /scipy/base/numeric.py | |
parent | 6c6675d4573bbe0ee2635de009837b8a3776efa7 (diff) | |
download | numpy-dc87df7f9c06d35ab172d9961f7c81a0148a212d.tar.gz |
Adding core scipy functions
Diffstat (limited to 'scipy/base/numeric.py')
-rw-r--r-- | scipy/base/numeric.py | 64 |
1 files changed, 45 insertions, 19 deletions
diff --git a/scipy/base/numeric.py b/scipy/base/numeric.py index e6e8b9f2f..a559d2331 100644 --- a/scipy/base/numeric.py +++ b/scipy/base/numeric.py @@ -240,23 +240,6 @@ def allclose (a, b, rtol=1.e-5, atol=1.e-8): return alltrue(ravel(d)) -# Now a method.... -##def setflags(arr, write=None, swap=None, uic=None, align=None): -## if not isinstance(arr, ndarray): -## raise ValueError, "first argument must be an array" -## sdict = {} -## if write is not None: -## sdict['WRITEABLE'] = not not write -## if swap is not None: -## sdict['NOTSWAPPED'] = not swap -## if uic is not None: -## if (uic): -## raise ValueError, "Can only set UPDATEIFCOPY flag to False" -## sdict['UPDATEIFCOPY'] = False -## if align is not None: -## sdict['ALIGNED'] = not not align -## arr.flags = sdict - _errdict = {"ignore":ERR_IGNORE, "warn":ERR_WARN, "raise":ERR_RAISE, @@ -266,12 +249,24 @@ _errdict_rev = {} for key in _errdict.keys(): _errdict_rev[_errdict[key]] = key -def seterr(divide="ignore", over="ignore", under="ignore", invalid="ignore"): +def seterr(divide="ignore", over="ignore", under="ignore", invalid="ignore", where=0): maskvalue = (_errdict[divide] << SHIFT_DIVIDEBYZERO) + \ (_errdict[over] << SHIFT_OVERFLOW ) + \ (_errdict[under] << SHIFT_UNDERFLOW) + \ (_errdict[invalid] << SHIFT_INVALID) frame = sys._getframe().f_back + try: + where = where.lower() + except AttributeError: + pass + if not where or where[0] == 'l': + frame.f_locals[UFUNC_ERRMASK_NAME] = maskvalue + elif where == 1 or where[0] == 'g': + frame.f_globals[UFUNC_ERRMASK_NAME] = maskvalue + elif where == 2 or where[0] == 'b': + frame.f_builtins[UFUNC_ERRMASK_NAME] = maskvalue + return + frame.f_locals[UFUNC_ERRMASK_NAME] = maskvalue return @@ -294,4 +289,35 @@ def geterr(): res['invalid'] = _errdict_rev[val] return res - +def setbufsize(size, where=0): + frame = sys._getframe().f_back + try: + wh = where.lower() + except AttributError: + pass + if not where or where[0] == 'l': + frame.f_locals[UFUNC_BUFSIZE_NAME] = size + elif where == 1 or where[0] == 'g': + frame.f_globals[UFUNC_BUFSIZE_NAME] = size + elif where == 2 or where[0] == 'b': + frame.f_builtins[UFUNC_BUFSIZE_NAME] = size + return + +def getbufsize(size): + frame = sys._getframe().f_back + try: + retval = frame.f_locals[UFUNC_BUFSIZE_NAME] + except KeyError: + retval = frame.f_globals[UFUNC_BUFSIZE_NAME] + except KeyError: + retval = frame.f_builtins[UFUNC_BUFSIZE_NAME] + except KeyError: + retvalue = UFUNC_BUFSIZE_DEFAULT + + return retval + + +# Set the UFUNC_BUFSIZE_NAME to something +# Set the UFUNC_ERRMASK_NAME to something +seterr(where='builtin') +setbufsize(UFUNC_BUFSIZE_DEFAULT,where='builtin') |