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 2521, Thu Jan 9 02:17:07 2014 UTC revision 2525, Tue Jan 21 19:14:22 2014 UTC
# Line 275  Line 275 
275  fun handleSumRange (mu,lb,ub)= print(String.concat[(handleIndex mu),"[",Int.toString(lb),"-",Int.toString(ub),"]"])  fun handleSumRange (mu,lb,ub)= print(String.concat[(handleIndex mu),"[",Int.toString(lb),"-",Int.toString(ub),"]"])
276  fun printSx e=(print "\n $";List.map handleSumRange e; print "$")  fun printSx e=(print "\n $";List.map handleSumRange e; print "$")
277    
278    fun K gg=String.concatWith "," (List.map (fn (E.V e1,_,_)=> (Int.toString(e1))) gg)
279    fun Kt gg=List.map (fn e1=> print(String.concat["[", (K e1),"]"])) gg
280    
281  (*Apply normalize to each term in product list  (*Apply normalize to each term in product list
282  or Apply normalize to tail of each list*)  or Apply normalize to tail of each list*)
283  fun normalize (Ein.EIN{params, index, body}) = let  fun normalize (Ein.EIN{params, index, body}) = let
284         val f= print"IN NORMALIZE"
285        val changed = ref false        val changed = ref false
286        val sumIndex=ref []        val sumIndex=ref []
287    
# Line 376  Line 379 
379                   end                   end
380              | E.Prod(E.Sum(c1,E.Prod(E.Epsilon e1::es1))::E.Sum(c2,E.Prod(E.Epsilon e2::es2))::es)=>let              | E.Prod(E.Sum(c1,E.Prod(E.Epsilon e1::es1))::E.Sum(c2,E.Prod(E.Epsilon e2::es2))::es)=>let
381                  val ref x=sumIndex                  val ref x=sumIndex
382                    val y=print "in here, intial sum \n "
383    
384                    val m= Kt x
385    
386                  val c'= [c1@c2]@x                  val c'= [c1@c2]@x
387                  val (i,s',e,rest)=epsToDels(c', E.Prod([E.Epsilon e1, E.Epsilon e2]@es1@es2@es))                  val (i,s',e,rest)=epsToDels(c', E.Prod([E.Epsilon e1, E.Epsilon e2]@es1@es2@es))
388                    val mmmm=print "\n changed to \n "
389                    val gsg=Kt s'
390    
391                    val ui=print "\n POst getting index"
392                  in (case (i, e,rest)                  in (case (i, e,rest)
393                      of (1,[e1],_)=> (changed:=true;sumIndex:=s';e1)                      of (1,[e1],_)=> (changed:=true;sumIndex:=s';let
394                            val ss=List.nth(s',((length s')-2))
395                            in
396                                E.Sum(ss,e1) end )
397                      | _=>let                      | _=>let
398                          val eA=rewriteBody(E.Sum(c1,E.Prod(E.Epsilon e1::es1)))                          val eA=rewriteBody(E.Sum(c1,E.Prod(E.Epsilon e1::es1)))
399                          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))
# Line 448  Line 462 
462                | E.Sum(c, E.Prod(E.Value v::es))=>(changed:=true; E.Prod [E.Value v, E.Sum(c, E.Prod es)])                | E.Sum(c, E.Prod(E.Value v::es))=>(changed:=true; E.Prod [E.Value v, E.Sum(c, E.Prod es)])
463                | E.Sum(c, E.Prod(E.Tensor(id,[])::es))=> (changed:=true;E.Prod [E.Tensor(id,[]), E.Sum(c, E.Prod es)])                | E.Sum(c, E.Prod(E.Tensor(id,[])::es))=> (changed:=true;E.Prod [E.Tensor(id,[]), E.Sum(c, E.Prod es)])
464              | E.Sum(c,e)=>let              | E.Sum(c,e)=>let
465                        val ggg=print "IN SUMM"
466                      val ref x=sumIndex                      val ref x=sumIndex
467                      val c'=[c]@x                      val c'=[c]@x
468                        val AA=print "\n Started"
469                        val A= Kt c'
470                      val e'=(sumIndex:=c';rewriteBody e)                      val e'=(sumIndex:=c';rewriteBody e)
471                      val ref s=sumIndex                      val ref s=sumIndex
472                        val CC=print "\n After call we got this"
473                        val C= Kt s
474                      val z=hd(s)                      val z=hd(s)
475                        val BB=print "\n ENDED-HEAD"
476                        val B= Kt [z]
477                        val DD=print "\n ENDED-TL"
478                        val D=Kt (tl(s))
479                  in (sumIndex:=tl(s);E.Sum(z, e')) end                  in (sumIndex:=tl(s);E.Sum(z, e')) end
480    
481              (*******************Probe*****************)              (*******************Probe*****************)
# Line 514  Line 537 
537              end              end
538    
539      val (b,count) = loop(body,0)      val (b,count) = loop(body,0)
540        val g=print "out of normalize"
541      val j=(print "Final Counter:";print(Int.toString(count));print"\n\n\n")      val j=(print "Final Counter:";print(Int.toString(count));print"\n\n\n")
542      in      in
543                  (Ein.EIN{params=params, index=index, body=b},count)                  (Ein.EIN{params=params, index=index, body=b},count)

Legend:
Removed from v.2521  
changed lines
  Added in v.2525

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