59 |
| Op.Kernel _ => (Ty.KernelTy, []) |
| Op.Kernel _ => (Ty.KernelTy, []) |
60 |
| Op.LoadImage _ => (Ty.ImageTy, []) |
| Op.LoadImage _ => (Ty.ImageTy, []) |
61 |
| Op.Convolve => (Ty.FieldTy, [Ty.ImageTy, Ty.KernelTy]) |
| Op.Convolve => (Ty.FieldTy, [Ty.ImageTy, Ty.KernelTy]) |
62 |
(* FIXME: need dimension of vector *) |
| Op.Inside domTy => (Ty.BoolTy, [domTy, Ty.FieldTy]) |
|
| Op.Inside => (Ty.BoolTy, ??) |
|
63 |
| Op.Field _ => (Ty.FieldTy, []) |
| Op.Field _ => (Ty.FieldTy, []) |
64 |
| Op.AddField => (Ty.FieldTy, [Ty.FieldTy, Ty.FieldTy]) |
| Op.AddField => (Ty.FieldTy, [Ty.FieldTy, Ty.FieldTy]) |
65 |
| Op.ScaleField => (Ty.FieldTy, [Ty.realTy, Ty.FieldTy]) |
| Op.ScaleField => (Ty.FieldTy, [Ty.realTy, Ty.FieldTy]) |
66 |
| Op.NegField => (Ty.FieldTy, [Ty.FieldTy]) |
| Op.NegField => (Ty.FieldTy, [Ty.FieldTy]) |
67 |
| Op.DiffField => (Ty.FieldTy, [Ty.FieldTy]) |
| Op.DiffField => (Ty.FieldTy, [Ty.FieldTy]) |
68 |
(* FIXME: need dimension of position vector and shape of range *) |
| Op.Probe(rngTy, domTy) => (rngTy, [Ty.FieldTy, domTy]) |
69 |
| Op.Probe => ?? |
| Op.Input(ty, _) => (ty, []) |
70 |
| Op.Input of string |
| Op.InputWithDefault(ty, _) => (ty, [ty]) |
|
| Op.InputWithDefault of string |
|
71 |
(* end case *)) |
(* end case *)) |
72 |
|
|
73 |
end |
end |