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

SCM Repository

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

Diff of /branches/charisee_dev/src/compiler/high-il/normalize-ein.sml

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

revision 2870, Wed Feb 25 21:47:43 2015 UTC revision 2903, Sat Feb 28 04:09:29 2015 UTC
# Line 248  Line 248 
248          | E.Add es          => let          | E.Add es          => let
249              val (change,body')= mkAdd(List.map rewriteBody es)              val (change,body')= mkAdd(List.map rewriteBody es)
250              in if (change=1) then ( changed:=true;body') else body' end              in if (change=1) then ( changed:=true;body') else body' end
251          | E.Sub(a, E.Field f)=> (changed:=true;E.Add[a, E.Neg(E.Field(f))])          (*| E.Sub(a, E.Field f)=> (changed:=true;E.Add[a, E.Neg(E.Field(f))])
252          | E.Sub(E.Sub(a,b),E.Sub(c,d))  => rewriteBody(E.Sub(E.Add[a,d],E.Add[b,c]))          | E.Sub(E.Sub(a,b),E.Sub(c,d))  => rewriteBody(E.Sub(E.Add[a,d],E.Add[b,c]))
253          | E.Sub(E.Sub(a,b),e2)          => rewriteBody (E.Sub(a,E.Add[b,e2]))          | E.Sub(E.Sub(a,b),e2)          => rewriteBody (E.Sub(a,E.Add[b,e2]))
254          | E.Sub(e1,E.Sub(c,d))          => rewriteBody(E.Add([E.Sub(e1,c),d]))          | E.Sub(e1,E.Sub(c,d))          => rewriteBody(E.Add([E.Sub(e1,c),d]))*)
255          | E.Sub (a,b)                   => E.Sub(rewriteBody a, rewriteBody b)          | E.Sub (a,b)                   => E.Sub(rewriteBody a, rewriteBody b)
256          | E.Div(e1 as E.Tensor(_,[_]),e2 as E.Tensor(_,[]))=>          | E.Div(e1 as E.Tensor(_,[_]),e2 as E.Tensor(_,[]))=>
257                  rewriteBody (E.Prod[E.Div(E.Const 1, e2),e1])                  rewriteBody (E.Prod[E.Div(E.Const 1, e2),e1])
# Line 289  Line 289 
289          | E.Prod [e1] => rewriteBody e1          | E.Prod [e1] => rewriteBody e1
290          | E.Prod((E.Add(e2))::e3)=>          | E.Prod((E.Add(e2))::e3)=>
291             (changed := true; E.Add(List.map (fn e=> E.Prod([e]@e3)) e2))             (changed := true; E.Add(List.map (fn e=> E.Prod([e]@e3)) e2))
292    (*
293          | E.Prod((E.Sub(e2,e3))::e4)=>          | E.Prod((E.Sub(e2,e3))::e4)=>
294              (changed :=true; E.Sub(E.Prod([e2]@e4), E.Prod([e3]@e4 )))              (changed :=true; E.Sub(E.Prod([e2]@e4), E.Prod([e3]@e4 )))*)
295          | E.Prod((E.Div(e2,e3))::e4)=> (changed :=true; E.Div(E.Prod([e2]@e4), e3))          | E.Prod((E.Div(e2,e3))::e4)=> (changed :=true; E.Div(E.Prod([e2]@e4), e3))
296          | E.Prod(e1::E.Add(e2)::e3)=>          | E.Prod(e1::E.Add(e2)::e3)=>
297              (changed := true; E.Add(List.map (fn e=> E.Prod([e1,e]@e3)) e2))              (changed := true; E.Add(List.map (fn e=> E.Prod([e1,e]@e3)) e2))
298          | E.Prod(e1::E.Sub(e2,e3)::e4)=>          | E.Prod(e1::E.Sub(e2,e3)::e4)=>
299              (changed :=true; E.Sub(E.Prod([e1,e2]@e4), E.Prod([e1,e3]@e4 )))              (changed :=true; E.Sub(E.Prod([e1,e2]@e4), E.Prod([e1,e3]@e4 )))
300    
301          | E.Prod((e1 as E.Sqrt(s1))::(e2 as E.Sqrt(s2))::es)=>          | E.Prod((e1 as E.Sqrt(s1))::(e2 as E.Sqrt(s2))::es)=>s1 (*
302              if(Eq.isEqual2(s1,s2,args,args)=0) then s1              if(Eq.isEqual3(s1,s2,args)=0) then (print"prod sqrt";s1)
303              else let              else let
304    val _ =print"prodsqrt:tried equal and did not find it"
305                  val (_,b)=mkProd([rewriteBody e1, rewriteBody e2]@es)                  val (_,b)=mkProd([rewriteBody e1, rewriteBody e2]@es)
306                  in b end                  in b end*)
307          (*************Product EPS **************)          (*************Product EPS **************)
308    
309          | E.Prod(E.Epsilon(i,j,k)::E.Apply(E.Partial d,e)::es)=>let          | E.Prod(E.Epsilon(i,j,k)::E.Apply(E.Partial d,e)::es)=>let

Legend:
Removed from v.2870  
changed lines
  Added in v.2903

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