| """ |
| Author(s): Matthew Loper |
| |
| See LICENCE.txt for licensing and contact information. |
| """ |
|
|
| __author__ = 'matt' |
|
|
|
|
| __all__ = [] |
|
|
| from . import ch |
| from .ch import Ch |
| import numpy as np |
|
|
| class LogicFunc(Ch): |
| dterms = 'a' |
| terms = 'args', 'kwargs', 'funcname' |
|
|
| def compute_r(self): |
| arr = self.a |
| fn = getattr(np, self.funcname) |
| return fn(arr, *self.args, **self.kwargs) |
|
|
| def compute_dr_wrt(self, wrt): |
| pass |
|
|
|
|
| unaries = 'all', 'any', 'isfinite', 'isinf', 'isnan', 'isneginf', 'isposinf', 'logical_not' |
| for unary in unaries: |
| exec("def %s(a, *args, **kwargs): return LogicFunc(a=a, args=args, kwargs=kwargs, funcname='%s')" % (unary, unary)) |
| __all__ += unaries |
|
|
|
|
|
|
| if __name__ == '__main__': |
| from . import ch |
| print(all(np.array([1,2,3]))) |
| print(isinf(np.array([0,2,3]))) |
|
|