Skip to content

Commit 3e983e4

Browse files
committed
simple version
1 parent 7bedb88 commit 3e983e4

File tree

1 file changed

+16
-1
lines changed

1 file changed

+16
-1
lines changed

src/main/java/org/apache/sysds/runtime/transform/encode/CompressedEncode.java

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
import org.apache.sysds.runtime.compress.colgroup.ColGroupConst;
3838
import org.apache.sysds.runtime.compress.colgroup.ColGroupDDC;
3939
import org.apache.sysds.runtime.compress.colgroup.ColGroupEmpty;
40+
import org.apache.sysds.runtime.compress.colgroup.ColGroupUncompressed;
4041
import org.apache.sysds.runtime.compress.colgroup.ColGroupUncompressedArray;
4142
import org.apache.sysds.runtime.compress.colgroup.dictionary.ADictionary;
4243
import org.apache.sysds.runtime.compress.colgroup.dictionary.Dictionary;
@@ -48,6 +49,7 @@
4849
import org.apache.sysds.runtime.compress.colgroup.mapping.MapToFactory;
4950
import org.apache.sysds.runtime.compress.estim.sample.SampleEstimatorFactory;
5051
import org.apache.sysds.runtime.compress.utils.Util;
52+
import org.apache.sysds.runtime.data.DenseBlock;
5153
import org.apache.sysds.runtime.frame.data.FrameBlock;
5254
import org.apache.sysds.runtime.frame.data.columns.ACompressedArray;
5355
import org.apache.sysds.runtime.frame.data.columns.Array;
@@ -621,7 +623,20 @@ private void combineUncompressed(CompressedMatrixBlock mb) {
621623

622624
private AColGroup combine(List<ColGroupUncompressedArray> ucg) {
623625
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);
625640
}
626641

627642
private void logging(MatrixBlock mb) {

0 commit comments

Comments
 (0)