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

SCM Repository

[diderot] Diff of /branches/charisee/src/compiler/basis/basis-vars.sml
ViewVC logotype

Diff of /branches/charisee/src/compiler/basis/basis-vars.sml

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

trunk/src/basis/basis-vars.sml revision 103, Tue Jun 1 16:04:04 2010 UTC trunk/src/compiler/basis/basis-vars.sml revision 247, Fri Aug 6 20:20:42 2010 UTC
# Line 141  Line 141 
141                  [field(k, d, dd), tensor[d]] --> Ty.T_Tensor dd                  [field(k, d, dd), tensor[d]] --> Ty.T_Tensor dd
142                end))                end))
143    
144    (* NOTE: this should be overloaded to allow both v*h and h*v orders *)
145        val op_convolve = polyVar (N.op_convolve, all([DK, NK, SK],
146                fn [Ty.DIFF k, Ty.DIM d, Ty.SHAPE dd] => let
147                    val k = Ty.DiffVar(k, 0)
148                    val d = Ty.DimVar d
149                    val dd = Ty.ShapeVar dd
150                    in
151                      [Ty.T_Image{dim=d, shape=dd}, Ty.T_Kernel k]
152                        --> field(k, d, dd)
153                    end))
154    
155      val op_D = polyVar (N.op_D, all([DK, NK, SK],      val op_D = polyVar (N.op_D, all([DK, NK, SK],
156            fn [Ty.DIFF k, Ty.DIM d, Ty.SHAPE dd] => let            fn [Ty.DIFF k, Ty.DIM d, Ty.SHAPE dd] => let
157                val k0 = Ty.DiffVar(k, 0)                val k0 = Ty.DiffVar(k, 0)
# Line 167  Line 178 
178                end))                end))
179    
180    (* functions *)    (* functions *)
181      val fn_CL = polyVar (N.fn_CL, ty([tensor[N3, N3]] --> Ty.realTy))      val fn_CL = monoVar (N.fn_CL, [tensor[N3, N3]] --> Ty.realTy)
182    
183    (* the following is depreciated in favor of the infix operator *)
184      val fn_convolve = polyVar (N.fn_convolve, all([DK, NK, SK],      val fn_convolve = polyVar (N.fn_convolve, all([DK, NK, SK],
185              fn [Ty.DIFF k, Ty.DIM d, Ty.SHAPE dd] => let              fn [Ty.DIFF k, Ty.DIM d, Ty.SHAPE dd] => let
186                  val k = Ty.DiffVar(k, 0)                  val k = Ty.DiffVar(k, 0)
# Line 179  Line 191 
191                      --> field(k, d, dd)                      --> field(k, d, dd)
192                  end))                  end))
193    
194      val fn_cos = polyVar (N.fn_cos, ty([Ty.realTy] --> Ty.realTy))      val fn_cos = monoVar (N.fn_cos, [Ty.realTy] --> Ty.realTy)
195    
196      val fn_dot = polyVar (N.fn_dot, allNK(fn tv => let      val fn_dot = polyVar (N.fn_dot, allNK(fn tv => let
197            val t = tensor[Ty.DimVar tv]            val t = tensor[Ty.DimVar tv]
# Line 205  Line 217 
217                    [Ty.T_String] --> Ty.T_Image{dim=d, shape=dd}                    [Ty.T_String] --> Ty.T_Image{dim=d, shape=dd}
218                  end))                  end))
219    
220        val fn_max = monoVar (N.fn_max, [Ty.realTy, Ty.realTy] --> Ty.realTy)
221        val fn_min = monoVar (N.fn_min, [Ty.realTy, Ty.realTy] --> Ty.realTy)
222    
223      val fn_modulate = polyVar (N.fn_modulate, all([NK],      val fn_modulate = polyVar (N.fn_modulate, all([NK],
224              fn [Ty.DIM d] => let              fn [Ty.DIM d] => let
225                  val t = Ty.T_Tensor(Ty.Shape[Ty.DimVar d])                  val t = Ty.T_Tensor(Ty.Shape[Ty.DimVar d])
# Line 212  Line 227 
227                    [t, t] --> t                    [t, t] --> t
228                  end))                  end))
229    
230      val fn_pow = polyVar (N.fn_pow, ty([Ty.realTy, Ty.realTy] --> Ty.realTy))      val fn_pow = monoVar (N.fn_pow, [Ty.realTy, Ty.realTy] --> Ty.realTy)
231    
232      val fn_principleEvec = polyVar (N.fn_principleEvec, all([NK],      val fn_principleEvec = polyVar (N.fn_principleEvec, all([NK],
233              fn [Ty.DIM d] => let              fn [Ty.DIM d] => let
# Line 221  Line 236 
236                    [tensor[d,d]] --> tensor[d]                    [tensor[d,d]] --> tensor[d]
237                  end))                  end))
238    
239      val fn_sin = polyVar (N.fn_sin, ty([Ty.realTy] --> Ty.realTy))      val fn_sin = monoVar (N.fn_sin, [Ty.realTy] --> Ty.realTy)
240    
241    (* kernels *)    (* kernels *)
242    (* FIXME: we should really get the continuity info from the kernels themselves *)
243      val kn_bspln3 = monoVar (N.kn_bspln3, Ty.T_Kernel(Ty.DiffConst 2))      val kn_bspln3 = monoVar (N.kn_bspln3, Ty.T_Kernel(Ty.DiffConst 2))
244        val kn_bspln5 = monoVar (N.kn_bspln5, Ty.T_Kernel(Ty.DiffConst 4))
245        val kn_ctmr = monoVar (N.kn_ctmr, Ty.T_Kernel(Ty.DiffConst 2))
246      val kn_tent = monoVar (N.kn_tent, Ty.T_Kernel(Ty.DiffConst 0))      val kn_tent = monoVar (N.kn_tent, Ty.T_Kernel(Ty.DiffConst 0))
247    
248    (* internal variables *)    (* internal variables *)
249      val i2r = monoVar (Atom.atom "$i2r", [Ty.T_Int] --> Ty.realTy)      (* integer to real conversion *)      val i2r = monoVar (Atom.atom "$i2r", [Ty.T_Int] --> Ty.realTy)      (* integer to real conversion *)
250        val input = polyVar (Atom.atom "$input", all([TK],
251                  fn [Ty.TYPE tv] => [Ty.T_String] --> Ty.T_Var tv))
252        val optInput = polyVar (Atom.atom "$optional-input", all([TK],
253                  fn [Ty.TYPE tv] => [Ty.T_String, Ty.T_Var tv] --> Ty.T_Var tv))
254      end (* local *)      end (* local *)
255    end    end

Legend:
Removed from v.103  
changed lines
  Added in v.247

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