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

SCM Repository

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

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

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

revision 2397, Sat Jul 6 20:50:46 2013 UTC revision 2426, Mon Sep 16 20:16:19 2013 UTC
# Line 245  Line 245 
245                | E.Partial _=>body                | E.Partial _=>body
246                            | E.Add es => let val (b,a)= mkAdd(List.map rewriteBody es)                            | E.Add es => let val (b,a)= mkAdd(List.map rewriteBody es)
247                      in if (b=1) then ( changed:=true;a) else a end                      in if (b=1) then ( changed:=true;a) else a end
248                  | E.Pair es=>  E.Pair(List.map rewriteBody es)
249                  | E.Value _ => body
250                | E.Sub (a,b)=>  E.Sub(rewriteBody a, rewriteBody b)                | E.Sub (a,b)=>  E.Sub(rewriteBody a, rewriteBody b)
251                | E.Div (a, b) => E.Div(rewriteBody a, rewriteBody b)                | E.Div (a, b) => E.Div(rewriteBody a, rewriteBody b)
252                | E.Probe(u,v)=> (  E.Probe(rewriteBody u, v))                | E.Probe(u,v)=> (  E.Probe(rewriteBody u, v))
# Line 309  Line 311 
311                      E.Add(List.map (fn e=> E.Prod([e1, e]@e3)) e2))                      E.Add(List.map (fn e=> E.Prod([e1, e]@e3)) e2))
312                | E.Prod(e1::(E.Sub(e2,e3))::e4)=>                | E.Prod(e1::(E.Sub(e2,e3))::e4)=>
313                      ( 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 )))
314                | E.Prod[E.Partial r1,E. Conv(i, j, k, l)]=>                | E.Prod[E.Partial r1,E. Conv(E.Field(id,[i]), deltas)]=>
315                      (changed:=true; ( let val j1=                      (changed:=true; (
316                                          List.map (fn(x)=> (l,x))  r1 in E.Conv(i, j1@j, k, l) end ))                     let
317                        val j1= List.map (fn(x)=> (i,x))  r1
318                       in E.Conv(E.Field(id,[i]), j1@deltas) end ))
319                | E.Prod((E.Partial r1)::(E.Partial r2)::e) =>                | E.Prod((E.Partial r1)::(E.Partial r2)::e) =>
320                      (changed := true; E.Prod([E.Partial (r1@r2)] @ e)  )                      (changed := true; E.Prod([E.Partial (r1@r2)] @ e)  )
321                | E.Prod[(E.Epsilon(e1,e2,e3)), E.Tensor(_,[i1,i2])]=>                | E.Prod[(E.Epsilon(e1,e2,e3)), E.Tensor(_,[i1,i2])]=>

Legend:
Removed from v.2397  
changed lines
  Added in v.2426

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