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

SCM Repository

[diderot] Diff of /branches/ein16/src/compiler/high-il/derivative-ein.sml
ViewVC logotype

Diff of /branches/ein16/src/compiler/high-il/derivative-ein.sml

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 4235, Tue Jul 19 22:26:44 2016 UTC revision 4236, Wed Jul 20 03:02:00 2016 UTC
# Line 85  Line 85 
85    
86      fun applyop2(op2,e1,e2,dx)=      fun applyop2(op2,e1,e2,dx)=
87          let          let
88                val _ = print(String.concat["\n\n applyop2 ",P.printbody(e1),"/",P.printbody(e2)])
89              val (d0::dn)=dx              val (d0::dn)=dx
90              val p0=E.Partial [d0]              val p0=E.Partial [d0]
91              val inner1=E.Apply(E.Partial [d0],e1)              val inner1=E.Apply(E.Partial [d0],e1)
# Line 97  Line 98 
98          val op2'= (case op2          val op2'= (case op2
99              of E.Sub                        =>  setSub(inner1,inner2)              of E.Sub                        =>  setSub(inner1,inner2)
100              | E.Div                         =>(case (e1,e2)              | E.Div                         =>(case (e1,e2)
101                  of (_,E.B(E.Const e2))      =>  setDiv(inner1,E.B(E.Const e2))  of (_,E.B(E.Const e2))      =>  (print "div-a";setDiv(inner1,E.B(E.Const e2)))
102                    | (_, E.Lift _ )      =>   (print "div-b";setDiv(inner1, e2))
103                  |  (E.B(E.Const 1),_)       =>                  |  (E.B(E.Const 1),_)       =>
104                      (case filterField[e2]                      ( print "div-c";case filterField[e2]
105                          of (_,[])           => zero                          of (_,[])           => zero
106                          | (pre,h)           => let                          | (pre,h)           => let
107                              (* Quotient Rule*)                              (* Quotient Rule*)
# Line 109  Line 111 
111                              in iterDn e2 end                              in iterDn e2 end
112                      (*end case*))                      (*end case*))
113                  | (E.B(E.Const c),_)        =>                  | (E.B(E.Const c),_)        =>
114                      (case filterField[e2]                      ( print "div-d";case filterField[e2]
115                          of (_,[])           =>  zero                          of (_,[])           =>  zero
116                          | (pre,h)           => let                          | (pre,h)           => let
117                              (* Quotient Rule*)                              (* Quotient Rule*)
# Line 120  Line 122 
122                          end                          end
123                      (*end case*))                      (*end case*))
124                  | _                         =>                  | _                         =>
125                      (case filterField[e2]                      ( print "div-e";case filterField[e2]
126                          of (_,[])           => setDiv(inner1,e2) (*Division by a real*)                          of (_,[])           => setDiv(inner1,e2) (*Division by a real*)
127                          | (pre,h)               => let                          | (pre,h)               => let
128                              (* Quotient Rule*)                              (* Quotient Rule*)
# Line 132  Line 134 
134                      (*end case*))                      (*end case*))
135                  (*end case*))                  (*end case*))
136              (*end case*))              (*end case*))
137                val _ = print(String.concat["\n\n ===> ",P.printbody(op2')])
138          in (1,op2')          in (1,op2')
139          end          end
140    

Legend:
Removed from v.4235  
changed lines
  Added in v.4236

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