|
37 | 37 | import org.apache.sysds.runtime.compress.colgroup.ColGroupConst; |
38 | 38 | import org.apache.sysds.runtime.compress.colgroup.ColGroupDDC; |
39 | 39 | import org.apache.sysds.runtime.compress.colgroup.ColGroupEmpty; |
| 40 | +import org.apache.sysds.runtime.compress.colgroup.ColGroupUncompressed; |
40 | 41 | import org.apache.sysds.runtime.compress.colgroup.ColGroupUncompressedArray; |
41 | 42 | import org.apache.sysds.runtime.compress.colgroup.dictionary.ADictionary; |
42 | 43 | import org.apache.sysds.runtime.compress.colgroup.dictionary.Dictionary; |
|
48 | 49 | import org.apache.sysds.runtime.compress.colgroup.mapping.MapToFactory; |
49 | 50 | import org.apache.sysds.runtime.compress.estim.sample.SampleEstimatorFactory; |
50 | 51 | import org.apache.sysds.runtime.compress.utils.Util; |
| 52 | +import org.apache.sysds.runtime.data.DenseBlock; |
51 | 53 | import org.apache.sysds.runtime.frame.data.FrameBlock; |
52 | 54 | import org.apache.sysds.runtime.frame.data.columns.ACompressedArray; |
53 | 55 | import org.apache.sysds.runtime.frame.data.columns.Array; |
@@ -621,7 +623,20 @@ private void combineUncompressed(CompressedMatrixBlock mb) { |
621 | 623 |
|
622 | 624 | private AColGroup combine(List<ColGroupUncompressedArray> ucg) { |
623 | 625 | IColIndex combinedCols = ColIndexFactory.combine(ucg); |
624 | | - throw new NotImplementedException("Should combine " + ucg.size()); |
| 626 | + |
| 627 | + ucg.sort((a,b) -> Integer.compare(a.id,b.id)); |
| 628 | + MatrixBlock ret = new MatrixBlock(in.getNumRows(), combinedCols.size(), false); |
| 629 | + ret.allocateDenseBlock(); |
| 630 | + DenseBlock db = ret.getDenseBlock(); |
| 631 | + for(int i =0; i < in.getNumRows(); i++){ |
| 632 | + double[] rval = db.values(i); |
| 633 | + int off = db.pos(i); |
| 634 | + for(int j = 0; j < combinedCols.size(); j++){ |
| 635 | + rval[off + j] = ucg.get(j).array.getAsDouble(i); |
| 636 | + } |
| 637 | + } |
| 638 | + |
| 639 | + return ColGroupUncompressed.create(ret, combinedCols); |
625 | 640 | } |
626 | 641 |
|
627 | 642 | private void logging(MatrixBlock mb) { |
|
0 commit comments