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

SCM Repository

[diderot] Diff of /branches/charisee/src/compiler/low-il/check-low-il.sml
ViewVC logotype

Diff of /branches/charisee/src/compiler/low-il/check-low-il.sml

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

revision 2837, Wed Nov 19 23:42:17 2014 UTC revision 2838, Tue Nov 25 03:40:24 2014 UTC
# Line 58  Line 58 
58              | Op.Subscript(ty as Ty.TensorTy dd) => (Ty.realTy, ty :: List.map (fn _ => Ty.intTy) dd)              | Op.Subscript(ty as Ty.TensorTy dd) => (Ty.realTy, ty :: List.map (fn _ => Ty.intTy) dd)
59              | Op.Subscript(ty as Ty.SeqTy(elemTy, d)) => (elemTy, [ty, Ty.intTy])              | Op.Subscript(ty as Ty.SeqTy(elemTy, d)) => (elemTy, [ty, Ty.intTy])
60              | Op.Ceiling d => (Ty.vecTy d, [Ty.vecTy d])              | Op.Ceiling d => (Ty.vecTy d, [Ty.vecTy d])
61              | Op.Floor d => (Ty.vecTy d, [Ty.vecTy d])              (*| Op.Floor d => (Ty.vecTy d, [Ty.vecTy d])*)
62                 | Op.Floor 1 => (Ty.TensorTy [], [Ty.TensorTy []])
63                | Op.Floor d => (Ty.TensorTy [d], [Ty.TensorTy [d]])
64    (*| Op.Norm(ty as Ty.TensorTy _) => (Ty.realTy, [ty])*)
65    | Op.Normalize d => (Ty.vecTy d, [Ty.vecTy d])
66              | Op.Round d => (Ty.vecTy d, [Ty.vecTy d])              | Op.Round d => (Ty.vecTy d, [Ty.vecTy d])
67              | Op.Trunc d => (Ty.vecTy d, [Ty.vecTy d])              | Op.Trunc d => (Ty.vecTy d, [Ty.vecTy d])
68              | Op.IntToReal => (Ty.realTy, [Ty.intTy])              | Op.IntToReal => (Ty.realTy, [Ty.intTy])
69              | Op.RealToInt 1 => (Ty.IntTy, [Ty.realTy])              (*| Op.RealToInt 1 => (Ty.IntTy, [Ty.realTy])*)
70                | Op.RealToInt 1 => (Ty.IntTy, [Ty.TensorTy []])
71              | Op.RealToInt d => (Ty.SeqTy(Ty.IntTy, d), [Ty.TensorTy[d]])              | Op.RealToInt d => (Ty.SeqTy(Ty.IntTy, d), [Ty.TensorTy[d]])
72  (* FIXME: the type of RealToInt should be  (* FIXME: the type of RealToInt should be
73              | Op.RealToInt d => (Ty.SeqTy(Ty.IntTy, d), [Ty.SeqTy(Ty.realTy, d)])              | Op.RealToInt d => (Ty.SeqTy(Ty.IntTy, d), [Ty.SeqTy(Ty.realTy, d)])
# Line 71  Line 76 
76              | Op.LoadVoxels(info, n) => (Ty.vecTy n, [Ty.AddrTy info])              | Op.LoadVoxels(info, n) => (Ty.vecTy n, [Ty.AddrTy info])
77              | Op.LoadImage info => (Ty.ImageTy info, [Ty.StringTy])              | Op.LoadImage info => (Ty.ImageTy info, [Ty.StringTy])
78              | Op.Inside(info, _) => (Ty.BoolTy, [Ty.vecTy(ImageInfo.dim info), Ty.ImageTy info])              | Op.Inside(info, _) => (Ty.BoolTy, [Ty.vecTy(ImageInfo.dim info), Ty.ImageTy info])
79             (* | Op.Input(ty, _, _) => (ty, [])              | Op.Input(ty, _, _) => (ty, [])
80              | Op.InputWithDefault(ty, _, _) => (ty, [ty])*)              | Op.InputWithDefault(ty, _, _) => (ty, [ty])
81              | Op.Print tys => (Ty.TupleTy[], tys)              | Op.Print tys => (Ty.TupleTy[], tys)
82              | Op.Transform info => let              | Op.Transform info => let
83                  val dim = ImageInfo.dim info                  val dim = ImageInfo.dim info
84                  in                  in (case dim
85                  (Ty.TensorTy[dim,dim], [Ty.ImageTy info])                      of 1=>(Ty.TensorTy[], [Ty.ImageTy info])
86                        | _ =>(Ty.TensorTy[dim,dim], [Ty.ImageTy info])
87                        (*end case*))
88                  end                  end
89              | Op.Translate info  => let              | Op.Translate info  => let
90                  val dim = ImageInfo.dim info                  val dim = ImageInfo.dim info
91                  in                  in(case dim
92                  (Ty.TensorTy[dim], [Ty.ImageTy info])                  of 1=>(Ty.TensorTy[], [Ty.ImageTy info])
93                | _ => (Ty.TensorTy[dim], [Ty.ImageTy info])
94                (*end case*))
95                  end                  end
96                  (*real or int argument?*)                  (*real or int argument?*)
97    
98              | Op.IndexTensor ( _ ,_, Ty.TensorTy argTy)              | Op.IndexTensor ( _ ,_, Ty.TensorTy argTy)
99                  => (Ty.TensorTy [],[Ty.TensorTy argTy])                  => (Ty.TensorTy [],[Ty.TensorTy argTy])
100              | Op.IndexTensor ( _ ,_,  IntTy)              | Op.IndexTensor ( _ ,_,  IntTy) (*fix me *)
101                  => (Ty.TensorTy [],[ IntTy])                  => (Ty.TensorTy [],[ IntTy])
102              | Op. ProjectTensor ( _ ,resultTy,_, Ty.TensorTy argTy)              | Op. ProjectTensor ( _ ,resultTy,_, Ty.TensorTy argTy)
103                  => (Ty.TensorTy [resultTy],[Ty.TensorTy argTy])                  => (Ty.TensorTy [resultTy],[Ty.TensorTy argTy])

Legend:
Removed from v.2837  
changed lines
  Added in v.2838

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