[ https://issues.apache.org/jira/browse/SYSTEMML1626?page=com.atlassian.jira.plugin.system.issuetabpanels:commenttabpanel&focusedCommentId=16403290#comment16403290
]
Matthias Boehm commented on SYSTEMML1626:

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 nonsquared 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: SYSTEMML1626
> URL: https://issues.apache.org/jira/browse/SYSTEMML1626
> 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)
