-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgfunc.py
More file actions
executable file
·42 lines (37 loc) · 1.18 KB
/
Copy pathgfunc.py
File metadata and controls
executable file
·42 lines (37 loc) · 1.18 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
class Gfunc(object):
def __init__(self, gfunc, dgdq=None, dgthetag=None, evaluator='basic', param=None,
gftype='userfunc'):
self.evaluator = evaluator
self.param = param
self.gftype = gftype
self.dgdq = dgdq
self.dgthetag = dgthetag
self.gfunc = gfunc
def setparam(self, param):
self.param = param
def g_value(self, x, param=None):
if self.gftype == 'userfunc':
if param is None:
return self.gfunc(x, self.param)
else:
return self.gfunc(x, param)
else:
return None
def dgdq_vale(self, x, param=None):
if self.gftype == 'userfunc':
if self.dgdq is None:
return None
else:
if param is None:
return self.dgdq(x, self.param)
else:
return self.dgdq(x, param)
else:
return None
if __name__ == '__main__':
def gf1(x, param=None):
return x[0]-x[1]
def dg1dq(x, param=None):
return [1.,-1.]
gfunc = Gfunc(gf1, dgdq=dg1dq)
print gfunc.g_value([3,1]), gfunc.dgdq_vale([3,1])