blob: db9d242a9f88c7f8735fb03bef6dec6caf0cf3f5 [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>OptimizerUtils (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="OptimizerUtils (SystemDS 2.1.0-SNAPSHOT API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9,"i7":9,"i8":9,"i9":9,"i10":9,"i11":9,"i12":9,"i13":9,"i14":9,"i15":9,"i16":9,"i17":9,"i18":9,"i19":9,"i20":9,"i21":9,"i22":9,"i23":9,"i24":9,"i25":9,"i26":9,"i27":9,"i28":9,"i29":9,"i30":9,"i31":9,"i32":9,"i33":9,"i34":9,"i35":9,"i36":9,"i37":9,"i38":9,"i39":9,"i40":9,"i41":9,"i42":9,"i43":9,"i44":9,"i45":9,"i46":9,"i47":9,"i48":9,"i49":9,"i50":9,"i51":9,"i52":9,"i53":9,"i54":9,"i55":9,"i56":9,"i57":9,"i58":9,"i59":9,"i60":9,"i61":9,"i62":9,"i63":9,"i64":9,"i65":9,"i66":9,"i67":9,"i68":9,"i69":9,"i70":9,"i71":9,"i72":9,"i73":9,"i74":9};
var tabs = {65535:["t0","All Methods"],1:["t1","Static 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/OptimizerUtils.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><a href="../../../../org/apache/sysds/hops/NaryOp.html" title="class in org.apache.sysds.hops"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/apache/sysds/hops/OptimizerUtils.OptimizationLevel.html" title="enum in org.apache.sysds.hops"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/sysds/hops/OptimizerUtils.html" target="_top">Frames</a></li>
<li><a href="OptimizerUtils.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><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&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.hops</div>
<h2 title="Class OptimizerUtils" class="title">Class OptimizerUtils</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.hops.OptimizerUtils</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public class <span class="typeNameLabel">OptimizerUtils</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></pre>
</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/hops/OptimizerUtils.OptimizationLevel.html" title="enum in org.apache.sysds.hops">OptimizerUtils.OptimizationLevel</a></span></code>
<div class="block">Optimization Types for Compilation
O0 STATIC - Decisions for scheduling operations on CP/MR are based on
predefined set of rules, which check if the dimensions are below a
fixed/static threshold (OLD Method of choosing between CP and MR).</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#ALLOW_ALGEBRAIC_SIMPLIFICATION">ALLOW_ALGEBRAIC_SIMPLIFICATION</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#ALLOW_AUTO_VECTORIZATION">ALLOW_AUTO_VECTORIZATION</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#ALLOW_BRANCH_REMOVAL">ALLOW_BRANCH_REMOVAL</a></span></code>
<div class="block">Enables if-else branch removal for constant predicates (original literals or
results of constant folding).</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#ALLOW_CODE_MOTION">ALLOW_CODE_MOTION</a></span></code>
<div class="block">Enables a specific rewrite for code motion, i.e., hoisting loop invariant code
out of while, for, and parfor loops.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#ALLOW_COMBINE_FILE_INPUT_FORMAT">ALLOW_COMBINE_FILE_INPUT_FORMAT</a></span></code>
<div class="block">Enables the use of CombineSequenceFileInputFormat with splitsize = 2x hdfs blocksize,
if sort buffer size large enough and parallelism not hurt.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#ALLOW_COMMON_SUBEXPRESSION_ELIMINATION">ALLOW_COMMON_SUBEXPRESSION_ELIMINATION</a></span></code>
<div class="block">Enables common subexpression elimination in dags.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#ALLOW_CONSTANT_FOLDING">ALLOW_CONSTANT_FOLDING</a></span></code>
<div class="block">Enables constant folding in dags.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#ALLOW_FOR_LOOP_REMOVAL">ALLOW_FOR_LOOP_REMOVAL</a></span></code>
<div class="block">Enables the removal of (par)for-loops when from, to, and increment are constants
(original literals or results of constant folding) and lead to an empty sequence,
i.e., (par)for-loops without a single iteration.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#ALLOW_INTER_PROCEDURAL_ANALYSIS">ALLOW_INTER_PROCEDURAL_ANALYSIS</a></span></code>
<div class="block">Enables interprocedural analysis between main script and functions as well as functions
and other functions.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#ALLOW_LOOP_UPDATE_IN_PLACE">ALLOW_LOOP_UPDATE_IN_PLACE</a></span></code>
<div class="block">Enables a specific rewrite that enables update in place for loop variables that are
only read/updated via cp leftindexing.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#ALLOW_OPERATOR_FUSION">ALLOW_OPERATOR_FUSION</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#ALLOW_RAND_JOB_RECOMPILE">ALLOW_RAND_JOB_RECOMPILE</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#ALLOW_RUNTIME_PIGGYBACKING">ALLOW_RUNTIME_PIGGYBACKING</a></span></code>
<div class="block">Enables parfor runtime piggybacking of MR jobs into the packed jobs for
scan sharing.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#ALLOW_SCRIPT_LEVEL_COMPRESS_COMMAND">ALLOW_SCRIPT_LEVEL_COMPRESS_COMMAND</a></span></code>
<div class="block">This variable allows for insertion of Compress and decompress in the dml script from the user.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#ALLOW_SIZE_EXPRESSION_EVALUATION">ALLOW_SIZE_EXPRESSION_EVALUATION</a></span></code>
<div class="block">Enables simple expression evaluation for datagen parameters 'rows', 'cols'.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#ALLOW_SPLIT_HOP_DAGS">ALLOW_SPLIT_HOP_DAGS</a></span></code>
<div class="block">Enables a specific hop dag rewrite that splits hop dags after csv persistent reads with
unknown size in order to allow for recompile.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#ALLOW_SUM_PRODUCT_REWRITES">ALLOW_SUM_PRODUCT_REWRITES</a></span></code>
<div class="block">Enables sum product rewrites such as mapmultchains.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#ALLOW_WORSTCASE_SIZE_EXPRESSION_EVALUATION">ALLOW_WORSTCASE_SIZE_EXPRESSION_EVALUATION</a></span></code>
<div class="block">Enables simple expression evaluation for datagen parameters 'rows', 'cols'.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#BOOLEAN_SIZE">BOOLEAN_SIZE</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#CHAR_SIZE">CHAR_SIZE</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#DEFAULT_BLOCKSIZE">DEFAULT_BLOCKSIZE</a></span></code>
<div class="block">Default blocksize if unspecified or for testing purposes</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#DEFAULT_FRAME_BLOCKSIZE">DEFAULT_FRAME_BLOCKSIZE</a></span></code>
<div class="block">Default frame blocksize</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/sysds/hops/OptimizerUtils.OptimizationLevel.html" title="enum in org.apache.sysds.hops">OptimizerUtils.OptimizationLevel</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#DEFAULT_OPTLEVEL">DEFAULT_OPTLEVEL</a></span></code>
<div class="block">Default optimization level if unspecified</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static double</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#DEFAULT_SIZE">DEFAULT_SIZE</a></span></code>
<div class="block">Default memory size, which is used if the actual estimate can not be computed
e.g., when input/output dimensions are unknown.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#DOUBLE_SIZE">DOUBLE_SIZE</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#INT_SIZE">INT_SIZE</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static double</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#INVALID_SIZE">INVALID_SIZE</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#IPA_NUM_REPETITIONS">IPA_NUM_REPETITIONS</a></span></code>
<div class="block">Number of inter-procedural analysis (IPA) repetitions.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#MAX_NNZ_CP_SPARSE">MAX_NNZ_CP_SPARSE</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#MAX_NUMCELLS_CP_DENSE">MAX_NUMCELLS_CP_DENSE</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static double</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#MEM_UTIL_FACTOR">MEM_UTIL_FACTOR</a></span></code>
<div class="block">Utilization factor used in deciding whether an operation to be scheduled on CP or MR.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static double</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#PARALLEL_CP_READ_PARALLELISM_MULTIPLIER">PARALLEL_CP_READ_PARALLELISM_MULTIPLIER</a></span></code>
<div class="block">Specifies a multiplier computing the degree of parallelism of parallel
text read/write out of the available degree of parallelism.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static double</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#PARALLEL_CP_WRITE_PARALLELISM_MULTIPLIER">PARALLEL_CP_WRITE_PARALLELISM_MULTIPLIER</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#SAFE_REP_CHANGE_THRES">SAFE_REP_CHANGE_THRES</a></span></code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#OptimizerUtils--">OptimizerUtils</a></span>()</code>&nbsp;</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="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>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#allowsToFilterEmptyBlockOutputs-org.apache.sysds.hops.Hop-">allowsToFilterEmptyBlockOutputs</a></span>(<a href="../../../../org/apache/sysds/hops/Hop.html" title="class in org.apache.sysds.hops">Hop</a>&nbsp;hop)</code>&nbsp;</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#checkSparkBroadcastMemoryBudget-double-">checkSparkBroadcastMemoryBudget</a></span>(double&nbsp;size)</code>&nbsp;</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#checkSparkBroadcastMemoryBudget-long-long-long-long-">checkSparkBroadcastMemoryBudget</a></span>(long&nbsp;rlen,
long&nbsp;clen,
long&nbsp;blen,
long&nbsp;nnz)</code>&nbsp;</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#checkSparkCollectMemoryBudget-org.apache.sysds.runtime.meta.DataCharacteristics-long-">checkSparkCollectMemoryBudget</a></span>(<a href="../../../../org/apache/sysds/runtime/meta/DataCharacteristics.html" title="class in org.apache.sysds.runtime.meta">DataCharacteristics</a>&nbsp;dc,
long&nbsp;memPinned)</code>&nbsp;</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#checkSparkCollectMemoryBudget-org.apache.sysds.runtime.meta.DataCharacteristics-long-boolean-">checkSparkCollectMemoryBudget</a></span>(<a href="../../../../org/apache/sysds/runtime/meta/DataCharacteristics.html" title="class in org.apache.sysds.runtime.meta">DataCharacteristics</a>&nbsp;dc,
long&nbsp;memPinned,
boolean&nbsp;checkBP)</code>&nbsp;</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#checkSparseBlockCSRConversion-org.apache.sysds.runtime.meta.DataCharacteristics-">checkSparseBlockCSRConversion</a></span>(<a href="../../../../org/apache/sysds/runtime/meta/DataCharacteristics.html" title="class in org.apache.sysds.runtime.meta">DataCharacteristics</a>&nbsp;dcIn)</code>&nbsp;</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/sysds/conf/CompilerConfig.html" title="class in org.apache.sysds.conf">CompilerConfig</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#constructCompilerConfig-org.apache.sysds.conf.CompilerConfig-org.apache.sysds.conf.DMLConfig-">constructCompilerConfig</a></span>(<a href="../../../../org/apache/sysds/conf/CompilerConfig.html" title="class in org.apache.sysds.conf">CompilerConfig</a>&nbsp;cconf,
<a href="../../../../org/apache/sysds/conf/DMLConfig.html" title="class in org.apache.sysds.conf">DMLConfig</a>&nbsp;dmlconf)</code>&nbsp;</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/sysds/conf/CompilerConfig.html" title="class in org.apache.sysds.conf">CompilerConfig</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#constructCompilerConfig-org.apache.sysds.conf.DMLConfig-">constructCompilerConfig</a></span>(<a href="../../../../org/apache/sysds/conf/DMLConfig.html" title="class in org.apache.sysds.conf">DMLConfig</a>&nbsp;dmlconf)</code>&nbsp;</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#estimatePartitionedSizeExactSparsity-org.apache.sysds.runtime.meta.DataCharacteristics-">estimatePartitionedSizeExactSparsity</a></span>(<a href="../../../../org/apache/sysds/runtime/meta/DataCharacteristics.html" title="class in org.apache.sysds.runtime.meta">DataCharacteristics</a>&nbsp;dc)</code>
<div class="block">Estimates the footprint (in bytes) for a partitioned in-memory representation of a
matrix with the given matrix characteristics</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#estimatePartitionedSizeExactSparsity-org.apache.sysds.runtime.meta.DataCharacteristics-boolean-">estimatePartitionedSizeExactSparsity</a></span>(<a href="../../../../org/apache/sysds/runtime/meta/DataCharacteristics.html" title="class in org.apache.sysds.runtime.meta">DataCharacteristics</a>&nbsp;dc,
boolean&nbsp;outputEmptyBlocks)</code>&nbsp;</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#estimatePartitionedSizeExactSparsity-org.apache.sysds.hops.Hop-">estimatePartitionedSizeExactSparsity</a></span>(<a href="../../../../org/apache/sysds/hops/Hop.html" title="class in org.apache.sysds.hops">Hop</a>&nbsp;hop)</code>
<div class="block">Estimates the footprint (in bytes) for a partitioned in-memory representation of a
matrix with the hops dimensions and number of non-zeros nnz.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#estimatePartitionedSizeExactSparsity-long-long-long-double-">estimatePartitionedSizeExactSparsity</a></span>(long&nbsp;rlen,
long&nbsp;clen,
long&nbsp;blen,
double&nbsp;sp)</code>
<div class="block">Estimates the footprint (in bytes) for a partitioned in-memory representation of a
matrix with dimensions=(nrows,ncols) and sparsity=sp.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#estimatePartitionedSizeExactSparsity-long-long-long-double-boolean-">estimatePartitionedSizeExactSparsity</a></span>(long&nbsp;rlen,
long&nbsp;clen,
long&nbsp;blen,
double&nbsp;sp,
boolean&nbsp;outputEmptyBlocks)</code>&nbsp;</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#estimatePartitionedSizeExactSparsity-long-long-long-long-">estimatePartitionedSizeExactSparsity</a></span>(long&nbsp;rlen,
long&nbsp;clen,
long&nbsp;blen,
long&nbsp;nnz)</code>
<div class="block">Estimates the footprint (in bytes) for a partitioned in-memory representation of a
matrix with dimensions=(nrows,ncols) and number of non-zeros nnz.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#estimatePartitionedSizeExactSparsity-long-long-long-long-boolean-">estimatePartitionedSizeExactSparsity</a></span>(long&nbsp;rlen,
long&nbsp;clen,
long&nbsp;blen,
long&nbsp;nnz,
boolean&nbsp;outputEmptyBlocks)</code>&nbsp;</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#estimateSize-org.apache.sysds.runtime.meta.DataCharacteristics-">estimateSize</a></span>(<a href="../../../../org/apache/sysds/runtime/meta/DataCharacteristics.html" title="class in org.apache.sysds.runtime.meta">DataCharacteristics</a>&nbsp;dc)</code>&nbsp;</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#estimateSize-long-long-">estimateSize</a></span>(long&nbsp;nrows,
long&nbsp;ncols)</code>
<div class="block">Similar to estimate() except that it provides worst-case estimates
when the optimization type is ROBUST.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#estimateSizeEmptyBlock-long-long-">estimateSizeEmptyBlock</a></span>(long&nbsp;nrows,
long&nbsp;ncols)</code>&nbsp;</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#estimateSizeExactSparsity-org.apache.sysds.runtime.meta.DataCharacteristics-">estimateSizeExactSparsity</a></span>(<a href="../../../../org/apache/sysds/runtime/meta/DataCharacteristics.html" title="class in org.apache.sysds.runtime.meta">DataCharacteristics</a>&nbsp;dc)</code>&nbsp;</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#estimateSizeExactSparsity-long-long-double-">estimateSizeExactSparsity</a></span>(long&nbsp;nrows,
long&nbsp;ncols,
double&nbsp;sp)</code>
<div class="block">Estimates the footprint (in bytes) for an in-memory representation of a
matrix with dimensions=(nrows,ncols) and sparsity=sp.</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#estimateSizeExactSparsity-long-long-long-">estimateSizeExactSparsity</a></span>(long&nbsp;nrows,
long&nbsp;ncols,
long&nbsp;nnz)</code>
<div class="block">Estimates the footprint (in bytes) for an in-memory representation of a
matrix with dimensions=(nrows,ncols) and and number of non-zeros nnz.</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#estimateSizeTextOutput-int:A-long-org.apache.sysds.common.Types.FileFormat-">estimateSizeTextOutput</a></span>(int[]&nbsp;dims,
long&nbsp;nnz,
<a href="../../../../org/apache/sysds/common/Types.FileFormat.html" title="enum in org.apache.sysds.common">Types.FileFormat</a>&nbsp;fmt)</code>&nbsp;</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#estimateSizeTextOutput-long-long-long-org.apache.sysds.common.Types.FileFormat-">estimateSizeTextOutput</a></span>(long&nbsp;rows,
long&nbsp;cols,
long&nbsp;nnz,
<a href="../../../../org/apache/sysds/common/Types.FileFormat.html" title="enum in org.apache.sysds.common">Types.FileFormat</a>&nbsp;fmt)</code>&nbsp;</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#exceedsCachingThreshold-long-double-">exceedsCachingThreshold</a></span>(long&nbsp;dim2,
double&nbsp;outMem)</code>
<div class="block">Indicates if the given matrix characteristics exceed the threshold for
caching, i.e., the matrix should be cached.</div>
</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code>static double</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#getBinaryOpSparsity-double-double-org.apache.sysds.common.Types.OpOp2-boolean-">getBinaryOpSparsity</a></span>(double&nbsp;sp1,
double&nbsp;sp2,
<a href="../../../../org/apache/sysds/common/Types.OpOp2.html" title="enum in org.apache.sysds.common">Types.OpOp2</a>&nbsp;op,
boolean&nbsp;worstcase)</code>
<div class="block">Estimates the result sparsity for matrix-matrix binary operations (A op B)</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code>static double</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#getBinaryOpSparsityConditionalSparseSafe-double-org.apache.sysds.common.Types.OpOp2-org.apache.sysds.hops.LiteralOp-">getBinaryOpSparsityConditionalSparseSafe</a></span>(double&nbsp;sp1,
<a href="../../../../org/apache/sysds/common/Types.OpOp2.html" title="enum in org.apache.sysds.common">Types.OpOp2</a>&nbsp;op,
<a href="../../../../org/apache/sysds/hops/LiteralOp.html" title="class in org.apache.sysds.hops">LiteralOp</a>&nbsp;lit)</code>&nbsp;</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#getConstrainedNumThreads-int-">getConstrainedNumThreads</a></span>(int&nbsp;maxNumThreads)</code>&nbsp;</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/sysds/common/Types.ExecMode.html" title="enum in org.apache.sysds.common">Types.ExecMode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#getDefaultExecutionMode--">getDefaultExecutionMode</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#getDefaultFrameSize--">getDefaultFrameSize</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code>static org.apache.log4j.Level</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#getDefaultLogLevel--">getDefaultLogLevel</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i30" class="altColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#getDefaultSize--">getDefaultSize</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><code>static double</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#getLeftIndexingSparsity-long-long-long-long-long-long-">getLeftIndexingSparsity</a></span>(long&nbsp;rlen1,
long&nbsp;clen1,
long&nbsp;nnz1,
long&nbsp;rlen2,
long&nbsp;clen2,
long&nbsp;nnz2)</code>&nbsp;</td>
</tr>
<tr id="i32" class="altColor">
<td class="colFirst"><code>static double</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#getLocalMemBudget--">getLocalMemBudget</a></span>()</code>
<div class="block">Returns memory budget (according to util factor) in bytes</div>
</td>
</tr>
<tr id="i33" class="rowColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#getMatMultNnz-double-double-long-long-long-boolean-">getMatMultNnz</a></span>(double&nbsp;sp1,
double&nbsp;sp2,
long&nbsp;m,
long&nbsp;k,
long&nbsp;n,
boolean&nbsp;worstcase)</code>&nbsp;</td>
</tr>
<tr id="i34" class="altColor">
<td class="colFirst"><code>static double</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#getMatMultSparsity-double-double-long-long-long-boolean-">getMatMultSparsity</a></span>(double&nbsp;sp1,
double&nbsp;sp2,
long&nbsp;m,
long&nbsp;k,
long&nbsp;n,
boolean&nbsp;worstcase)</code>
<div class="block">Estimates the result sparsity for Matrix Multiplication A %*% B.</div>
</td>
</tr>
<tr id="i35" class="rowColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#getNnz-long-long-double-">getNnz</a></span>(long&nbsp;dim1,
long&nbsp;dim2,
double&nbsp;sp)</code>&nbsp;</td>
</tr>
<tr id="i36" class="altColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#getNumIterations-org.apache.sysds.runtime.controlprogram.ForProgramBlock-org.apache.sysds.runtime.controlprogram.LocalVariableMap-long-">getNumIterations</a></span>(<a href="../../../../org/apache/sysds/runtime/controlprogram/ForProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">ForProgramBlock</a>&nbsp;fpb,
<a href="../../../../org/apache/sysds/runtime/controlprogram/LocalVariableMap.html" title="class in org.apache.sysds.runtime.controlprogram">LocalVariableMap</a>&nbsp;vars,
long&nbsp;defaultValue)</code>&nbsp;</td>
</tr>
<tr id="i37" class="rowColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#getNumIterations-org.apache.sysds.runtime.controlprogram.ForProgramBlock-long-">getNumIterations</a></span>(<a href="../../../../org/apache/sysds/runtime/controlprogram/ForProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">ForProgramBlock</a>&nbsp;fpb,
long&nbsp;defaultValue)</code>&nbsp;</td>
</tr>
<tr id="i38" class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#getNumMappers--">getNumMappers</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i39" class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#getNumReducers-boolean-">getNumReducers</a></span>(boolean&nbsp;configOnly)</code>
<div class="block">Returns the number of reducers that potentially run in parallel.</div>
</td>
</tr>
<tr id="i40" class="altColor">
<td class="colFirst"><code>static <a href="../../../../org/apache/sysds/hops/OptimizerUtils.OptimizationLevel.html" title="enum in org.apache.sysds.hops">OptimizerUtils.OptimizationLevel</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#getOptLevel--">getOptLevel</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i41" class="rowColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#getOuterNonZeros-long-long-long-long-org.apache.sysds.common.Types.OpOp2-">getOuterNonZeros</a></span>(long&nbsp;n1,
long&nbsp;n2,
long&nbsp;nnz1,
long&nbsp;nnz2,
<a href="../../../../org/apache/sysds/common/Types.OpOp2.html" title="enum in org.apache.sysds.common">Types.OpOp2</a>&nbsp;op)</code>&nbsp;</td>
</tr>
<tr id="i42" class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#getParallelBinaryReadParallelism--">getParallelBinaryReadParallelism</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i43" class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#getParallelBinaryWriteParallelism--">getParallelBinaryWriteParallelism</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i44" class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#getParallelTextReadParallelism--">getParallelTextReadParallelism</a></span>()</code>
<div class="block">Returns the degree of parallelism used for parallel text read.</div>
</td>
</tr>
<tr id="i45" class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#getParallelTextWriteParallelism--">getParallelTextWriteParallelism</a></span>()</code>
<div class="block">Returns the degree of parallelism used for parallel text write.</div>
</td>
</tr>
<tr id="i46" class="altColor">
<td class="colFirst"><code>static double</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#getSparsity-org.apache.sysds.runtime.meta.DataCharacteristics-">getSparsity</a></span>(<a href="../../../../org/apache/sysds/runtime/meta/DataCharacteristics.html" title="class in org.apache.sysds.runtime.meta">DataCharacteristics</a>&nbsp;dc)</code>&nbsp;</td>
</tr>
<tr id="i47" class="rowColor">
<td class="colFirst"><code>static double</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#getSparsity-org.apache.sysds.hops.Hop-">getSparsity</a></span>(<a href="../../../../org/apache/sysds/hops/Hop.html" title="class in org.apache.sysds.hops">Hop</a>&nbsp;hop)</code>&nbsp;</td>
</tr>
<tr id="i48" class="altColor">
<td class="colFirst"><code>static double</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#getSparsity-long:A-long-">getSparsity</a></span>(long[]&nbsp;dims,
long&nbsp;nnz)</code>&nbsp;</td>
</tr>
<tr id="i49" class="rowColor">
<td class="colFirst"><code>static double</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#getSparsity-long-long-long-">getSparsity</a></span>(long&nbsp;dim1,
long&nbsp;dim2,
long&nbsp;nnz)</code>&nbsp;</td>
</tr>
<tr id="i50" class="altColor">
<td class="colFirst"><code>static double</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#getTotalMemEstimate-org.apache.sysds.hops.Hop:A-org.apache.sysds.hops.Hop-">getTotalMemEstimate</a></span>(<a href="../../../../org/apache/sysds/hops/Hop.html" title="class in org.apache.sysds.hops">Hop</a>[]&nbsp;in,
<a href="../../../../org/apache/sysds/hops/Hop.html" title="class in org.apache.sysds.hops">Hop</a>&nbsp;out)</code>&nbsp;</td>
</tr>
<tr id="i51" class="rowColor">
<td class="colFirst"><code>static double</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#getTotalMemEstimate-org.apache.sysds.hops.Hop:A-org.apache.sysds.hops.Hop-boolean-">getTotalMemEstimate</a></span>(<a href="../../../../org/apache/sysds/hops/Hop.html" title="class in org.apache.sysds.hops">Hop</a>[]&nbsp;in,
<a href="../../../../org/apache/sysds/hops/Hop.html" title="class in org.apache.sysds.hops">Hop</a>&nbsp;out,
boolean&nbsp;denseOut)</code>&nbsp;</td>
</tr>
<tr id="i52" class="altColor">
<td class="colFirst"><code>static <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/hops/OptimizerUtils.html#getUniqueTempFileName--">getUniqueTempFileName</a></span>()</code>
<div class="block">Wrapper over internal filename construction for external usage.</div>
</td>
</tr>
<tr id="i53" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#isBinaryOpConditionalSparseSafe-org.apache.sysds.common.Types.OpOp2-">isBinaryOpConditionalSparseSafe</a></span>(<a href="../../../../org/apache/sysds/common/Types.OpOp2.html" title="enum in org.apache.sysds.common">Types.OpOp2</a>&nbsp;op)</code>
<div class="block">Determines if a given binary op is potentially conditional sparse safe.</div>
</td>
</tr>
<tr id="i54" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#isBinaryOpConditionalSparseSafeExact-org.apache.sysds.common.Types.OpOp2-org.apache.sysds.hops.LiteralOp-">isBinaryOpConditionalSparseSafeExact</a></span>(<a href="../../../../org/apache/sysds/common/Types.OpOp2.html" title="enum in org.apache.sysds.common">Types.OpOp2</a>&nbsp;op,
<a href="../../../../org/apache/sysds/hops/LiteralOp.html" title="class in org.apache.sysds.hops">LiteralOp</a>&nbsp;lit)</code>
<div class="block">Determines if a given binary op with scalar literal guarantee an output
sparsity which is exactly the same as its matrix input sparsity.</div>
</td>
</tr>
<tr id="i55" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#isBinaryOpSparsityConditionalSparseSafe-org.apache.sysds.common.Types.OpOp2-org.apache.sysds.hops.LiteralOp-">isBinaryOpSparsityConditionalSparseSafe</a></span>(<a href="../../../../org/apache/sysds/common/Types.OpOp2.html" title="enum in org.apache.sysds.common">Types.OpOp2</a>&nbsp;op,
<a href="../../../../org/apache/sysds/hops/LiteralOp.html" title="class in org.apache.sysds.hops">LiteralOp</a>&nbsp;lit)</code>&nbsp;</td>
</tr>
<tr id="i56" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#isHybridExecutionMode--">isHybridExecutionMode</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i57" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#isIndexingRangeBlockAligned-org.apache.sysds.runtime.util.IndexRange-org.apache.sysds.runtime.meta.DataCharacteristics-">isIndexingRangeBlockAligned</a></span>(<a href="../../../../org/apache/sysds/runtime/util/IndexRange.html" title="class in org.apache.sysds.runtime.util">IndexRange</a>&nbsp;ixrange,
<a href="../../../../org/apache/sysds/runtime/meta/DataCharacteristics.html" title="class in org.apache.sysds.runtime.meta">DataCharacteristics</a>&nbsp;mc)</code>
<div class="block">Indicates if the given indexing range is block aligned, i.e., it does not require
global aggregation of blocks.</div>
</td>
</tr>
<tr id="i58" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#isIndexingRangeBlockAligned-long-long-long-long-long-">isIndexingRangeBlockAligned</a></span>(long&nbsp;rl,
long&nbsp;ru,
long&nbsp;cl,
long&nbsp;cu,
long&nbsp;blen)</code>
<div class="block">Indicates if the given indexing range is block aligned, i.e., it does not require
global aggregation of blocks.</div>
</td>
</tr>
<tr id="i59" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#isMaxLocalParallelism-int-">isMaxLocalParallelism</a></span>(int&nbsp;k)</code>&nbsp;</td>
</tr>
<tr id="i60" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#isMemoryBasedOptLevel--">isMemoryBasedOptLevel</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i61" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#isOptLevel-org.apache.sysds.hops.OptimizerUtils.OptimizationLevel-">isOptLevel</a></span>(<a href="../../../../org/apache/sysds/hops/OptimizerUtils.OptimizationLevel.html" title="enum in org.apache.sysds.hops">OptimizerUtils.OptimizationLevel</a>&nbsp;level)</code>&nbsp;</td>
</tr>
<tr id="i62" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#isSparkExecutionMode--">isSparkExecutionMode</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i63" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#isTopLevelParFor--">isTopLevelParFor</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i64" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#isValidCPDimensions-org.apache.sysds.runtime.meta.DataCharacteristics-">isValidCPDimensions</a></span>(<a href="../../../../org/apache/sysds/runtime/meta/DataCharacteristics.html" title="class in org.apache.sysds.runtime.meta">DataCharacteristics</a>&nbsp;mc)</code>&nbsp;</td>
</tr>
<tr id="i65" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#isValidCPDimensions-long-long-">isValidCPDimensions</a></span>(long&nbsp;rows,
long&nbsp;cols)</code>
<div class="block">Returns false if dimensions known to be invalid; other true</div>
</td>
</tr>
<tr id="i66" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#isValidCPDimensions-org.apache.sysds.common.Types.ValueType:A-java.lang.String:A-">isValidCPDimensions</a></span>(<a href="../../../../org/apache/sysds/common/Types.ValueType.html" title="enum in org.apache.sysds.common">Types.ValueType</a>[]&nbsp;schema,
<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;names)</code>
<div class="block">Returns false if schema and names are not properly specified; other true
Length to be &gt; 0, and length of both to be equal.</div>
</td>
</tr>
<tr id="i67" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#isValidCPMatrixSize-long-long-double-">isValidCPMatrixSize</a></span>(long&nbsp;rows,
long&nbsp;cols,
double&nbsp;sparsity)</code>
<div class="block">Determines if valid matrix size to be represented in CP data structures.</div>
</td>
</tr>
<tr id="i68" class="altColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#resetDefaultSize--">resetDefaultSize</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i69" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#resetStaticCompilerFlags--">resetStaticCompilerFlags</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i70" class="altColor">
<td class="colFirst"><code>static double</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#rEvalSimpleDoubleExpression-org.apache.sysds.hops.Hop-java.util.HashMap-">rEvalSimpleDoubleExpression</a></span>(<a href="../../../../org/apache/sysds/hops/Hop.html" title="class in org.apache.sysds.hops">Hop</a>&nbsp;root,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Double.html?is-external=true" title="class or interface in java.lang">Double</a>&gt;&nbsp;valMemo)</code>&nbsp;</td>
</tr>
<tr id="i71" class="rowColor">
<td class="colFirst"><code>static double</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#rEvalSimpleDoubleExpression-org.apache.sysds.hops.Hop-java.util.HashMap-org.apache.sysds.runtime.controlprogram.LocalVariableMap-">rEvalSimpleDoubleExpression</a></span>(<a href="../../../../org/apache/sysds/hops/Hop.html" title="class in org.apache.sysds.hops">Hop</a>&nbsp;root,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Double.html?is-external=true" title="class or interface in java.lang">Double</a>&gt;&nbsp;valMemo,
<a href="../../../../org/apache/sysds/runtime/controlprogram/LocalVariableMap.html" title="class in org.apache.sysds.runtime.controlprogram">LocalVariableMap</a>&nbsp;vars)</code>&nbsp;</td>
</tr>
<tr id="i72" class="altColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#rEvalSimpleLongExpression-org.apache.sysds.hops.Hop-java.util.HashMap-">rEvalSimpleLongExpression</a></span>(<a href="../../../../org/apache/sysds/hops/Hop.html" title="class in org.apache.sysds.hops">Hop</a>&nbsp;root,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;&nbsp;valMemo)</code>
<div class="block">Function to evaluate simple size expressions over literals and now/ncol.</div>
</td>
</tr>
<tr id="i73" class="rowColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/OptimizerUtils.html#rEvalSimpleLongExpression-org.apache.sysds.hops.Hop-java.util.HashMap-org.apache.sysds.runtime.controlprogram.LocalVariableMap-">rEvalSimpleLongExpression</a></span>(<a href="../../../../org/apache/sysds/hops/Hop.html" title="class in org.apache.sysds.hops">Hop</a>&nbsp;root,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;&nbsp;valMemo,
<a href="../../../../org/apache/sysds/runtime/controlprogram/LocalVariableMap.html" title="class in org.apache.sysds.runtime.controlprogram">LocalVariableMap</a>&nbsp;vars)</code>&nbsp;</td>
</tr>
<tr id="i74" class="altColor">
<td class="colFirst"><code>static <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/hops/OptimizerUtils.html#toMB-double-">toMB</a></span>(double&nbsp;inB)</code>&nbsp;</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#toString--" title="class or interface in java.lang">toString</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">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a name="MEM_UTIL_FACTOR">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MEM_UTIL_FACTOR</h4>
<pre>public static&nbsp;double MEM_UTIL_FACTOR</pre>
<div class="block">Utilization factor used in deciding whether an operation to be scheduled on CP or MR.
NOTE: it is important that MEM_UTIL_FACTOR+CacheableData.CACHING_BUFFER_SIZE &lt; 1.0</div>
</li>
</ul>
<a name="DEFAULT_BLOCKSIZE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DEFAULT_BLOCKSIZE</h4>
<pre>public static final&nbsp;int DEFAULT_BLOCKSIZE</pre>
<div class="block">Default blocksize if unspecified or for testing purposes</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#org.apache.sysds.hops.OptimizerUtils.DEFAULT_BLOCKSIZE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="DEFAULT_FRAME_BLOCKSIZE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DEFAULT_FRAME_BLOCKSIZE</h4>
<pre>public static final&nbsp;int DEFAULT_FRAME_BLOCKSIZE</pre>
<div class="block">Default frame blocksize</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#org.apache.sysds.hops.OptimizerUtils.DEFAULT_FRAME_BLOCKSIZE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="DEFAULT_OPTLEVEL">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DEFAULT_OPTLEVEL</h4>
<pre>public static final&nbsp;<a href="../../../../org/apache/sysds/hops/OptimizerUtils.OptimizationLevel.html" title="enum in org.apache.sysds.hops">OptimizerUtils.OptimizationLevel</a> DEFAULT_OPTLEVEL</pre>
<div class="block">Default optimization level if unspecified</div>
</li>
</ul>
<a name="DEFAULT_SIZE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DEFAULT_SIZE</h4>
<pre>public static&nbsp;double DEFAULT_SIZE</pre>
<div class="block">Default memory size, which is used if the actual estimate can not be computed
e.g., when input/output dimensions are unknown. The default is set to a large
value so that operations are scheduled on MR while avoiding overflows as well.</div>
</li>
</ul>
<a name="DOUBLE_SIZE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DOUBLE_SIZE</h4>
<pre>public static final&nbsp;long DOUBLE_SIZE</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#org.apache.sysds.hops.OptimizerUtils.DOUBLE_SIZE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="INT_SIZE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>INT_SIZE</h4>
<pre>public static final&nbsp;long INT_SIZE</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#org.apache.sysds.hops.OptimizerUtils.INT_SIZE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="CHAR_SIZE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>CHAR_SIZE</h4>
<pre>public static final&nbsp;long CHAR_SIZE</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#org.apache.sysds.hops.OptimizerUtils.CHAR_SIZE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="BOOLEAN_SIZE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>BOOLEAN_SIZE</h4>
<pre>public static final&nbsp;long BOOLEAN_SIZE</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#org.apache.sysds.hops.OptimizerUtils.BOOLEAN_SIZE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="INVALID_SIZE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>INVALID_SIZE</h4>
<pre>public static final&nbsp;double INVALID_SIZE</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#org.apache.sysds.hops.OptimizerUtils.INVALID_SIZE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="MAX_NUMCELLS_CP_DENSE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MAX_NUMCELLS_CP_DENSE</h4>
<pre>public static final&nbsp;long MAX_NUMCELLS_CP_DENSE</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#org.apache.sysds.hops.OptimizerUtils.MAX_NUMCELLS_CP_DENSE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="MAX_NNZ_CP_SPARSE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MAX_NNZ_CP_SPARSE</h4>
<pre>public static final&nbsp;long MAX_NNZ_CP_SPARSE</pre>
</li>
</ul>
<a name="SAFE_REP_CHANGE_THRES">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>SAFE_REP_CHANGE_THRES</h4>
<pre>public static final&nbsp;long SAFE_REP_CHANGE_THRES</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#org.apache.sysds.hops.OptimizerUtils.SAFE_REP_CHANGE_THRES">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="ALLOW_COMMON_SUBEXPRESSION_ELIMINATION">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ALLOW_COMMON_SUBEXPRESSION_ELIMINATION</h4>
<pre>public static&nbsp;boolean ALLOW_COMMON_SUBEXPRESSION_ELIMINATION</pre>
<div class="block">Enables common subexpression elimination in dags. There is however, a potential tradeoff
between computation redundancy and data transfer between MR jobs. Since, we do not reason
about transferred data yet, this rewrite rule is enabled by default.</div>
</li>
</ul>
<a name="ALLOW_CONSTANT_FOLDING">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ALLOW_CONSTANT_FOLDING</h4>
<pre>public static&nbsp;boolean ALLOW_CONSTANT_FOLDING</pre>
<div class="block">Enables constant folding in dags. Constant folding computes simple expressions of binary
operations and literals and replaces the hop sub-DAG with a new literal operator.</div>
</li>
</ul>
<a name="ALLOW_ALGEBRAIC_SIMPLIFICATION">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ALLOW_ALGEBRAIC_SIMPLIFICATION</h4>
<pre>public static&nbsp;boolean ALLOW_ALGEBRAIC_SIMPLIFICATION</pre>
</li>
</ul>
<a name="ALLOW_OPERATOR_FUSION">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ALLOW_OPERATOR_FUSION</h4>
<pre>public static&nbsp;boolean ALLOW_OPERATOR_FUSION</pre>
</li>
</ul>
<a name="ALLOW_BRANCH_REMOVAL">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ALLOW_BRANCH_REMOVAL</h4>
<pre>public static&nbsp;boolean ALLOW_BRANCH_REMOVAL</pre>
<div class="block">Enables if-else branch removal for constant predicates (original literals or
results of constant folding).</div>
</li>
</ul>
<a name="ALLOW_FOR_LOOP_REMOVAL">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ALLOW_FOR_LOOP_REMOVAL</h4>
<pre>public static&nbsp;boolean ALLOW_FOR_LOOP_REMOVAL</pre>
<div class="block">Enables the removal of (par)for-loops when from, to, and increment are constants
(original literals or results of constant folding) and lead to an empty sequence,
i.e., (par)for-loops without a single iteration.</div>
</li>
</ul>
<a name="ALLOW_AUTO_VECTORIZATION">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ALLOW_AUTO_VECTORIZATION</h4>
<pre>public static&nbsp;boolean ALLOW_AUTO_VECTORIZATION</pre>
</li>
</ul>
<a name="ALLOW_SIZE_EXPRESSION_EVALUATION">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ALLOW_SIZE_EXPRESSION_EVALUATION</h4>
<pre>public static&nbsp;boolean ALLOW_SIZE_EXPRESSION_EVALUATION</pre>
<div class="block">Enables simple expression evaluation for datagen parameters 'rows', 'cols'. Simple
expressions are defined as binary operations on literals and nrow/ncol. This applies
only to exact size information.</div>
</li>
</ul>
<a name="ALLOW_WORSTCASE_SIZE_EXPRESSION_EVALUATION">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ALLOW_WORSTCASE_SIZE_EXPRESSION_EVALUATION</h4>
<pre>public static&nbsp;boolean ALLOW_WORSTCASE_SIZE_EXPRESSION_EVALUATION</pre>
<div class="block">Enables simple expression evaluation for datagen parameters 'rows', 'cols'. Simple
expressions are defined as binary operations on literals and b(+) or b(*) on nrow/ncol.
This applies also to worst-case size information.</div>
</li>
</ul>
<a name="ALLOW_RAND_JOB_RECOMPILE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ALLOW_RAND_JOB_RECOMPILE</h4>
<pre>public static&nbsp;boolean ALLOW_RAND_JOB_RECOMPILE</pre>
</li>
</ul>
<a name="ALLOW_RUNTIME_PIGGYBACKING">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ALLOW_RUNTIME_PIGGYBACKING</h4>
<pre>public static&nbsp;boolean ALLOW_RUNTIME_PIGGYBACKING</pre>
<div class="block">Enables parfor runtime piggybacking of MR jobs into the packed jobs for
scan sharing.</div>
</li>
</ul>
<a name="ALLOW_INTER_PROCEDURAL_ANALYSIS">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ALLOW_INTER_PROCEDURAL_ANALYSIS</h4>
<pre>public static&nbsp;boolean ALLOW_INTER_PROCEDURAL_ANALYSIS</pre>
<div class="block">Enables interprocedural analysis between main script and functions as well as functions
and other functions. This includes, for example, to propagate statistics into functions
if save to do so (e.g., if called once).</div>
</li>
</ul>
<a name="IPA_NUM_REPETITIONS">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>IPA_NUM_REPETITIONS</h4>
<pre>public static&nbsp;int IPA_NUM_REPETITIONS</pre>
<div class="block">Number of inter-procedural analysis (IPA) repetitions. If set to &gt;=2, we apply
IPA multiple times in order to allow scalar propagation over complex function call
graphs and various interactions between constant propagation, constant folding,
and other rewrites such as branch removal and the merge of statement block sequences.</div>
</li>
</ul>
<a name="ALLOW_SUM_PRODUCT_REWRITES">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ALLOW_SUM_PRODUCT_REWRITES</h4>
<pre>public static&nbsp;boolean ALLOW_SUM_PRODUCT_REWRITES</pre>
<div class="block">Enables sum product rewrites such as mapmultchains. In the future, this will cover
all sum-product related rewrites.</div>
</li>
</ul>
<a name="ALLOW_SPLIT_HOP_DAGS">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ALLOW_SPLIT_HOP_DAGS</h4>
<pre>public static&nbsp;boolean ALLOW_SPLIT_HOP_DAGS</pre>
<div class="block">Enables a specific hop dag rewrite that splits hop dags after csv persistent reads with
unknown size in order to allow for recompile.</div>
</li>
</ul>
<a name="ALLOW_LOOP_UPDATE_IN_PLACE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ALLOW_LOOP_UPDATE_IN_PLACE</h4>
<pre>public static&nbsp;boolean ALLOW_LOOP_UPDATE_IN_PLACE</pre>
<div class="block">Enables a specific rewrite that enables update in place for loop variables that are
only read/updated via cp leftindexing.</div>
</li>
</ul>
<a name="ALLOW_CODE_MOTION">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ALLOW_CODE_MOTION</h4>
<pre>public static&nbsp;boolean ALLOW_CODE_MOTION</pre>
<div class="block">Enables a specific rewrite for code motion, i.e., hoisting loop invariant code
out of while, for, and parfor loops.</div>
</li>
</ul>
<a name="PARALLEL_CP_READ_PARALLELISM_MULTIPLIER">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>PARALLEL_CP_READ_PARALLELISM_MULTIPLIER</h4>
<pre>public static final&nbsp;double PARALLEL_CP_READ_PARALLELISM_MULTIPLIER</pre>
<div class="block">Specifies a multiplier computing the degree of parallelism of parallel
text read/write out of the available degree of parallelism. Set it to 1.0
to get a number of threads equal the number of virtual cores.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#org.apache.sysds.hops.OptimizerUtils.PARALLEL_CP_READ_PARALLELISM_MULTIPLIER">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="PARALLEL_CP_WRITE_PARALLELISM_MULTIPLIER">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>PARALLEL_CP_WRITE_PARALLELISM_MULTIPLIER</h4>
<pre>public static final&nbsp;double PARALLEL_CP_WRITE_PARALLELISM_MULTIPLIER</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#org.apache.sysds.hops.OptimizerUtils.PARALLEL_CP_WRITE_PARALLELISM_MULTIPLIER">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="ALLOW_COMBINE_FILE_INPUT_FORMAT">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ALLOW_COMBINE_FILE_INPUT_FORMAT</h4>
<pre>public static final&nbsp;boolean ALLOW_COMBINE_FILE_INPUT_FORMAT</pre>
<div class="block">Enables the use of CombineSequenceFileInputFormat with splitsize = 2x hdfs blocksize,
if sort buffer size large enough and parallelism not hurt. This solves to issues:
(1) it combines small files (depending on producers), and (2) it reduces task
latency of large jobs with many tasks by factor 2.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#org.apache.sysds.hops.OptimizerUtils.ALLOW_COMBINE_FILE_INPUT_FORMAT">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="ALLOW_SCRIPT_LEVEL_COMPRESS_COMMAND">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>ALLOW_SCRIPT_LEVEL_COMPRESS_COMMAND</h4>
<pre>public static final&nbsp;boolean ALLOW_SCRIPT_LEVEL_COMPRESS_COMMAND</pre>
<div class="block">This variable allows for insertion of Compress and decompress in the dml script from the user.
This is added because we want to have a way to test, and verify the correct placement of compress and decompress commands.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#org.apache.sysds.hops.OptimizerUtils.ALLOW_SCRIPT_LEVEL_COMPRESS_COMMAND">Constant Field Values</a></dd>
</dl>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="OptimizerUtils--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>OptimizerUtils</h4>
<pre>public&nbsp;OptimizerUtils()</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="getOptLevel--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getOptLevel</h4>
<pre>public static&nbsp;<a href="../../../../org/apache/sysds/hops/OptimizerUtils.OptimizationLevel.html" title="enum in org.apache.sysds.hops">OptimizerUtils.OptimizationLevel</a>&nbsp;getOptLevel()</pre>
</li>
</ul>
<a name="isMemoryBasedOptLevel--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isMemoryBasedOptLevel</h4>
<pre>public static&nbsp;boolean&nbsp;isMemoryBasedOptLevel()</pre>
</li>
</ul>
<a name="isOptLevel-org.apache.sysds.hops.OptimizerUtils.OptimizationLevel-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isOptLevel</h4>
<pre>public static&nbsp;boolean&nbsp;isOptLevel(<a href="../../../../org/apache/sysds/hops/OptimizerUtils.OptimizationLevel.html" title="enum in org.apache.sysds.hops">OptimizerUtils.OptimizationLevel</a>&nbsp;level)</pre>
</li>
</ul>
<a name="constructCompilerConfig-org.apache.sysds.conf.DMLConfig-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>constructCompilerConfig</h4>
<pre>public static&nbsp;<a href="../../../../org/apache/sysds/conf/CompilerConfig.html" title="class in org.apache.sysds.conf">CompilerConfig</a>&nbsp;constructCompilerConfig(<a href="../../../../org/apache/sysds/conf/DMLConfig.html" title="class in org.apache.sysds.conf">DMLConfig</a>&nbsp;dmlconf)</pre>
</li>
</ul>
<a name="constructCompilerConfig-org.apache.sysds.conf.CompilerConfig-org.apache.sysds.conf.DMLConfig-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>constructCompilerConfig</h4>
<pre>public static&nbsp;<a href="../../../../org/apache/sysds/conf/CompilerConfig.html" title="class in org.apache.sysds.conf">CompilerConfig</a>&nbsp;constructCompilerConfig(<a href="../../../../org/apache/sysds/conf/CompilerConfig.html" title="class in org.apache.sysds.conf">CompilerConfig</a>&nbsp;cconf,
<a href="../../../../org/apache/sysds/conf/DMLConfig.html" title="class in org.apache.sysds.conf">DMLConfig</a>&nbsp;dmlconf)</pre>
</li>
</ul>
<a name="resetStaticCompilerFlags--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>resetStaticCompilerFlags</h4>
<pre>public static&nbsp;void&nbsp;resetStaticCompilerFlags()</pre>
</li>
</ul>
<a name="getDefaultSize--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDefaultSize</h4>
<pre>public static&nbsp;long&nbsp;getDefaultSize()</pre>
</li>
</ul>
<a name="resetDefaultSize--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>resetDefaultSize</h4>
<pre>public static&nbsp;void&nbsp;resetDefaultSize()</pre>
</li>
</ul>
<a name="getDefaultFrameSize--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDefaultFrameSize</h4>
<pre>public static&nbsp;int&nbsp;getDefaultFrameSize()</pre>
</li>
</ul>
<a name="getLocalMemBudget--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLocalMemBudget</h4>
<pre>public static&nbsp;double&nbsp;getLocalMemBudget()</pre>
<div class="block">Returns memory budget (according to util factor) in bytes</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>local memory budget</dd>
</dl>
</li>
</ul>
<a name="isMaxLocalParallelism-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isMaxLocalParallelism</h4>
<pre>public static&nbsp;boolean&nbsp;isMaxLocalParallelism(int&nbsp;k)</pre>
</li>
</ul>
<a name="isTopLevelParFor--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isTopLevelParFor</h4>
<pre>public static&nbsp;boolean&nbsp;isTopLevelParFor()</pre>
</li>
</ul>
<a name="checkSparkBroadcastMemoryBudget-double-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkSparkBroadcastMemoryBudget</h4>
<pre>public static&nbsp;boolean&nbsp;checkSparkBroadcastMemoryBudget(double&nbsp;size)</pre>
</li>
</ul>
<a name="checkSparkBroadcastMemoryBudget-long-long-long-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkSparkBroadcastMemoryBudget</h4>
<pre>public static&nbsp;boolean&nbsp;checkSparkBroadcastMemoryBudget(long&nbsp;rlen,
long&nbsp;clen,
long&nbsp;blen,
long&nbsp;nnz)</pre>
</li>
</ul>
<a name="checkSparkCollectMemoryBudget-org.apache.sysds.runtime.meta.DataCharacteristics-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkSparkCollectMemoryBudget</h4>
<pre>public static&nbsp;boolean&nbsp;checkSparkCollectMemoryBudget(<a href="../../../../org/apache/sysds/runtime/meta/DataCharacteristics.html" title="class in org.apache.sysds.runtime.meta">DataCharacteristics</a>&nbsp;dc,
long&nbsp;memPinned)</pre>
</li>
</ul>
<a name="checkSparkCollectMemoryBudget-org.apache.sysds.runtime.meta.DataCharacteristics-long-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkSparkCollectMemoryBudget</h4>
<pre>public static&nbsp;boolean&nbsp;checkSparkCollectMemoryBudget(<a href="../../../../org/apache/sysds/runtime/meta/DataCharacteristics.html" title="class in org.apache.sysds.runtime.meta">DataCharacteristics</a>&nbsp;dc,
long&nbsp;memPinned,
boolean&nbsp;checkBP)</pre>
</li>
</ul>
<a name="checkSparseBlockCSRConversion-org.apache.sysds.runtime.meta.DataCharacteristics-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkSparseBlockCSRConversion</h4>
<pre>public static&nbsp;boolean&nbsp;checkSparseBlockCSRConversion(<a href="../../../../org/apache/sysds/runtime/meta/DataCharacteristics.html" title="class in org.apache.sysds.runtime.meta">DataCharacteristics</a>&nbsp;dcIn)</pre>
</li>
</ul>
<a name="getNumReducers-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getNumReducers</h4>
<pre>public static&nbsp;int&nbsp;getNumReducers(boolean&nbsp;configOnly)</pre>
<div class="block">Returns the number of reducers that potentially run in parallel.
This is either just the configured value (SystemDS config) or
the minimum of configured value and available reduce slots.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>configOnly</code> - true if configured value</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>number of reducers</dd>
</dl>
</li>
</ul>
<a name="getNumMappers--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getNumMappers</h4>
<pre>public static&nbsp;int&nbsp;getNumMappers()</pre>
</li>
</ul>
<a name="getDefaultExecutionMode--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDefaultExecutionMode</h4>
<pre>public static&nbsp;<a href="../../../../org/apache/sysds/common/Types.ExecMode.html" title="enum in org.apache.sysds.common">Types.ExecMode</a>&nbsp;getDefaultExecutionMode()</pre>
</li>
</ul>
<a name="isSparkExecutionMode--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isSparkExecutionMode</h4>
<pre>public static&nbsp;boolean&nbsp;isSparkExecutionMode()</pre>
</li>
</ul>
<a name="isHybridExecutionMode--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isHybridExecutionMode</h4>
<pre>public static&nbsp;boolean&nbsp;isHybridExecutionMode()</pre>
</li>
</ul>
<a name="getParallelTextReadParallelism--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getParallelTextReadParallelism</h4>
<pre>public static&nbsp;int&nbsp;getParallelTextReadParallelism()</pre>
<div class="block">Returns the degree of parallelism used for parallel text read.
This is computed as the number of virtual cores scales by the
PARALLEL_READ_PARALLELISM_MULTIPLIER. If PARALLEL_READ_TEXTFORMATS
is disabled, this method returns 1.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>degree of parallelism</dd>
</dl>
</li>
</ul>
<a name="getParallelBinaryReadParallelism--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getParallelBinaryReadParallelism</h4>
<pre>public static&nbsp;int&nbsp;getParallelBinaryReadParallelism()</pre>
</li>
</ul>
<a name="getParallelTextWriteParallelism--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getParallelTextWriteParallelism</h4>
<pre>public static&nbsp;int&nbsp;getParallelTextWriteParallelism()</pre>
<div class="block">Returns the degree of parallelism used for parallel text write.
This is computed as the number of virtual cores scales by the
PARALLEL_WRITE_PARALLELISM_MULTIPLIER. If PARALLEL_WRITE_TEXTFORMATS
is disabled, this method returns 1.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>degree of parallelism</dd>
</dl>
</li>
</ul>
<a name="getParallelBinaryWriteParallelism--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getParallelBinaryWriteParallelism</h4>
<pre>public static&nbsp;int&nbsp;getParallelBinaryWriteParallelism()</pre>
</li>
</ul>
<a name="estimateSize-org.apache.sysds.runtime.meta.DataCharacteristics-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>estimateSize</h4>
<pre>public static&nbsp;long&nbsp;estimateSize(<a href="../../../../org/apache/sysds/runtime/meta/DataCharacteristics.html" title="class in org.apache.sysds.runtime.meta">DataCharacteristics</a>&nbsp;dc)</pre>
</li>
</ul>
<a name="estimateSizeExactSparsity-org.apache.sysds.runtime.meta.DataCharacteristics-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>estimateSizeExactSparsity</h4>
<pre>public static&nbsp;long&nbsp;estimateSizeExactSparsity(<a href="../../../../org/apache/sysds/runtime/meta/DataCharacteristics.html" title="class in org.apache.sysds.runtime.meta">DataCharacteristics</a>&nbsp;dc)</pre>
</li>
</ul>
<a name="estimateSizeExactSparsity-long-long-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>estimateSizeExactSparsity</h4>
<pre>public static&nbsp;long&nbsp;estimateSizeExactSparsity(long&nbsp;nrows,
long&nbsp;ncols,
long&nbsp;nnz)</pre>
<div class="block">Estimates the footprint (in bytes) for an in-memory representation of a
matrix with dimensions=(nrows,ncols) and and number of non-zeros nnz.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>nrows</code> - number of rows</dd>
<dd><code>ncols</code> - number of cols</dd>
<dd><code>nnz</code> - number of non-zeros</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>memory footprint</dd>
</dl>
</li>
</ul>
<a name="estimateSizeExactSparsity-long-long-double-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>estimateSizeExactSparsity</h4>
<pre>public static&nbsp;long&nbsp;estimateSizeExactSparsity(long&nbsp;nrows,
long&nbsp;ncols,
double&nbsp;sp)</pre>
<div class="block">Estimates the footprint (in bytes) for an in-memory representation of a
matrix with dimensions=(nrows,ncols) and sparsity=sp.
This function can be used directly in Hops, when the actual sparsity is
known i.e., <code>sp</code> is guaranteed to give worst-case estimate
(e.g., Rand with a fixed sparsity). In all other cases, estimateSize()
must be used so that worst-case estimates are computed, whenever
applicable.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>nrows</code> - number of rows</dd>
<dd><code>ncols</code> - number of cols</dd>
<dd><code>sp</code> - sparsity</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>memory footprint</dd>
</dl>
</li>
</ul>
<a name="estimatePartitionedSizeExactSparsity-org.apache.sysds.runtime.meta.DataCharacteristics-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>estimatePartitionedSizeExactSparsity</h4>
<pre>public static&nbsp;long&nbsp;estimatePartitionedSizeExactSparsity(<a href="../../../../org/apache/sysds/runtime/meta/DataCharacteristics.html" title="class in org.apache.sysds.runtime.meta">DataCharacteristics</a>&nbsp;dc)</pre>
<div class="block">Estimates the footprint (in bytes) for a partitioned in-memory representation of a
matrix with the given matrix characteristics</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>dc</code> - matrix characteristics</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>memory estimate</dd>
</dl>
</li>
</ul>
<a name="estimatePartitionedSizeExactSparsity-org.apache.sysds.runtime.meta.DataCharacteristics-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>estimatePartitionedSizeExactSparsity</h4>
<pre>public static&nbsp;long&nbsp;estimatePartitionedSizeExactSparsity(<a href="../../../../org/apache/sysds/runtime/meta/DataCharacteristics.html" title="class in org.apache.sysds.runtime.meta">DataCharacteristics</a>&nbsp;dc,
boolean&nbsp;outputEmptyBlocks)</pre>
</li>
</ul>
<a name="estimatePartitionedSizeExactSparsity-long-long-long-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>estimatePartitionedSizeExactSparsity</h4>
<pre>public static&nbsp;long&nbsp;estimatePartitionedSizeExactSparsity(long&nbsp;rlen,
long&nbsp;clen,
long&nbsp;blen,
long&nbsp;nnz)</pre>
<div class="block">Estimates the footprint (in bytes) for a partitioned in-memory representation of a
matrix with dimensions=(nrows,ncols) and number of non-zeros nnz.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>rlen</code> - number of rows</dd>
<dd><code>clen</code> - number of cols</dd>
<dd><code>blen</code> - rows/cols per block</dd>
<dd><code>nnz</code> - number of non-zeros</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>memory estimate</dd>
</dl>
</li>
</ul>
<a name="estimatePartitionedSizeExactSparsity-long-long-long-long-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>estimatePartitionedSizeExactSparsity</h4>
<pre>public static&nbsp;long&nbsp;estimatePartitionedSizeExactSparsity(long&nbsp;rlen,
long&nbsp;clen,
long&nbsp;blen,
long&nbsp;nnz,
boolean&nbsp;outputEmptyBlocks)</pre>
</li>
</ul>
<a name="estimatePartitionedSizeExactSparsity-org.apache.sysds.hops.Hop-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>estimatePartitionedSizeExactSparsity</h4>
<pre>public static&nbsp;long&nbsp;estimatePartitionedSizeExactSparsity(<a href="../../../../org/apache/sysds/hops/Hop.html" title="class in org.apache.sysds.hops">Hop</a>&nbsp;hop)</pre>
<div class="block">Estimates the footprint (in bytes) for a partitioned in-memory representation of a
matrix with the hops dimensions and number of non-zeros nnz.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>hop</code> - The hop to extract dimensions and nnz from</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the memory estimate</dd>
</dl>
</li>
</ul>
<a name="estimatePartitionedSizeExactSparsity-long-long-long-double-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>estimatePartitionedSizeExactSparsity</h4>
<pre>public static&nbsp;long&nbsp;estimatePartitionedSizeExactSparsity(long&nbsp;rlen,
long&nbsp;clen,
long&nbsp;blen,
double&nbsp;sp)</pre>
<div class="block">Estimates the footprint (in bytes) for a partitioned in-memory representation of a
matrix with dimensions=(nrows,ncols) and sparsity=sp.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>rlen</code> - number of rows</dd>
<dd><code>clen</code> - number of cols</dd>
<dd><code>blen</code> - rows/cols per block</dd>
<dd><code>sp</code> - sparsity</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>memory estimate</dd>
</dl>
</li>
</ul>
<a name="estimatePartitionedSizeExactSparsity-long-long-long-double-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>estimatePartitionedSizeExactSparsity</h4>
<pre>public static&nbsp;long&nbsp;estimatePartitionedSizeExactSparsity(long&nbsp;rlen,
long&nbsp;clen,
long&nbsp;blen,
double&nbsp;sp,
boolean&nbsp;outputEmptyBlocks)</pre>
</li>
</ul>
<a name="estimateSize-long-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>estimateSize</h4>
<pre>public static&nbsp;long&nbsp;estimateSize(long&nbsp;nrows,
long&nbsp;ncols)</pre>
<div class="block">Similar to estimate() except that it provides worst-case estimates
when the optimization type is ROBUST.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>nrows</code> - number of rows</dd>
<dd><code>ncols</code> - number of cols</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>memory estimate</dd>
</dl>
</li>
</ul>
<a name="estimateSizeEmptyBlock-long-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>estimateSizeEmptyBlock</h4>
<pre>public static&nbsp;long&nbsp;estimateSizeEmptyBlock(long&nbsp;nrows,
long&nbsp;ncols)</pre>
</li>
</ul>
<a name="estimateSizeTextOutput-long-long-long-org.apache.sysds.common.Types.FileFormat-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>estimateSizeTextOutput</h4>
<pre>public static&nbsp;long&nbsp;estimateSizeTextOutput(long&nbsp;rows,
long&nbsp;cols,
long&nbsp;nnz,
<a href="../../../../org/apache/sysds/common/Types.FileFormat.html" title="enum in org.apache.sysds.common">Types.FileFormat</a>&nbsp;fmt)</pre>
</li>
</ul>
<a name="estimateSizeTextOutput-int:A-long-org.apache.sysds.common.Types.FileFormat-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>estimateSizeTextOutput</h4>
<pre>public static&nbsp;long&nbsp;estimateSizeTextOutput(int[]&nbsp;dims,
long&nbsp;nnz,
<a href="../../../../org/apache/sysds/common/Types.FileFormat.html" title="enum in org.apache.sysds.common">Types.FileFormat</a>&nbsp;fmt)</pre>
</li>
</ul>
<a name="getTotalMemEstimate-org.apache.sysds.hops.Hop:A-org.apache.sysds.hops.Hop-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTotalMemEstimate</h4>
<pre>public static&nbsp;double&nbsp;getTotalMemEstimate(<a href="../../../../org/apache/sysds/hops/Hop.html" title="class in org.apache.sysds.hops">Hop</a>[]&nbsp;in,
<a href="../../../../org/apache/sysds/hops/Hop.html" title="class in org.apache.sysds.hops">Hop</a>&nbsp;out)</pre>
</li>
</ul>
<a name="getTotalMemEstimate-org.apache.sysds.hops.Hop:A-org.apache.sysds.hops.Hop-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTotalMemEstimate</h4>
<pre>public static&nbsp;double&nbsp;getTotalMemEstimate(<a href="../../../../org/apache/sysds/hops/Hop.html" title="class in org.apache.sysds.hops">Hop</a>[]&nbsp;in,
<a href="../../../../org/apache/sysds/hops/Hop.html" title="class in org.apache.sysds.hops">Hop</a>&nbsp;out,
boolean&nbsp;denseOut)</pre>
</li>
</ul>
<a name="isIndexingRangeBlockAligned-org.apache.sysds.runtime.util.IndexRange-org.apache.sysds.runtime.meta.DataCharacteristics-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isIndexingRangeBlockAligned</h4>
<pre>public static&nbsp;boolean&nbsp;isIndexingRangeBlockAligned(<a href="../../../../org/apache/sysds/runtime/util/IndexRange.html" title="class in org.apache.sysds.runtime.util">IndexRange</a>&nbsp;ixrange,
<a href="../../../../org/apache/sysds/runtime/meta/DataCharacteristics.html" title="class in org.apache.sysds.runtime.meta">DataCharacteristics</a>&nbsp;mc)</pre>
<div class="block">Indicates if the given indexing range is block aligned, i.e., it does not require
global aggregation of blocks.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>ixrange</code> - indexing range</dd>
<dd><code>mc</code> - matrix characteristics</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if indexing range is block aligned</dd>
</dl>
</li>
</ul>
<a name="isIndexingRangeBlockAligned-long-long-long-long-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isIndexingRangeBlockAligned</h4>
<pre>public static&nbsp;boolean&nbsp;isIndexingRangeBlockAligned(long&nbsp;rl,
long&nbsp;ru,
long&nbsp;cl,
long&nbsp;cu,
long&nbsp;blen)</pre>
<div class="block">Indicates if the given indexing range is block aligned, i.e., it does not require
global aggregation of blocks.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>rl</code> - rows lower</dd>
<dd><code>ru</code> - rows upper</dd>
<dd><code>cl</code> - cols lower</dd>
<dd><code>cu</code> - cols upper</dd>
<dd><code>blen</code> - rows/cols per block</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if indexing range is block aligned</dd>
</dl>
</li>
</ul>
<a name="isValidCPDimensions-org.apache.sysds.runtime.meta.DataCharacteristics-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isValidCPDimensions</h4>
<pre>public static&nbsp;boolean&nbsp;isValidCPDimensions(<a href="../../../../org/apache/sysds/runtime/meta/DataCharacteristics.html" title="class in org.apache.sysds.runtime.meta">DataCharacteristics</a>&nbsp;mc)</pre>
</li>
</ul>
<a name="isValidCPDimensions-long-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isValidCPDimensions</h4>
<pre>public static&nbsp;boolean&nbsp;isValidCPDimensions(long&nbsp;rows,
long&nbsp;cols)</pre>
<div class="block">Returns false if dimensions known to be invalid; other true</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>rows</code> - number of rows</dd>
<dd><code>cols</code> - number of cols</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if dimensions valid</dd>
</dl>
</li>
</ul>
<a name="isValidCPDimensions-org.apache.sysds.common.Types.ValueType:A-java.lang.String:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isValidCPDimensions</h4>
<pre>public static&nbsp;boolean&nbsp;isValidCPDimensions(<a href="../../../../org/apache/sysds/common/Types.ValueType.html" title="enum in org.apache.sysds.common">Types.ValueType</a>[]&nbsp;schema,
<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;names)</pre>
<div class="block">Returns false if schema and names are not properly specified; other true
Length to be &gt; 0, and length of both to be equal.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>schema</code> - the schema</dd>
<dd><code>names</code> - the names</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>false if schema and names are not properly specified</dd>
</dl>
</li>
</ul>
<a name="isValidCPMatrixSize-long-long-double-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isValidCPMatrixSize</h4>
<pre>public static&nbsp;boolean&nbsp;isValidCPMatrixSize(long&nbsp;rows,
long&nbsp;cols,
double&nbsp;sparsity)</pre>
<div class="block">Determines if valid matrix size to be represented in CP data structures. Note that
sparsity needs to be specified as rows*cols if unknown.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>rows</code> - number of rows</dd>
<dd><code>cols</code> - number of cols</dd>
<dd><code>sparsity</code> - the sparsity</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if valid matrix size</dd>
</dl>
</li>
</ul>
<a name="exceedsCachingThreshold-long-double-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>exceedsCachingThreshold</h4>
<pre>public static&nbsp;boolean&nbsp;exceedsCachingThreshold(long&nbsp;dim2,
double&nbsp;outMem)</pre>
<div class="block">Indicates if the given matrix characteristics exceed the threshold for
caching, i.e., the matrix should be cached.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>dim2</code> - dimension 2</dd>
<dd><code>outMem</code> - ?</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if the given matrix characteristics exceed threshold</dd>
</dl>
</li>
</ul>
<a name="getUniqueTempFileName--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getUniqueTempFileName</h4>
<pre>public static&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;getUniqueTempFileName()</pre>
<div class="block">Wrapper over internal filename construction for external usage.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>unique temp file name</dd>
</dl>
</li>
</ul>
<a name="allowsToFilterEmptyBlockOutputs-org.apache.sysds.hops.Hop-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>allowsToFilterEmptyBlockOutputs</h4>
<pre>public static&nbsp;boolean&nbsp;allowsToFilterEmptyBlockOutputs(<a href="../../../../org/apache/sysds/hops/Hop.html" title="class in org.apache.sysds.hops">Hop</a>&nbsp;hop)</pre>
</li>
</ul>
<a name="getConstrainedNumThreads-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getConstrainedNumThreads</h4>
<pre>public static&nbsp;int&nbsp;getConstrainedNumThreads(int&nbsp;maxNumThreads)</pre>
</li>
</ul>
<a name="getDefaultLogLevel--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDefaultLogLevel</h4>
<pre>public static&nbsp;org.apache.log4j.Level&nbsp;getDefaultLogLevel()</pre>
</li>
</ul>
<a name="getMatMultNnz-double-double-long-long-long-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMatMultNnz</h4>
<pre>public static&nbsp;long&nbsp;getMatMultNnz(double&nbsp;sp1,
double&nbsp;sp2,
long&nbsp;m,
long&nbsp;k,
long&nbsp;n,
boolean&nbsp;worstcase)</pre>
</li>
</ul>
<a name="getMatMultSparsity-double-double-long-long-long-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMatMultSparsity</h4>
<pre>public static&nbsp;double&nbsp;getMatMultSparsity(double&nbsp;sp1,
double&nbsp;sp2,
long&nbsp;m,
long&nbsp;k,
long&nbsp;n,
boolean&nbsp;worstcase)</pre>
<div class="block">Estimates the result sparsity for Matrix Multiplication A %*% B.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sp1</code> - sparsity of A</dd>
<dd><code>sp2</code> - sparsity of B</dd>
<dd><code>m</code> - nrow(A)</dd>
<dd><code>k</code> - ncol(A), nrow(B)</dd>
<dd><code>n</code> - ncol(B)</dd>
<dd><code>worstcase</code> - true if worst case</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the sparsity</dd>
</dl>
</li>
</ul>
<a name="getLeftIndexingSparsity-long-long-long-long-long-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLeftIndexingSparsity</h4>
<pre>public static&nbsp;double&nbsp;getLeftIndexingSparsity(long&nbsp;rlen1,
long&nbsp;clen1,
long&nbsp;nnz1,
long&nbsp;rlen2,
long&nbsp;clen2,
long&nbsp;nnz2)</pre>
</li>
</ul>
<a name="isBinaryOpConditionalSparseSafe-org.apache.sysds.common.Types.OpOp2-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isBinaryOpConditionalSparseSafe</h4>
<pre>public static&nbsp;boolean&nbsp;isBinaryOpConditionalSparseSafe(<a href="../../../../org/apache/sysds/common/Types.OpOp2.html" title="enum in org.apache.sysds.common">Types.OpOp2</a>&nbsp;op)</pre>
<div class="block">Determines if a given binary op is potentially conditional sparse safe.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>op</code> - the HOP OpOp2</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if potentially conditional sparse safe</dd>
</dl>
</li>
</ul>
<a name="isBinaryOpConditionalSparseSafeExact-org.apache.sysds.common.Types.OpOp2-org.apache.sysds.hops.LiteralOp-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isBinaryOpConditionalSparseSafeExact</h4>
<pre>public static&nbsp;boolean&nbsp;isBinaryOpConditionalSparseSafeExact(<a href="../../../../org/apache/sysds/common/Types.OpOp2.html" title="enum in org.apache.sysds.common">Types.OpOp2</a>&nbsp;op,
<a href="../../../../org/apache/sysds/hops/LiteralOp.html" title="class in org.apache.sysds.hops">LiteralOp</a>&nbsp;lit)</pre>
<div class="block">Determines if a given binary op with scalar literal guarantee an output
sparsity which is exactly the same as its matrix input sparsity.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>op</code> - the HOP OpOp2</dd>
<dd><code>lit</code> - literal operator</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if output sparsity same as matrix input sparsity</dd>
</dl>
</li>
</ul>
<a name="isBinaryOpSparsityConditionalSparseSafe-org.apache.sysds.common.Types.OpOp2-org.apache.sysds.hops.LiteralOp-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isBinaryOpSparsityConditionalSparseSafe</h4>
<pre>public static&nbsp;boolean&nbsp;isBinaryOpSparsityConditionalSparseSafe(<a href="../../../../org/apache/sysds/common/Types.OpOp2.html" title="enum in org.apache.sysds.common">Types.OpOp2</a>&nbsp;op,
<a href="../../../../org/apache/sysds/hops/LiteralOp.html" title="class in org.apache.sysds.hops">LiteralOp</a>&nbsp;lit)</pre>
</li>
</ul>
<a name="getBinaryOpSparsityConditionalSparseSafe-double-org.apache.sysds.common.Types.OpOp2-org.apache.sysds.hops.LiteralOp-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getBinaryOpSparsityConditionalSparseSafe</h4>
<pre>public static&nbsp;double&nbsp;getBinaryOpSparsityConditionalSparseSafe(double&nbsp;sp1,
<a href="../../../../org/apache/sysds/common/Types.OpOp2.html" title="enum in org.apache.sysds.common">Types.OpOp2</a>&nbsp;op,
<a href="../../../../org/apache/sysds/hops/LiteralOp.html" title="class in org.apache.sysds.hops">LiteralOp</a>&nbsp;lit)</pre>
</li>
</ul>
<a name="getBinaryOpSparsity-double-double-org.apache.sysds.common.Types.OpOp2-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getBinaryOpSparsity</h4>
<pre>public static&nbsp;double&nbsp;getBinaryOpSparsity(double&nbsp;sp1,
double&nbsp;sp2,
<a href="../../../../org/apache/sysds/common/Types.OpOp2.html" title="enum in org.apache.sysds.common">Types.OpOp2</a>&nbsp;op,
boolean&nbsp;worstcase)</pre>
<div class="block">Estimates the result sparsity for matrix-matrix binary operations (A op B)</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sp1</code> - sparsity of A</dd>
<dd><code>sp2</code> - sparsity of B</dd>
<dd><code>op</code> - binary operation</dd>
<dd><code>worstcase</code> - true if worst case</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>result sparsity for matrix-matrix binary operations</dd>
</dl>
</li>
</ul>
<a name="getOuterNonZeros-long-long-long-long-org.apache.sysds.common.Types.OpOp2-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getOuterNonZeros</h4>
<pre>public static&nbsp;long&nbsp;getOuterNonZeros(long&nbsp;n1,
long&nbsp;n2,
long&nbsp;nnz1,
long&nbsp;nnz2,
<a href="../../../../org/apache/sysds/common/Types.OpOp2.html" title="enum in org.apache.sysds.common">Types.OpOp2</a>&nbsp;op)</pre>
</li>
</ul>
<a name="getNnz-long-long-double-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getNnz</h4>
<pre>public static&nbsp;long&nbsp;getNnz(long&nbsp;dim1,
long&nbsp;dim2,
double&nbsp;sp)</pre>
</li>
</ul>
<a name="getSparsity-org.apache.sysds.runtime.meta.DataCharacteristics-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSparsity</h4>
<pre>public static&nbsp;double&nbsp;getSparsity(<a href="../../../../org/apache/sysds/runtime/meta/DataCharacteristics.html" title="class in org.apache.sysds.runtime.meta">DataCharacteristics</a>&nbsp;dc)</pre>
</li>
</ul>
<a name="getSparsity-long-long-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSparsity</h4>
<pre>public static&nbsp;double&nbsp;getSparsity(long&nbsp;dim1,
long&nbsp;dim2,
long&nbsp;nnz)</pre>
</li>
</ul>
<a name="getSparsity-org.apache.sysds.hops.Hop-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSparsity</h4>
<pre>public static&nbsp;double&nbsp;getSparsity(<a href="../../../../org/apache/sysds/hops/Hop.html" title="class in org.apache.sysds.hops">Hop</a>&nbsp;hop)</pre>
</li>
</ul>
<a name="getSparsity-long:A-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSparsity</h4>
<pre>public static&nbsp;double&nbsp;getSparsity(long[]&nbsp;dims,
long&nbsp;nnz)</pre>
</li>
</ul>
<a name="toMB-double-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toMB</h4>
<pre>public static&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;toMB(double&nbsp;inB)</pre>
</li>
</ul>
<a name="getNumIterations-org.apache.sysds.runtime.controlprogram.ForProgramBlock-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getNumIterations</h4>
<pre>public static&nbsp;long&nbsp;getNumIterations(<a href="../../../../org/apache/sysds/runtime/controlprogram/ForProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">ForProgramBlock</a>&nbsp;fpb,
long&nbsp;defaultValue)</pre>
</li>
</ul>
<a name="getNumIterations-org.apache.sysds.runtime.controlprogram.ForProgramBlock-org.apache.sysds.runtime.controlprogram.LocalVariableMap-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getNumIterations</h4>
<pre>public static&nbsp;long&nbsp;getNumIterations(<a href="../../../../org/apache/sysds/runtime/controlprogram/ForProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">ForProgramBlock</a>&nbsp;fpb,
<a href="../../../../org/apache/sysds/runtime/controlprogram/LocalVariableMap.html" title="class in org.apache.sysds.runtime.controlprogram">LocalVariableMap</a>&nbsp;vars,
long&nbsp;defaultValue)</pre>
</li>
</ul>
<a name="rEvalSimpleLongExpression-org.apache.sysds.hops.Hop-java.util.HashMap-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>rEvalSimpleLongExpression</h4>
<pre>public static&nbsp;long&nbsp;rEvalSimpleLongExpression(<a href="../../../../org/apache/sysds/hops/Hop.html" title="class in org.apache.sysds.hops">Hop</a>&nbsp;root,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;&nbsp;valMemo)</pre>
<div class="block">Function to evaluate simple size expressions over literals and now/ncol.
It returns the exact results of this expressions if known, otherwise
Long.MAX_VALUE if unknown.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>root</code> - the root high-level operator</dd>
<dd><code>valMemo</code> - ?</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>size expression</dd>
</dl>
</li>
</ul>
<a name="rEvalSimpleLongExpression-org.apache.sysds.hops.Hop-java.util.HashMap-org.apache.sysds.runtime.controlprogram.LocalVariableMap-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>rEvalSimpleLongExpression</h4>
<pre>public static&nbsp;long&nbsp;rEvalSimpleLongExpression(<a href="../../../../org/apache/sysds/hops/Hop.html" title="class in org.apache.sysds.hops">Hop</a>&nbsp;root,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;&nbsp;valMemo,
<a href="../../../../org/apache/sysds/runtime/controlprogram/LocalVariableMap.html" title="class in org.apache.sysds.runtime.controlprogram">LocalVariableMap</a>&nbsp;vars)</pre>
</li>
</ul>
<a name="rEvalSimpleDoubleExpression-org.apache.sysds.hops.Hop-java.util.HashMap-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>rEvalSimpleDoubleExpression</h4>
<pre>public static&nbsp;double&nbsp;rEvalSimpleDoubleExpression(<a href="../../../../org/apache/sysds/hops/Hop.html" title="class in org.apache.sysds.hops">Hop</a>&nbsp;root,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Double.html?is-external=true" title="class or interface in java.lang">Double</a>&gt;&nbsp;valMemo)</pre>
</li>
</ul>
<a name="rEvalSimpleDoubleExpression-org.apache.sysds.hops.Hop-java.util.HashMap-org.apache.sysds.runtime.controlprogram.LocalVariableMap-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>rEvalSimpleDoubleExpression</h4>
<pre>public static&nbsp;double&nbsp;rEvalSimpleDoubleExpression(<a href="../../../../org/apache/sysds/hops/Hop.html" title="class in org.apache.sysds.hops">Hop</a>&nbsp;root,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Double.html?is-external=true" title="class or interface in java.lang">Double</a>&gt;&nbsp;valMemo,
<a href="../../../../org/apache/sysds/runtime/controlprogram/LocalVariableMap.html" title="class in org.apache.sysds.runtime.controlprogram">LocalVariableMap</a>&nbsp;vars)</pre>
</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/OptimizerUtils.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><a href="../../../../org/apache/sysds/hops/NaryOp.html" title="class in org.apache.sysds.hops"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/apache/sysds/hops/OptimizerUtils.OptimizationLevel.html" title="enum in org.apache.sysds.hops"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/sysds/hops/OptimizerUtils.html" target="_top">Frames</a></li>
<li><a href="OptimizerUtils.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><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&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>