[ https://issues.apache.org/jira/browse/SYSTEMML-1948?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Matthias Boehm updated SYSTEMML-1948: ------------------------------------- Description: This task aims to introduce new rewrite for pushing down trace and diag through unary and binary element-wise operations. An example, is the following expression from PPCA: {{trace(ZtZ * (t(C) %*% C))}} which should be rewritten as follows {code} trace(ZtZ * (t(C) %*% C)) -> sum(diag(ZtZ) * diag(t(C) %*% C)) -> sum(diag(ZtZ) * t(colSums(C^2))) -> colSums(C^2) %*% diag(ZtZ) {code} was: This task aims to introduce new rewrite for pushing down trace and diag through unary and binary element-wise operations. An example, is the following expression from PPCA: {{trace(ZtZ * (t(C) %*% C))}} which should be rewritten as follows {code} trace(ZtZ * (t(C) %*% C)) -> sum(diag(ZtZ) * diag(t(C) %*% C)) -> sum(diag(ZtZ) * t(colSums(C^2))) -> t(colSums(C^2)) %*% diag(ZtZ) {code} > New rewrites for pushdown of trace/diag over binary ops > ------------------------------------------------------- > > Key: SYSTEMML-1948 > URL: https://issues.apache.org/jira/browse/SYSTEMML-1948 > Project: SystemML > Issue Type: Task > Reporter: Matthias Boehm > Priority: Minor > > This task aims to introduce new rewrite for pushing down trace and diag > through unary and binary element-wise operations. An example, is the > following expression from PPCA: {{trace(ZtZ * (t(C) %*% C))}} which should be > rewritten as follows > {code} > trace(ZtZ * (t(C) %*% C)) > -> sum(diag(ZtZ) * diag(t(C) %*% C)) > -> sum(diag(ZtZ) * t(colSums(C^2))) > -> colSums(C^2) %*% diag(ZtZ) > {code} -- This message was sent by Atlassian JIRA (v6.4.14#64029)