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

SCM Repository

[diderot] Diff of /branches/charisee/src/compiler/mid-to-low/gen-ein.sml
ViewVC logotype

Diff of /branches/charisee/src/compiler/mid-to-low/gen-ein.sml

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

revision 2532, Wed Jan 29 22:33:05 2014 UTC revision 2533, Thu Jan 30 04:58:56 2014 UTC
# Line 28  Line 28 
28      | M(a,[0], rest, code,shape)=let      | M(a,[0], rest, code,shape)=let
29          val mapp=a@[0]          val mapp=a@[0]
30          val (vF,code')=nextfn(mapp,args)          val (vF,code')=nextfn(mapp,args)
31          val(vE,E)=genHelper.aaV(DstOp.cons(DstTy.TensorTy shape),[vF]@rest,"Cons",DstTy.TensorTy(shape))          val(vE,E)=genHelper.aaV(DstOp.cons(DstTy.TensorTy shape,0),[vF]@rest,"Cons",DstTy.TensorTy(shape))
32          in (vE, code'@code@E)          in (vE, code'@code@E)
33          end          end
34      | M(a,[c],rest,code,shape)=let      | M(a,[c],rest,code,shape)=let
# Line 38  Line 38 
38      | M (a,b::c,rest,ccode,s::shape)=let      | M (a,b::c,rest,ccode,s::shape)=let
39          fun S(0, rest,code)=let          fun S(0, rest,code)=let
40              val (v',code')=M(a@[0],c,[],[],shape)              val (v',code')=M(a@[0],c,[],[],shape)
41              val(vA,A)=genHelper.aaV(DstOp.cons(DstTy.TensorTy (s::shape)),[v']@rest,"Cons",DstTy.TensorTy(s::shape))              val(vA,A)=genHelper.aaV(DstOp.cons(DstTy.TensorTy (s::shape),0),[v']@rest,"Cons",DstTy.TensorTy(s::shape))
42              in (vA, code'@code@A) end              in (vA, code'@code@A) end
43          | S(i, rest, code)= let          | S(i, rest, code)= let
44              val (v',code')=M(a@[i],c,[],[],shape)              val (v',code')=M(a@[i],c,[],[],shape)
# Line 133  Line 133 
133                      in (vD, A@B@D) end                      in (vD, A@B@D) end
134                  (*end case*))                  (*end case*))
135              end              end
136         | E.Sum(sx,E.Prod(E.Img im::E.Krn(id,del,pos)::es))=>let        | E.Sum(sx,E.Prod(E.Img (Vid,_,_)::E.Krn(id,del,pos)::es))=>let
137              val ref mapp=mappA              val ref mapp=mappA
138              val harg=List.nth(origargs,id)              val harg=List.nth(origargs,id)
139              val h=genHelper.getKernel(harg)              val h=genHelper.getKernel(harg)
140              in genKrn.evalField(mapp,(body,h,args))              val imgarg=List.nth(origargs,Vid)
141                val  v=genHelper.getImage(imgarg)
142                in genKrn.evalField(mapp,(body,v,h,args))
143              end              end
144    
145          | E.Prod e => let          | E.Prod e => let
# Line 394  Line 396 
396              end*)              end*)
397          (*| E.Div(E.Tensor _,E.Tensor _ )=>[]*)          (*| E.Div(E.Tensor _,E.Tensor _ )=>[]*)
398    
399          | E.Sum(ss,E.Prod(E.Img im::E.Krn(id,del,pos)::es))=>let          | E.Sum(ss,E.Prod(E.Img(Vid,_,_)::E.Krn(id,del,pos)::es))=>let
400              val ref x=sx              val ref x=sx
401              val m=print "\n match img"              val m=print "\n match img"
402    
# Line 402  Line 404 
404                  if(length x=0) then let                  if(length x=0) then let
405                      val harg=List.nth(origargs,id)                      val harg=List.nth(origargs,id)
406                      val h=genHelper.getKernel(harg)                      val h=genHelper.getKernel(harg)
407                        val imgarg=List.nth(origargs,Vid)
408                      in prodIter(index,index,genKrn.evalField,(b, h,args)) end                      val  v=genHelper.getImage(imgarg)
409                        in prodIter(index,index,genKrn.evalField,(b,v, h,args)) end
410                  else prodIter(index,index,generalfn,(body,[],origargs, args))                  else prodIter(index,index,generalfn,(body,[],origargs, args))
411              end              end
412          | E.Sum(sx', e)=> (let          | E.Sum(sx', e)=> (let

Legend:
Removed from v.2532  
changed lines
  Added in v.2533

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