Update.
[dagnn.git] / dagnn.lua
index a6414b3..1b467e7 100755 (executable)
--- a/dagnn.lua
+++ b/dagnn.lua
@@ -46,8 +46,11 @@ function DAG:setInput(i)
    self.inputModules = i
    self:applyOnModules(
       function(m)
-         if (not self.succ[m] or #self.succ[m] == 0) or (self.pred[m] and #self.pred[m] > 0) then
-            error('Invalid input edges.')
+         if not self.succ[m] or #self.succ[m] == 0 then
+            error('Input modules must have outgoing  edges.')
+         end
+         if self.pred[m] and #self.pred[m] > 0 then
+            error('Input modules cannog have incoming edges.')
          end
       end,
       self.inputModules
@@ -59,8 +62,11 @@ function DAG:setOutput(o)
    self.outputModules = o
    self:applyOnModules(
       function(m)
-         if (not self.pred[m] or #self.pred[m] == 0) or (self.succ[m] and #self.succ[m] > 0) then
-            error('Invalid output edges.')
+         if not self.pred[m] or #self.pred[m] == 0 then
+            error('Output module must have incoming edges.')
+         end
+         if self.succ[m] and #self.succ[m] > 0 then
+            error('Output module cannot have outgoing edges.')
          end
       end,
       self.outputModules
@@ -134,7 +140,10 @@ end
 function DAG:updateGradInput(input, gradOutput)
    self:sort()
 
-   self:applyOnModules(function(m, i, go) m:updateGradInput(i, go) end, self.outputModules, input, gradOutput)
+   self:applyOnModules(
+      function(m, i, go) m:updateGradInput(i, go) end,
+      self.outputModules, input, gradOutput
+   )
 
    for k = self.sorted, 1, -1 do
       local m = sorted[k]