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/normalize-ein.sml
ViewVC logotype

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

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

revision 2613, Wed May 7 04:35:38 2014 UTC revision 2615, Wed May 14 00:22:49 2014 UTC
# Line 226  Line 226 
226              | E.Prod(E.Epsilon eps1::ps)=> (case (G.epsToDels(E.Epsilon eps1::ps))              | E.Prod(E.Epsilon eps1::ps)=> (case (G.epsToDels(E.Epsilon eps1::ps))
227                  of (1,e,[],_,_)      =>(changed:=true;e)(* Changed to Deltas *)                  of (1,e,[],_,_)      =>(changed:=true;e)(* Changed to Deltas *)
228                  | (1,e,sx,_,_)      =>(changed:=true;E.Sum(sx,e))(* Changed to Deltas *)                  | (1,e,sx,_,_)      =>(changed:=true;E.Sum(sx,e))(* Changed to Deltas *)
229                  | (0,_,_,_,[])   =>  body                  | (_,_,_,_,[])   =>  body
230                  | (0,_,_,epsAll,rest) => let                  | (_,_,_,epsAll,rest) => let
231                          val p'=rewriteBody(E.Prod rest)                          val p'=rewriteBody(E.Prod rest)
232                          val(_,b)= F.mkProd(epsAll@[p'])                          val(_,b)= F.mkProd(epsAll@[p'])
233                          in b end                          in b end
# Line 236  Line 236 
236              | E.Prod(E.Sum(c1,E.Prod(E.Epsilon e1::es1))::E.Sum(c2,E.Prod(E.Epsilon e2::es2))::es) =>              | E.Prod(E.Sum(c1,E.Prod(E.Epsilon e1::es1))::E.Sum(c2,E.Prod(E.Epsilon e2::es2))::es) =>
237                  (case G.epsToDels([E.Epsilon e1, E.Epsilon e2]@es1@es2@es)                  (case G.epsToDels([E.Epsilon e1, E.Epsilon e2]@es1@es2@es)
238                  of (1,e,sx,_,_)=> (changed:=true; E.Sum(c1@c2@sx,e))                  of (1,e,sx,_,_)=> (changed:=true; E.Sum(c1@c2@sx,e))
239                  | (0,_,_,_,_)=>let                  | (_,_,_,_,_)=>let
240                      val eA=rewriteBody(E.Sum(c1,E.Prod(E.Epsilon e1::es1)))                      val eA=rewriteBody(E.Sum(c1,E.Prod(E.Epsilon e1::es1)))
241                      val eB=rewriteBody(E.Prod(E.Sum(c2,E.Prod(E.Epsilon e2::es2))::es))                      val eB=rewriteBody(E.Prod(E.Sum(c2,E.Prod(E.Epsilon e2::es2))::es))
242                      val (_,e)=F.mkProd([eA,eB])                      val (_,e)=F.mkProd([eA,eB])

Legend:
Removed from v.2613  
changed lines
  Added in v.2615

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