def get_pow(cls, backend): return ast.BuiltInFunction(funcname='pow', parameters={'base': ast.FunctionDefParameter(symbol='base' , dimension=backend.Unit()), 'exp': ast.FunctionDefParameter(symbol='exp' , dimension=backend.Unit())}, dimension=backend.Unit())
def get_atan2(cls, backend): return ast.BuiltInFunction(funcname='atan2', parameters={'x': ast.FunctionDefParameter(symbol='x' , dimension=backend.Unit()), 'y': ast.FunctionDefParameter(symbol='y' , dimension=backend.Unit())}, dimension=backend.Unit())
def get_powint(cls, backend): return ast.BuiltInFunction(funcname='powint', parameters={'x': ast.FunctionDefParameter(symbol='x' , dimension=None), 'n': ast.FunctionDefParameter(symbol='n' , dimension=backend.Unit()), 'd': ast.FunctionDefParameter(symbol='d' , dimension=backend.Unit())}, dimension=None)
def get_sqrt(cls, backend): return ast.BuiltInFunction(funcname='sqrt', parameters={ 'x': ast.FunctionDefParameter(symbol='x', dimension=None) }, dimension=None)
def VisitFunctionDef(self, o, **kwargs): params = {} for pName,pObj in o.parameters.iteritems(): p = ast.FunctionDefParameter(symbol=pObj.symbol, dimension = pObj.get_dimension() ) #unitMH=pObj._unitMH) params[pName] = p self.func_param_map[pObj] = p fDef = ast.FunctionDef(funcname=o.funcname, parameters=params, rhs=self.visit(o.rhs)) return fDef
def get_cosh(cls, backend): return ast.BuiltInFunction(funcname='cosh', parameters={ 'x': ast.FunctionDefParameter( symbol='x', dimension=backend.Unit()) }, dimension=backend.Unit())
def p_function_def_param(p): """function_def_param : localsymbol | localsymbol COLON LCURLYBRACKET RCURLYBRACKET | localsymbol COLON LCURLYBRACKET unit_expr RCURLYBRACKET""" backend = p.parser.library_manager.backend if len(p) == 2: dimension = None elif len(p) == 5: dimension = backend.Unit() elif len(p) == 6: dimension = p[4] else: assert False, 'len(p):%s' % len(p) p[0] = {p[1]:ast.FunctionDefParameter(symbol=p[1], dimension=dimension) }
def VisitFunctionDefParameter(self, o, **kwargs): new = ast.FunctionDefParameter(symbol=o.symbol) return copy_std( o, new, )
def p_function_def_param(p): """function_def_param : localsymbol | localsymbol COLON unit_expr""" dimension = None if len(p) == 2 else p[3] #assert not dimension p[0] = {p[1]:ast.FunctionDefParameter(symbol=p[1], dimension=dimension) }