+-- This accumulate x in a where they are both nested tables of
+-- tensors. If first is true, set a = x.
+function DAG:nestedAccTensor(a, x, first)
+ if torch.type(x) == 'table' then
+ a = a or {}
+ for i in pairs(x) do
+ a[i] = self:nestedAccTensor(a[i], x[i], first)
+ end
+ else
+ if first then
+ if a then
+ a:resizeAs(x):copy(x)
+ else
+ a = x:clone()
+ end
+ else
+ a:add(x)
+ end
+ end
+ return a
+end
+
+function DAG:updateGradOutput(node)
+ local gradInputSucc = node.gradInputSucc