[ https://issues.apache.org/jira/browse/SYSTEMML-707?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Matthias Boehm reassigned SYSTEMML-707: --------------------------------------- Assignee: Matthias Boehm > diag not generate square matrix if given Nx1 matrix of zeroes > ------------------------------------------------------------- > > Key: SYSTEMML-707 > URL: https://issues.apache.org/jira/browse/SYSTEMML-707 > Project: SystemML > Issue Type: Bug > Components: APIs > Reporter: Deron Eriksson > Assignee: Matthias Boehm > > Thank you Matthew Plourde for finding this! > If an Nx1 matrix of 0's is given to the diag() function, an Nx1 matrix of 0's > is returned. However, if an Nx1 matrix consists of any values that aren't > 0's, an NxN diagonal matrix is returned. This is inconsistent and the Nx1 > matrix of 0's to diag() should probably return an NxN matrix. > Example 1: > {code} > zeroes=matrix(0, 5, 1); > print(toString(zeroes)); > print(toString(diag(zeroes))); > {code} > gives: > {code} > 0.000 > 0.000 > 0.000 > 0.000 > 0.000 > 0.000 > 0.000 > 0.000 > 0.000 > 0.000 > {code} > Example 2: > {code} > ones=matrix(1, 5, 1); > print(toString(ones)); > print(toString(diag(ones))); > {code} > gives: > {code} > 1.000 > 1.000 > 1.000 > 1.000 > 1.000 > 1.000 0.000 0.000 0.000 0.000 > 0.000 1.000 0.000 0.000 0.000 > 0.000 0.000 1.000 0.000 0.000 > 0.000 0.000 0.000 1.000 0.000 > 0.000 0.000 0.000 0.000 1.000 > {code} > Example 3: > {code} > nums=matrix("0 1 2 3 4", 5, 1); > print(toString(nums)); > print(toString(diag(nums))); > {code} > gives: > {code} > 0.000 > 1.000 > 2.000 > 3.000 > 4.000 > 0.000 0.000 0.000 0.000 0.000 > 0.000 1.000 0.000 0.000 0.000 > 0.000 0.000 2.000 0.000 0.000 > 0.000 0.000 0.000 3.000 0.000 > 0.000 0.000 0.000 0.000 4.000 > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)