[
https://issues.apache.org/jira/browse/SYSTEMML-1626?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16403290#comment-16403290
]
Matthias Boehm commented on SYSTEMML-1626:
------------------------------------------
Well, generally speaking an underdetermined system has an infinite number of
solutions. I agree with [~nakul02] that we should throw an error if the passed
matrix is not squared because that is our solve semantics, which we inherited
from R (btw, R throws the error "Error in solve.default(A, b) : 'a' (8 x 16)
must be square"). Historically, we used commons math LU factorization which is
also just supported over squared matrices and hence correctly threw an error.
However, later we switched to commons math QR factorization for performance
reasons. QR is a solver that also supports non-squared inputs and hence we
should now do the error handling ourselves.
> x = solve(A,b) should report an error when it is an underdetermined system
> (in CP mode)
> ---------------------------------------------------------------------------------------
>
> Key: SYSTEMML-1626
> URL: https://issues.apache.org/jira/browse/SYSTEMML-1626
> Project: SystemML
> Issue Type: Bug
> Components: Runtime
> Affects Versions: SystemML 0.14
> Reporter: Nakul Jindal
> Assignee: Janardhan
> Priority: Major
>
> {code}
> m = 16
> n = 8
> A = rand(rows=m, cols=n)
> b = rand(rows=m, cols=1)
> x = solve(A, b)
> print(toString(x))
> {code}
> Should print an error, instead it prints a 8x1 vector.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)