81 |
(BV.neg_t, tensorOp Op.Neg), |
(BV.neg_t, tensorOp Op.Neg), |
82 |
(BV.neg_f, fn (y, _, xs) => assign(y, Op.NegField, xs)), |
(BV.neg_f, fn (y, _, xs) => assign(y, Op.NegField, xs)), |
83 |
(BV.op_at, fn (y, _, xs) => assign(y, Op.Probe, xs)), |
(BV.op_at, fn (y, _, xs) => assign(y, Op.Probe, xs)), |
84 |
|
(BV.op_convolve, fn (y, _, xs) => assign(y, Op.Convolve, xs)), |
85 |
(BV.op_D, fn (y, _, xs) => assign(y, Op.DiffField, xs)), |
(BV.op_D, fn (y, _, xs) => assign(y, Op.DiffField, xs)), |
86 |
(BV.op_norm, tensorOp Op.Norm), |
(BV.op_norm, tensorOp Op.Norm), |
87 |
(BV.op_not, simpleOp Op.Not), |
(BV.op_not, simpleOp Op.Not), |
89 |
(BV.op_subscript, fn (y, [SK, NK], xs) => ??), (*FIXME*) |
(BV.op_subscript, fn (y, [SK, NK], xs) => ??), (*FIXME*) |
90 |
*) |
*) |
91 |
(BV.fn_CL, fn (y, _, xs) => assign(y, Op.CL, xs)), |
(BV.fn_CL, fn (y, _, xs) => assign(y, Op.CL, xs)), |
92 |
(BV.fn_convolve, fn (y, _, xs) => assign(y, Op.Convolve, xs)), |
(BV.fn_convolve, fn (y, _, [h, img]) => assign(y, Op.Convolve, [img, h])), |
93 |
(BV.fn_cos, simpleOp Op.Cos), |
(BV.fn_cos, simpleOp Op.Cos), |
94 |
(BV.fn_dot, vectorOp Op.Dot), |
(BV.fn_dot, vectorOp Op.Dot), |
95 |
(BV.fn_inside, fn (y, _, xs) => assign(y, Op.Inside, xs)), |
(BV.fn_inside, fn (y, _, xs) => assign(y, Op.Inside, xs)), |
116 |
|
|
117 |
fun translate (y, f, mvs, xs) = (case VTbl.find tbl f |
fun translate (y, f, mvs, xs) = (case VTbl.find tbl f |
118 |
of SOME transFn => transFn(y, mvs, xs) |
of SOME transFn => transFn(y, mvs, xs) |
119 |
| NONE => raise Fail("TranslateBasis.translate: unknown function " ^ Var.nameOf f) |
| NONE => raise Fail("TranslateBasis.translate: unknown function " ^ Var.uniqueNameOf f) |
120 |
(* end case *)) |
(* end case *)) |
121 |
|
|
122 |
end |
end |