[ 
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)

Reply via email to