167 |
end)) |
end)) |
168 |
|
|
169 |
(* functions *) |
(* functions *) |
170 |
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) |
171 |
|
|
172 |
val fn_convolve = polyVar (N.fn_convolve, all([DK, NK, SK], |
val fn_convolve = polyVar (N.fn_convolve, all([DK, NK, SK], |
173 |
fn [Ty.DIFF k, Ty.DIM d, Ty.SHAPE dd] => let |
fn [Ty.DIFF k, Ty.DIM d, Ty.SHAPE dd] => let |
236 |
(* internal variables *) |
(* internal variables *) |
237 |
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 *) |
238 |
val input = polyVar (Atom.atom "$input", all([TK], |
val input = polyVar (Atom.atom "$input", all([TK], |
239 |
|
fn [Ty.TYPE tv] => [Ty.T_String] --> Ty.T_Var tv)) |
240 |
|
val optInput = polyVar (Atom.atom "$optional-input", all([TK], |
241 |
fn [Ty.TYPE tv] => [Ty.T_String, Ty.T_Var tv] --> Ty.T_Var tv)) |
fn [Ty.TYPE tv] => [Ty.T_String, Ty.T_Var tv] --> Ty.T_Var tv)) |
242 |
end (* local *) |
end (* local *) |
243 |
end |
end |