Home My Page Projects Code Snippets Project Openings diderot
Summary Activity Tracker Tasks SCM

SCM Repository

[diderot] Annotation of /branches/ein16/synth/d2/test_eval.py
ViewVC logotype

Annotation of /branches/ein16/synth/d2/test_eval.py

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3865 - (view) (download) (as text)

1 : cchiw 3865 import sys
2 :     import re
3 :     from test_examples import value_probe
4 :     from test_examples import value_negation
5 :     from test_examples import value_gradient
6 :     from test_examples import value_scalarFd2
7 :     from test_examples import value_vec2Fd2
8 :     from test_examples import value_scalarT
9 :     from test_examples import value_vec2T
10 :    
11 :     #fixed variables
12 :     op_probe = value_probe()
13 :     op_negation = value_negation()
14 :     op_gradient = value_gradient()
15 :     ty_scalarF_d2 = value_scalarFd2()
16 :     ty_vec2F_d2 = value_vec2Fd2()
17 :     ty_scalarT = value_scalarT()
18 :     ty_vec2T = value_vec2T()
19 :    
20 :     def printFunc(a,b,c,d,e,f,g,h,i):
21 :     if(b!=0):
22 :     print b, "*x"
23 :     if(c!=0):
24 :     print " +", c,"y"
25 :     if(d!=0):
26 :     print " +", d, "x^2"
27 :     if(g!=0):
28 :     print " + ", g, "y*x^2"
29 :     if(f!=0):
30 :     print " + ", f, "y^2"
31 :     if(h!=0):
32 :     print " + ", h, "x*y^2"
33 :     if(a!=0):
34 :     print " + ", a
35 :     if(e!=0):
36 :     print " + ", e, "x*y"
37 :     if(i!=0):
38 :     print " + ", i, "x^2*y^2"
39 :    
40 :     #evaluate field defined by coefficients at position
41 :     def eval(x,y,a,b,c,d,e,f,g,h,i):
42 :     #evaluate field defined by coefficients at position
43 :     t0 = b*x + c*y
44 :     t1 = d*x*x + g*y*x*x
45 :     t2 = f*y*y + h*x*y*y
46 :     t3 = a + e*x*y + i*(y*y)*(x*x)
47 :     t4= t0+t1+t2+t3
48 :     return t4
49 :    
50 :     def negation(x,y,a,b,c,d,e,f,g,h,i):
51 :     return (-1*eval(x,y,a,b,c,d,e,f,g,h,i))
52 :    
53 :     #gradient of field defined by coefficients at position
54 :     def grad(x,y,a,b,c,d,e,f,g,h,i):
55 :     x0 = b
56 :     x1 = d*2*x + g*y*2*x
57 :     x2 = h*y*y
58 :     x3 = e*y + i*(y*y)*(2*x)
59 :     x4= x0+x1+x2+x3 #xaxis
60 :     y0 = c
61 :     y1 = g*x*x
62 :     y2 = f*2*y + h*x*2*y
63 :     y3 = e*x + i*(y*2)*(x*x)
64 :     y4= y0+y1+y2+y3 #yaxis
65 :     return [x4,y4]
66 :    
67 :     def iter(k, pos, base, xsq, ysq, diag):
68 :     corr = []
69 :     b = base[0]
70 :     c = base[1]
71 :     d = xsq[0]
72 :     g = xsq[1]
73 :     f = ysq[0]
74 :     h = ysq[1]
75 :     a = diag[0]
76 :     e = diag[1]
77 :     i = diag[2]
78 :     for p in pos:
79 :     x=p[0]
80 :     y=p[1]
81 :     val = k(x,y,a,b,c,d,e,f,g,h,i)
82 :     corr.append(val)
83 :     return corr
84 :    
85 :    
86 :     def unary(ex, pos,base,xsq,ysq,diag):
87 :     if(ex==op_probe): #probing
88 :     return iter(eval,pos,base,xsq,ysq,diag)
89 :     elif(ex==op_negation): #negation
90 :     return iter(negation,pos,base,xsq,ysq,diag)
91 :     elif(ex==op_gradient): #gradient
92 :     return iter(grad,pos,base,xsq,ysq,diag)
93 :     else:
94 :     raise ("no operator value for "+str(ex))
95 :    
96 :    
97 :    

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0