blob: 3b4764ada070d2c3ebb85b1ed39eb9a7fe66bcc4 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>AColGroup (SystemDS 2.1.0-SNAPSHOT API)</title>
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="AColGroup (SystemDS 2.1.0-SNAPSHOT API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":9,"i5":6,"i6":9,"i7":6,"i8":6,"i9":9,"i10":9,"i11":9,"i12":6,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":6,"i21":6,"i22":6,"i23":6,"i24":6,"i25":10,"i26":10,"i27":6,"i28":6,"i29":6,"i30":6,"i31":6,"i32":6,"i33":10,"i34":10,"i35":6,"i36":6,"i37":10,"i38":6,"i39":6,"i40":6,"i41":6,"i42":6,"i43":6,"i44":6,"i45":6,"i46":6,"i47":6,"i48":6,"i49":6,"i50":10,"i51":6,"i52":10,"i53":6,"i54":6,"i55":6};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/AColGroup.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev&nbsp;Class</li>
<li><a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.ColGroupType.html" title="enum in org.apache.sysds.runtime.compress.colgroup"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/sysds/runtime/compress/colgroup/AColGroup.html" target="_top">Frames</a></li>
<li><a href="AColGroup.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.sysds.runtime.compress.colgroup</div>
<h2 title="Class AColGroup" class="title">Class AColGroup</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>org.apache.sysds.runtime.compress.colgroup.AColGroup</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
</dl>
<dl>
<dt>Direct Known Subclasses:</dt>
<dd><a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/ColGroupUncompressed.html" title="class in org.apache.sysds.runtime.compress.colgroup">ColGroupUncompressed</a>, <a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/ColGroupValue.html" title="class in org.apache.sysds.runtime.compress.colgroup">ColGroupValue</a></dd>
</dl>
<hr>
<br>
<pre>public abstract class <span class="typeNameLabel">AColGroup</span>
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
implements <a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></pre>
<div class="block">Class that stores information about a column group within a compressed matrix block. There are subclasses specific to
each compression type.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../serialized-form.html#org.apache.sysds.runtime.compress.colgroup.AColGroup">Serialized Form</a></dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Class and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.ColGroupType.html" title="enum in org.apache.sysds.runtime.compress.colgroup">AColGroup.ColGroupType</a></span></code>
<div class="block">Concrete ColGroupType
Protected such that outside the ColGroup package it should be unknown which specific subtype is used.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.CompressionType.html" title="enum in org.apache.sysds.runtime.compress.colgroup">AColGroup.CompressionType</a></span></code>
<div class="block">Public Group types supported
Note For instance DDC is called DDC not DDC1, or DDC2 which is a specific subtype of the DDC.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>abstract <a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.html" title="class in org.apache.sysds.runtime.compress.colgroup">AColGroup</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.html#binaryRowOp-org.apache.sysds.runtime.matrix.operators.BinaryOperator-double:A-boolean-boolean-">binaryRowOp</a></span>(<a href="../../../../../../org/apache/sysds/runtime/matrix/operators/BinaryOperator.html" title="class in org.apache.sysds.runtime.matrix.operators">BinaryOperator</a>&nbsp;op,
double[]&nbsp;v,
boolean&nbsp;sparseSafe,
boolean&nbsp;left)</code>
<div class="block">Perform a binary row operation.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>abstract boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.html#containsValue-double-">containsValue</a></span>(double&nbsp;pattern)</code>&nbsp;</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>abstract <a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.html" title="class in org.apache.sysds.runtime.compress.colgroup">AColGroup</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.html#copy--">copy</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.html#countNonZerosPerRow-int:A-int-int-">countNonZerosPerRow</a></span>(int[]&nbsp;rnnz,
int&nbsp;rl,
int&nbsp;ru)</code>
<div class="block">Count the number of non-zeros per row</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.html#decompressColumnToArray-double:A-int-java.util.List-">decompressColumnToArray</a></span>(double[]&nbsp;target,
int&nbsp;colIndex,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.html" title="class in org.apache.sysds.runtime.compress.colgroup">AColGroup</a>&gt;&nbsp;colGroups)</code>&nbsp;</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.html#decompressColumnToBlock-double:A-int-int-int-">decompressColumnToBlock</a></span>(double[]&nbsp;target,
int&nbsp;colpos,
int&nbsp;rl,
int&nbsp;ru)</code>
<div class="block">Decompress to dense array.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.html#decompressColumnToBlock-double:A-int-int-int-java.util.List-">decompressColumnToBlock</a></span>(double[]&nbsp;target,
int&nbsp;colIndex,
int&nbsp;rl,
int&nbsp;ru,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.html" title="class in org.apache.sysds.runtime.compress.colgroup">AColGroup</a>&gt;&nbsp;colGroups)</code>
<div class="block">Decompress part of the col groups into the target dense double array.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.html#decompressColumnToBlock-org.apache.sysds.runtime.matrix.data.MatrixBlock-int-">decompressColumnToBlock</a></span>(<a href="../../../../../../org/apache/sysds/runtime/matrix/data/MatrixBlock.html" title="class in org.apache.sysds.runtime.matrix.data">MatrixBlock</a>&nbsp;target,
int&nbsp;colpos)</code>
<div class="block">Decompress to block.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.html#decompressColumnToBlock-org.apache.sysds.runtime.matrix.data.MatrixBlock-int-int-int-">decompressColumnToBlock</a></span>(<a href="../../../../../../org/apache/sysds/runtime/matrix/data/MatrixBlock.html" title="class in org.apache.sysds.runtime.matrix.data">MatrixBlock</a>&nbsp;target,
int&nbsp;colpos,
int&nbsp;rl,
int&nbsp;ru)</code>
<div class="block">Decompress to block.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.html#decompressColumnToBlock-org.apache.sysds.runtime.matrix.data.MatrixBlock-int-int-int-java.util.List-">decompressColumnToBlock</a></span>(<a href="../../../../../../org/apache/sysds/runtime/matrix/data/MatrixBlock.html" title="class in org.apache.sysds.runtime.matrix.data">MatrixBlock</a>&nbsp;target,
int&nbsp;colIndex,
int&nbsp;rl,
int&nbsp;ru,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.html" title="class in org.apache.sysds.runtime.compress.colgroup">AColGroup</a>&gt;&nbsp;colGroups)</code>
<div class="block">Decompress part of the col groups into the target matrix block, this decompression maintain the number of non
zeros.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.html#decompressColumnToBlock-org.apache.sysds.runtime.matrix.data.MatrixBlock-int-java.util.List-">decompressColumnToBlock</a></span>(<a href="../../../../../../org/apache/sysds/runtime/matrix/data/MatrixBlock.html" title="class in org.apache.sysds.runtime.matrix.data">MatrixBlock</a>&nbsp;target,
int&nbsp;colIndex,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.html" title="class in org.apache.sysds.runtime.compress.colgroup">AColGroup</a>&gt;&nbsp;colGroups)</code>
<div class="block">Decompress an entire column into the target matrix block.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.html#decompressColumnToBlockUnSafe-org.apache.sysds.runtime.matrix.data.MatrixBlock-int-int-java.util.List-">decompressColumnToBlockUnSafe</a></span>(<a href="../../../../../../org/apache/sysds/runtime/matrix/data/MatrixBlock.html" title="class in org.apache.sysds.runtime.matrix.data">MatrixBlock</a>&nbsp;target,
int&nbsp;rl,
int&nbsp;ru,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.html" title="class in org.apache.sysds.runtime.compress.colgroup">AColGroup</a>&gt;&nbsp;colGroups)</code>
<div class="block">Decompress part of the col groups into the target matrix block, this decompression maintain the number of non
zeros.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.html#decompressToBlock-org.apache.sysds.runtime.matrix.data.MatrixBlock-int:A-">decompressToBlock</a></span>(<a href="../../../../../../org/apache/sysds/runtime/matrix/data/MatrixBlock.html" title="class in org.apache.sysds.runtime.matrix.data">MatrixBlock</a>&nbsp;target,
int[]&nbsp;colIndexTargets)</code>
<div class="block">Decompress the contents of this column group into uncompressed packed columns</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.html#decompressToBlock-org.apache.sysds.runtime.matrix.data.MatrixBlock-int-int-">decompressToBlock</a></span>(<a href="../../../../../../org/apache/sysds/runtime/matrix/data/MatrixBlock.html" title="class in org.apache.sysds.runtime.matrix.data">MatrixBlock</a>&nbsp;target,
int&nbsp;rl,
int&nbsp;ru)</code>
<div class="block">Decompress the contents of this column group into the specified full matrix block.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.html#decompressToBlock-org.apache.sysds.runtime.matrix.data.MatrixBlock-int-int-boolean-">decompressToBlock</a></span>(<a href="../../../../../../org/apache/sysds/runtime/matrix/data/MatrixBlock.html" title="class in org.apache.sysds.runtime.matrix.data">MatrixBlock</a>&nbsp;target,
int&nbsp;rl,
int&nbsp;ru,
boolean&nbsp;safe)</code>&nbsp;</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.html#decompressToBlock-org.apache.sysds.runtime.matrix.data.MatrixBlock-int-int-double:A-boolean-">decompressToBlock</a></span>(<a href="../../../../../../org/apache/sysds/runtime/matrix/data/MatrixBlock.html" title="class in org.apache.sysds.runtime.matrix.data">MatrixBlock</a>&nbsp;target,
int&nbsp;rl,
int&nbsp;ru,
double[]&nbsp;values,
boolean&nbsp;safe)</code>
<div class="block">Decompress the contents of this column group into the target matrixBlock, it is assumed that the target matrix
Block have the same number of columns and at least the number of rows ru.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.html#decompressToBlock-org.apache.sysds.runtime.matrix.data.MatrixBlock-int-int-int-">decompressToBlock</a></span>(<a href="../../../../../../org/apache/sysds/runtime/matrix/data/MatrixBlock.html" title="class in org.apache.sysds.runtime.matrix.data">MatrixBlock</a>&nbsp;target,
int&nbsp;rl,
int&nbsp;ru,
int&nbsp;offT)</code>
<div class="block">Decompress the contents of this column group into the specified full matrix block.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.html#decompressToBlock-org.apache.sysds.runtime.matrix.data.MatrixBlock-int-int-int-boolean-">decompressToBlock</a></span>(<a href="../../../../../../org/apache/sysds/runtime/matrix/data/MatrixBlock.html" title="class in org.apache.sysds.runtime.matrix.data">MatrixBlock</a>&nbsp;target,
int&nbsp;rl,
int&nbsp;ru,
int&nbsp;offT,
boolean&nbsp;safe)</code>&nbsp;</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.html#decompressToBlock-org.apache.sysds.runtime.matrix.data.MatrixBlock-int-int-int-double:A-">decompressToBlock</a></span>(<a href="../../../../../../org/apache/sysds/runtime/matrix/data/MatrixBlock.html" title="class in org.apache.sysds.runtime.matrix.data">MatrixBlock</a>&nbsp;target,
int&nbsp;rl,
int&nbsp;ru,
int&nbsp;offT,
double[]&nbsp;values)</code>
<div class="block">Decompress the contents of this column group into the specified full matrix block.</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.html#decompressToBlock-org.apache.sysds.runtime.matrix.data.MatrixBlock-int-int-int-double:A-boolean-">decompressToBlock</a></span>(<a href="../../../../../../org/apache/sysds/runtime/matrix/data/MatrixBlock.html" title="class in org.apache.sysds.runtime.matrix.data">MatrixBlock</a>&nbsp;target,
int&nbsp;rl,
int&nbsp;ru,
int&nbsp;offT,
double[]&nbsp;values,
boolean&nbsp;safe)</code>&nbsp;</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.html#decompressToBlockSafe-org.apache.sysds.runtime.matrix.data.MatrixBlock-int-int-int-double:A-">decompressToBlockSafe</a></span>(<a href="../../../../../../org/apache/sysds/runtime/matrix/data/MatrixBlock.html" title="class in org.apache.sysds.runtime.matrix.data">MatrixBlock</a>&nbsp;target,
int&nbsp;rl,
int&nbsp;ru,
int&nbsp;offT,
double[]&nbsp;values)</code>
<div class="block">Decompress the contents of this column group into the specified full matrix block without managing the number of
non zeros.</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.html#decompressToBlockUnSafe-org.apache.sysds.runtime.matrix.data.MatrixBlock-int-int-int-double:A-">decompressToBlockUnSafe</a></span>(<a href="../../../../../../org/apache/sysds/runtime/matrix/data/MatrixBlock.html" title="class in org.apache.sysds.runtime.matrix.data">MatrixBlock</a>&nbsp;target,
int&nbsp;rl,
int&nbsp;ru,
int&nbsp;offT,
double[]&nbsp;values)</code>&nbsp;</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code>abstract long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.html#estimateInMemorySize--">estimateInMemorySize</a></span>()</code>
<div class="block">Note: Must be overridden by child classes to account for additional data and metadata</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code>abstract double</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.html#get-int-int-">get</a></span>(int&nbsp;r,
int&nbsp;c)</code>
<div class="block">Get the value at a global row/column position.</div>
</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code>abstract <a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.ColGroupType.html" title="enum in org.apache.sysds.runtime.compress.colgroup">AColGroup.ColGroupType</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.html#getColGroupType--">getColGroupType</a></span>()</code>
<div class="block">Internally get the specific type of ColGroup, this could be extracted from the object but that does not allow for
nice switches in the code.</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.html#getColIndex-int-">getColIndex</a></span>(int&nbsp;colNum)</code>
<div class="block">Obtain a column index value.</div>
</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code>int[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.html#getColIndices--">getColIndices</a></span>()</code>
<div class="block">Obtain the offsets of the columns in the matrix block that make up the group</div>
</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code>abstract <a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.CompressionType.html" title="enum in org.apache.sysds.runtime.compress.colgroup">AColGroup.CompressionType</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.html#getCompType--">getCompType</a></span>()</code>
<div class="block">Obtain the compression type.</div>
</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code>abstract long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.html#getExactSizeOnDisk--">getExactSizeOnDisk</a></span>()</code>
<div class="block">Returns the exact serialized size of column group.</div>
</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code>abstract boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.html#getIfCountsType--">getIfCountsType</a></span>()</code>
<div class="block">Returns true if in the getValuesAsBlock method returns values in groups (that needs to be counted) or
individually potentially repeated values</div>
</td>
</tr>
<tr id="i30" class="altColor">
<td class="colFirst"><code>abstract double</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.html#getMax--">getMax</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><code>abstract double</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.html#getMin--">getMin</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i32" class="altColor">
<td class="colFirst"><code>abstract long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.html#getNumberNonZeros--">getNumberNonZeros</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i33" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.html#getNumCols--">getNumCols</a></span>()</code>
<div class="block">Obtain the number of columns in this column group.</div>
</td>
</tr>
<tr id="i34" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.html#getNumRows--">getNumRows</a></span>()</code>
<div class="block">Get number of rows contained in the ColGroup.</div>
</td>
</tr>
<tr id="i35" class="rowColor">
<td class="colFirst"><code>abstract double[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.html#getValues--">getValues</a></span>()</code>
<div class="block">Get all the values in the colGroup.</div>
</td>
</tr>
<tr id="i36" class="altColor">
<td class="colFirst"><code>abstract <a href="../../../../../../org/apache/sysds/runtime/matrix/data/MatrixBlock.html" title="class in org.apache.sysds.runtime.matrix.data">MatrixBlock</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.html#getValuesAsBlock--">getValuesAsBlock</a></span>()</code>
<div class="block">Returns the ColGroup as a MatrixBlock.</div>
</td>
</tr>
<tr id="i37" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.html#isDense--">isDense</a></span>()</code>
<div class="block">Is dense, signals that the entire column group is allocated an processed.</div>
</td>
</tr>
<tr id="i38" class="altColor">
<td class="colFirst"><code>abstract boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.html#isLossy--">isLossy</a></span>()</code>
<div class="block">Is Lossy</div>
</td>
</tr>
<tr id="i39" class="rowColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.html#leftMultByMatrix-double:A-double:A-double:A-int-int-int-int-int-">leftMultByMatrix</a></span>(double[]&nbsp;matrix,
double[]&nbsp;result,
double[]&nbsp;values,
int&nbsp;numRows,
int&nbsp;numCols,
int&nbsp;rl,
int&nbsp;ru,
int&nbsp;vOff)</code>
<div class="block">Multiply with a matrix on the left.</div>
</td>
</tr>
<tr id="i40" class="altColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.html#leftMultByRowVector-double:A-double:A-">leftMultByRowVector</a></span>(double[]&nbsp;vector,
double[]&nbsp;result)</code>
<div class="block">Multiply the slice of the matrix that this column group represents by a row vector on the left (the original
column vector is assumed to be transposed already i.e.</div>
</td>
</tr>
<tr id="i41" class="rowColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.html#leftMultByRowVector-double:A-double:A-int-">leftMultByRowVector</a></span>(double[]&nbsp;vector,
double[]&nbsp;result,
int&nbsp;offT)</code>
<div class="block">Multiply the slice of the matrix that this column group represents by a row vector on the left (the original
column vector is assumed to be transposed already i.e.</div>
</td>
</tr>
<tr id="i42" class="altColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.html#leftMultByRowVector-double:A-double:A-int-double:A-">leftMultByRowVector</a></span>(double[]&nbsp;vector,
double[]&nbsp;result,
int&nbsp;numVals,
double[]&nbsp;values)</code>
<div class="block">Multiply the slice of the matrix that this column group represents by a row vector on the left (the original
column vector is assumed to be transposed already i.e.</div>
</td>
</tr>
<tr id="i43" class="rowColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.html#leftMultByRowVector-double:A-double:A-int-double:A-int-">leftMultByRowVector</a></span>(double[]&nbsp;vector,
double[]&nbsp;result,
int&nbsp;numVals,
double[]&nbsp;values,
int&nbsp;offT)</code>
<div class="block">Multiply the slice of the matrix that this column group represents by a row vector on the left (the original
column vector is assumed to be transposed already i.e.</div>
</td>
</tr>
<tr id="i44" class="altColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.html#leftMultBySelfDiagonalColGroup-double:A-int-">leftMultBySelfDiagonalColGroup</a></span>(double[]&nbsp;result,
int&nbsp;numColumns)</code>&nbsp;</td>
</tr>
<tr id="i45" class="rowColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.html#leftMultBySparseMatrix-org.apache.sysds.runtime.data.SparseBlock-double:A-double:A-int-int-int-double:A-">leftMultBySparseMatrix</a></span>(<a href="../../../../../../org/apache/sysds/runtime/data/SparseBlock.html" title="class in org.apache.sysds.runtime.data">SparseBlock</a>&nbsp;sb,
double[]&nbsp;result,
double[]&nbsp;values,
int&nbsp;numRows,
int&nbsp;numCols,
int&nbsp;row,
double[]&nbsp;MaterializedRow)</code>
<div class="block">Multiply with a sparse matrix on the left hand side, and add the values to the output result</div>
</td>
</tr>
<tr id="i46" class="altColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.html#readFields-java.io.DataInput-">readFields</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/DataInput.html?is-external=true" title="class or interface in java.io">DataInput</a>&nbsp;in)</code>
<div class="block">Deserialize column group from data input.</div>
</td>
</tr>
<tr id="i47" class="rowColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.html#rightMultByMatrix-int:A-double:A-double:A-int-int-int-">rightMultByMatrix</a></span>(int[]&nbsp;outputColumns,
double[]&nbsp;preAggregatedB,
double[]&nbsp;c,
int&nbsp;thatNrColumns,
int&nbsp;rl,
int&nbsp;ru)</code>
<div class="block">Right multiply by matrix.</div>
</td>
</tr>
<tr id="i48" class="altColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.html#rightMultByVector-double:A-double:A-int-int-double:A-">rightMultByVector</a></span>(double[]&nbsp;vector,
double[]&nbsp;c,
int&nbsp;rl,
int&nbsp;ru,
double[]&nbsp;dictVals)</code>
<div class="block">Multiply the slice of the matrix that this column group represents by a vector on the right.</div>
</td>
</tr>
<tr id="i49" class="rowColor">
<td class="colFirst"><code>abstract <a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.html" title="class in org.apache.sysds.runtime.compress.colgroup">AColGroup</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.html#scalarOperation-org.apache.sysds.runtime.matrix.operators.ScalarOperator-">scalarOperation</a></span>(<a href="../../../../../../org/apache/sysds/runtime/matrix/operators/ScalarOperator.html" title="class in org.apache.sysds.runtime.matrix.operators">ScalarOperator</a>&nbsp;op)</code>
<div class="block">Perform the specified scalar operation directly on the compressed column group, without decompressing individual
cells if possible.</div>
</td>
</tr>
<tr id="i50" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.html#shiftColIndices-int-">shiftColIndices</a></span>(int&nbsp;offset)</code>&nbsp;</td>
</tr>
<tr id="i51" class="rowColor">
<td class="colFirst"><code>abstract <a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.html" title="class in org.apache.sysds.runtime.compress.colgroup">AColGroup</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.html#sliceColumns-int-int-">sliceColumns</a></span>(int&nbsp;cl,
int&nbsp;cu)</code>
<div class="block">Slice out the columns within the range of cl and cu to remove the dictionary values related to these columns.</div>
</td>
</tr>
<tr id="i52" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.html#toString--">toString</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i53" class="rowColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.html#unaryAggregateOperations-org.apache.sysds.runtime.matrix.operators.AggregateUnaryOperator-double:A-">unaryAggregateOperations</a></span>(<a href="../../../../../../org/apache/sysds/runtime/matrix/operators/AggregateUnaryOperator.html" title="class in org.apache.sysds.runtime.matrix.operators">AggregateUnaryOperator</a>&nbsp;op,
double[]&nbsp;c)</code>
<div class="block">Unary Aggregate operator, since aggregate operators require new object output, the output becomes an uncompressed
matrix.</div>
</td>
</tr>
<tr id="i54" class="altColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.html#unaryAggregateOperations-org.apache.sysds.runtime.matrix.operators.AggregateUnaryOperator-double:A-int-int-">unaryAggregateOperations</a></span>(<a href="../../../../../../org/apache/sysds/runtime/matrix/operators/AggregateUnaryOperator.html" title="class in org.apache.sysds.runtime.matrix.operators">AggregateUnaryOperator</a>&nbsp;op,
double[]&nbsp;c,
int&nbsp;rl,
int&nbsp;ru)</code>
<div class="block">Unary Aggregate operator, since aggregate operators require new object output, the output becomes an uncompressed
matrix.</div>
</td>
</tr>
<tr id="i55" class="rowColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.html#write-java.io.DataOutput-">write</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/DataOutput.html?is-external=true" title="class or interface in java.io">DataOutput</a>&nbsp;out)</code>
<div class="block">Serializes column group to data output.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="getColIndices--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getColIndices</h4>
<pre>public&nbsp;int[]&nbsp;getColIndices()</pre>
<div class="block">Obtain the offsets of the columns in the matrix block that make up the group</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>offsets of the columns in the matrix block that make up the group</dd>
</dl>
</li>
</ul>
<a name="getColIndex-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getColIndex</h4>
<pre>public&nbsp;int&nbsp;getColIndex(int&nbsp;colNum)</pre>
<div class="block">Obtain a column index value.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>colNum</code> - column number</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>column index value</dd>
</dl>
</li>
</ul>
<a name="getNumRows--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getNumRows</h4>
<pre>public&nbsp;int&nbsp;getNumRows()</pre>
<div class="block">Get number of rows contained in the ColGroup.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>An integer that is the number of rows.</dd>
</dl>
</li>
</ul>
<a name="getNumCols--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getNumCols</h4>
<pre>public&nbsp;int&nbsp;getNumCols()</pre>
<div class="block">Obtain the number of columns in this column group.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>number of columns in this column group</dd>
</dl>
</li>
</ul>
<a name="getCompType--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCompType</h4>
<pre>public abstract&nbsp;<a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.CompressionType.html" title="enum in org.apache.sysds.runtime.compress.colgroup">AColGroup.CompressionType</a>&nbsp;getCompType()</pre>
<div class="block">Obtain the compression type.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>How the elements of the column group are compressed.</dd>
</dl>
</li>
</ul>
<a name="getColGroupType--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getColGroupType</h4>
<pre>public abstract&nbsp;<a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.ColGroupType.html" title="enum in org.apache.sysds.runtime.compress.colgroup">AColGroup.ColGroupType</a>&nbsp;getColGroupType()</pre>
<div class="block">Internally get the specific type of ColGroup, this could be extracted from the object but that does not allow for
nice switches in the code.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>ColGroupType of the object.</dd>
</dl>
</li>
</ul>
<a name="shiftColIndices-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>shiftColIndices</h4>
<pre>public&nbsp;void&nbsp;shiftColIndices(int&nbsp;offset)</pre>
</li>
</ul>
<a name="estimateInMemorySize--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>estimateInMemorySize</h4>
<pre>public abstract&nbsp;long&nbsp;estimateInMemorySize()</pre>
<div class="block">Note: Must be overridden by child classes to account for additional data and metadata</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>an upper bound on the number of bytes used to store this ColGroup in memory.</dd>
</dl>
</li>
</ul>
<a name="decompressToBlock-org.apache.sysds.runtime.matrix.data.MatrixBlock-int-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>decompressToBlock</h4>
<pre>public&nbsp;void&nbsp;decompressToBlock(<a href="../../../../../../org/apache/sysds/runtime/matrix/data/MatrixBlock.html" title="class in org.apache.sysds.runtime.matrix.data">MatrixBlock</a>&nbsp;target,
int&nbsp;rl,
int&nbsp;ru)</pre>
<div class="block">Decompress the contents of this column group into the specified full matrix block.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>target</code> - a matrix block where the columns covered by this column group have not yet been filled in.</dd>
<dd><code>rl</code> - row lower</dd>
<dd><code>ru</code> - row upper</dd>
</dl>
</li>
</ul>
<a name="decompressToBlock-org.apache.sysds.runtime.matrix.data.MatrixBlock-int-int-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>decompressToBlock</h4>
<pre>public&nbsp;void&nbsp;decompressToBlock(<a href="../../../../../../org/apache/sysds/runtime/matrix/data/MatrixBlock.html" title="class in org.apache.sysds.runtime.matrix.data">MatrixBlock</a>&nbsp;target,
int&nbsp;rl,
int&nbsp;ru,
int&nbsp;offT)</pre>
<div class="block">Decompress the contents of this column group into the specified full matrix block.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>target</code> - a matrix block where the columns covered by this column group have not yet been filled in.</dd>
<dd><code>rl</code> - The row to start at</dd>
<dd><code>ru</code> - The row to end at</dd>
<dd><code>offT</code> - The rowOffset into target to decompress to.</dd>
</dl>
</li>
</ul>
<a name="decompressToBlock-org.apache.sysds.runtime.matrix.data.MatrixBlock-int-int-double:A-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>decompressToBlock</h4>
<pre>public&nbsp;void&nbsp;decompressToBlock(<a href="../../../../../../org/apache/sysds/runtime/matrix/data/MatrixBlock.html" title="class in org.apache.sysds.runtime.matrix.data">MatrixBlock</a>&nbsp;target,
int&nbsp;rl,
int&nbsp;ru,
double[]&nbsp;values,
boolean&nbsp;safe)</pre>
<div class="block">Decompress the contents of this column group into the target matrixBlock, it is assumed that the target matrix
Block have the same number of columns and at least the number of rows ru.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>target</code> - The target matrixBlock to decompress into</dd>
<dd><code>rl</code> - The row to start at</dd>
<dd><code>ru</code> - The row to end at</dd>
<dd><code>values</code> - The dictionary values materialized.</dd>
<dd><code>safe</code> - Boolean specifying if the operation should be safe, aka counting nnz.</dd>
</dl>
</li>
</ul>
<a name="decompressToBlock-org.apache.sysds.runtime.matrix.data.MatrixBlock-int-int-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>decompressToBlock</h4>
<pre>public&nbsp;void&nbsp;decompressToBlock(<a href="../../../../../../org/apache/sysds/runtime/matrix/data/MatrixBlock.html" title="class in org.apache.sysds.runtime.matrix.data">MatrixBlock</a>&nbsp;target,
int&nbsp;rl,
int&nbsp;ru,
boolean&nbsp;safe)</pre>
</li>
</ul>
<a name="decompressToBlock-org.apache.sysds.runtime.matrix.data.MatrixBlock-int-int-int-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>decompressToBlock</h4>
<pre>public&nbsp;void&nbsp;decompressToBlock(<a href="../../../../../../org/apache/sysds/runtime/matrix/data/MatrixBlock.html" title="class in org.apache.sysds.runtime.matrix.data">MatrixBlock</a>&nbsp;target,
int&nbsp;rl,
int&nbsp;ru,
int&nbsp;offT,
boolean&nbsp;safe)</pre>
</li>
</ul>
<a name="decompressToBlock-org.apache.sysds.runtime.matrix.data.MatrixBlock-int-int-int-double:A-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>decompressToBlock</h4>
<pre>public&nbsp;void&nbsp;decompressToBlock(<a href="../../../../../../org/apache/sysds/runtime/matrix/data/MatrixBlock.html" title="class in org.apache.sysds.runtime.matrix.data">MatrixBlock</a>&nbsp;target,
int&nbsp;rl,
int&nbsp;ru,
int&nbsp;offT,
double[]&nbsp;values,
boolean&nbsp;safe)</pre>
</li>
</ul>
<a name="decompressToBlockSafe-org.apache.sysds.runtime.matrix.data.MatrixBlock-int-int-int-double:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>decompressToBlockSafe</h4>
<pre>public abstract&nbsp;void&nbsp;decompressToBlockSafe(<a href="../../../../../../org/apache/sysds/runtime/matrix/data/MatrixBlock.html" title="class in org.apache.sysds.runtime.matrix.data">MatrixBlock</a>&nbsp;target,
int&nbsp;rl,
int&nbsp;ru,
int&nbsp;offT,
double[]&nbsp;values)</pre>
<div class="block">Decompress the contents of this column group into the specified full matrix block without managing the number of
non zeros.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>target</code> - a matrix block where the columns covered by this column group have not yet been filled in.</dd>
<dd><code>rl</code> - row lower</dd>
<dd><code>ru</code> - row upper</dd>
<dd><code>offT</code> - Offset into target to assign from</dd>
<dd><code>values</code> - The Values materialized in the dictionary</dd>
</dl>
</li>
</ul>
<a name="decompressToBlockUnSafe-org.apache.sysds.runtime.matrix.data.MatrixBlock-int-int-int-double:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>decompressToBlockUnSafe</h4>
<pre>public abstract&nbsp;void&nbsp;decompressToBlockUnSafe(<a href="../../../../../../org/apache/sysds/runtime/matrix/data/MatrixBlock.html" title="class in org.apache.sysds.runtime.matrix.data">MatrixBlock</a>&nbsp;target,
int&nbsp;rl,
int&nbsp;ru,
int&nbsp;offT,
double[]&nbsp;values)</pre>
</li>
</ul>
<a name="decompressToBlock-org.apache.sysds.runtime.matrix.data.MatrixBlock-int-int-int-double:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>decompressToBlock</h4>
<pre>public&nbsp;void&nbsp;decompressToBlock(<a href="../../../../../../org/apache/sysds/runtime/matrix/data/MatrixBlock.html" title="class in org.apache.sysds.runtime.matrix.data">MatrixBlock</a>&nbsp;target,
int&nbsp;rl,
int&nbsp;ru,
int&nbsp;offT,
double[]&nbsp;values)</pre>
<div class="block">Decompress the contents of this column group into the specified full matrix block.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>target</code> - a matrix block where the columns covered by this column group have not yet been filled in.</dd>
<dd><code>rl</code> - row lower</dd>
<dd><code>ru</code> - row upper</dd>
<dd><code>offT</code> - The offset into the target matrix block to decompress to.</dd>
<dd><code>values</code> - The Values materialized in the dictionary</dd>
</dl>
</li>
</ul>
<a name="decompressToBlock-org.apache.sysds.runtime.matrix.data.MatrixBlock-int:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>decompressToBlock</h4>
<pre>public abstract&nbsp;void&nbsp;decompressToBlock(<a href="../../../../../../org/apache/sysds/runtime/matrix/data/MatrixBlock.html" title="class in org.apache.sysds.runtime.matrix.data">MatrixBlock</a>&nbsp;target,
int[]&nbsp;colIndexTargets)</pre>
<div class="block">Decompress the contents of this column group into uncompressed packed columns</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>target</code> - a dense matrix block. The block must have enough space to hold the contents of this column
group.</dd>
<dd><code>colIndexTargets</code> - array that maps column indices in the original matrix block to columns of target.</dd>
</dl>
</li>
</ul>
<a name="decompressColumnToBlock-org.apache.sysds.runtime.matrix.data.MatrixBlock-int-java.util.List-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>decompressColumnToBlock</h4>
<pre>public static&nbsp;void&nbsp;decompressColumnToBlock(<a href="../../../../../../org/apache/sysds/runtime/matrix/data/MatrixBlock.html" title="class in org.apache.sysds.runtime.matrix.data">MatrixBlock</a>&nbsp;target,
int&nbsp;colIndex,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.html" title="class in org.apache.sysds.runtime.compress.colgroup">AColGroup</a>&gt;&nbsp;colGroups)</pre>
<div class="block">Decompress an entire column into the target matrix block. This decompression maintain the number of non zeros.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>target</code> - Target matrix block to decompress into.</dd>
<dd><code>colIndex</code> - The column index to decompress.</dd>
<dd><code>colGroups</code> - The list of column groups to decompress.</dd>
</dl>
</li>
</ul>
<a name="decompressColumnToArray-double:A-int-java.util.List-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>decompressColumnToArray</h4>
<pre>public static&nbsp;void&nbsp;decompressColumnToArray(double[]&nbsp;target,
int&nbsp;colIndex,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.html" title="class in org.apache.sysds.runtime.compress.colgroup">AColGroup</a>&gt;&nbsp;colGroups)</pre>
</li>
</ul>
<a name="decompressColumnToBlock-org.apache.sysds.runtime.matrix.data.MatrixBlock-int-int-int-java.util.List-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>decompressColumnToBlock</h4>
<pre>public static&nbsp;void&nbsp;decompressColumnToBlock(<a href="../../../../../../org/apache/sysds/runtime/matrix/data/MatrixBlock.html" title="class in org.apache.sysds.runtime.matrix.data">MatrixBlock</a>&nbsp;target,
int&nbsp;colIndex,
int&nbsp;rl,
int&nbsp;ru,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.html" title="class in org.apache.sysds.runtime.compress.colgroup">AColGroup</a>&gt;&nbsp;colGroups)</pre>
<div class="block">Decompress part of the col groups into the target matrix block, this decompression maintain the number of non
zeros.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>target</code> - The Target matrix block to decompress into</dd>
<dd><code>colIndex</code> - The column index to decompress.</dd>
<dd><code>rl</code> - The row to start the decompression from</dd>
<dd><code>ru</code> - The row to end the decompression at</dd>
<dd><code>colGroups</code> - The list of column groups to decompress.</dd>
</dl>
</li>
</ul>
<a name="decompressColumnToBlockUnSafe-org.apache.sysds.runtime.matrix.data.MatrixBlock-int-int-java.util.List-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>decompressColumnToBlockUnSafe</h4>
<pre>public static&nbsp;void&nbsp;decompressColumnToBlockUnSafe(<a href="../../../../../../org/apache/sysds/runtime/matrix/data/MatrixBlock.html" title="class in org.apache.sysds.runtime.matrix.data">MatrixBlock</a>&nbsp;target,
int&nbsp;rl,
int&nbsp;ru,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.html" title="class in org.apache.sysds.runtime.compress.colgroup">AColGroup</a>&gt;&nbsp;colGroups)</pre>
<div class="block">Decompress part of the col groups into the target matrix block, this decompression maintain the number of non
zeros.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>target</code> - The Target matrix block to decompress into</dd>
<dd><code>rl</code> - The row to start the decompression from</dd>
<dd><code>ru</code> - The row to end the decompression at</dd>
<dd><code>colGroups</code> - The list of column groups to decompress.</dd>
</dl>
</li>
</ul>
<a name="decompressColumnToBlock-double:A-int-int-int-java.util.List-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>decompressColumnToBlock</h4>
<pre>public static&nbsp;void&nbsp;decompressColumnToBlock(double[]&nbsp;target,
int&nbsp;colIndex,
int&nbsp;rl,
int&nbsp;ru,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.html" title="class in org.apache.sysds.runtime.compress.colgroup">AColGroup</a>&gt;&nbsp;colGroups)</pre>
<div class="block">Decompress part of the col groups into the target dense double array. This assumes that the double array is a row
linearized matrix double array.
This is much faster than decompressing into a target matrix block since nnz is not managed.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>target</code> - Target double array to decompress into</dd>
<dd><code>colIndex</code> - The column index to decompress.</dd>
<dd><code>rl</code> - The row to start decompression from</dd>
<dd><code>ru</code> - The row to end the decompression at</dd>
<dd><code>colGroups</code> - The list of column groups to decompress.</dd>
</dl>
</li>
</ul>
<a name="decompressColumnToBlock-org.apache.sysds.runtime.matrix.data.MatrixBlock-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>decompressColumnToBlock</h4>
<pre>public abstract&nbsp;void&nbsp;decompressColumnToBlock(<a href="../../../../../../org/apache/sysds/runtime/matrix/data/MatrixBlock.html" title="class in org.apache.sysds.runtime.matrix.data">MatrixBlock</a>&nbsp;target,
int&nbsp;colpos)</pre>
<div class="block">Decompress to block.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>target</code> - dense output vector</dd>
<dd><code>colpos</code> - column to decompress, error if larger or equal numCols</dd>
</dl>
</li>
</ul>
<a name="decompressColumnToBlock-org.apache.sysds.runtime.matrix.data.MatrixBlock-int-int-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>decompressColumnToBlock</h4>
<pre>public abstract&nbsp;void&nbsp;decompressColumnToBlock(<a href="../../../../../../org/apache/sysds/runtime/matrix/data/MatrixBlock.html" title="class in org.apache.sysds.runtime.matrix.data">MatrixBlock</a>&nbsp;target,
int&nbsp;colpos,
int&nbsp;rl,
int&nbsp;ru)</pre>
<div class="block">Decompress to block.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>target</code> - dense output vector</dd>
<dd><code>colpos</code> - column to decompress, error if larger or equal numCols</dd>
<dd><code>rl</code> - the Row to start decompression from</dd>
<dd><code>ru</code> - the Row to end decompression at</dd>
</dl>
</li>
</ul>
<a name="decompressColumnToBlock-double:A-int-int-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>decompressColumnToBlock</h4>
<pre>public abstract&nbsp;void&nbsp;decompressColumnToBlock(double[]&nbsp;target,
int&nbsp;colpos,
int&nbsp;rl,
int&nbsp;ru)</pre>
<div class="block">Decompress to dense array.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>target</code> - dense output vector double array.</dd>
<dd><code>colpos</code> - column to decompress, error if larger or equal numCols</dd>
<dd><code>rl</code> - the Row to start decompression from</dd>
<dd><code>ru</code> - the Row to end decompression at</dd>
</dl>
</li>
</ul>
<a name="write-java.io.DataOutput-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>write</h4>
<pre>public abstract&nbsp;void&nbsp;write(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/DataOutput.html?is-external=true" title="class or interface in java.io">DataOutput</a>&nbsp;out)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Serializes column group to data output.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>out</code> - data output</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - if IOException occurs</dd>
</dl>
</li>
</ul>
<a name="readFields-java.io.DataInput-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readFields</h4>
<pre>public abstract&nbsp;void&nbsp;readFields(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/DataInput.html?is-external=true" title="class or interface in java.io">DataInput</a>&nbsp;in)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Deserialize column group from data input.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>in</code> - data input</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - if IOException occurs</dd>
</dl>
</li>
</ul>
<a name="getExactSizeOnDisk--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getExactSizeOnDisk</h4>
<pre>public abstract&nbsp;long&nbsp;getExactSizeOnDisk()</pre>
<div class="block">Returns the exact serialized size of column group. This can be used for example for buffer preallocation.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>exact serialized size for column group</dd>
</dl>
</li>
</ul>
<a name="get-int-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>get</h4>
<pre>public abstract&nbsp;double&nbsp;get(int&nbsp;r,
int&nbsp;c)</pre>
<div class="block">Get the value at a global row/column position.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>r</code> - row</dd>
<dd><code>c</code> - column</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>value at the row/column position</dd>
</dl>
</li>
</ul>
<a name="getValues--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getValues</h4>
<pre>public abstract&nbsp;double[]&nbsp;getValues()</pre>
<div class="block">Get all the values in the colGroup. Note that this is only the stored values not the way they are stored. Making
the output a list of values used in that colGroup not the actual full column.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a double list of values.</dd>
</dl>
</li>
</ul>
<a name="getValuesAsBlock--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getValuesAsBlock</h4>
<pre>public abstract&nbsp;<a href="../../../../../../org/apache/sysds/runtime/matrix/data/MatrixBlock.html" title="class in org.apache.sysds.runtime.matrix.data">MatrixBlock</a>&nbsp;getValuesAsBlock()</pre>
<div class="block">Returns the ColGroup as a MatrixBlock. Used as a fall back solution in case a operation is not supported. Use in
connection to getIfCountsType to get if the values are repeated.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Matrix Block of the contained Values. Possibly contained in groups.</dd>
</dl>
</li>
</ul>
<a name="getIfCountsType--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getIfCountsType</h4>
<pre>public abstract&nbsp;boolean&nbsp;getIfCountsType()</pre>
<div class="block">Returns true if in the getValuesAsBlock method returns values in groups (that needs to be counted) or
individually potentially repeated values</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>boolean</dd>
</dl>
</li>
</ul>
<a name="rightMultByVector-double:A-double:A-int-int-double:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>rightMultByVector</h4>
<pre>public abstract&nbsp;void&nbsp;rightMultByVector(double[]&nbsp;vector,
double[]&nbsp;c,
int&nbsp;rl,
int&nbsp;ru,
double[]&nbsp;dictVals)</pre>
<div class="block">Multiply the slice of the matrix that this column group represents by a vector on the right.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>vector</code> - Vector to multiply by (tall vector)</dd>
<dd><code>c</code> - Accumulator for holding the result</dd>
<dd><code>rl</code> - Row to start at</dd>
<dd><code>ru</code> - Row to stop at</dd>
<dd><code>dictVals</code> - The dictionary values materialized</dd>
</dl>
</li>
</ul>
<a name="rightMultByMatrix-int:A-double:A-double:A-int-int-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>rightMultByMatrix</h4>
<pre>public abstract&nbsp;void&nbsp;rightMultByMatrix(int[]&nbsp;outputColumns,
double[]&nbsp;preAggregatedB,
double[]&nbsp;c,
int&nbsp;thatNrColumns,
int&nbsp;rl,
int&nbsp;ru)</pre>
<div class="block">Right multiply by matrix. for which the compressed matrix is on the left and the uncompressed is on the right.
Note that there is no b argument, but the b is aggregated into the values needed for assignment and addition into
output.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>outputColumns</code> - The Columns that are affected by the right multiplication.</dd>
<dd><code>preAggregatedB</code> - The preAggregated values that is to be put into c</dd>
<dd><code>c</code> - The output matrix</dd>
<dd><code>thatNrColumns</code> - The number of columns in B (before aggregation)</dd>
<dd><code>rl</code> - The row index to start the multiplication from</dd>
<dd><code>ru</code> - The row index to stop the multiplication at</dd>
</dl>
</li>
</ul>
<a name="leftMultByRowVector-double:A-double:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>leftMultByRowVector</h4>
<pre>public abstract&nbsp;void&nbsp;leftMultByRowVector(double[]&nbsp;vector,
double[]&nbsp;result)</pre>
<div class="block">Multiply the slice of the matrix that this column group represents by a row vector on the left (the original
column vector is assumed to be transposed already i.e. its size now is 1xn).</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>vector</code> - row vector</dd>
<dd><code>result</code> - matrix block result</dd>
</dl>
</li>
</ul>
<a name="leftMultByRowVector-double:A-double:A-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>leftMultByRowVector</h4>
<pre>public abstract&nbsp;void&nbsp;leftMultByRowVector(double[]&nbsp;vector,
double[]&nbsp;result,
int&nbsp;offT)</pre>
<div class="block">Multiply the slice of the matrix that this column group represents by a row vector on the left (the original
column vector is assumed to be transposed already i.e. its size now is 1xn).</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>vector</code> - row vector</dd>
<dd><code>result</code> - matrix block result</dd>
<dd><code>offT</code> - The offset into target result array to put the result values.</dd>
</dl>
</li>
</ul>
<a name="leftMultByRowVector-double:A-double:A-int-double:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>leftMultByRowVector</h4>
<pre>public abstract&nbsp;void&nbsp;leftMultByRowVector(double[]&nbsp;vector,
double[]&nbsp;result,
int&nbsp;numVals,
double[]&nbsp;values)</pre>
<div class="block">Multiply the slice of the matrix that this column group represents by a row vector on the left (the original
column vector is assumed to be transposed already i.e. its size now is 1xn).</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>vector</code> - Row vector</dd>
<dd><code>result</code> - Matrix block result</dd>
<dd><code>numVals</code> - The Number of values contained in the Column.</dd>
<dd><code>values</code> - The materialized list of values contained in the dictionary.</dd>
</dl>
</li>
</ul>
<a name="leftMultByRowVector-double:A-double:A-int-double:A-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>leftMultByRowVector</h4>
<pre>public abstract&nbsp;void&nbsp;leftMultByRowVector(double[]&nbsp;vector,
double[]&nbsp;result,
int&nbsp;numVals,
double[]&nbsp;values,
int&nbsp;offT)</pre>
<div class="block">Multiply the slice of the matrix that this column group represents by a row vector on the left (the original
column vector is assumed to be transposed already i.e. its size now is 1xn).</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>vector</code> - Row vector</dd>
<dd><code>result</code> - Matrix block result</dd>
<dd><code>numVals</code> - The Number of values contained in the Column.</dd>
<dd><code>values</code> - The materialized list of values contained in the dictionary.</dd>
<dd><code>offT</code> - The offset into target result array to put the result values.</dd>
</dl>
</li>
</ul>
<a name="leftMultBySelfDiagonalColGroup-double:A-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>leftMultBySelfDiagonalColGroup</h4>
<pre>public abstract&nbsp;void&nbsp;leftMultBySelfDiagonalColGroup(double[]&nbsp;result,
int&nbsp;numColumns)</pre>
</li>
</ul>
<a name="leftMultByMatrix-double:A-double:A-double:A-int-int-int-int-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>leftMultByMatrix</h4>
<pre>public abstract&nbsp;void&nbsp;leftMultByMatrix(double[]&nbsp;matrix,
double[]&nbsp;result,
double[]&nbsp;values,
int&nbsp;numRows,
int&nbsp;numCols,
int&nbsp;rl,
int&nbsp;ru,
int&nbsp;vOff)</pre>
<div class="block">Multiply with a matrix on the left.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>matrix</code> - matrix to left multiply</dd>
<dd><code>result</code> - matrix block result</dd>
<dd><code>values</code> - The materialized list of values contained in the dictionary.</dd>
<dd><code>numRows</code> - The number of rows in the matrix input</dd>
<dd><code>numCols</code> - The number of columns in the colGroups parent matrix.</dd>
<dd><code>rl</code> - The row to start the matrix multiplication from</dd>
<dd><code>ru</code> - The row to stop the matrix multiplication at.</dd>
<dd><code>vOff</code> - The offset into the first argument matrix to start at.</dd>
</dl>
</li>
</ul>
<a name="leftMultBySparseMatrix-org.apache.sysds.runtime.data.SparseBlock-double:A-double:A-int-int-int-double:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>leftMultBySparseMatrix</h4>
<pre>public abstract&nbsp;void&nbsp;leftMultBySparseMatrix(<a href="../../../../../../org/apache/sysds/runtime/data/SparseBlock.html" title="class in org.apache.sysds.runtime.data">SparseBlock</a>&nbsp;sb,
double[]&nbsp;result,
double[]&nbsp;values,
int&nbsp;numRows,
int&nbsp;numCols,
int&nbsp;row,
double[]&nbsp;MaterializedRow)</pre>
<div class="block">Multiply with a sparse matrix on the left hand side, and add the values to the output result</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sb</code> - The sparse block to multiply with</dd>
<dd><code>result</code> - The linearized output matrix</dd>
<dd><code>values</code> - The dictionary values materialized</dd>
<dd><code>numRows</code> - The number of rows in the left hand side input matrix (the sparse one)</dd>
<dd><code>numCols</code> - The number of columns in the compression.</dd>
<dd><code>row</code> - The row index of the sparse row to multiply with.</dd>
<dd><code>MaterializedRow</code> - A Temporary dense row vector to materialize the sparse values into used for OLE</dd>
</dl>
</li>
</ul>
<a name="scalarOperation-org.apache.sysds.runtime.matrix.operators.ScalarOperator-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>scalarOperation</h4>
<pre>public abstract&nbsp;<a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.html" title="class in org.apache.sysds.runtime.compress.colgroup">AColGroup</a>&nbsp;scalarOperation(<a href="../../../../../../org/apache/sysds/runtime/matrix/operators/ScalarOperator.html" title="class in org.apache.sysds.runtime.matrix.operators">ScalarOperator</a>&nbsp;op)</pre>
<div class="block">Perform the specified scalar operation directly on the compressed column group, without decompressing individual
cells if possible.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>op</code> - operation to perform</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>version of this column group with the operation applied</dd>
</dl>
</li>
</ul>
<a name="binaryRowOp-org.apache.sysds.runtime.matrix.operators.BinaryOperator-double:A-boolean-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>binaryRowOp</h4>
<pre>public abstract&nbsp;<a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.html" title="class in org.apache.sysds.runtime.compress.colgroup">AColGroup</a>&nbsp;binaryRowOp(<a href="../../../../../../org/apache/sysds/runtime/matrix/operators/BinaryOperator.html" title="class in org.apache.sysds.runtime.matrix.operators">BinaryOperator</a>&nbsp;op,
double[]&nbsp;v,
boolean&nbsp;sparseSafe,
boolean&nbsp;left)</pre>
<div class="block">Perform a binary row operation.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>op</code> - The operation to execute</dd>
<dd><code>v</code> - The vector of values to apply, should be same length as dictionary length.</dd>
<dd><code>sparseSafe</code> - True if the operation return 0 on all instances of values in v -- op(v[?], 0)</dd>
<dd><code>left</code> - Specifies if the operation is executed on the left or right side of the values contained.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A updated column group with the new values.</dd>
</dl>
</li>
</ul>
<a name="unaryAggregateOperations-org.apache.sysds.runtime.matrix.operators.AggregateUnaryOperator-double:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>unaryAggregateOperations</h4>
<pre>public abstract&nbsp;void&nbsp;unaryAggregateOperations(<a href="../../../../../../org/apache/sysds/runtime/matrix/operators/AggregateUnaryOperator.html" title="class in org.apache.sysds.runtime.matrix.operators">AggregateUnaryOperator</a>&nbsp;op,
double[]&nbsp;c)</pre>
<div class="block">Unary Aggregate operator, since aggregate operators require new object output, the output becomes an uncompressed
matrix.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>op</code> - The operator used</dd>
<dd><code>c</code> - Rhe output matrix block.</dd>
</dl>
</li>
</ul>
<a name="unaryAggregateOperations-org.apache.sysds.runtime.matrix.operators.AggregateUnaryOperator-double:A-int-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>unaryAggregateOperations</h4>
<pre>public abstract&nbsp;void&nbsp;unaryAggregateOperations(<a href="../../../../../../org/apache/sysds/runtime/matrix/operators/AggregateUnaryOperator.html" title="class in org.apache.sysds.runtime.matrix.operators">AggregateUnaryOperator</a>&nbsp;op,
double[]&nbsp;c,
int&nbsp;rl,
int&nbsp;ru)</pre>
<div class="block">Unary Aggregate operator, since aggregate operators require new object output, the output becomes an uncompressed
matrix.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>op</code> - The operator used</dd>
<dd><code>c</code> - The output matrix block.</dd>
<dd><code>rl</code> - The Starting Row to do aggregation from</dd>
<dd><code>ru</code> - The last Row to do aggregation to (not included)</dd>
</dl>
</li>
</ul>
<a name="countNonZerosPerRow-int:A-int-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>countNonZerosPerRow</h4>
<pre>public abstract&nbsp;void&nbsp;countNonZerosPerRow(int[]&nbsp;rnnz,
int&nbsp;rl,
int&nbsp;ru)</pre>
<div class="block">Count the number of non-zeros per row</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>rnnz</code> - non-zeros per row</dd>
<dd><code>rl</code> - row lower bound, inclusive</dd>
<dd><code>ru</code> - row upper bound, exclusive</dd>
</dl>
</li>
</ul>
<a name="isLossy--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isLossy</h4>
<pre>public abstract&nbsp;boolean&nbsp;isLossy()</pre>
<div class="block">Is Lossy</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>returns if the ColGroup is compressed in a lossy manner.</dd>
</dl>
</li>
</ul>
<a name="isDense--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isDense</h4>
<pre>public&nbsp;boolean&nbsp;isDense()</pre>
<div class="block">Is dense, signals that the entire column group is allocated an processed. This is useful in Row wise min and max
for instance, to avoid having to scan through each row to look for empty rows.
an example where it is true is DDC, Const and Uncompressed. examples where false is OLE and RLE.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>returns if the colgroup is allocated in a dense fashion.</dd>
</dl>
</li>
</ul>
<a name="sliceColumns-int-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>sliceColumns</h4>
<pre>public abstract&nbsp;<a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.html" title="class in org.apache.sysds.runtime.compress.colgroup">AColGroup</a>&nbsp;sliceColumns(int&nbsp;cl,
int&nbsp;cu)</pre>
<div class="block">Slice out the columns within the range of cl and cu to remove the dictionary values related to these columns. If
the ColGroup slicing from does not contain any columns within the range null is returned.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>cl</code> - The lower bound of the columns to select</dd>
<dd><code>cu</code> - The upper bound of the columns to select (not inclusive).</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A cloned Column Group, with a copied pointer to the old column groups index structure, but reduced
dictionary and _columnIndexes correctly aligned with the expected sliced compressed matrix.</dd>
</dl>
</li>
</ul>
<a name="getMin--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMin</h4>
<pre>public abstract&nbsp;double&nbsp;getMin()</pre>
</li>
</ul>
<a name="getMax--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMax</h4>
<pre>public abstract&nbsp;double&nbsp;getMax()</pre>
</li>
</ul>
<a name="copy--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>copy</h4>
<pre>public abstract&nbsp;<a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.html" title="class in org.apache.sysds.runtime.compress.colgroup">AColGroup</a>&nbsp;copy()</pre>
</li>
</ul>
<a name="containsValue-double-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>containsValue</h4>
<pre>public abstract&nbsp;boolean&nbsp;containsValue(double&nbsp;pattern)</pre>
</li>
</ul>
<a name="getNumberNonZeros--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getNumberNonZeros</h4>
<pre>public abstract&nbsp;long&nbsp;getNumberNonZeros()</pre>
</li>
</ul>
<a name="toString--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>toString</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;toString()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/AColGroup.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev&nbsp;Class</li>
<li><a href="../../../../../../org/apache/sysds/runtime/compress/colgroup/AColGroup.ColGroupType.html" title="enum in org.apache.sysds.runtime.compress.colgroup"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/sysds/runtime/compress/colgroup/AColGroup.html" target="_top">Frames</a></li>
<li><a href="AColGroup.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2021 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>