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

SCM Repository

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

Diff of /branches/charisee/src/compiler/mid-il/check-mid-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 56  Line 56 
56              | Op.Subscript(ty as Ty.SeqTy(elemTy, d)) => (elemTy, [ty, Ty.intTy])              | Op.Subscript(ty as Ty.SeqTy(elemTy, d)) => (elemTy, [ty, Ty.intTy])
57                         | Op.Sqrt=>(Ty.TensorTy([]),[Ty.TensorTy([])])                         | Op.Sqrt=>(Ty.TensorTy([]),[Ty.TensorTy([])])
58              | Op.Ceiling d => (Ty.vecTy d, [Ty.vecTy d])              | Op.Ceiling d => (Ty.vecTy d, [Ty.vecTy d])
59              | Op.Floor d => (Ty.vecTy d, [Ty.vecTy d])             (* | Op.Floor d => (Ty.vecTy d, [Ty.vecTy d])*)
60                | Op.Floor 1 => (Ty.TensorTy [], [Ty.TensorTy []])
61                 | Op.Floor d => (Ty.TensorTy [d], [Ty.TensorTy [d]])
62              | Op.Round d => (Ty.vecTy d, [Ty.vecTy d])              | Op.Round d => (Ty.vecTy d, [Ty.vecTy d])
63              | Op.Trunc d => (Ty.vecTy d, [Ty.vecTy d])              | Op.Trunc d => (Ty.vecTy d, [Ty.vecTy d])
64              | Op.IntToReal => (Ty.realTy, [Ty.intTy])              | Op.IntToReal => (Ty.realTy, [Ty.intTy])
65              | Op.RealToInt 1 => (Ty.IntTy, [Ty.realTy])              (*| Op.RealToInt 1 => (Ty.IntTy, [Ty.vecTy 1])*)
66                | Op.RealToInt 1 => (Ty.IntTy, [Ty.TensorTy []])
67              | Op.RealToInt d => (Ty.SeqTy(Ty.IntTy, d), [Ty.TensorTy[d]])              | Op.RealToInt d => (Ty.SeqTy(Ty.IntTy, d), [Ty.TensorTy[d]])
68  (* FIXME: the type of RealToInt should be  (* FIXME: the type of RealToInt should be
69              | 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 73  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.Transform info => let              | Op.Transform info => let
78                  val dim = ImageInfo.dim info                  val dim = ImageInfo.dim info
79                  in                  in (case dim
80                    (Ty.TensorTy[dim,dim], [Ty.ImageTy info])                      of 1=>(Ty.TensorTy[], [Ty.ImageTy info])
81                        | _ =>(Ty.TensorTy[dim,dim], [Ty.ImageTy info])
82                        (*end case*))
83                  end                  end
84              | Op.Translate info  => let              | Op.Translate info  => let
85                  val dim = ImageInfo.dim info                  val dim = ImageInfo.dim info
86                  in                  in(case dim
87                      (Ty.TensorTy[dim], [Ty.ImageTy info])                      of 1=>(Ty.TensorTy[], [Ty.ImageTy info])
88                        | _ => (Ty.TensorTy[dim], [Ty.ImageTy info])
89                        (*end case*))
90                  end                  end
91    
92    (*| Op.Norm(ty as Ty.TensorTy _) => (Ty.realTy, [ty])*)
93    | Op.Normalize d => (Ty.vecTy d, [Ty.vecTy d])
94    
95              | Op.LoadImage info => (Ty.ImageTy info, [Ty.StringTy])              | Op.LoadImage info => (Ty.ImageTy info, [Ty.StringTy])
96              | 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])

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