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

Reply via email to