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

Mike Dusenberry closed SYSTEMML-475.
------------------------------------
    Resolution: Later

> Add Implicit Conversion Between Scalar Values and 1x1 Matrices
> --------------------------------------------------------------
>
>                 Key: SYSTEMML-475
>                 URL: https://issues.apache.org/jira/browse/SYSTEMML-475
>             Project: SystemML
>          Issue Type: Improvement
>          Components: Compiler, Parser
>            Reporter: Mike Dusenberry
>            Assignee: Mike Dusenberry
>
> Currently, any DML functions that require scalars will not accept 1x1 
> matrices.  Matrix indexing always returns a matrix, so a statement such as 
> {{A[1,1]}} from the following simple example will return a single-valued 
> matrix, even though it logically represents a scalar.  Thus, in order to use 
> this value as a scalar, the {{as.scalar(...)}} function is required.
> {code}
> A = matrix(7, rows=10, cols=10)                                               
>                                                                  
> print( "A[1,1]: " + as.scalar(A[1,1]))  // 7
> {code}
> In this scenario, the required usage of {{as.scalar(...)}} can cause 
> confusion, and can be viewed as a violation of SystemML's goal of hiding the 
> underlying data representation from the user.
> Additionally, many of the built-in functions, such as {{rowVars(...)}}, 
> accept matrices without other requirements of dimensionality, and thus will 
> accept a 1x1 matrix, yet will not accept a scalar value.  We should allow any 
> such functions that accept 1x1 matrices to also accept scalar values.
> {code}
> a = 4
> print("Row variances of scalar are: " + rowVars(a))  // 0
> {code}
> In order to achieve this, we can add implicit casting between scalar values 
> and 1x1 matrices within the parser during the validation stage as needed.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to