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

SCM Repository

[diderot] Diff of /branches/vis15/src/compiler/high-to-mid/probe-ein.sml
ViewVC logotype

Diff of /branches/vis15/src/compiler/high-to-mid/probe-ein.sml

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

revision 4114, Thu Jun 30 13:57:16 2016 UTC revision 4115, Thu Jun 30 13:57:56 2016 UTC
# Line 154  Line 154 
154         (* creates lb int *)         (* creates lb int *)
155            val vLb = AvailRHS.addAssign (avail, "lit", Ty.intTy,            val vLb = AvailRHS.addAssign (avail, "lit", Ty.intTy,
156                  IR.LIT(Literal.Int(IntInf.fromInt(1 - s))))                  IR.LIT(Literal.Int(IntInf.fromInt(1 - s))))
157            val seqTy = Ty.SeqTy(Ty.intTy, SOME dim)          (* the index argument to LoadVoxels; this is a single integer for 1D images *)
158            val vNs = if (dim = 1)            val idxs = if (dim = 1)
159                  then [AvailRHS.addAssign (avail, "add", Ty.intTy, IR.OP(Op.IAdd, [vN, vLb]))]                  then AvailRHS.addAssign (avail, "idx", Ty.intTy, IR.OP(Op.IAdd, [vN, vLb]))
160                  else let                  else let
161                 (* created n_0 +lb, n_1+lb *)                    val seqTy = Ty.SeqTy(Ty.intTy, SOME dim)
162                   (* create sequence n_0 +lb .. n_1+lb *)
163                    fun f i = let                    fun f i = let
164                          val vA = AvailRHS.addAssign (                          val vA = AvailRHS.addAssign (
165                                avail, "idx", Ty.intTy, IR.LIT(Literal.Int (IntInf.fromInt i)))                                avail, "idx", Ty.intTy, IR.LIT(Literal.Int (IntInf.fromInt i)))
# Line 166  Line 167 
167                                avail, concat["n", axis i, "_"],                                avail, concat["n", axis i, "_"],
168                                Ty.intTy, IR.OP(Op.Subscript seqTy, [vN, vA]))                                Ty.intTy, IR.OP(Op.Subscript seqTy, [vN, vA]))
169                          in                          in
170                            AvailRHS.addAssign (avail, "add", Ty.intTy, IR.OP(Op.IAdd, [vB, vLb]))                            AvailRHS.addAssign (avail, "idx", Ty.intTy, IR.OP(Op.IAdd, [vB, vLb]))
171                          end                          end
172                      val vNs = List.tabulate (dim, f)
173                    in                    in
174                      List.tabulate (dim, f)                      AvailRHS.addAssign (avail, "seq", seqTy, IR.SEQ(vNs, seqTy))
175                    end                    end
176          (* image positions *)          (* image positions *)
177            val s'= 2*s            val s'= 2*s
178            val supportshape = List.tabulate (dim, fn _ => s')            val supportshape = List.tabulate (dim, fn _ => s')
179            val ldty = Ty.TensorTy(shape @ supportshape)            val ldty = Ty.TensorTy(shape @ supportshape)
           val vSq = AvailRHS.addAssign (avail, "seq", seqTy, IR.SEQ(vNs, seqTy))  
180            val op1 = (case border            val op1 = (case border
181                   of NONE => Op.LoadVoxels (info, s')                   of NONE => Op.LoadVoxels (info, s')
182                    | SOME b => Op.LoadVoxelsWithCtl (info, s', b)                    | SOME b => Op.LoadVoxelsWithCtl (info, s', b)
183                  (* end case *))                  (* end case *))
184            in            in
185              AvailRHS.addAssign (avail, "ldvox", ldty, IR.OP(op1, [vI, vSq]))              AvailRHS.addAssign (avail, "ldvox", ldty, IR.OP(op1, [vI, idxs]))
186            end            end
187    
188    (* fieldReconstruction expands the body for the probed field *)    (* fieldReconstruction expands the body for the probed field *)

Legend:
Removed from v.4114  
changed lines
  Added in v.4115

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