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

SCM Repository

[diderot] Annotation of /branches/charisee/src/compiler/einTest/testExpandConv.sml
ViewVC logotype

Annotation of /branches/charisee/src/compiler/einTest/testExpandConv.sml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2496 - (view) (download)

1 : cchiw 2463 (* examples.sml
2 :     *
3 :     * COPYRIGHT (c) 2012 The Diderot Project (http://diderot-language.cs.uchicago.edu)
4 :     * All rights reserved.
5 :     *)
6 :    
7 :     structure tExpandConv = struct
8 :    
9 :     local
10 :     structure G = GenericEin
11 :     structure E = Ein
12 :     structure S = Specialize
13 :     structure P = Printer
14 :     structure ExpandConv=ExpandConv
15 :     in
16 :    
17 :    
18 :    
19 :     (*3-d Scalar Field*)
20 :     val s0 = ("3-d scalar Field ",E.EIN{
21 : cchiw 2496 params = [E.FLD 3,E.TEN,E.TEN],
22 : cchiw 2463 index = [E.IX 3],
23 : cchiw 2496 body= E.Probe(E.Conv(0,[],1,[]),E.Tensor(1,[E.V 0]))
24 : cchiw 2463 })
25 :    
26 :    
27 :     (*3-d Vector Field*)
28 :     val v0 = ("3-d Vector Field ",E.EIN{
29 :     params = [E.FLD 3],
30 :     index = [E.IX 2, E.IX 3],
31 : cchiw 2496 body= E.Probe(E.Conv(0,[E.V 0],1,[]),E.Tensor(1,[E.V 1]))
32 : cchiw 2463 })
33 :    
34 :    
35 :     (*grad 2-d Vector Field*)
36 :     val v1 = ("grad 3-d Vector Field ",E.EIN{
37 :     params = [E.FLD 3],
38 :     index = [E.IX 2,E.IX 3,E.IX 3],
39 : cchiw 2496 body= E.Probe(E.Conv(0,[E.V 0],1,[E.V 1]),E.Tensor(1,[E.V 2]))
40 : cchiw 2463 })
41 :    
42 :     (*grad 2-d Scalar Field*)
43 :     val s1 = ("grad 2-d Scalar Field ",E.EIN{
44 :     params = [E.FLD 2, E.TEN],
45 :     index = [E.IX 2,E.IX 2],
46 : cchiw 2496 body= E.Probe(E.Conv(0,[],1,[E.V 0]),E.Tensor(1,[E.V 1]))
47 : cchiw 2463 })
48 :    
49 :     (*Hessian 3-d Vector Field*)
50 :     val v2 = ("Hessian 3-d Vector Field",E.EIN{
51 :     params = [E.FLD 3],
52 :     index = [E.IX 2,E.IX 3, E.IX 3,E.IX 3],
53 : cchiw 2496 body= E.Probe(E.Conv(0,[E.V 0],1,[E.V 1,E.V 2]),E.Tensor(1,[E.V 3]))
54 : cchiw 2463 })
55 :    
56 :     (*Hessian 3-d Scalar Field*)
57 :     val s2 = ("Hessian 3-d Scalar Field",E.EIN{
58 :     params = [E.FLD 3,E.TEN ],
59 :     index = [E.IX 3, E.IX 3,E.IX 3],
60 : cchiw 2496 body= E.Probe(E.Conv(0,[],1,[E.V 0,E.V 1]), E.Tensor(1,[E.V 2]))
61 : cchiw 2463 })
62 :    
63 :    
64 : cchiw 2485 (*
65 : cchiw 2464 fun test(a,e)=(print a; (P.printerE e); print "=> \t"; (P.printerE(ExpandConv.expand(e)));print"\n")
66 : cchiw 2485 *)
67 : cchiw 2463
68 : cchiw 2496
69 :    
70 : cchiw 2485 val s = E.EIN{
71 :     params = [E.FLD 3, E.TEN,E.FLD 3],
72 :     index = [E.IX 3,E.IX 3],
73 : cchiw 2496 body= E.Sub(E.Probe(E.Conv(0,[E.V 0],1,[]),E.Tensor(1,[E.V 1])),
74 :     E.Probe(E.Conv(2,[E.V 0],1,[]),E.Tensor(1,[E.V 1])))
75 : cchiw 2485 }
76 : cchiw 2463
77 : cchiw 2488
78 :     val s2 = E.EIN{
79 :     params = [E.FLD 2, E.TEN,E.FLD 2,E.FLD 2],
80 :     index = [E.IX 3,E.IX 2],
81 : cchiw 2496 body= E.Sub(E.Probe(E.Conv(3,[E.V 0],1,[]),E.Tensor(1,[E.V 1])),
82 :     E.Sub(E.Probe(E.Conv(0,[E.V 0],1,[]),E.Tensor(1,[E.V 1])),
83 :     E.Probe(E.Conv(2,[E.V 0],1,[]),E.Tensor(1,[E.V 1])))
84 : cchiw 2488 )
85 :     }
86 :    
87 :    
88 :     val s3 = E.EIN{
89 :     params = [E.FLD 2, E.TEN,E.FLD 2,E.FLD 2,E.TEN],
90 :     index = [E.IX 3,E.IX 2],
91 : cchiw 2496 body= E.Sub(E.Probe(E.Conv(3,[E.V 0],1,[]),E.Tensor(4,[E.V 1])),
92 :     E.Sub(E.Probe(E.Conv(0,[E.V 0],1,[]),E.Tensor(1,[E.V 1])),
93 :     E.Probe(E.Conv(2,[E.V 0],1,[]),E.Tensor(1,[E.V 1])) ))
94 : cchiw 2488 }
95 :    
96 :    
97 :     val s4 = E.EIN{
98 :     params = [E.FLD 2, E.TEN,E.FLD 2,E.FLD 2,E.TEN],
99 :     index = [E.IX 3,E.IX 2],
100 : cchiw 2496 body= E.Add[E.Probe(E.Conv(3,[E.V 0],1,[]),E.Tensor(4,[E.V 1])),
101 :     E.Add[E.Probe(E.Conv(0,[E.V 0],1,[]),E.Tensor(1,[E.V 1])),
102 :     E.Probe(E.Conv(2,[E.V 0],1,[]),E.Tensor(1,[E.V 1]))]]
103 : cchiw 2488 }
104 :    
105 :    
106 : cchiw 2496 val s5=E.EIN{
107 :     params = [E.FLD 3],
108 :     index = [E.IX 2,E.IX 3, E.IX 3,E.IX 3],
109 :     body= E.Probe(E.Conv(0,[E.V 0],1,[E.V 1,E.V 2]),E.Tensor(1,[E.V 3]))
110 :     }
111 : cchiw 2485 fun test2(e)=((P.printerE e); print "=> \t"; (P.printerE(ExpandConv.expandEinOp(e,[])));print"\n")
112 : cchiw 2463
113 : cchiw 2494 (*
114 : cchiw 2496 val u1=List.map test2[s2,s3,s4,s5]
115 :    
116 : cchiw 2494 *)
117 : cchiw 2485
118 : cchiw 2463 end; (* local *)
119 :    
120 :     end (* local *)

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