Details
-
Task
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
-
None
Description
Concatenating matrices is a common operation in data preparation and various algorithms. So far, SystemML only supports an append operation with cbind semantics, i.e., column-wise concatenation of matrices. To workaround this limitation, one has to emulate row-wise append via C = t(append(t(A), t(B))). This task introduces two new built-in functions: rbind and cbind for row- and column-wise matrix concatenation. Note that cbind is equivalent to the existing append. For compatibility reasons, we will continue to support append but map it to cbind. This change includes two major sub tasks:
- Generalization of append compilation/runtime for cp/mr/spark
- New algebraic simplification rewrite for t(cbind(t(A), t(B))) --> rbind(A, B), and t(rbind(t(A), t(B))) --> cbind(A, B).