提交 b2a5bd9b authored 作者: Brandon T. Willard's avatar Brandon T. Willard

Work-around for variadic binary operators

This is a cheap work-around for binary operators that actually behave as variadic operators. See https://github.com/pymc-devs/Theano-PyMC/issues/26.
上级 e2bc60b1
...@@ -1767,6 +1767,7 @@ class Maximum(BinaryScalarOp): ...@@ -1767,6 +1767,7 @@ class Maximum(BinaryScalarOp):
commutative = True commutative = True
associative = True associative = True
nfunc_spec = ("maximum", 2, 1) nfunc_spec = ("maximum", 2, 1)
nfunc_variadic = "maximum"
def impl(self, *inputs): def impl(self, *inputs):
# The built-in max function don't support complex type # The built-in max function don't support complex type
...@@ -1811,6 +1812,7 @@ class Minimum(BinaryScalarOp): ...@@ -1811,6 +1812,7 @@ class Minimum(BinaryScalarOp):
commutative = True commutative = True
associative = True associative = True
nfunc_spec = ("minimum", 2, 1) nfunc_spec = ("minimum", 2, 1)
nfunc_variadic = "minimum"
def impl(self, *inputs): def impl(self, *inputs):
# The built-in min function don't support complex type # The built-in min function don't support complex type
...@@ -1855,6 +1857,7 @@ class Add(ScalarOp): ...@@ -1855,6 +1857,7 @@ class Add(ScalarOp):
commutative = True commutative = True
associative = True associative = True
nfunc_spec = ("add", 2, 1) nfunc_spec = ("add", 2, 1)
nfunc_variadic = "sum"
def impl(self, *inputs): def impl(self, *inputs):
return sum(inputs) return sum(inputs)
...@@ -1896,6 +1899,7 @@ class Mul(ScalarOp): ...@@ -1896,6 +1899,7 @@ class Mul(ScalarOp):
commutative = True commutative = True
associative = True associative = True
nfunc_spec = ("multiply", 2, 1) nfunc_spec = ("multiply", 2, 1)
nfunc_variadic = "product"
def impl(self, *inputs): def impl(self, *inputs):
return np.product(inputs) return np.product(inputs)
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论