185 |
(BV.op_probe, fn (y, [_, Ty.DIM d, Ty.SHAPE dd], xs) => |
(BV.op_probe, fn (y, [_, Ty.DIM d, Ty.SHAPE dd], xs) => |
186 |
[assignEin(y, (mk.probe(dd,d,[d])),xs)]), |
[assignEin(y, (mk.probe(dd,d,[d])),xs)]), |
187 |
(BV.op_D, fn (y, [_, Ty.DIM d], xs) => [assignEin(y, mk.grad([d]),xs)]), |
(BV.op_D, fn (y, [_, Ty.DIM d], xs) => [assignEin(y, mk.grad([d]),xs)]), |
188 |
(BV.op_Dotimes, fn (y, [_, Ty.DIM d1, Ty.SHAPE dd, Ty.DIM d2], xs) => |
(BV.op_Dotimes, fn (y, [_, Ty.DIM d1, Ty.SHAPE dd, Ty.DIM d2], xs) => let val x= print (Int.toString(d1)) |
189 |
|
val e= print (Int.toString(d2)) |
190 |
|
val z= print (Int.toString(length(dd))) |
191 |
|
val u= print "\n" |
192 |
|
in |
193 |
|
[assignEin(y, mk.hessian(d1, dd),xs)] end ), |
194 |
|
(BV.op_Ddot, fn (y, [_, Ty.DIM d1, Ty.SHAPE dd, Ty.DIM d2], xs) => |
195 |
[assignEin(y, mk.divergence(d1, dd),xs)]), |
[assignEin(y, mk.divergence(d1, dd),xs)]), |
196 |
|
|
197 |
|
|
198 |
(BV.op_norm, fn (y, [sv], xs) => (case shapeVarToTensor sv |
(BV.op_norm, fn (y, [sv], xs) => (case shapeVarToTensor sv |
199 |
of DstTy.TensorTy[] => assign(y, Op.Abs DstTy.realTy, xs) |
of DstTy.TensorTy[] => assign(y, Op.Abs DstTy.realTy, xs) |
200 |
| ty => assign(y, Op.Norm ty, xs) |
| ty => assign(y, Op.Norm ty, xs) |