blob: 687ac9d7bbb7d9082119cb906ac4c0321b7e4a56 [file]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>OptimizerUtils (Apache SystemDS 3.2.0-SNAPSHOT API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../jquery/jquery-3.6.0.min.js"></script>
<script type="text/javascript" src="../../../../jquery/jquery-ui.min.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="OptimizerUtils (Apache SystemDS 3.2.0-SNAPSHOT API)";
}
}
catch(err) {
}
//-->
var data = {"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,"i75":9,"i76":9,"i77":9,"i78":9,"i79":9,"i80":9,"i81":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";
var pathtoroot = "../../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.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" id="allclasses_navbar_top">
<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</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>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</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 id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.sysds.hops</a></div>
<h2 title="Class OptimizerUtils" class="title">Class OptimizerUtils</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">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>
<pre>public class <span class="typeNameLabel">OptimizerUtils</span>
extends <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></pre>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<section>
<ul class="blockList">
<li class="blockList"><a id="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<table class="memberSummary">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="OptimizerUtils.MemoryManager.html" title="enum in org.apache.sysds.hops">OptimizerUtils.MemoryManager</a></span></code></th>
<td class="colLast">
<div class="block">Memory managers (static partitioned, unified)</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="OptimizerUtils.OptimizationLevel.html" title="enum in org.apache.sysds.hops">OptimizerUtils.OptimizationLevel</a></span></code></th>
<td class="colLast">
<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>
</section>
<!-- =========== FIELD SUMMARY =========== -->
<section>
<ul class="blockList">
<li class="blockList"><a id="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ALLOW_ALGEBRAIC_SIMPLIFICATION">ALLOW_ALGEBRAIC_SIMPLIFICATION</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ALLOW_AUTO_VECTORIZATION">ALLOW_AUTO_VECTORIZATION</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ALLOW_BINARY_UPDATE_IN_PLACE">ALLOW_BINARY_UPDATE_IN_PLACE</a></span></code></th>
<td class="colLast">
<div class="block">Enables update-in-place for binary operators if the first input
has no consumers.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ALLOW_BRANCH_REMOVAL">ALLOW_BRANCH_REMOVAL</a></span></code></th>
<td class="colLast">
<div class="block">Enables if-else branch removal for constant predicates (original literals or
results of constant folding).</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ALLOW_CODE_MOTION">ALLOW_CODE_MOTION</a></span></code></th>
<td class="colLast">
<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="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ALLOW_COMBINE_FILE_INPUT_FORMAT">ALLOW_COMBINE_FILE_INPUT_FORMAT</a></span></code></th>
<td class="colLast">
<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="altColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ALLOW_COMMON_SUBEXPRESSION_ELIMINATION">ALLOW_COMMON_SUBEXPRESSION_ELIMINATION</a></span></code></th>
<td class="colLast">
<div class="block">Enables common subexpression elimination in dags.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ALLOW_COMPRESSION_REWRITE">ALLOW_COMPRESSION_REWRITE</a></span></code></th>
<td class="colLast">
<div class="block">Boolean specifying if compression rewrites is allowed.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ALLOW_CONSTANT_FOLDING">ALLOW_CONSTANT_FOLDING</a></span></code></th>
<td class="colLast">
<div class="block">Enables constant folding in dags.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ALLOW_EVAL_FCALL_REPLACEMENT">ALLOW_EVAL_FCALL_REPLACEMENT</a></span></code></th>
<td class="colLast">
<div class="block">Replace eval second-order function calls with normal function call
if the function name is a known string (after constant propagation).</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ALLOW_FOR_LOOP_REMOVAL">ALLOW_FOR_LOOP_REMOVAL</a></span></code></th>
<td class="colLast">
<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="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ALLOW_INTER_PROCEDURAL_ANALYSIS">ALLOW_INTER_PROCEDURAL_ANALYSIS</a></span></code></th>
<td class="colLast">
<div class="block">Enables interprocedural analysis between main script and functions as well as functions
and other functions.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ALLOW_LOOP_UPDATE_IN_PLACE">ALLOW_LOOP_UPDATE_IN_PLACE</a></span></code></th>
<td class="colLast">
<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="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ALLOW_OPERATOR_FUSION">ALLOW_OPERATOR_FUSION</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ALLOW_RAND_JOB_RECOMPILE">ALLOW_RAND_JOB_RECOMPILE</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ALLOW_RUNTIME_PIGGYBACKING">ALLOW_RUNTIME_PIGGYBACKING</a></span></code></th>
<td class="colLast">
<div class="block">Enables parfor runtime piggybacking of MR jobs into the packed jobs for
scan sharing.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ALLOW_SCRIPT_LEVEL_COMPRESS_COMMAND">ALLOW_SCRIPT_LEVEL_COMPRESS_COMMAND</a></span></code></th>
<td class="colLast">
<div class="block">This variable allows for insertion of Compress and decompress in the dml script from the user.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ALLOW_SCRIPT_LEVEL_LOCAL_COMMAND">ALLOW_SCRIPT_LEVEL_LOCAL_COMMAND</a></span></code></th>
<td class="colLast">
<div class="block">This variable allows for use of explicit local command, that forces a spark block to be executed and returned as a local block.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ALLOW_SIZE_EXPRESSION_EVALUATION">ALLOW_SIZE_EXPRESSION_EVALUATION</a></span></code></th>
<td class="colLast">
<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>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ALLOW_SPLIT_HOP_DAGS">ALLOW_SPLIT_HOP_DAGS</a></span></code></th>
<td class="colLast">
<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>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ALLOW_SUM_PRODUCT_REWRITES">ALLOW_SUM_PRODUCT_REWRITES</a></span></code></th>
<td class="colLast">
<div class="block">Enables sum product rewrites such as mapmultchains.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ALLOW_TRANSITIVE_SPARK_EXEC_TYPE">ALLOW_TRANSITIVE_SPARK_EXEC_TYPE</a></span></code></th>
<td class="colLast">
<div class="block">Enable transitive spark execution type selection.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ALLOW_UNARY_UPDATE_IN_PLACE">ALLOW_UNARY_UPDATE_IN_PLACE</a></span></code></th>
<td class="colLast">
<div class="block">Enables the update-in-place for all unary operators with a single
consumer.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ALLOW_WORSTCASE_SIZE_EXPRESSION_EVALUATION">ALLOW_WORSTCASE_SIZE_EXPRESSION_EVALUATION</a></span></code></th>
<td class="colLast">
<div class="block">Enables simple expression evaluation for datagen parameters 'rows', 'cols'.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ASYNC_BROADCAST_SPARK">ASYNC_BROADCAST_SPARK</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ASYNC_CHECKPOINT_SPARK">ASYNC_CHECKPOINT_SPARK</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ASYNC_PREFETCH_SPARK">ASYNC_PREFETCH_SPARK</a></span></code></th>
<td class="colLast">
<div class="block">Enable prefetch and broadcast.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#BOOLEAN_SIZE">BOOLEAN_SIZE</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#BUFFER_POOL_SIZE">BUFFER_POOL_SIZE</a></span></code></th>
<td class="colLast">
<div class="block">Buffer pool size in bytes</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#CHAR_SIZE">CHAR_SIZE</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#DEFAULT_BLOCKSIZE">DEFAULT_BLOCKSIZE</a></span></code></th>
<td class="colLast">
<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>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#DEFAULT_FRAME_BLOCKSIZE">DEFAULT_FRAME_BLOCKSIZE</a></span></code></th>
<td class="colLast">
<div class="block">Default frame blocksize</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static double</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#DEFAULT_MEM_UTIL_FACTOR">DEFAULT_MEM_UTIL_FACTOR</a></span></code></th>
<td class="colLast">
<div class="block">Default buffer pool sizes for static (15%) and unified (85%) memory</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="OptimizerUtils.OptimizationLevel.html" title="enum in org.apache.sysds.hops">OptimizerUtils.OptimizationLevel</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#DEFAULT_OPTLEVEL">DEFAULT_OPTLEVEL</a></span></code></th>
<td class="colLast">
<div class="block">Default optimization level if unspecified</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static double</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#DEFAULT_SIZE">DEFAULT_SIZE</a></span></code></th>
<td class="colLast">
<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="rowColor">
<td class="colFirst"><code>static double</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#DEFAULT_UMM_UTIL_FACTOR">DEFAULT_UMM_UTIL_FACTOR</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#DOUBLE_SIZE">DOUBLE_SIZE</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#FEDERATED_COMPILATION">FEDERATED_COMPILATION</a></span></code></th>
<td class="colLast">
<div class="block">Compile federated instructions based on input federation state and privacy constraints.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Integer.html?is-external=true" title="class or interface in java.lang" class="externalLink">Integer</a>,&#8203;<a href="../runtime/instructions/fed/FEDInstruction.FederatedOutput.html" title="enum in org.apache.sysds.runtime.instructions.fed">FEDInstruction.FederatedOutput</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#FEDERATED_SPECS">FEDERATED_SPECS</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#INT_SIZE">INT_SIZE</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static double</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#INVALID_SIZE">INVALID_SIZE</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#IPA_NUM_REPETITIONS">IPA_NUM_REPETITIONS</a></span></code></th>
<td class="colLast">
<div class="block">Number of inter-procedural analysis (IPA) repetitions.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MAX_NNZ_CP_SPARSE">MAX_NNZ_CP_SPARSE</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MAX_NUMCELLS_CP_DENSE">MAX_NUMCELLS_CP_DENSE</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MAX_PARALLELIZE_ORDER">MAX_PARALLELIZE_ORDER</a></span></code></th>
<td class="colLast">
<div class="block">Heuristic-based instruction ordering to maximize inter-operator parallelism.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static double</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MEM_UTIL_FACTOR">MEM_UTIL_FACTOR</a></span></code></th>
<td class="colLast">
<div class="block">Utilization factor used in deciding whether an operation to be scheduled on CP or MR.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="OptimizerUtils.MemoryManager.html" title="enum in org.apache.sysds.hops">OptimizerUtils.MemoryManager</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#MEMORY_MANAGER">MEMORY_MANAGER</a></span></code></th>
<td class="colLast">
<div class="block">Indicate the current memory manager in effect</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static double</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#PARALLEL_CP_READ_PARALLELISM_MULTIPLIER">PARALLEL_CP_READ_PARALLELISM_MULTIPLIER</a></span></code></th>
<td class="colLast">
<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>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#PARALLEL_CP_WRITE_PARALLELISM_MULTIPLIER">PARALLEL_CP_WRITE_PARALLELISM_MULTIPLIER</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#SAFE_REP_CHANGE_THRES">SAFE_REP_CHANGE_THRES</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<section>
<ul class="blockList">
<li class="blockList"><a id="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">OptimizerUtils</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section>
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<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="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#allowsToFilterEmptyBlockOutputs(org.apache.sysds.hops.Hop)">allowsToFilterEmptyBlockOutputs</a></span>&#8203;(<a href="Hop.html" title="class in org.apache.sysds.hops">Hop</a>&nbsp;hop)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#checkSparkBroadcastMemoryBudget(double)">checkSparkBroadcastMemoryBudget</a></span>&#8203;(double&nbsp;size)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#checkSparkBroadcastMemoryBudget(long,long,long,long)">checkSparkBroadcastMemoryBudget</a></span>&#8203;(long&nbsp;rlen,
long&nbsp;clen,
long&nbsp;blen,
long&nbsp;nnz)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#checkSparkCollectMemoryBudget(org.apache.sysds.runtime.meta.DataCharacteristics,long)">checkSparkCollectMemoryBudget</a></span>&#8203;(<a href="../runtime/meta/DataCharacteristics.html" title="class in org.apache.sysds.runtime.meta">DataCharacteristics</a>&nbsp;dc,
long&nbsp;memPinned)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#checkSparkCollectMemoryBudget(org.apache.sysds.runtime.meta.DataCharacteristics,long,boolean)">checkSparkCollectMemoryBudget</a></span>&#8203;(<a href="../runtime/meta/DataCharacteristics.html" title="class in org.apache.sysds.runtime.meta">DataCharacteristics</a>&nbsp;dc,
long&nbsp;memPinned,
boolean&nbsp;checkBP)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#checkSparseBlockCSRConversion(org.apache.sysds.runtime.meta.DataCharacteristics)">checkSparseBlockCSRConversion</a></span>&#8203;(<a href="../runtime/meta/DataCharacteristics.html" title="class in org.apache.sysds.runtime.meta">DataCharacteristics</a>&nbsp;dcIn)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>static <a href="../conf/CompilerConfig.html" title="class in org.apache.sysds.conf">CompilerConfig</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#constructCompilerConfig(org.apache.sysds.conf.CompilerConfig,org.apache.sysds.conf.DMLConfig)">constructCompilerConfig</a></span>&#8203;(<a href="../conf/CompilerConfig.html" title="class in org.apache.sysds.conf">CompilerConfig</a>&nbsp;cconf,
<a href="../conf/DMLConfig.html" title="class in org.apache.sysds.conf">DMLConfig</a>&nbsp;dmlconf)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>static <a href="../conf/CompilerConfig.html" title="class in org.apache.sysds.conf">CompilerConfig</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#constructCompilerConfig(org.apache.sysds.conf.DMLConfig)">constructCompilerConfig</a></span>&#8203;(<a href="../conf/DMLConfig.html" title="class in org.apache.sysds.conf">DMLConfig</a>&nbsp;dmlconf)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#disableUMM()">disableUMM</a></span>()</code></th>
<td class="colLast">
<div class="block">Disable unified memory manager and fallback to static partitioning.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#enableUMM()">enableUMM</a></span>()</code></th>
<td class="colLast">
<div class="block">Enable unified memory manager and initialize with the default size (85%).</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>static long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#estimatePartitionedSizeExactSparsity(long,long,long,double)">estimatePartitionedSizeExactSparsity</a></span>&#8203;(long&nbsp;rlen,
long&nbsp;clen,
long&nbsp;blen,
double&nbsp;sp)</code></th>
<td class="colLast">
<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="i11" class="rowColor">
<td class="colFirst"><code>static long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#estimatePartitionedSizeExactSparsity(long,long,long,double,boolean)">estimatePartitionedSizeExactSparsity</a></span>&#8203;(long&nbsp;rlen,
long&nbsp;clen,
long&nbsp;blen,
double&nbsp;sp,
boolean&nbsp;outputEmptyBlocks)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>static long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#estimatePartitionedSizeExactSparsity(long,long,long,long)">estimatePartitionedSizeExactSparsity</a></span>&#8203;(long&nbsp;rlen,
long&nbsp;clen,
long&nbsp;blen,
long&nbsp;nnz)</code></th>
<td class="colLast">
<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="i13" class="rowColor">
<td class="colFirst"><code>static long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#estimatePartitionedSizeExactSparsity(long,long,long,long,boolean)">estimatePartitionedSizeExactSparsity</a></span>&#8203;(long&nbsp;rlen,
long&nbsp;clen,
long&nbsp;blen,
long&nbsp;nnz,
boolean&nbsp;outputEmptyBlocks)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>static long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#estimatePartitionedSizeExactSparsity(org.apache.sysds.hops.Hop)">estimatePartitionedSizeExactSparsity</a></span>&#8203;(<a href="Hop.html" title="class in org.apache.sysds.hops">Hop</a>&nbsp;hop)</code></th>
<td class="colLast">
<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="i15" class="rowColor">
<td class="colFirst"><code>static long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#estimatePartitionedSizeExactSparsity(org.apache.sysds.runtime.meta.DataCharacteristics)">estimatePartitionedSizeExactSparsity</a></span>&#8203;(<a href="../runtime/meta/DataCharacteristics.html" title="class in org.apache.sysds.runtime.meta">DataCharacteristics</a>&nbsp;dc)</code></th>
<td class="colLast">
<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="i16" class="altColor">
<td class="colFirst"><code>static long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#estimatePartitionedSizeExactSparsity(org.apache.sysds.runtime.meta.DataCharacteristics,boolean)">estimatePartitionedSizeExactSparsity</a></span>&#8203;(<a href="../runtime/meta/DataCharacteristics.html" title="class in org.apache.sysds.runtime.meta">DataCharacteristics</a>&nbsp;dc,
boolean&nbsp;outputEmptyBlocks)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>static long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#estimateSize(long,long)">estimateSize</a></span>&#8203;(long&nbsp;nrows,
long&nbsp;ncols)</code></th>
<td class="colLast">
<div class="block">Similar to estimate() except that it provides worst-case estimates
when the optimization type is ROBUST.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>static long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#estimateSize(org.apache.sysds.runtime.meta.DataCharacteristics)">estimateSize</a></span>&#8203;(<a href="../runtime/meta/DataCharacteristics.html" title="class in org.apache.sysds.runtime.meta">DataCharacteristics</a>&nbsp;dc)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>static long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#estimateSizeEmptyBlock(long,long)">estimateSizeEmptyBlock</a></span>&#8203;(long&nbsp;nrows,
long&nbsp;ncols)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>static long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#estimateSizeExactSparsity(long,long,double)">estimateSizeExactSparsity</a></span>&#8203;(long&nbsp;nrows,
long&nbsp;ncols,
double&nbsp;sp)</code></th>
<td class="colLast">
<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="i21" class="rowColor">
<td class="colFirst"><code>static long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#estimateSizeExactSparsity(long,long,long)">estimateSizeExactSparsity</a></span>&#8203;(long&nbsp;nrows,
long&nbsp;ncols,
long&nbsp;nnz)</code></th>
<td class="colLast">
<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="i22" class="altColor">
<td class="colFirst"><code>static long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#estimateSizeExactSparsity(org.apache.sysds.runtime.meta.DataCharacteristics)">estimateSizeExactSparsity</a></span>&#8203;(<a href="../runtime/meta/DataCharacteristics.html" title="class in org.apache.sysds.runtime.meta">DataCharacteristics</a>&nbsp;dc)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code>static long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#estimateSizeTextOutput(int%5B%5D,long,org.apache.sysds.common.Types.FileFormat)">estimateSizeTextOutput</a></span>&#8203;(int[]&nbsp;dims,
long&nbsp;nnz,
<a href="../common/Types.FileFormat.html" title="enum in org.apache.sysds.common">Types.FileFormat</a>&nbsp;fmt)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code>static long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#estimateSizeTextOutput(long,long,long,org.apache.sysds.common.Types.FileFormat)">estimateSizeTextOutput</a></span>&#8203;(long&nbsp;rows,
long&nbsp;cols,
long&nbsp;nnz,
<a href="../common/Types.FileFormat.html" title="enum in org.apache.sysds.common">Types.FileFormat</a>&nbsp;fmt)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#exceedsCachingThreshold(long,double)">exceedsCachingThreshold</a></span>&#8203;(long&nbsp;dim2,
double&nbsp;outMem)</code></th>
<td class="colLast">
<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="i26" class="altColor">
<td class="colFirst"><code>static double</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getBinaryOpSparsity(double,double,org.apache.sysds.common.Types.OpOp2,boolean)">getBinaryOpSparsity</a></span>&#8203;(double&nbsp;sp1,
double&nbsp;sp2,
<a href="../common/Types.OpOp2.html" title="enum in org.apache.sysds.common">Types.OpOp2</a>&nbsp;op,
boolean&nbsp;worstcase)</code></th>
<td class="colLast">
<div class="block">Estimates the result sparsity for matrix-matrix binary operations (A op B)</div>
</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code>static double</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getBinaryOpSparsityConditionalSparseSafe(double,org.apache.sysds.common.Types.OpOp2,org.apache.sysds.hops.LiteralOp)">getBinaryOpSparsityConditionalSparseSafe</a></span>&#8203;(double&nbsp;sp1,
<a href="../common/Types.OpOp2.html" title="enum in org.apache.sysds.common">Types.OpOp2</a>&nbsp;op,
<a href="LiteralOp.html" title="class in org.apache.sysds.hops">LiteralOp</a>&nbsp;lit)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code>static long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getBufferPoolLimit()">getBufferPoolLimit</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns buffer pool size as set in the config</div>
</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getConstrainedNumThreads(int)">getConstrainedNumThreads</a></span>&#8203;(int&nbsp;maxNumThreads)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i30" class="altColor">
<td class="colFirst"><code>static <a href="../common/Types.ExecMode.html" title="enum in org.apache.sysds.common">Types.ExecMode</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDefaultExecutionMode()">getDefaultExecutionMode</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDefaultFrameSize()">getDefaultFrameSize</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i32" class="altColor">
<td class="colFirst"><code>static org.apache.log4j.Level</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDefaultLogLevel()">getDefaultLogLevel</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i33" class="rowColor">
<td class="colFirst"><code>static long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDefaultSize()">getDefaultSize</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i34" class="altColor">
<td class="colFirst"><code>static double</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLeftIndexingSparsity(long,long,long,long,long,long)">getLeftIndexingSparsity</a></span>&#8203;(long&nbsp;rlen1,
long&nbsp;clen1,
long&nbsp;nnz1,
long&nbsp;rlen2,
long&nbsp;clen2,
long&nbsp;nnz2)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i35" class="rowColor">
<td class="colFirst"><code>static double</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLocalMemBudget()">getLocalMemBudget</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns memory budget (according to util factor) in bytes</div>
</td>
</tr>
<tr id="i36" class="altColor">
<td class="colFirst"><code>static long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMatMultNnz(double,double,long,long,long,boolean)">getMatMultNnz</a></span>&#8203;(double&nbsp;sp1,
double&nbsp;sp2,
long&nbsp;m,
long&nbsp;k,
long&nbsp;n,
boolean&nbsp;worstcase)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i37" class="rowColor">
<td class="colFirst"><code>static double</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMatMultSparsity(double,double,long,long,long,boolean)">getMatMultSparsity</a></span>&#8203;(double&nbsp;sp1,
double&nbsp;sp2,
long&nbsp;m,
long&nbsp;k,
long&nbsp;n,
boolean&nbsp;worstcase)</code></th>
<td class="colLast">
<div class="block">Estimates the result sparsity for Matrix Multiplication A %*% B.</div>
</td>
</tr>
<tr id="i38" class="altColor">
<td class="colFirst"><code>static long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getNnz(long,long,double)">getNnz</a></span>&#8203;(long&nbsp;dim1,
long&nbsp;dim2,
double&nbsp;sp)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i39" class="rowColor">
<td class="colFirst"><code>static long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getNumIterations(org.apache.sysds.parser.ForStatementBlock,long)">getNumIterations</a></span>&#8203;(<a href="../parser/ForStatementBlock.html" title="class in org.apache.sysds.parser">ForStatementBlock</a>&nbsp;fsb,
long&nbsp;defaultValue)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i40" class="altColor">
<td class="colFirst"><code>static long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getNumIterations(org.apache.sysds.runtime.controlprogram.ForProgramBlock,long)">getNumIterations</a></span>&#8203;(<a href="../runtime/controlprogram/ForProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">ForProgramBlock</a>&nbsp;fpb,
long&nbsp;defaultValue)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i41" class="rowColor">
<td class="colFirst"><code>static long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getNumIterations(org.apache.sysds.runtime.controlprogram.ForProgramBlock,org.apache.sysds.runtime.controlprogram.LocalVariableMap,long)">getNumIterations</a></span>&#8203;(<a href="../runtime/controlprogram/ForProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">ForProgramBlock</a>&nbsp;fpb,
<a href="../runtime/controlprogram/LocalVariableMap.html" title="class in org.apache.sysds.runtime.controlprogram">LocalVariableMap</a>&nbsp;vars,
long&nbsp;defaultValue)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i42" class="altColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getNumMappers()">getNumMappers</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i43" class="rowColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getNumReducers(boolean)">getNumReducers</a></span>&#8203;(boolean&nbsp;configOnly)</code></th>
<td class="colLast">
<div class="block">Returns the number of reducers that potentially run in parallel.</div>
</td>
</tr>
<tr id="i44" class="altColor">
<td class="colFirst"><code>static <a href="OptimizerUtils.OptimizationLevel.html" title="enum in org.apache.sysds.hops">OptimizerUtils.OptimizationLevel</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getOptLevel()">getOptLevel</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i45" class="rowColor">
<td class="colFirst"><code>static long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getOuterNonZeros(long,long,long,long,org.apache.sysds.common.Types.OpOp2)">getOuterNonZeros</a></span>&#8203;(long&nbsp;n1,
long&nbsp;n2,
long&nbsp;nnz1,
long&nbsp;nnz2,
<a href="../common/Types.OpOp2.html" title="enum in org.apache.sysds.common">Types.OpOp2</a>&nbsp;op)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i46" class="altColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getParallelBinaryReadParallelism()">getParallelBinaryReadParallelism</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i47" class="rowColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getParallelBinaryWriteParallelism()">getParallelBinaryWriteParallelism</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i48" class="altColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getParallelTextReadParallelism()">getParallelTextReadParallelism</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the degree of parallelism used for parallel text read.</div>
</td>
</tr>
<tr id="i49" class="rowColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getParallelTextWriteParallelism()">getParallelTextWriteParallelism</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the degree of parallelism used for parallel text write.</div>
</td>
</tr>
<tr id="i50" class="altColor">
<td class="colFirst"><code>static double</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getSparsity(long%5B%5D,long)">getSparsity</a></span>&#8203;(long[]&nbsp;dims,
long&nbsp;nnz)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i51" class="rowColor">
<td class="colFirst"><code>static double</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getSparsity(long,long,long)">getSparsity</a></span>&#8203;(long&nbsp;dim1,
long&nbsp;dim2,
long&nbsp;nnz)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i52" class="altColor">
<td class="colFirst"><code>static double</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getSparsity(org.apache.sysds.hops.Hop)">getSparsity</a></span>&#8203;(<a href="Hop.html" title="class in org.apache.sysds.hops">Hop</a>&nbsp;hop)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i53" class="rowColor">
<td class="colFirst"><code>static double</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getSparsity(org.apache.sysds.runtime.meta.DataCharacteristics)">getSparsity</a></span>&#8203;(<a href="../runtime/meta/DataCharacteristics.html" title="class in org.apache.sysds.runtime.meta">DataCharacteristics</a>&nbsp;dc)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i54" class="altColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getTokenizeNumThreads()">getTokenizeNumThreads</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i55" class="rowColor">
<td class="colFirst"><code>static double</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getTotalMemEstimate(org.apache.sysds.hops.Hop%5B%5D,org.apache.sysds.hops.Hop)">getTotalMemEstimate</a></span>&#8203;(<a href="Hop.html" title="class in org.apache.sysds.hops">Hop</a>[]&nbsp;in,
<a href="Hop.html" title="class in org.apache.sysds.hops">Hop</a>&nbsp;out)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i56" class="altColor">
<td class="colFirst"><code>static double</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getTotalMemEstimate(org.apache.sysds.hops.Hop%5B%5D,org.apache.sysds.hops.Hop,boolean)">getTotalMemEstimate</a></span>&#8203;(<a href="Hop.html" title="class in org.apache.sysds.hops">Hop</a>[]&nbsp;in,
<a href="Hop.html" title="class in org.apache.sysds.hops">Hop</a>&nbsp;out,
boolean&nbsp;denseOut)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i57" class="rowColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getTransformNumThreads()">getTransformNumThreads</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i58" class="altColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getUniqueTempFileName()">getUniqueTempFileName</a></span>()</code></th>
<td class="colLast">
<div class="block">Wrapper over internal filename construction for external usage.</div>
</td>
</tr>
<tr id="i59" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isBinaryOpConditionalSparseSafe(org.apache.sysds.common.Types.OpOp2)">isBinaryOpConditionalSparseSafe</a></span>&#8203;(<a href="../common/Types.OpOp2.html" title="enum in org.apache.sysds.common">Types.OpOp2</a>&nbsp;op)</code></th>
<td class="colLast">
<div class="block">Determines if a given binary op is potentially conditional sparse safe.</div>
</td>
</tr>
<tr id="i60" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isBinaryOpConditionalSparseSafeExact(org.apache.sysds.common.Types.OpOp2,org.apache.sysds.hops.LiteralOp)">isBinaryOpConditionalSparseSafeExact</a></span>&#8203;(<a href="../common/Types.OpOp2.html" title="enum in org.apache.sysds.common">Types.OpOp2</a>&nbsp;op,
<a href="LiteralOp.html" title="class in org.apache.sysds.hops">LiteralOp</a>&nbsp;lit)</code></th>
<td class="colLast">
<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="i61" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isBinaryOpSparsityConditionalSparseSafe(org.apache.sysds.common.Types.OpOp2,org.apache.sysds.hops.LiteralOp)">isBinaryOpSparsityConditionalSparseSafe</a></span>&#8203;(<a href="../common/Types.OpOp2.html" title="enum in org.apache.sysds.common">Types.OpOp2</a>&nbsp;op,
<a href="LiteralOp.html" title="class in org.apache.sysds.hops">LiteralOp</a>&nbsp;lit)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i62" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isHybridExecutionMode()">isHybridExecutionMode</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i63" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isIndexingRangeBlockAligned(long,long,long,long,long)">isIndexingRangeBlockAligned</a></span>&#8203;(long&nbsp;rl,
long&nbsp;ru,
long&nbsp;cl,
long&nbsp;cu,
long&nbsp;blen)</code></th>
<td class="colLast">
<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="i64" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isIndexingRangeBlockAligned(org.apache.sysds.runtime.util.IndexRange,org.apache.sysds.runtime.meta.DataCharacteristics)">isIndexingRangeBlockAligned</a></span>&#8203;(<a href="../runtime/util/IndexRange.html" title="class in org.apache.sysds.runtime.util">IndexRange</a>&nbsp;ixrange,
<a href="../runtime/meta/DataCharacteristics.html" title="class in org.apache.sysds.runtime.meta">DataCharacteristics</a>&nbsp;mc)</code></th>
<td class="colLast">
<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="i65" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isMaxLocalParallelism(int)">isMaxLocalParallelism</a></span>&#8203;(int&nbsp;k)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i66" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isMemoryBasedOptLevel()">isMemoryBasedOptLevel</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i67" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isOptLevel(org.apache.sysds.hops.OptimizerUtils.OptimizationLevel)">isOptLevel</a></span>&#8203;(<a href="OptimizerUtils.OptimizationLevel.html" title="enum in org.apache.sysds.hops">OptimizerUtils.OptimizationLevel</a>&nbsp;level)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i68" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isSparkExecutionMode()">isSparkExecutionMode</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i69" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isTopLevelParFor()">isTopLevelParFor</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i70" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isUMMEnabled()">isUMMEnabled</a></span>()</code></th>
<td class="colLast">
<div class="block">Check if unified memory manager is in effect</div>
</td>
</tr>
<tr id="i71" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isValidCPDimensions(long,long)">isValidCPDimensions</a></span>&#8203;(long&nbsp;rows,
long&nbsp;cols)</code></th>
<td class="colLast">
<div class="block">Returns false if dimensions known to be invalid; other true</div>
</td>
</tr>
<tr id="i72" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isValidCPDimensions(org.apache.sysds.common.Types.ValueType%5B%5D,java.lang.String%5B%5D)">isValidCPDimensions</a></span>&#8203;(<a href="../common/Types.ValueType.html" title="enum in org.apache.sysds.common">Types.ValueType</a>[]&nbsp;schema,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>[]&nbsp;names)</code></th>
<td class="colLast">
<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="i73" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isValidCPDimensions(org.apache.sysds.runtime.meta.DataCharacteristics)">isValidCPDimensions</a></span>&#8203;(<a href="../runtime/meta/DataCharacteristics.html" title="class in org.apache.sysds.runtime.meta">DataCharacteristics</a>&nbsp;mc)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i74" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isValidCPMatrixSize(long,long,double)">isValidCPMatrixSize</a></span>&#8203;(long&nbsp;rows,
long&nbsp;cols,
double&nbsp;sparsity)</code></th>
<td class="colLast">
<div class="block">Determines if valid matrix size to be represented in CP data structures.</div>
</td>
</tr>
<tr id="i75" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#resetDefaultSize()">resetDefaultSize</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i76" class="altColor">
<td class="colFirst"><code>static void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#resetStaticCompilerFlags()">resetStaticCompilerFlags</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i77" class="rowColor">
<td class="colFirst"><code>static double</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#rEvalSimpleDoubleExpression(org.apache.sysds.hops.Hop,java.util.HashMap)">rEvalSimpleDoubleExpression</a></span>&#8203;(<a href="Hop.html" title="class in org.apache.sysds.hops">Hop</a>&nbsp;root,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/HashMap.html?is-external=true" title="class or interface in java.util" class="externalLink">HashMap</a>&lt;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Long.html?is-external=true" title="class or interface in java.lang" class="externalLink">Long</a>,&#8203;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Double.html?is-external=true" title="class or interface in java.lang" class="externalLink">Double</a>&gt;&nbsp;valMemo)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i78" class="altColor">
<td class="colFirst"><code>static double</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#rEvalSimpleDoubleExpression(org.apache.sysds.hops.Hop,java.util.HashMap,org.apache.sysds.runtime.controlprogram.LocalVariableMap)">rEvalSimpleDoubleExpression</a></span>&#8203;(<a href="Hop.html" title="class in org.apache.sysds.hops">Hop</a>&nbsp;root,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/HashMap.html?is-external=true" title="class or interface in java.util" class="externalLink">HashMap</a>&lt;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Long.html?is-external=true" title="class or interface in java.lang" class="externalLink">Long</a>,&#8203;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Double.html?is-external=true" title="class or interface in java.lang" class="externalLink">Double</a>&gt;&nbsp;valMemo,
<a href="../runtime/controlprogram/LocalVariableMap.html" title="class in org.apache.sysds.runtime.controlprogram">LocalVariableMap</a>&nbsp;vars)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i79" class="rowColor">
<td class="colFirst"><code>static long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#rEvalSimpleLongExpression(org.apache.sysds.hops.Hop,java.util.HashMap)">rEvalSimpleLongExpression</a></span>&#8203;(<a href="Hop.html" title="class in org.apache.sysds.hops">Hop</a>&nbsp;root,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/HashMap.html?is-external=true" title="class or interface in java.util" class="externalLink">HashMap</a>&lt;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Long.html?is-external=true" title="class or interface in java.lang" class="externalLink">Long</a>,&#8203;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Long.html?is-external=true" title="class or interface in java.lang" class="externalLink">Long</a>&gt;&nbsp;valMemo)</code></th>
<td class="colLast">
<div class="block">Function to evaluate simple size expressions over literals and now/ncol.</div>
</td>
</tr>
<tr id="i80" class="altColor">
<td class="colFirst"><code>static long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#rEvalSimpleLongExpression(org.apache.sysds.hops.Hop,java.util.HashMap,org.apache.sysds.runtime.controlprogram.LocalVariableMap)">rEvalSimpleLongExpression</a></span>&#8203;(<a href="Hop.html" title="class in org.apache.sysds.hops">Hop</a>&nbsp;root,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/HashMap.html?is-external=true" title="class or interface in java.util" class="externalLink">HashMap</a>&lt;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Long.html?is-external=true" title="class or interface in java.lang" class="externalLink">Long</a>,&#8203;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Long.html?is-external=true" title="class or interface in java.lang" class="externalLink">Long</a>&gt;&nbsp;valMemo,
<a href="../runtime/controlprogram/LocalVariableMap.html" title="class in org.apache.sysds.runtime.controlprogram">LocalVariableMap</a>&nbsp;vars)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i81" class="rowColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toMB(double)">toMB</a></span>&#8203;(double&nbsp;inB)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
<code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<section>
<ul class="blockList">
<li class="blockList"><a id="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a id="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 id="DEFAULT_MEM_UTIL_FACTOR">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DEFAULT_MEM_UTIL_FACTOR</h4>
<pre>public static&nbsp;double DEFAULT_MEM_UTIL_FACTOR</pre>
<div class="block">Default buffer pool sizes for static (15%) and unified (85%) memory</div>
</li>
</ul>
<a id="DEFAULT_UMM_UTIL_FACTOR">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DEFAULT_UMM_UTIL_FACTOR</h4>
<pre>public static&nbsp;double DEFAULT_UMM_UTIL_FACTOR</pre>
</li>
</ul>
<a id="MEMORY_MANAGER">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MEMORY_MANAGER</h4>
<pre>public static&nbsp;<a href="OptimizerUtils.MemoryManager.html" title="enum in org.apache.sysds.hops">OptimizerUtils.MemoryManager</a> MEMORY_MANAGER</pre>
<div class="block">Indicate the current memory manager in effect</div>
</li>
</ul>
<a id="BUFFER_POOL_SIZE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>BUFFER_POOL_SIZE</h4>
<pre>public static&nbsp;long BUFFER_POOL_SIZE</pre>
<div class="block">Buffer pool size in bytes</div>
</li>
</ul>
<a id="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 id="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 id="DEFAULT_OPTLEVEL">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DEFAULT_OPTLEVEL</h4>
<pre>public static final&nbsp;<a href="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 id="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 id="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 id="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 id="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 id="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 id="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 id="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 id="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 id="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 id="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 id="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 id="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 id="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 id="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 id="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 id="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 id="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 id="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 id="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 id="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 id="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 id="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 id="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 id="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 id="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 id="ALLOW_UNARY_UPDATE_IN_PLACE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ALLOW_UNARY_UPDATE_IN_PLACE</h4>
<pre>public static&nbsp;boolean ALLOW_UNARY_UPDATE_IN_PLACE</pre>
<div class="block">Enables the update-in-place for all unary operators with a single
consumer. In this case we do not allocate the output, but directly
write the output values back to the input block.</div>
</li>
</ul>
<a id="ALLOW_BINARY_UPDATE_IN_PLACE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ALLOW_BINARY_UPDATE_IN_PLACE</h4>
<pre>public static&nbsp;boolean ALLOW_BINARY_UPDATE_IN_PLACE</pre>
<div class="block">Enables update-in-place for binary operators if the first input
has no consumers. In this case we directly write the output
values back to the first input block.</div>
</li>
</ul>
<a id="ALLOW_EVAL_FCALL_REPLACEMENT">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ALLOW_EVAL_FCALL_REPLACEMENT</h4>
<pre>public static&nbsp;boolean ALLOW_EVAL_FCALL_REPLACEMENT</pre>
<div class="block">Replace eval second-order function calls with normal function call
if the function name is a known string (after constant propagation).</div>
</li>
</ul>
<a id="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 id="FEDERATED_COMPILATION">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>FEDERATED_COMPILATION</h4>
<pre>public static&nbsp;boolean FEDERATED_COMPILATION</pre>
<div class="block">Compile federated instructions based on input federation state and privacy constraints.</div>
</li>
</ul>
<a id="FEDERATED_SPECS">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>FEDERATED_SPECS</h4>
<pre>public static&nbsp;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Integer.html?is-external=true" title="class or interface in java.lang" class="externalLink">Integer</a>,&#8203;<a href="../runtime/instructions/fed/FEDInstruction.FederatedOutput.html" title="enum in org.apache.sysds.runtime.instructions.fed">FEDInstruction.FederatedOutput</a>&gt; FEDERATED_SPECS</pre>
</li>
</ul>
<a id="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 id="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 id="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 id="ALLOW_SCRIPT_LEVEL_LOCAL_COMMAND">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ALLOW_SCRIPT_LEVEL_LOCAL_COMMAND</h4>
<pre>public static&nbsp;boolean ALLOW_SCRIPT_LEVEL_LOCAL_COMMAND</pre>
<div class="block">This variable allows for use of explicit local command, that forces a spark block to be executed and returned as a local block.</div>
</li>
</ul>
<a id="ALLOW_SCRIPT_LEVEL_COMPRESS_COMMAND">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ALLOW_SCRIPT_LEVEL_COMPRESS_COMMAND</h4>
<pre>public static&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>
</li>
</ul>
<a id="ALLOW_COMPRESSION_REWRITE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ALLOW_COMPRESSION_REWRITE</h4>
<pre>public static&nbsp;boolean ALLOW_COMPRESSION_REWRITE</pre>
<div class="block">Boolean specifying if compression rewrites is allowed. This is disabled at run time if the IPA for Workload aware compression
is activated.</div>
</li>
</ul>
<a id="ALLOW_TRANSITIVE_SPARK_EXEC_TYPE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ALLOW_TRANSITIVE_SPARK_EXEC_TYPE</h4>
<pre>public static&nbsp;boolean ALLOW_TRANSITIVE_SPARK_EXEC_TYPE</pre>
<div class="block">Enable transitive spark execution type selection. This refines the exec-type selection logic of unary aggregates
by pushing * the unary aggregates, whose inputs are created by spark instructions, to spark execution type as well.</div>
</li>
</ul>
<a id="ASYNC_PREFETCH_SPARK">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ASYNC_PREFETCH_SPARK</h4>
<pre>public static&nbsp;boolean ASYNC_PREFETCH_SPARK</pre>
<div class="block">Enable prefetch and broadcast. Prefetch asynchronously calls acquireReadAndRelease() to trigger a chain of spark
transformations, which would would otherwise make the next instruction wait till completion. Broadcast allows
asynchronously transferring the data to all the nodes.</div>
</li>
</ul>
<a id="ASYNC_BROADCAST_SPARK">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ASYNC_BROADCAST_SPARK</h4>
<pre>public static&nbsp;boolean ASYNC_BROADCAST_SPARK</pre>
</li>
</ul>
<a id="ASYNC_CHECKPOINT_SPARK">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ASYNC_CHECKPOINT_SPARK</h4>
<pre>public static&nbsp;boolean ASYNC_CHECKPOINT_SPARK</pre>
</li>
</ul>
<a id="MAX_PARALLELIZE_ORDER">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>MAX_PARALLELIZE_ORDER</h4>
<pre>public static&nbsp;boolean MAX_PARALLELIZE_ORDER</pre>
<div class="block">Heuristic-based instruction ordering to maximize inter-operator parallelism.
Place the Spark operator chains first and trigger them to execute in parallel.</div>
</li>
</ul>
</li>
</ul>
</section>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<section>
<ul class="blockList">
<li class="blockList"><a id="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a id="&lt;init&gt;()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>OptimizerUtils</h4>
<pre>public&nbsp;OptimizerUtils()</pre>
</li>
</ul>
</li>
</ul>
</section>
<!-- ============ METHOD DETAIL ========== -->
<section>
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="getOptLevel()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getOptLevel</h4>
<pre class="methodSignature">public static&nbsp;<a href="OptimizerUtils.OptimizationLevel.html" title="enum in org.apache.sysds.hops">OptimizerUtils.OptimizationLevel</a>&nbsp;getOptLevel()</pre>
</li>
</ul>
<a id="isMemoryBasedOptLevel()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isMemoryBasedOptLevel</h4>
<pre class="methodSignature">public static&nbsp;boolean&nbsp;isMemoryBasedOptLevel()</pre>
</li>
</ul>
<a id="isOptLevel(org.apache.sysds.hops.OptimizerUtils.OptimizationLevel)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isOptLevel</h4>
<pre class="methodSignature">public static&nbsp;boolean&nbsp;isOptLevel&#8203;(<a href="OptimizerUtils.OptimizationLevel.html" title="enum in org.apache.sysds.hops">OptimizerUtils.OptimizationLevel</a>&nbsp;level)</pre>
</li>
</ul>
<a id="constructCompilerConfig(org.apache.sysds.conf.DMLConfig)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>constructCompilerConfig</h4>
<pre class="methodSignature">public static&nbsp;<a href="../conf/CompilerConfig.html" title="class in org.apache.sysds.conf">CompilerConfig</a>&nbsp;constructCompilerConfig&#8203;(<a href="../conf/DMLConfig.html" title="class in org.apache.sysds.conf">DMLConfig</a>&nbsp;dmlconf)</pre>
</li>
</ul>
<a id="constructCompilerConfig(org.apache.sysds.conf.CompilerConfig,org.apache.sysds.conf.DMLConfig)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>constructCompilerConfig</h4>
<pre class="methodSignature">public static&nbsp;<a href="../conf/CompilerConfig.html" title="class in org.apache.sysds.conf">CompilerConfig</a>&nbsp;constructCompilerConfig&#8203;(<a href="../conf/CompilerConfig.html" title="class in org.apache.sysds.conf">CompilerConfig</a>&nbsp;cconf,
<a href="../conf/DMLConfig.html" title="class in org.apache.sysds.conf">DMLConfig</a>&nbsp;dmlconf)</pre>
</li>
</ul>
<a id="resetStaticCompilerFlags()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>resetStaticCompilerFlags</h4>
<pre class="methodSignature">public static&nbsp;void&nbsp;resetStaticCompilerFlags()</pre>
</li>
</ul>
<a id="getDefaultSize()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDefaultSize</h4>
<pre class="methodSignature">public static&nbsp;long&nbsp;getDefaultSize()</pre>
</li>
</ul>
<a id="resetDefaultSize()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>resetDefaultSize</h4>
<pre class="methodSignature">public static&nbsp;void&nbsp;resetDefaultSize()</pre>
</li>
</ul>
<a id="getDefaultFrameSize()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDefaultFrameSize</h4>
<pre class="methodSignature">public static&nbsp;int&nbsp;getDefaultFrameSize()</pre>
</li>
</ul>
<a id="getLocalMemBudget()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLocalMemBudget</h4>
<pre class="methodSignature">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 id="getBufferPoolLimit()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getBufferPoolLimit</h4>
<pre class="methodSignature">public static&nbsp;long&nbsp;getBufferPoolLimit()</pre>
<div class="block">Returns buffer pool size as set in the config</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>buffer pool size in bytes</dd>
</dl>
</li>
</ul>
<a id="isUMMEnabled()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isUMMEnabled</h4>
<pre class="methodSignature">public static&nbsp;boolean&nbsp;isUMMEnabled()</pre>
<div class="block">Check if unified memory manager is in effect</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>boolean</dd>
</dl>
</li>
</ul>
<a id="disableUMM()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>disableUMM</h4>
<pre class="methodSignature">public static&nbsp;void&nbsp;disableUMM()</pre>
<div class="block">Disable unified memory manager and fallback to static partitioning.
Initialize LazyWriteBuffer with the default size (15%).</div>
</li>
</ul>
<a id="enableUMM()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>enableUMM</h4>
<pre class="methodSignature">public static&nbsp;void&nbsp;enableUMM()</pre>
<div class="block">Enable unified memory manager and initialize with the default size (85%).</div>
</li>
</ul>
<a id="isMaxLocalParallelism(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isMaxLocalParallelism</h4>
<pre class="methodSignature">public static&nbsp;boolean&nbsp;isMaxLocalParallelism&#8203;(int&nbsp;k)</pre>
</li>
</ul>
<a id="isTopLevelParFor()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isTopLevelParFor</h4>
<pre class="methodSignature">public static&nbsp;boolean&nbsp;isTopLevelParFor()</pre>
</li>
</ul>
<a id="checkSparkBroadcastMemoryBudget(double)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkSparkBroadcastMemoryBudget</h4>
<pre class="methodSignature">public static&nbsp;boolean&nbsp;checkSparkBroadcastMemoryBudget&#8203;(double&nbsp;size)</pre>
</li>
</ul>
<a id="checkSparkBroadcastMemoryBudget(long,long,long,long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkSparkBroadcastMemoryBudget</h4>
<pre class="methodSignature">public static&nbsp;boolean&nbsp;checkSparkBroadcastMemoryBudget&#8203;(long&nbsp;rlen,
long&nbsp;clen,
long&nbsp;blen,
long&nbsp;nnz)</pre>
</li>
</ul>
<a id="checkSparkCollectMemoryBudget(org.apache.sysds.runtime.meta.DataCharacteristics,long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkSparkCollectMemoryBudget</h4>
<pre class="methodSignature">public static&nbsp;boolean&nbsp;checkSparkCollectMemoryBudget&#8203;(<a href="../runtime/meta/DataCharacteristics.html" title="class in org.apache.sysds.runtime.meta">DataCharacteristics</a>&nbsp;dc,
long&nbsp;memPinned)</pre>
</li>
</ul>
<a id="checkSparkCollectMemoryBudget(org.apache.sysds.runtime.meta.DataCharacteristics,long,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkSparkCollectMemoryBudget</h4>
<pre class="methodSignature">public static&nbsp;boolean&nbsp;checkSparkCollectMemoryBudget&#8203;(<a href="../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 id="checkSparseBlockCSRConversion(org.apache.sysds.runtime.meta.DataCharacteristics)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkSparseBlockCSRConversion</h4>
<pre class="methodSignature">public static&nbsp;boolean&nbsp;checkSparseBlockCSRConversion&#8203;(<a href="../runtime/meta/DataCharacteristics.html" title="class in org.apache.sysds.runtime.meta">DataCharacteristics</a>&nbsp;dcIn)</pre>
</li>
</ul>
<a id="getNumReducers(boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getNumReducers</h4>
<pre class="methodSignature">public static&nbsp;int&nbsp;getNumReducers&#8203;(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 id="getNumMappers()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getNumMappers</h4>
<pre class="methodSignature">public static&nbsp;int&nbsp;getNumMappers()</pre>
</li>
</ul>
<a id="getDefaultExecutionMode()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDefaultExecutionMode</h4>
<pre class="methodSignature">public static&nbsp;<a href="../common/Types.ExecMode.html" title="enum in org.apache.sysds.common">Types.ExecMode</a>&nbsp;getDefaultExecutionMode()</pre>
</li>
</ul>
<a id="isSparkExecutionMode()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isSparkExecutionMode</h4>
<pre class="methodSignature">public static&nbsp;boolean&nbsp;isSparkExecutionMode()</pre>
</li>
</ul>
<a id="isHybridExecutionMode()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isHybridExecutionMode</h4>
<pre class="methodSignature">public static&nbsp;boolean&nbsp;isHybridExecutionMode()</pre>
</li>
</ul>
<a id="getParallelTextReadParallelism()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getParallelTextReadParallelism</h4>
<pre class="methodSignature">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 id="getParallelBinaryReadParallelism()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getParallelBinaryReadParallelism</h4>
<pre class="methodSignature">public static&nbsp;int&nbsp;getParallelBinaryReadParallelism()</pre>
</li>
</ul>
<a id="getParallelTextWriteParallelism()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getParallelTextWriteParallelism</h4>
<pre class="methodSignature">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 id="getParallelBinaryWriteParallelism()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getParallelBinaryWriteParallelism</h4>
<pre class="methodSignature">public static&nbsp;int&nbsp;getParallelBinaryWriteParallelism()</pre>
</li>
</ul>
<a id="estimateSize(org.apache.sysds.runtime.meta.DataCharacteristics)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>estimateSize</h4>
<pre class="methodSignature">public static&nbsp;long&nbsp;estimateSize&#8203;(<a href="../runtime/meta/DataCharacteristics.html" title="class in org.apache.sysds.runtime.meta">DataCharacteristics</a>&nbsp;dc)</pre>
</li>
</ul>
<a id="estimateSizeExactSparsity(org.apache.sysds.runtime.meta.DataCharacteristics)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>estimateSizeExactSparsity</h4>
<pre class="methodSignature">public static&nbsp;long&nbsp;estimateSizeExactSparsity&#8203;(<a href="../runtime/meta/DataCharacteristics.html" title="class in org.apache.sysds.runtime.meta">DataCharacteristics</a>&nbsp;dc)</pre>
</li>
</ul>
<a id="estimateSizeExactSparsity(long,long,long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>estimateSizeExactSparsity</h4>
<pre class="methodSignature">public static&nbsp;long&nbsp;estimateSizeExactSparsity&#8203;(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 id="estimateSizeExactSparsity(long,long,double)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>estimateSizeExactSparsity</h4>
<pre class="methodSignature">public static&nbsp;long&nbsp;estimateSizeExactSparsity&#8203;(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 id="estimatePartitionedSizeExactSparsity(org.apache.sysds.runtime.meta.DataCharacteristics)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>estimatePartitionedSizeExactSparsity</h4>
<pre class="methodSignature">public static&nbsp;long&nbsp;estimatePartitionedSizeExactSparsity&#8203;(<a href="../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 id="estimatePartitionedSizeExactSparsity(org.apache.sysds.runtime.meta.DataCharacteristics,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>estimatePartitionedSizeExactSparsity</h4>
<pre class="methodSignature">public static&nbsp;long&nbsp;estimatePartitionedSizeExactSparsity&#8203;(<a href="../runtime/meta/DataCharacteristics.html" title="class in org.apache.sysds.runtime.meta">DataCharacteristics</a>&nbsp;dc,
boolean&nbsp;outputEmptyBlocks)</pre>
</li>
</ul>
<a id="estimatePartitionedSizeExactSparsity(long,long,long,long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>estimatePartitionedSizeExactSparsity</h4>
<pre class="methodSignature">public static&nbsp;long&nbsp;estimatePartitionedSizeExactSparsity&#8203;(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 id="estimatePartitionedSizeExactSparsity(long,long,long,long,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>estimatePartitionedSizeExactSparsity</h4>
<pre class="methodSignature">public static&nbsp;long&nbsp;estimatePartitionedSizeExactSparsity&#8203;(long&nbsp;rlen,
long&nbsp;clen,
long&nbsp;blen,
long&nbsp;nnz,
boolean&nbsp;outputEmptyBlocks)</pre>
</li>
</ul>
<a id="estimatePartitionedSizeExactSparsity(org.apache.sysds.hops.Hop)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>estimatePartitionedSizeExactSparsity</h4>
<pre class="methodSignature">public static&nbsp;long&nbsp;estimatePartitionedSizeExactSparsity&#8203;(<a href="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 id="estimatePartitionedSizeExactSparsity(long,long,long,double)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>estimatePartitionedSizeExactSparsity</h4>
<pre class="methodSignature">public static&nbsp;long&nbsp;estimatePartitionedSizeExactSparsity&#8203;(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 id="estimatePartitionedSizeExactSparsity(long,long,long,double,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>estimatePartitionedSizeExactSparsity</h4>
<pre class="methodSignature">public static&nbsp;long&nbsp;estimatePartitionedSizeExactSparsity&#8203;(long&nbsp;rlen,
long&nbsp;clen,
long&nbsp;blen,
double&nbsp;sp,
boolean&nbsp;outputEmptyBlocks)</pre>
</li>
</ul>
<a id="estimateSize(long,long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>estimateSize</h4>
<pre class="methodSignature">public static&nbsp;long&nbsp;estimateSize&#8203;(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 id="estimateSizeEmptyBlock(long,long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>estimateSizeEmptyBlock</h4>
<pre class="methodSignature">public static&nbsp;long&nbsp;estimateSizeEmptyBlock&#8203;(long&nbsp;nrows,
long&nbsp;ncols)</pre>
</li>
</ul>
<a id="estimateSizeTextOutput(long,long,long,org.apache.sysds.common.Types.FileFormat)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>estimateSizeTextOutput</h4>
<pre class="methodSignature">public static&nbsp;long&nbsp;estimateSizeTextOutput&#8203;(long&nbsp;rows,
long&nbsp;cols,
long&nbsp;nnz,
<a href="../common/Types.FileFormat.html" title="enum in org.apache.sysds.common">Types.FileFormat</a>&nbsp;fmt)</pre>
</li>
</ul>
<a id="estimateSizeTextOutput(int[],long,org.apache.sysds.common.Types.FileFormat)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>estimateSizeTextOutput</h4>
<pre class="methodSignature">public static&nbsp;long&nbsp;estimateSizeTextOutput&#8203;(int[]&nbsp;dims,
long&nbsp;nnz,
<a href="../common/Types.FileFormat.html" title="enum in org.apache.sysds.common">Types.FileFormat</a>&nbsp;fmt)</pre>
</li>
</ul>
<a id="getTotalMemEstimate(org.apache.sysds.hops.Hop[],org.apache.sysds.hops.Hop)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTotalMemEstimate</h4>
<pre class="methodSignature">public static&nbsp;double&nbsp;getTotalMemEstimate&#8203;(<a href="Hop.html" title="class in org.apache.sysds.hops">Hop</a>[]&nbsp;in,
<a href="Hop.html" title="class in org.apache.sysds.hops">Hop</a>&nbsp;out)</pre>
</li>
</ul>
<a id="getTotalMemEstimate(org.apache.sysds.hops.Hop[],org.apache.sysds.hops.Hop,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTotalMemEstimate</h4>
<pre class="methodSignature">public static&nbsp;double&nbsp;getTotalMemEstimate&#8203;(<a href="Hop.html" title="class in org.apache.sysds.hops">Hop</a>[]&nbsp;in,
<a href="Hop.html" title="class in org.apache.sysds.hops">Hop</a>&nbsp;out,
boolean&nbsp;denseOut)</pre>
</li>
</ul>
<a id="isIndexingRangeBlockAligned(org.apache.sysds.runtime.util.IndexRange,org.apache.sysds.runtime.meta.DataCharacteristics)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isIndexingRangeBlockAligned</h4>
<pre class="methodSignature">public static&nbsp;boolean&nbsp;isIndexingRangeBlockAligned&#8203;(<a href="../runtime/util/IndexRange.html" title="class in org.apache.sysds.runtime.util">IndexRange</a>&nbsp;ixrange,
<a href="../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 id="isIndexingRangeBlockAligned(long,long,long,long,long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isIndexingRangeBlockAligned</h4>
<pre class="methodSignature">public static&nbsp;boolean&nbsp;isIndexingRangeBlockAligned&#8203;(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 id="isValidCPDimensions(org.apache.sysds.runtime.meta.DataCharacteristics)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isValidCPDimensions</h4>
<pre class="methodSignature">public static&nbsp;boolean&nbsp;isValidCPDimensions&#8203;(<a href="../runtime/meta/DataCharacteristics.html" title="class in org.apache.sysds.runtime.meta">DataCharacteristics</a>&nbsp;mc)</pre>
</li>
</ul>
<a id="isValidCPDimensions(long,long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isValidCPDimensions</h4>
<pre class="methodSignature">public static&nbsp;boolean&nbsp;isValidCPDimensions&#8203;(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 id="isValidCPDimensions(org.apache.sysds.common.Types.ValueType[],java.lang.String[])">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isValidCPDimensions</h4>
<pre class="methodSignature">public static&nbsp;boolean&nbsp;isValidCPDimensions&#8203;(<a href="../common/Types.ValueType.html" title="enum in org.apache.sysds.common">Types.ValueType</a>[]&nbsp;schema,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">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 id="isValidCPMatrixSize(long,long,double)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isValidCPMatrixSize</h4>
<pre class="methodSignature">public static&nbsp;boolean&nbsp;isValidCPMatrixSize&#8203;(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 id="exceedsCachingThreshold(long,double)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>exceedsCachingThreshold</h4>
<pre class="methodSignature">public static&nbsp;boolean&nbsp;exceedsCachingThreshold&#8203;(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 id="getUniqueTempFileName()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getUniqueTempFileName</h4>
<pre class="methodSignature">public static&nbsp;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">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 id="allowsToFilterEmptyBlockOutputs(org.apache.sysds.hops.Hop)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>allowsToFilterEmptyBlockOutputs</h4>
<pre class="methodSignature">public static&nbsp;boolean&nbsp;allowsToFilterEmptyBlockOutputs&#8203;(<a href="Hop.html" title="class in org.apache.sysds.hops">Hop</a>&nbsp;hop)</pre>
</li>
</ul>
<a id="getConstrainedNumThreads(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getConstrainedNumThreads</h4>
<pre class="methodSignature">public static&nbsp;int&nbsp;getConstrainedNumThreads&#8203;(int&nbsp;maxNumThreads)</pre>
</li>
</ul>
<a id="getTransformNumThreads()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTransformNumThreads</h4>
<pre class="methodSignature">public static&nbsp;int&nbsp;getTransformNumThreads()</pre>
</li>
</ul>
<a id="getTokenizeNumThreads()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTokenizeNumThreads</h4>
<pre class="methodSignature">public static&nbsp;int&nbsp;getTokenizeNumThreads()</pre>
</li>
</ul>
<a id="getDefaultLogLevel()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDefaultLogLevel</h4>
<pre class="methodSignature">public static&nbsp;org.apache.log4j.Level&nbsp;getDefaultLogLevel()</pre>
</li>
</ul>
<a id="getMatMultNnz(double,double,long,long,long,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMatMultNnz</h4>
<pre class="methodSignature">public static&nbsp;long&nbsp;getMatMultNnz&#8203;(double&nbsp;sp1,
double&nbsp;sp2,
long&nbsp;m,
long&nbsp;k,
long&nbsp;n,
boolean&nbsp;worstcase)</pre>
</li>
</ul>
<a id="getMatMultSparsity(double,double,long,long,long,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMatMultSparsity</h4>
<pre class="methodSignature">public static&nbsp;double&nbsp;getMatMultSparsity&#8203;(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 id="getLeftIndexingSparsity(long,long,long,long,long,long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLeftIndexingSparsity</h4>
<pre class="methodSignature">public static&nbsp;double&nbsp;getLeftIndexingSparsity&#8203;(long&nbsp;rlen1,
long&nbsp;clen1,
long&nbsp;nnz1,
long&nbsp;rlen2,
long&nbsp;clen2,
long&nbsp;nnz2)</pre>
</li>
</ul>
<a id="isBinaryOpConditionalSparseSafe(org.apache.sysds.common.Types.OpOp2)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isBinaryOpConditionalSparseSafe</h4>
<pre class="methodSignature">public static&nbsp;boolean&nbsp;isBinaryOpConditionalSparseSafe&#8203;(<a href="../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 id="isBinaryOpConditionalSparseSafeExact(org.apache.sysds.common.Types.OpOp2,org.apache.sysds.hops.LiteralOp)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isBinaryOpConditionalSparseSafeExact</h4>
<pre class="methodSignature">public static&nbsp;boolean&nbsp;isBinaryOpConditionalSparseSafeExact&#8203;(<a href="../common/Types.OpOp2.html" title="enum in org.apache.sysds.common">Types.OpOp2</a>&nbsp;op,
<a href="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 id="isBinaryOpSparsityConditionalSparseSafe(org.apache.sysds.common.Types.OpOp2,org.apache.sysds.hops.LiteralOp)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isBinaryOpSparsityConditionalSparseSafe</h4>
<pre class="methodSignature">public static&nbsp;boolean&nbsp;isBinaryOpSparsityConditionalSparseSafe&#8203;(<a href="../common/Types.OpOp2.html" title="enum in org.apache.sysds.common">Types.OpOp2</a>&nbsp;op,
<a href="LiteralOp.html" title="class in org.apache.sysds.hops">LiteralOp</a>&nbsp;lit)</pre>
</li>
</ul>
<a id="getBinaryOpSparsityConditionalSparseSafe(double,org.apache.sysds.common.Types.OpOp2,org.apache.sysds.hops.LiteralOp)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getBinaryOpSparsityConditionalSparseSafe</h4>
<pre class="methodSignature">public static&nbsp;double&nbsp;getBinaryOpSparsityConditionalSparseSafe&#8203;(double&nbsp;sp1,
<a href="../common/Types.OpOp2.html" title="enum in org.apache.sysds.common">Types.OpOp2</a>&nbsp;op,
<a href="LiteralOp.html" title="class in org.apache.sysds.hops">LiteralOp</a>&nbsp;lit)</pre>
</li>
</ul>
<a id="getBinaryOpSparsity(double,double,org.apache.sysds.common.Types.OpOp2,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getBinaryOpSparsity</h4>
<pre class="methodSignature">public static&nbsp;double&nbsp;getBinaryOpSparsity&#8203;(double&nbsp;sp1,
double&nbsp;sp2,
<a href="../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 id="getOuterNonZeros(long,long,long,long,org.apache.sysds.common.Types.OpOp2)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getOuterNonZeros</h4>
<pre class="methodSignature">public static&nbsp;long&nbsp;getOuterNonZeros&#8203;(long&nbsp;n1,
long&nbsp;n2,
long&nbsp;nnz1,
long&nbsp;nnz2,
<a href="../common/Types.OpOp2.html" title="enum in org.apache.sysds.common">Types.OpOp2</a>&nbsp;op)</pre>
</li>
</ul>
<a id="getNnz(long,long,double)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getNnz</h4>
<pre class="methodSignature">public static&nbsp;long&nbsp;getNnz&#8203;(long&nbsp;dim1,
long&nbsp;dim2,
double&nbsp;sp)</pre>
</li>
</ul>
<a id="getSparsity(org.apache.sysds.runtime.meta.DataCharacteristics)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSparsity</h4>
<pre class="methodSignature">public static&nbsp;double&nbsp;getSparsity&#8203;(<a href="../runtime/meta/DataCharacteristics.html" title="class in org.apache.sysds.runtime.meta">DataCharacteristics</a>&nbsp;dc)</pre>
</li>
</ul>
<a id="getSparsity(long,long,long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSparsity</h4>
<pre class="methodSignature">public static&nbsp;double&nbsp;getSparsity&#8203;(long&nbsp;dim1,
long&nbsp;dim2,
long&nbsp;nnz)</pre>
</li>
</ul>
<a id="getSparsity(org.apache.sysds.hops.Hop)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSparsity</h4>
<pre class="methodSignature">public static&nbsp;double&nbsp;getSparsity&#8203;(<a href="Hop.html" title="class in org.apache.sysds.hops">Hop</a>&nbsp;hop)</pre>
</li>
</ul>
<a id="getSparsity(long[],long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSparsity</h4>
<pre class="methodSignature">public static&nbsp;double&nbsp;getSparsity&#8203;(long[]&nbsp;dims,
long&nbsp;nnz)</pre>
</li>
</ul>
<a id="toMB(double)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toMB</h4>
<pre class="methodSignature">public static&nbsp;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;toMB&#8203;(double&nbsp;inB)</pre>
</li>
</ul>
<a id="getNumIterations(org.apache.sysds.runtime.controlprogram.ForProgramBlock,long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getNumIterations</h4>
<pre class="methodSignature">public static&nbsp;long&nbsp;getNumIterations&#8203;(<a href="../runtime/controlprogram/ForProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">ForProgramBlock</a>&nbsp;fpb,
long&nbsp;defaultValue)</pre>
</li>
</ul>
<a id="getNumIterations(org.apache.sysds.parser.ForStatementBlock,long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getNumIterations</h4>
<pre class="methodSignature">public static&nbsp;long&nbsp;getNumIterations&#8203;(<a href="../parser/ForStatementBlock.html" title="class in org.apache.sysds.parser">ForStatementBlock</a>&nbsp;fsb,
long&nbsp;defaultValue)</pre>
</li>
</ul>
<a id="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 class="methodSignature">public static&nbsp;long&nbsp;getNumIterations&#8203;(<a href="../runtime/controlprogram/ForProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">ForProgramBlock</a>&nbsp;fpb,
<a href="../runtime/controlprogram/LocalVariableMap.html" title="class in org.apache.sysds.runtime.controlprogram">LocalVariableMap</a>&nbsp;vars,
long&nbsp;defaultValue)</pre>
</li>
</ul>
<a id="rEvalSimpleLongExpression(org.apache.sysds.hops.Hop,java.util.HashMap)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>rEvalSimpleLongExpression</h4>
<pre class="methodSignature">public static&nbsp;long&nbsp;rEvalSimpleLongExpression&#8203;(<a href="Hop.html" title="class in org.apache.sysds.hops">Hop</a>&nbsp;root,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/HashMap.html?is-external=true" title="class or interface in java.util" class="externalLink">HashMap</a>&lt;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Long.html?is-external=true" title="class or interface in java.lang" class="externalLink">Long</a>,&#8203;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Long.html?is-external=true" title="class or interface in java.lang" class="externalLink">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 id="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 class="methodSignature">public static&nbsp;long&nbsp;rEvalSimpleLongExpression&#8203;(<a href="Hop.html" title="class in org.apache.sysds.hops">Hop</a>&nbsp;root,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/HashMap.html?is-external=true" title="class or interface in java.util" class="externalLink">HashMap</a>&lt;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Long.html?is-external=true" title="class or interface in java.lang" class="externalLink">Long</a>,&#8203;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Long.html?is-external=true" title="class or interface in java.lang" class="externalLink">Long</a>&gt;&nbsp;valMemo,
<a href="../runtime/controlprogram/LocalVariableMap.html" title="class in org.apache.sysds.runtime.controlprogram">LocalVariableMap</a>&nbsp;vars)</pre>
</li>
</ul>
<a id="rEvalSimpleDoubleExpression(org.apache.sysds.hops.Hop,java.util.HashMap)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>rEvalSimpleDoubleExpression</h4>
<pre class="methodSignature">public static&nbsp;double&nbsp;rEvalSimpleDoubleExpression&#8203;(<a href="Hop.html" title="class in org.apache.sysds.hops">Hop</a>&nbsp;root,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/HashMap.html?is-external=true" title="class or interface in java.util" class="externalLink">HashMap</a>&lt;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Long.html?is-external=true" title="class or interface in java.lang" class="externalLink">Long</a>,&#8203;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Double.html?is-external=true" title="class or interface in java.lang" class="externalLink">Double</a>&gt;&nbsp;valMemo)</pre>
</li>
</ul>
<a id="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 class="methodSignature">public static&nbsp;double&nbsp;rEvalSimpleDoubleExpression&#8203;(<a href="Hop.html" title="class in org.apache.sysds.hops">Hop</a>&nbsp;root,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/HashMap.html?is-external=true" title="class or interface in java.util" class="externalLink">HashMap</a>&lt;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Long.html?is-external=true" title="class or interface in java.lang" class="externalLink">Long</a>,&#8203;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Double.html?is-external=true" title="class or interface in java.lang" class="externalLink">Double</a>&gt;&nbsp;valMemo,
<a href="../runtime/controlprogram/LocalVariableMap.html" title="class in org.apache.sysds.runtime.controlprogram">LocalVariableMap</a>&nbsp;vars)</pre>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.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" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses.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>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</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 id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small>Copyright &#169; 2023 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</footer>
</body>
</html>