[ 
https://issues.apache.org/jira/browse/SYSTEMML-1434?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Mike Dusenberry updated SYSTEMML-1434:
--------------------------------------
    Issue Type: Task  (was: Bug)

> Generalize Binary Operations to (vector, matrix) Operands
> ---------------------------------------------------------
>
>                 Key: SYSTEMML-1434
>                 URL: https://issues.apache.org/jira/browse/SYSTEMML-1434
>             Project: SystemML
>          Issue Type: Task
>            Reporter: Mike Dusenberry
>         Attachments: broadcasting_test.dml
>
>
> Currently, we make use of broadcasting to allow for binary operations between 
> matrices and vectors that have a common size in each the row or column 
> dimension.  However, there is currently a limitation in which the matrix must 
> be the first argument to the binary operator in order for the broadcasting to 
> take place.  Otherwise, in the case of the vector being the first argument, 
> an error will be thrown.  NumPy does not have this limitation.
> Works correctly --> op(matrix, vector):
> {code}
> a = rand(rows=4, cols=16)
> b = rand(rows=1, cols=16)
> out = a * b
> print(toString(out))
> {code}
> Fails --> op(vector, matrix):
> {code}
> a = rand(rows=4, cols=16)
> b = rand(rows=1, cols=16)
> out = b * a
> print(toString(out))
> {code}
> {code}
> org.apache.sysml.parser.LanguageException: Invalid Parameters : ERROR: 
> tests/broadcasting_test.dml -- line 4, column 7 -- Mismatch in dimensions for 
> operation (b MULT a)
>         at 
> org.apache.sysml.parser.Expression.raiseValidateError(Expression.java:549)
>         at 
> org.apache.sysml.parser.BinaryExpression.checkAndSetDimensions(BinaryExpression.java:188)
>         at 
> org.apache.sysml.parser.BinaryExpression.validateExpression(BinaryExpression.java:141)
>         at 
> org.apache.sysml.parser.StatementBlock.validate(StatementBlock.java:592)
>         at 
> org.apache.sysml.parser.DMLTranslator.validateParseTree(DMLTranslator.java:141)
>         at org.apache.sysml.api.DMLScript.execute(DMLScript.java:588)
>         at org.apache.sysml.api.DMLScript.executeScript(DMLScript.java:350)
>         at org.apache.sysml.api.DMLScript.main(DMLScript.java:211)
> Exception in thread "main" org.apache.sysml.api.DMLException: 
> org.apache.sysml.parser.LanguageException: Invalid Parameters : ERROR: 
> tests/broadcasting_test.dml -- line 4, column 7 -- Mismatch in dimensions for 
> operation (b MULT a)
>         at org.apache.sysml.api.DMLScript.executeScript(DMLScript.java:364)
>         at org.apache.sysml.api.DMLScript.main(DMLScript.java:211)
> Caused by: org.apache.sysml.parser.LanguageException: Invalid Parameters : 
> ERROR: tests/broadcasting_test.dml -- line 4, column 7 -- Mismatch in 
> dimensions for operation (b MULT a)
>         at 
> org.apache.sysml.parser.Expression.raiseValidateError(Expression.java:549)
>         at 
> org.apache.sysml.parser.BinaryExpression.checkAndSetDimensions(BinaryExpression.java:188)
>         at 
> org.apache.sysml.parser.BinaryExpression.validateExpression(BinaryExpression.java:141)
>         at 
> org.apache.sysml.parser.StatementBlock.validate(StatementBlock.java:592)
>         at 
> org.apache.sysml.parser.DMLTranslator.validateParseTree(DMLTranslator.java:141)
>         at org.apache.sysml.api.DMLScript.execute(DMLScript.java:588)
>         at org.apache.sysml.api.DMLScript.executeScript(DMLScript.java:350)
>         ... 1 more
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to