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 2576, Wed Apr 2 04:36:30 2014 UTC revision 2584, Tue Apr 15 03:22:58 2014 UTC
# Line 281  Line 281 
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"                  (* val _ = print(String.concat["\n IN NORMALIZE@", P.printbody(body),"@\n"])*)
285        val changed = ref false        val changed = ref false
286        val sumIndex=ref []        val sumIndex=ref []
287    
288        fun rewriteBody body = (case body        fun rewriteBody body =
289                (case body
290               of E.Const _=> body               of E.Const _=> body
291                | E.Tensor _ =>body                | E.Tensor _ =>body
292                | E.Field _=> body                | E.Field _=> body
# Line 379  Line 380 
380                   end                   end
381              | 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
382                  val ref x=sumIndex                  val ref x=sumIndex
383                  val y=print "in here, intial sum \n "  
384    
385                  val m= Kt x                  val m= Kt x
386    
387                  val c'= [c1@c2]@x                  val c'= [c1@c2]@x
388                  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))
                 val mmmm=print "\n changed to \n "  
389                  val gsg=Kt s'                  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';let                      of (1,[e1],_)=> (changed:=true;sumIndex:=s';let
394                          val ss=List.nth(s',((length s')-2))                          val ss=List.nth(s',((length s')-2))
# Line 461  Line 461 
461                | E.Sum(c, E.Prod(E.Const e::es))=>(changed:=true;E.Prod[E.Const e,E.Sum(c, E.Prod es)])                | E.Sum(c, E.Prod(E.Const e::es))=>(changed:=true;E.Prod[E.Const e,E.Sum(c, E.Prod es)])
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    
465                 | E.Sum(c,E.Prod e)=> let
466                        val e' =rewriteBody(E.Prod e)
467                        (*val _=print (String.concat["\n change \n",P.printbody(body ),"\n ==>\n",P.printbody(E.Sum(c,e')),"\n"])*)
468                        val b'= (case e'
469                            of E.Prod p=>let
470                                val (_,b)=mkProd p
471                                in b end
472                            |_=>e'
473                            (* end case*))
474                        val _ =print(P.printbody( b'))
475                        in E.Sum(c,b')
476                        end
477                | E.Sum(c,e)=>let                | E.Sum(c,e)=>let
478                      val ggg=print "IN SUMM"  
479                      val ref x=sumIndex                      val ref x=sumIndex
480                      val c'=[c]@x                      val c'=[c]@x
481                      val AA=print "\n Started"  
482                      val A= Kt c'                      val A= Kt c'
483                      val e'=(sumIndex:=c';rewriteBody e)                      val e'=(sumIndex:=c';rewriteBody e)
484                      val ref s=sumIndex                      val ref s=sumIndex
485                      val CC=print "\n After call we got this"  
486                      val C= Kt s                      val C= Kt s
487                      val z=hd(s)                      val z=hd(s)
488                      val BB=print "\n ENDED-HEAD"  
489                      val B= Kt [z]                      val B= Kt [z]
                     val DD=print "\n ENDED-TL"  
490                      val D=Kt (tl(s))                      val D=Kt (tl(s))
491                  in (sumIndex:=tl(s);E.Sum(z, e')) end                  in (sumIndex:=tl(s);E.Sum(z, e')) end
492    
# Line 541  Line 553 
553              end              end
554    
555      val (b,count) = loop(body,0)      val (b,count) = loop(body,0)
556      val g=print "out of normalize"      val _ = print(String.concat["\n out of normalize \n",P.printbody(b),"\n Final CounterXX:",Int.toString(count),"\n\n"])
     val j=(print "Final CounterXX:";print(Int.toString(count));print"\n\n\n")  
557      in      in
558                  (Ein.EIN{params=params, index=index, body=b},count)                  (Ein.EIN{params=params, index=index, body=b},count)
559      end      end

Legend:
Removed from v.2576  
changed lines
  Added in v.2584

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