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 4056, Mon Jun 27 15:26:20 2016 UTC revision 4057, Mon Jun 27 16:11:09 2016 UTC
# Line 104  Line 104 
104     * kernel, fractional position, support     * kernel, fractional position, support
105     *)     *)
106      fun liftKrn (avail, dir, dx, dim, h, vF, s) = let      fun liftKrn (avail, dir, dx, dim, h, vF, s) = let
107              val axis = (case dir of 0 => "X" | 1 => "Y" | 2 => "Z" | _ => "dir" ^ Int.toString dir)
108            val range = 2*s            val range = 2*s
109          (* build position vector for EvalKernel *)          (* build position vector for EvalKernel *)
110            val vX = if (dim = 1)            val vX = if (dim = 1)
111                  then vF   (* position is a real type*)                  then vF   (* position is a real type*)
112                  else AvailRHS.addAssign (                  else AvailRHS.addAssign (
113                    avail, concat["vxindexed_dir", Int.toString dir, "_"],                    avail, concat["v", axis, "_"],
114                    Ty.realTy, IR.OP(Op.TensorIndex(Ty.TensorTy[dim], [dir]), [vF]))                    Ty.realTy, IR.OP(Op.TensorIndex(Ty.TensorTy[dim], [dir]), [vF]))
115            val vPos =  AvailRHS.addAssign (            val vPos =  AvailRHS.addAssign (
116                  avail, concat["kernpos_dir", Int.toString dir, "_"],                  avail, concat["kern", axis, "_"],
117                  Ty.TensorTy[range], IR.OP(Op.BuildPos s, [vX]))                  Ty.TensorTy[range], IR.OP(Op.BuildPos s, [vX]))
118            val nKernEvals = List.length dx + 1            val nKernEvals = List.length dx + 1
119            fun mkEval k = AvailRHS.addAssign (            fun mkEval k = AvailRHS.addAssign (
120                  avail, concat["mkeval_dir", Int.toString dir, "_del", Int.toString k],                  avail, concat["keval", axis, "_del", Int.toString k],
121                  Ty.TensorTy[range], IR.OP(Op.EvalKernel(range, h, k), [vPos]))                  Ty.TensorTy[range], IR.OP(Op.EvalKernel(range, h, k), [vPos]))
122            val vKs = List.tabulate(nKernEvals, fn k => mkEval k)            val vKs = List.tabulate(nKernEvals, fn k => mkEval k)
123            in            in
# Line 126  Line 127 
127                    val consTy = Ty.TensorTy[nKernEvals, range]                    val consTy = Ty.TensorTy[nKernEvals, range]
128                    in                    in
129                      AvailRHS.addAssign (                      AvailRHS.addAssign (
130                        avail, concat["kernelCons_dir_", Int.toString dir, "_"],                        avail, concat["kcons", axis, "_"],
131                        consTy, IR.CONS(vKs, consTy))                        consTy, IR.CONS(vKs, consTy))
132                    end                    end
133              (* end case *)              (* end case *)

Legend:
Removed from v.4056  
changed lines
  Added in v.4057

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