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

SCM Repository

[diderot] Diff of /branches/charisee/src/compiler/high-to-mid/ProbeEin.sml
ViewVC logotype

Diff of /branches/charisee/src/compiler/high-to-mid/ProbeEin.sml

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

revision 2976, Fri Mar 6 16:37:08 2015 UTC revision 3017, Mon Mar 9 15:52:22 2015 UTC
# Line 157  Line 157 
157      * replace probe with expanded version      * replace probe with expanded version
158      *)      *)
159      fun replaceProbe(b,params,args,index, sx)=let      fun replaceProbe(b,params,args,index, sx)=let
         val _=print(String.concat["\n Replace probe:\n",P.printbody b])  
160          val E.Probe(E.Conv(Vid,alpha,hid,dx),E.Tensor(tid,_))=b          val E.Probe(E.Conv(Vid,alpha,hid,dx),E.Tensor(tid,_))=b
161          val fid=length(params)          val fid=length(params)
162          val nid=fid+1          val nid=fid+1
# Line 230  Line 229 
229          fun rewriteBody b=(case b          fun rewriteBody b=(case b
230              of E.Probe(E.Field _,_)=> raise Fail"Poorly formed EIN operator."              of E.Probe(E.Field _,_)=> raise Fail"Poorly formed EIN operator."
231              | E.Probe(E.Conv(_,_,_,[]),_) =>let              | E.Probe(E.Conv(_,_,_,[]),_) =>let
232    
233                  val (body',params',args',newbies)=replaceProbe(b,params,args, index, [])                  val (body',params',args',newbies)=replaceProbe(b,params,args, index, [])
234                  val einapp=(y,DstIL.EINAPP(Ein.EIN{params=params', index=index, body=body'},args'))                  val einapp=(y,DstIL.EINAPP(Ein.EIN{params=params', index=index, body=body'},args'))
235                  val code=newbies@[einapp]                  val code=newbies@[einapp]
236                    (*val _=print(String.concat["\n Replace probe:\n",P.printbody b,"\n=>",P.printbody body'])*)
237                  in                  in
238                      code                      code
239                  end                  end
240              | E.Probe(E.Conv _,_) =>liftProbe(y,b,params,args, index, [])              | E.Probe(E.Conv _,_) =>liftProbe(y,b,params,args, index, [])
241              | E.Sum(sx,E.Probe e)  =>let              | E.Sum(sx,E.Probe e)  =>let
   
242                  val (body',params',args',newbies)=replaceProbe(E.Probe e,params,args, index, sx)                  val (body',params',args',newbies)=replaceProbe(E.Probe e,params,args, index, sx)
243                  val  body'=E.Sum(sx,body')                  val  body'=E.Sum(sx,body')
244                  val einapp=(y,DstIL.EINAPP(Ein.EIN{params=params', index=index, body=body'},args'))                  val einapp=(y,DstIL.EINAPP(Ein.EIN{params=params', index=index, body=body'},args'))
245                  val code=newbies@[einapp]                  val code=newbies@[einapp]
246                    val _=print(String.concat["\n Replace probe:\n",P.printerE ein])(*,"\n=>",P.printbody body'])*)
247    
248                  in                  in
249                      code                      code
250                  end                  end
251              | E.Sum(sx,E.Prod[eps,E.Probe e]) =>let              | E.Sum(sx,E.Prod[eps,E.Probe e]) =>let
   
252                  val (body',params',args',newbies)=replaceProbe(E.Probe e,params,args, index, sx)                  val (body',params',args',newbies)=replaceProbe(E.Probe e,params,args, index, sx)
253                  val  body'=E.Sum(sx,E.Prod[eps,body'])                  val  body'=E.Sum(sx,E.Prod[eps,body'])
254                  val einapp=(y,DstIL.EINAPP(Ein.EIN{params=params', index=index, body=body'},args'))                  val einapp=(y,DstIL.EINAPP(Ein.EIN{params=params', index=index, body=body'},args'))
255                  val code=newbies@[einapp]                  val code=newbies@[einapp]
256                    val _=print(String.concat["\n Replace probe:\n",P.printerE ein])(*,"\n=>",P.printbody body'])*)
257                  in                  in
258                      code                      code
259                  end                  end

Legend:
Removed from v.2976  
changed lines
  Added in v.3017

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