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

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

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

revision 3194, Wed May 13 02:57:42 2015 UTC revision 3195, Wed May 20 21:02:12 2015 UTC
# Line 128  Line 128 
128          val ix'=DstTy.indexTy ixx          val ix'=DstTy.indexTy ixx
129          val argTy= getTensorTy(params,id)          val argTy= getTensorTy(params,id)
130          val vecTy=DstTy.TensorTy [vecIX]          val vecTy=DstTy.TensorTy [vecIX]
131          val opp=DstOp.ProjectTensor(id,vecIX,ix',argTy)          val opp=DstOp.ProjectLast(id,vecIX,ix',argTy)
132          val name=String.concat["Proj_",iToss ixx,"_"]          val name=String.concat["ProjLast_",iToss ixx,"_"]
133          in          in
134              assgn(opp,[nU],name,vecTy)              assgn(opp,[nU],name,vecTy)
135          end          end
136    
137    
138        fun projFirst(mapp,(lhs,params,args,vecIX,id,ix))= let
139            val nU=List.nth(args,id)
140            val argTy= getTensorTy(params,id)
141            val vecTy=DstTy.TensorTy [vecIX]
142            val ixx=(List.map (fn (e1)=> mapIndex(e1,mapp)) ix)
143            fun f cnt = let
144                val ix'=DstTy.indexTy ([cnt]@ixx)
145                val opp=DstOp.IndexTensor(id,ix',argTy)
146                val name=String.concat["IndexTensor_",iToss ixx,"_"]
147                in
148                    assgn(opp,[nU],name,realTy)
149                end
150            val ops=List.tabulate( vecIX, fn e=> f e)
151            fun iter ([],vCs,Cs)=(vCs,Cs)
152              | iter((vB,B)::es,vCs,Cs)= iter(es,vCs@[vB],Cs@B)
153    
154             val (vCs,Cs)=iter(ops,[],[])
155             val (vD,D)=assgnCons("projFirstCons", [vecIX], vCs)
156            in
157                (vD, Cs@D)
158            end
159    
160    
161    
162        fun projFirst2(mapp,(lhs,params,args,vecIX,id,ix))= let
163            val nU=List.nth(args,id)
164            val argTy= getTensorTy(params,id)
165            val vecTy=DstTy.TensorTy [vecIX]
166            val ixx=(List.map (fn (e1)=> mapIndex(e1,mapp)) ix)
167            val ix'=DstTy.indexTy ixx
168            val opp=DstOp.ProjectFirst(id,vecIX,ix',argTy)
169            val name=String.concat["ProjFirst_",iToss ixx,"_"]
170            in assgn(opp,[nU],name,vecTy)
171            end
172    
173    
174    
175      fun mkSqrt(nU,code)= let      fun mkSqrt(nU,code)= let
176          val opp=DstOp.Sqrt          val opp=DstOp.Sqrt
177          val name=String.concat["_Sqrt_"]          val name=String.concat["_Sqrt_"]

Legend:
Removed from v.3194  
changed lines
  Added in v.3195

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