You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@systemds.apache.org by ba...@apache.org on 2020/08/04 08:42:51 UTC

[systemds] 02/03: [MINOR] update api docs

This is an automated email from the ASF dual-hosted git repository.

baunsgaard pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/systemds.git

commit d73bfdb1b71b20b7e56f8ec9f55d8262adca5900
Author: baunsgaard <ba...@tugraz.at>
AuthorDate: Tue Aug 4 10:21:57 2020 +0200

    [MINOR] update api docs
---
 docs/api/java/allclasses-frame.html                |   3 +
 docs/api/java/allclasses-noframe.html              |   3 +
 docs/api/java/constant-values.html                 |  87 ++--
 docs/api/java/index-all.html                       | 163 ++++++--
 docs/api/java/org/apache/sysds/api/DMLScript.html  |  15 +-
 .../api/java/org/apache/sysds/common/Builtins.html | 306 ++++++++------
 .../org/apache/sysds/common/Types.FileFormat.html  |   4 +-
 .../apache/sysds/common/Types.FunctionBlock.html   | 231 +++++++++++
 .../java/org/apache/sysds/common/Types.OpOp1.html  |   4 +-
 docs/api/java/org/apache/sysds/common/Types.html   |  28 +-
 .../common/class-use/Types.FunctionBlock.html      | 251 +++++++++++
 .../org/apache/sysds/common/package-frame.html     |   4 +
 .../org/apache/sysds/common/package-summary.html   |  17 +
 .../java/org/apache/sysds/common/package-tree.html |   4 +
 .../java/org/apache/sysds/common/package-use.html  |  39 +-
 .../api/java/org/apache/sysds/hops/FunctionOp.html |  29 +-
 .../java/org/apache/sysds/hops/class-use/Hop.html  |   5 +-
 .../hops/codegen/template/CPlanMemoTable.html      |  12 +-
 .../class-use/CPlanMemoTable.MemoTableEntry.html   |   2 +-
 .../apache/sysds/hops/ipa/FunctionCallGraph.html   |  10 +-
 .../apache/sysds/hops/rewrite/HopRewriteUtils.html |  19 +-
 .../java/org/apache/sysds/lops/FunctionCallCP.html |   6 +-
 .../java/org/apache/sysds/lops/class-use/Lop.html  |   3 +-
 .../lops/class-use/LopProperties.ExecType.html     |   3 +-
 .../java/org/apache/sysds/parser/DMLProgram.html   |  52 +--
 .../org/apache/sysds/parser/DataExpression.html    | 113 +++--
 .../org/apache/sysds/parser/ForStatementBlock.html |   2 +-
 .../sysds/parser/FunctionCallIdentifier.html       |   4 +-
 .../apache/sysds/parser/FunctionDictionary.html    | 405 ++++++++++++++++++
 .../org/apache/sysds/parser/FunctionStatement.html |   4 +-
 .../sysds/parser/FunctionStatementBlock.html       |  42 +-
 .../org/apache/sysds/parser/IfStatementBlock.html  |   2 +-
 .../apache/sysds/parser/ParForStatementBlock.html  |   2 +-
 .../org/apache/sysds/parser/StatementBlock.html    |  12 +-
 .../apache/sysds/parser/WhileStatementBlock.html   |   2 +-
 .../apache/sysds/parser/class-use/DMLProgram.html  |  28 +-
 .../sysds/parser/class-use/DataIdentifier.html     |  12 +-
 .../sysds/parser/class-use/ForStatementBlock.html  |   8 +-
 ...StatementBlock.html => FunctionDictionary.html} |  62 ++-
 .../parser/class-use/FunctionStatementBlock.html   |  66 ++-
 .../sysds/parser/class-use/IfStatementBlock.html   |   8 +-
 .../sysds/parser/class-use/ParseException.html     |  12 +
 .../sysds/parser/class-use/StatementBlock.html     |  20 +-
 .../parser/class-use/WhileStatementBlock.html      |   8 +-
 .../org/apache/sysds/parser/dml/StatementInfo.html |   4 +-
 .../org/apache/sysds/parser/package-frame.html     |   1 +
 .../org/apache/sysds/parser/package-summary.html   |  63 +--
 .../java/org/apache/sysds/parser/package-tree.html |   3 +-
 .../java/org/apache/sysds/parser/package-use.html  |  75 ++--
 .../runtime/class-use/DMLScriptException.html      |  50 ++-
 .../controlprogram/FunctionProgramBlock.html       |  60 ++-
 .../runtime/controlprogram/LocalVariableMap.html   |   8 +-
 .../sysds/runtime/controlprogram/Program.html      | 118 +++++-
 .../controlprogram/caching/CacheableData.html      |  82 ++--
 .../controlprogram/caching/FrameObject.html        |   8 +
 .../controlprogram/caching/MatrixObject.html       |  62 +--
 .../controlprogram/caching/TensorObject.html       |   8 +
 .../caching/class-use/CacheBlock.html              |   2 +-
 .../controlprogram/class-use/ForProgramBlock.html  |  12 +-
 .../class-use/FunctionProgramBlock.html            |  34 +-
 .../controlprogram/class-use/IfProgramBlock.html   |  12 +-
 .../controlprogram/class-use/LocalVariableMap.html |   2 +-
 .../class-use/ParForProgramBlock.html              |  12 +-
 .../runtime/controlprogram/class-use/Program.html  |  42 +-
 .../controlprogram/class-use/ProgramBlock.html     |  60 ++-
 .../class-use/WhileProgramBlock.html               |  12 +-
 .../sysds/runtime/controlprogram/package-tree.html |   2 +-
 .../sysds/runtime/controlprogram/package-use.html  |   3 +
 .../controlprogram/paramserv/ParamservUtils.html   |  42 +-
 .../parfor/CachedReuseVariables.html               |   4 +-
 .../parfor/opt/OptTreeConverter.html               |   6 +-
 .../parfor/opt/OptTreePlanMappingAbstract.html     |  23 +-
 .../instructions/class-use/Instruction.html        |  12 +-
 .../instructions/cp/CPInstruction.CPType.html      |   8 +-
 .../instructions/cp/FunctionCallCPInstruction.html |   8 +-
 .../instructions/cp/class-use/CPOperand.html       |   4 +-
 .../sysds/runtime/io/FileFormatPropertiesCSV.html  |  23 +-
 .../org/apache/sysds/runtime/io/FrameReader.html   |   7 +-
 .../LineageCacheConfig.LineageCachePolicy.html     |  12 +-
 .../sysds/runtime/lineage/LineageItemUtils.html    |   6 +
 .../java/org/apache/sysds/runtime/package-use.html |   5 +
 .../sysds/runtime/privacy/PrivacyMonitor.html      |   3 +-
 .../sysds/runtime/util/ByteBufferDataInput.html    |   4 +-
 .../apache/sysds/runtime/util/CollectionUtils.html | 457 +++++++++++++++++++++
 .../sysds/runtime/util/CommonThreadPool.html       |   4 +-
 .../sysds/runtime/util/ProgramConverter.html       | 196 +++++----
 .../apache/sysds/runtime/util/UtilFunctions.html   | 215 ++++------
 .../class-use/CollectionUtils.html}                |  44 +-
 .../apache/sysds/runtime/util/package-frame.html   |   1 +
 .../apache/sysds/runtime/util/package-summary.html |  44 +-
 .../apache/sysds/runtime/util/package-tree.html    |   1 +
 docs/api/java/overview-tree.html                   |   7 +-
 92 files changed, 2937 insertions(+), 1046 deletions(-)

diff --git a/docs/api/java/allclasses-frame.html b/docs/api/java/allclasses-frame.html
index a6e8ad7..32e6acc 100644
--- a/docs/api/java/allclasses-frame.html
+++ b/docs/api/java/allclasses-frame.html
@@ -167,6 +167,7 @@
 <li><a href="org/apache/sysds/runtime/compress/colgroup/ColGroupSizes.html" title="class in org.apache.sysds.runtime.compress.colgroup" target="classFrame">ColGroupSizes</a></li>
 <li><a href="org/apache/sysds/runtime/compress/colgroup/ColGroupUncompressed.html" title="class in org.apache.sysds.runtime.compress.colgroup" target="classFrame">ColGroupUncompressed</a></li>
 <li><a href="org/apache/sysds/runtime/compress/colgroup/ColGroupValue.html" title="class in org.apache.sysds.runtime.compress.colgroup" target="classFrame">ColGroupValue</a></li>
+<li><a href="org/apache/sysds/runtime/util/CollectionUtils.html" title="class in org.apache.sysds.runtime.util" target="classFrame">CollectionUtils</a></li>
 <li><a href="org/apache/sysds/runtime/compress/utils/ColumnGroupIterator.html" title="class in org.apache.sysds.runtime.compress.utils" target="classFrame">ColumnGroupIterator</a></li>
 <li><a href="org/apache/sysds/runtime/compress/cocode/ColumnGroupPartitioner.html" title="class in org.apache.sysds.runtime.compress.cocode" target="classFrame">ColumnGroupPartitioner</a></li>
 <li><a href="org/apache/sysds/runtime/compress/cocode/ColumnGroupPartitionerBinPacking.html" title="class in org.apache.sysds.runtime.compress.cocode" target="classFrame">ColumnGroupPartitionerBinPacking</a></li>
@@ -528,6 +529,7 @@
 <li><a href="org/apache/sysds/hops/ipa/FunctionCallGraph.html" title="class in org.apache.sysds.hops.ipa" target="classFrame">FunctionCallGraph</a></li>
 <li><a href="org/apache/sysds/parser/FunctionCallIdentifier.html" title="class in org.apache.sysds.parser" target="classFrame">FunctionCallIdentifier</a></li>
 <li><a href="org/apache/sysds/hops/ipa/FunctionCallSizeInfo.html" title="class in org.apache.sysds.hops.ipa" target="classFrame">FunctionCallSizeInfo</a></li>
+<li><a href="org/apache/sysds/parser/FunctionDictionary.html" title="class in org.apache.sysds.parser" target="classFrame">FunctionDictionary</a></li>
 <li><a href="org/apache/sysds/runtime/functionobjects/FunctionObject.html" title="class in org.apache.sysds.runtime.functionobjects" target="classFrame">FunctionObject</a></li>
 <li><a href="org/apache/sysds/hops/FunctionOp.html" title="class in org.apache.sysds.hops" target="classFrame">FunctionOp</a></li>
 <li><a href="org/apache/sysds/hops/FunctionOp.FunctionType.html" title="enum in org.apache.sysds.hops" target="classFrame">FunctionOp.FunctionType</a></li>
@@ -1202,6 +1204,7 @@
 <li><a href="org/apache/sysds/common/Types.ExecMode.html" title="enum in org.apache.sysds.common" target="classFrame">Types.ExecMode</a></li>
 <li><a href="org/apache/sysds/common/Types.ExecType.html" title="enum in org.apache.sysds.common" target="classFrame">Types.ExecType</a></li>
 <li><a href="org/apache/sysds/common/Types.FileFormat.html" title="enum in org.apache.sysds.common" target="classFrame">Types.FileFormat</a></li>
+<li><a href="org/apache/sysds/common/Types.FunctionBlock.html" title="interface in org.apache.sysds.common" target="classFrame"><span class="interfaceName">Types.FunctionBlock</span></a></li>
 <li><a href="org/apache/sysds/common/Types.OpOp1.html" title="enum in org.apache.sysds.common" target="classFrame">Types.OpOp1</a></li>
 <li><a href="org/apache/sysds/common/Types.OpOp2.html" title="enum in org.apache.sysds.common" target="classFrame">Types.OpOp2</a></li>
 <li><a href="org/apache/sysds/common/Types.OpOp3.html" title="enum in org.apache.sysds.common" target="classFrame">Types.OpOp3</a></li>
diff --git a/docs/api/java/allclasses-noframe.html b/docs/api/java/allclasses-noframe.html
index 0407752..780578a 100644
--- a/docs/api/java/allclasses-noframe.html
+++ b/docs/api/java/allclasses-noframe.html
@@ -167,6 +167,7 @@
 <li><a href="org/apache/sysds/runtime/compress/colgroup/ColGroupSizes.html" title="class in org.apache.sysds.runtime.compress.colgroup">ColGroupSizes</a></li>
 <li><a href="org/apache/sysds/runtime/compress/colgroup/ColGroupUncompressed.html" title="class in org.apache.sysds.runtime.compress.colgroup">ColGroupUncompressed</a></li>
 <li><a href="org/apache/sysds/runtime/compress/colgroup/ColGroupValue.html" title="class in org.apache.sysds.runtime.compress.colgroup">ColGroupValue</a></li>
+<li><a href="org/apache/sysds/runtime/util/CollectionUtils.html" title="class in org.apache.sysds.runtime.util">CollectionUtils</a></li>
 <li><a href="org/apache/sysds/runtime/compress/utils/ColumnGroupIterator.html" title="class in org.apache.sysds.runtime.compress.utils">ColumnGroupIterator</a></li>
 <li><a href="org/apache/sysds/runtime/compress/cocode/ColumnGroupPartitioner.html" title="class in org.apache.sysds.runtime.compress.cocode">ColumnGroupPartitioner</a></li>
 <li><a href="org/apache/sysds/runtime/compress/cocode/ColumnGroupPartitionerBinPacking.html" title="class in org.apache.sysds.runtime.compress.cocode">ColumnGroupPartitionerBinPacking</a></li>
@@ -528,6 +529,7 @@
 <li><a href="org/apache/sysds/hops/ipa/FunctionCallGraph.html" title="class in org.apache.sysds.hops.ipa">FunctionCallGraph</a></li>
 <li><a href="org/apache/sysds/parser/FunctionCallIdentifier.html" title="class in org.apache.sysds.parser">FunctionCallIdentifier</a></li>
 <li><a href="org/apache/sysds/hops/ipa/FunctionCallSizeInfo.html" title="class in org.apache.sysds.hops.ipa">FunctionCallSizeInfo</a></li>
+<li><a href="org/apache/sysds/parser/FunctionDictionary.html" title="class in org.apache.sysds.parser">FunctionDictionary</a></li>
 <li><a href="org/apache/sysds/runtime/functionobjects/FunctionObject.html" title="class in org.apache.sysds.runtime.functionobjects">FunctionObject</a></li>
 <li><a href="org/apache/sysds/hops/FunctionOp.html" title="class in org.apache.sysds.hops">FunctionOp</a></li>
 <li><a href="org/apache/sysds/hops/FunctionOp.FunctionType.html" title="enum in org.apache.sysds.hops">FunctionOp.FunctionType</a></li>
@@ -1202,6 +1204,7 @@
 <li><a href="org/apache/sysds/common/Types.ExecMode.html" title="enum in org.apache.sysds.common">Types.ExecMode</a></li>
 <li><a href="org/apache/sysds/common/Types.ExecType.html" title="enum in org.apache.sysds.common">Types.ExecType</a></li>
 <li><a href="org/apache/sysds/common/Types.FileFormat.html" title="enum in org.apache.sysds.common">Types.FileFormat</a></li>
+<li><a href="org/apache/sysds/common/Types.FunctionBlock.html" title="interface in org.apache.sysds.common"><span class="interfaceName">Types.FunctionBlock</span></a></li>
 <li><a href="org/apache/sysds/common/Types.OpOp1.html" title="enum in org.apache.sysds.common">Types.OpOp1</a></li>
 <li><a href="org/apache/sysds/common/Types.OpOp2.html" title="enum in org.apache.sysds.common">Types.OpOp2</a></li>
 <li><a href="org/apache/sysds/common/Types.OpOp3.html" title="enum in org.apache.sysds.common">Types.OpOp3</a></li>
diff --git a/docs/api/java/constant-values.html b/docs/api/java/constant-values.html
index 91c5532..4d06a65 100644
--- a/docs/api/java/constant-values.html
+++ b/docs/api/java/constant-values.html
@@ -414,11 +414,11 @@
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><a name="org.apache.sysds.hops.FunctionOp.OPSTRING">
+<td class="colFirst"><a name="org.apache.sysds.hops.FunctionOp.OPCODE">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
-<td><code><a href="org/apache/sysds/hops/FunctionOp.html#OPSTRING">OPSTRING</a></code></td>
-<td class="colLast"><code>"extfunct"</code></td>
+<td><code><a href="org/apache/sysds/hops/FunctionOp.html#OPCODE">OPCODE</a></code></td>
+<td class="colLast"><code>"fcall"</code></td>
 </tr>
 </tbody>
 </table>
@@ -1635,258 +1635,265 @@
 <td class="colLast"><code>false</code></td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><a name="org.apache.sysds.parser.DataExpression.DEFAULT_NA_STRINGS">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/sysds/parser/DataExpression.html#DEFAULT_NA_STRINGS">DEFAULT_NA_STRINGS</a></code></td>
+<td class="colLast"><code>""</code></td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><a name="org.apache.sysds.parser.DataExpression.DELIM_DELIMITER">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/sysds/parser/DataExpression.html#DELIM_DELIMITER">DELIM_DELIMITER</a></code></td>
 <td class="colLast"><code>"sep"</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a name="org.apache.sysds.parser.DataExpression.DELIM_FILL">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/sysds/parser/DataExpression.html#DELIM_FILL">DELIM_FILL</a></code></td>
 <td class="colLast"><code>"fill"</code></td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a name="org.apache.sysds.parser.DataExpression.DELIM_FILL_VALUE">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/sysds/parser/DataExpression.html#DELIM_FILL_VALUE">DELIM_FILL_VALUE</a></code></td>
 <td class="colLast"><code>"default"</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a name="org.apache.sysds.parser.DataExpression.DELIM_HAS_HEADER_ROW">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/sysds/parser/DataExpression.html#DELIM_HAS_HEADER_ROW">DELIM_HAS_HEADER_ROW</a></code></td>
 <td class="colLast"><code>"header"</code></td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a name="org.apache.sysds.parser.DataExpression.DELIM_NA_STRING_SEP">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/sysds/parser/DataExpression.html#DELIM_NA_STRING_SEP">DELIM_NA_STRING_SEP</a></code></td>
 <td class="colLast"><code>"\u00b7"</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a name="org.apache.sysds.parser.DataExpression.DELIM_NA_STRINGS">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/sysds/parser/DataExpression.html#DELIM_NA_STRINGS">DELIM_NA_STRINGS</a></code></td>
-<td class="colLast"><code>"na.strings"</code></td>
+<td class="colLast"><code>"naStrings"</code></td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a name="org.apache.sysds.parser.DataExpression.DELIM_SPARSE">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/sysds/parser/DataExpression.html#DELIM_SPARSE">DELIM_SPARSE</a></code></td>
 <td class="colLast"><code>"sparse"</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a name="org.apache.sysds.parser.DataExpression.DESCRIPTIONPARAM">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/sysds/parser/DataExpression.html#DESCRIPTIONPARAM">DESCRIPTIONPARAM</a></code></td>
 <td class="colLast"><code>"description"</code></td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a name="org.apache.sysds.parser.DataExpression.FED_ADDRESSES">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/sysds/parser/DataExpression.html#FED_ADDRESSES">FED_ADDRESSES</a></code></td>
 <td class="colLast"><code>"addresses"</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a name="org.apache.sysds.parser.DataExpression.FED_RANGES">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/sysds/parser/DataExpression.html#FED_RANGES">FED_RANGES</a></code></td>
 <td class="colLast"><code>"ranges"</code></td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a name="org.apache.sysds.parser.DataExpression.FED_TYPE">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/sysds/parser/DataExpression.html#FED_TYPE">FED_TYPE</a></code></td>
 <td class="colLast"><code>"type"</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a name="org.apache.sysds.parser.DataExpression.FORMAT_TYPE">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/sysds/parser/DataExpression.html#FORMAT_TYPE">FORMAT_TYPE</a></code></td>
 <td class="colLast"><code>"format"</code></td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a name="org.apache.sysds.parser.DataExpression.IO_FILENAME">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/sysds/parser/DataExpression.html#IO_FILENAME">IO_FILENAME</a></code></td>
 <td class="colLast"><code>"iofilename"</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a name="org.apache.sysds.parser.DataExpression.PRIVACY">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/sysds/parser/DataExpression.html#PRIVACY">PRIVACY</a></code></td>
 <td class="colLast"><code>"privacy"</code></td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a name="org.apache.sysds.parser.DataExpression.RAND_BY_ROW">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/sysds/parser/DataExpression.html#RAND_BY_ROW">RAND_BY_ROW</a></code></td>
 <td class="colLast"><code>"byrow"</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a name="org.apache.sysds.parser.DataExpression.RAND_COLS">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/sysds/parser/DataExpression.html#RAND_COLS">RAND_COLS</a></code></td>
 <td class="colLast"><code>"cols"</code></td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a name="org.apache.sysds.parser.DataExpression.RAND_DATA">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/sysds/parser/DataExpression.html#RAND_DATA">RAND_DATA</a></code></td>
 <td class="colLast"><code>"data"</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a name="org.apache.sysds.parser.DataExpression.RAND_DIMNAMES">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/sysds/parser/DataExpression.html#RAND_DIMNAMES">RAND_DIMNAMES</a></code></td>
 <td class="colLast"><code>"dimnames"</code></td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a name="org.apache.sysds.parser.DataExpression.RAND_DIMS">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/sysds/parser/DataExpression.html#RAND_DIMS">RAND_DIMS</a></code></td>
 <td class="colLast"><code>"dims"</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a name="org.apache.sysds.parser.DataExpression.RAND_LAMBDA">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/sysds/parser/DataExpression.html#RAND_LAMBDA">RAND_LAMBDA</a></code></td>
 <td class="colLast"><code>"lambda"</code></td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a name="org.apache.sysds.parser.DataExpression.RAND_MAX">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/sysds/parser/DataExpression.html#RAND_MAX">RAND_MAX</a></code></td>
 <td class="colLast"><code>"max"</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a name="org.apache.sysds.parser.DataExpression.RAND_MIN">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/sysds/parser/DataExpression.html#RAND_MIN">RAND_MIN</a></code></td>
 <td class="colLast"><code>"min"</code></td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a name="org.apache.sysds.parser.DataExpression.RAND_PDF">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/sysds/parser/DataExpression.html#RAND_PDF">RAND_PDF</a></code></td>
 <td class="colLast"><code>"pdf"</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a name="org.apache.sysds.parser.DataExpression.RAND_PDF_UNIFORM">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/sysds/parser/DataExpression.html#RAND_PDF_UNIFORM">RAND_PDF_UNIFORM</a></code></td>
 <td class="colLast"><code>"uniform"</code></td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a name="org.apache.sysds.parser.DataExpression.RAND_ROWS">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/sysds/parser/DataExpression.html#RAND_ROWS">RAND_ROWS</a></code></td>
 <td class="colLast"><code>"rows"</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a name="org.apache.sysds.parser.DataExpression.RAND_SEED">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/sysds/parser/DataExpression.html#RAND_SEED">RAND_SEED</a></code></td>
 <td class="colLast"><code>"seed"</code></td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a name="org.apache.sysds.parser.DataExpression.RAND_SPARSITY">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/sysds/parser/DataExpression.html#RAND_SPARSITY">RAND_SPARSITY</a></code></td>
 <td class="colLast"><code>"sparsity"</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a name="org.apache.sysds.parser.DataExpression.READCOLPARAM">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/sysds/parser/DataExpression.html#READCOLPARAM">READCOLPARAM</a></code></td>
 <td class="colLast"><code>"cols"</code></td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a name="org.apache.sysds.parser.DataExpression.READNNZPARAM">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/sysds/parser/DataExpression.html#READNNZPARAM">READNNZPARAM</a></code></td>
 <td class="colLast"><code>"nnz"</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a name="org.apache.sysds.parser.DataExpression.READROWPARAM">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/sysds/parser/DataExpression.html#READROWPARAM">READROWPARAM</a></code></td>
 <td class="colLast"><code>"rows"</code></td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a name="org.apache.sysds.parser.DataExpression.ROWBLOCKCOUNTPARAM">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/sysds/parser/DataExpression.html#ROWBLOCKCOUNTPARAM">ROWBLOCKCOUNTPARAM</a></code></td>
 <td class="colLast"><code>"rows_in_block"</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a name="org.apache.sysds.parser.DataExpression.SCHEMAPARAM">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/sysds/parser/DataExpression.html#SCHEMAPARAM">SCHEMAPARAM</a></code></td>
 <td class="colLast"><code>"schema"</code></td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a name="org.apache.sysds.parser.DataExpression.SQL_CONN">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/sysds/parser/DataExpression.html#SQL_CONN">SQL_CONN</a></code></td>
 <td class="colLast"><code>"conn"</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a name="org.apache.sysds.parser.DataExpression.SQL_PASS">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/sysds/parser/DataExpression.html#SQL_PASS">SQL_PASS</a></code></td>
 <td class="colLast"><code>"password"</code></td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a name="org.apache.sysds.parser.DataExpression.SQL_QUERY">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/sysds/parser/DataExpression.html#SQL_QUERY">SQL_QUERY</a></code></td>
 <td class="colLast"><code>"query"</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a name="org.apache.sysds.parser.DataExpression.SQL_USER">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/sysds/parser/DataExpression.html#SQL_USER">SQL_USER</a></code></td>
 <td class="colLast"><code>"user"</code></td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a name="org.apache.sysds.parser.DataExpression.VALUETYPEPARAM">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
diff --git a/docs/api/java/index-all.html b/docs/api/java/index-all.html
index 0439119..fd97dc8 100644
--- a/docs/api/java/index-all.html
+++ b/docs/api/java/index-all.html
@@ -201,6 +201,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/hops/codegen/template/CPlanMemoTable.html#addAll-org.apache.sysds.hops.Hop-org.apache.sysds.hops.codegen.template.CPlanMemoTable.MemoTableEntrySet-">addAll(Hop, CPlanMemoTable.MemoTableEntrySet)</a></span> - Method in class org.apache.sysds.hops.codegen.template.<a href="org/apache/sysds/hops/codegen/template/CPlanMemoTable.html" title="class in org.apache.sysds.hops.codegen.template">CPlanMemoTable</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/util/CollectionUtils.html#addAll-java.util.Collection-T:A-">addAll(Collection&lt;T&gt;, T[])</a></span> - Static method in class org.apache.sysds.runtime.util.<a href="org/apache/sysds/runtime/util/CollectionUtils.html" title="class in org.apache.sysds.runtime.util">CollectionUtils</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/lineage/LineageItemUtils.html#addAllDataLineage-org.apache.sysds.runtime.controlprogram.context.ExecutionContext-">addAllDataLineage(ExecutionContext)</a></span> - Static method in class org.apache.sysds.runtime.lineage.<a href="org/apache/sysds/runtime/lineage/LineageItemUtils.html" title="class in org.apache.sysds.runtime.lineage">LineageItemUtils</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/hops/Hop.html#addAllInputs-java.util.ArrayList-">addAllInputs(ArrayList&lt;Hop&gt;)</a></span> - Method in class org.apache.sysds.hops.<a href="org/apache/sysds/hops/Hop.html" title="class in org.apache.sysds.hops">Hop</a></dt>
@@ -236,8 +238,14 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/parser/DataExpression.html#addFederatedExprParam-java.lang.String-org.apache.sysds.parser.Expression-">addFederatedExprParam(String, Expression)</a></span> - Method in class org.apache.sysds.parser.<a href="org/apache/sysds/parser/DataExpression.html" title="class in org.apache.sysds.parser">DataExpression</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/sysds/parser/FunctionDictionary.html#addFunction-java.lang.String-T-">addFunction(String, T)</a></span> - Method in class org.apache.sysds.parser.<a href="org/apache/sysds/parser/FunctionDictionary.html" title="class in org.apache.sysds.parser">FunctionDictionary</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/sysds/parser/FunctionDictionary.html#addFunction-java.lang.String-T-boolean-">addFunction(String, T, boolean)</a></span> - Method in class org.apache.sysds.parser.<a href="org/apache/sysds/parser/FunctionDictionary.html" title="class in org.apache.sysds.parser">FunctionDictionary</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/controlprogram/Program.html#addFunctionProgramBlock-java.lang.String-java.lang.String-org.apache.sysds.runtime.controlprogram.FunctionProgramBlock-">addFunctionProgramBlock(String, String, FunctionProgramBlock)</a></span> - Method in class org.apache.sysds.runtime.controlprogram.<a href="org/apache/sysds/runtime/controlprogram/Program.html" title="class in org.apache.sysds.runtime.controlprogram">Program</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/controlprogram/Program.html#addFunctionProgramBlock-java.lang.String-java.lang.String-org.apache.sysds.runtime.controlprogram.FunctionProgramBlock-boolean-">addFunctionProgramBlock(String, String, FunctionProgramBlock, boolean)</a></span> - Method in class org.apache.sysds.runtime.controlprogram.<a href="org/apache/sysds/runtime/controlprogram/Program.html" title="class in org.apache.sysds.runtime.controlprogram">Program< [...]
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/parser/DMLProgram.html#addFunctionStatementBlock-java.lang.String-org.apache.sysds.parser.FunctionStatementBlock-">addFunctionStatementBlock(String, FunctionStatementBlock)</a></span> - Method in class org.apache.sysds.parser.<a href="org/apache/sysds/parser/DMLProgram.html" title="class in org.apache.sysds.parser">DMLProgram</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/parser/DMLProgram.html#addFunctionStatementBlock-java.lang.String-java.lang.String-org.apache.sysds.parser.FunctionStatementBlock-">addFunctionStatementBlock(String, String, FunctionStatementBlock)</a></span> - Method in class org.apache.sysds.parser.<a href="org/apache/sysds/parser/DMLProgram.html" title="class in org.apache.sysds.parser">DMLProgram</a></dt>
@@ -1040,11 +1048,13 @@
 <dd>&nbsp;</dd>
 <dt><a href="org/apache/sysds/runtime/instructions/gpu/ArithmeticBinaryGPUInstruction.html" title="class in org.apache.sysds.runtime.instructions.gpu"><span class="typeNameLink">ArithmeticBinaryGPUInstruction</span></a> - Class in <a href="org/apache/sysds/runtime/instructions/gpu/package-summary.html">org.apache.sysds.runtime.instructions.gpu</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/util/CollectionUtils.html#asArrayList-T...-">asArrayList(T...)</a></span> - Static method in class org.apache.sysds.runtime.util.<a href="org/apache/sysds/runtime/util/CollectionUtils.html" title="class in org.apache.sysds.runtime.util">CollectionUtils</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/matrix/data/LibMatrixCUDA.html#asin-org.apache.sysds.runtime.controlprogram.context.ExecutionContext-org.apache.sysds.runtime.instructions.gpu.context.GPUContext-java.lang.String-org.apache.sysds.runtime.controlprogram.caching.MatrixObject-java.lang.String-">asin(ExecutionContext, GPUContext, String, MatrixObject, String)</a></span> - Static method in class org.apache.sysds.runtime.matrix.data.<a href="org/apache/sysds/ru [...]
 <dd>
 <div class="block">Performs an "asin" operation on a matrix on the GPU</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/util/UtilFunctions.html#asList-java.util.List...-">asList(List&lt;T&gt;...)</a></span> - Static method in class org.apache.sysds.runtime.util.<a href="org/apache/sysds/runtime/util/UtilFunctions.html" title="class in org.apache.sysds.runtime.util">UtilFunctions</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/util/CollectionUtils.html#asList-java.util.List...-">asList(List&lt;T&gt;...)</a></span> - Static method in class org.apache.sysds.runtime.util.<a href="org/apache/sysds/runtime/util/CollectionUtils.html" title="class in org.apache.sysds.runtime.util">CollectionUtils</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/api/mlcontext/Metadata.html#asMatrixCharacteristics--">asMatrixCharacteristics()</a></span> - Method in class org.apache.sysds.api.mlcontext.<a href="org/apache/sysds/api/mlcontext/Metadata.html" title="class in org.apache.sysds.api.mlcontext">Metadata</a></dt>
 <dd>
@@ -1054,11 +1064,11 @@
 <dd>
 <div class="block">Assemble the matrix of features and labels according to the rowID</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/util/UtilFunctions.html#asSet-java.util.List...-">asSet(List&lt;T&gt;...)</a></span> - Static method in class org.apache.sysds.runtime.util.<a href="org/apache/sysds/runtime/util/UtilFunctions.html" title="class in org.apache.sysds.runtime.util">UtilFunctions</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/util/CollectionUtils.html#asSet-T...-">asSet(T...)</a></span> - Static method in class org.apache.sysds.runtime.util.<a href="org/apache/sysds/runtime/util/CollectionUtils.html" title="class in org.apache.sysds.runtime.util">CollectionUtils</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/util/UtilFunctions.html#asSet-T:A...-">asSet(T[]...)</a></span> - Static method in class org.apache.sysds.runtime.util.<a href="org/apache/sysds/runtime/util/UtilFunctions.html" title="class in org.apache.sysds.runtime.util">UtilFunctions</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/util/CollectionUtils.html#asSet-T:A...-">asSet(T[]...)</a></span> - Static method in class org.apache.sysds.runtime.util.<a href="org/apache/sysds/runtime/util/CollectionUtils.html" title="class in org.apache.sysds.runtime.util">CollectionUtils</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/util/UtilFunctions.html#asSet-T...-">asSet(T...)</a></span> - Static method in class org.apache.sysds.runtime.util.<a href="org/apache/sysds/runtime/util/UtilFunctions.html" title="class in org.apache.sysds.runtime.util">UtilFunctions</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/util/CollectionUtils.html#asSet-java.util.List...-">asSet(List&lt;T&gt;...)</a></span> - Static method in class org.apache.sysds.runtime.util.<a href="org/apache/sysds/runtime/util/CollectionUtils.html" title="class in org.apache.sysds.runtime.util">CollectionUtils</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/compress/colgroup/ColGroupFactory.html#assignColumns-int-org.apache.sysds.runtime.compress.colgroup.ColGroup:A-org.apache.sysds.runtime.matrix.data.MatrixBlock-org.apache.sysds.runtime.compress.CompressionSettings-">assignColumns(int, ColGroup[], MatrixBlock, CompressionSettings)</a></span> - Static method in class org.apache.sysds.runtime.compress.colgroup.<a href="org/apache/sysds/runtime/compress/colgroup/ColGroupFacto [...]
 <dd>
@@ -1921,6 +1931,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/io/ReaderTextCellParallel.CellBuffer.html#CAPACITY">CAPACITY</a></span> - Static variable in class org.apache.sysds.runtime.io.<a href="org/apache/sysds/runtime/io/ReaderTextCellParallel.CellBuffer.html" title="class in org.apache.sysds.runtime.io">ReaderTextCellParallel.CellBuffer</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/util/CollectionUtils.html#cardinality-T-java.util.List-">cardinality(T, List&lt;T&gt;)</a></span> - Static method in class org.apache.sysds.runtime.util.<a href="org/apache/sysds/runtime/util/CollectionUtils.html" title="class in org.apache.sysds.runtime.util">CollectionUtils</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/compress/cocode/PlanningCoCoder.GroupableColInfo.html#cardRatio">cardRatio</a></span> - Variable in class org.apache.sysds.runtime.compress.cocode.<a href="org/apache/sysds/runtime/compress/cocode/PlanningCoCoder.GroupableColInfo.html" title="class in org.apache.sysds.runtime.compress.cocode">PlanningCoCoder.GroupableColInfo</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/lops/UnaryCP.html#CAST_AS_BOOLEAN_OPCODE">CAST_AS_BOOLEAN_OPCODE</a></span> - Static variable in class org.apache.sysds.lops.<a href="org/apache/sysds/lops/UnaryCP.html" title="class in org.apache.sysds.lops">UnaryCP</a></dt>
@@ -2476,6 +2488,12 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/meta/MetaDataFormat.html#clone--">clone()</a></span> - Method in class org.apache.sysds.runtime.meta.<a href="org/apache/sysds/runtime/meta/MetaDataFormat.html" title="class in org.apache.sysds.runtime.meta">MetaDataFormat</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/sysds/common/Types.FunctionBlock.html#cloneFunctionBlock--">cloneFunctionBlock()</a></span> - Method in interface org.apache.sysds.common.<a href="org/apache/sysds/common/Types.FunctionBlock.html" title="interface in org.apache.sysds.common">Types.FunctionBlock</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/sysds/parser/FunctionStatementBlock.html#cloneFunctionBlock--">cloneFunctionBlock()</a></span> - Method in class org.apache.sysds.parser.<a href="org/apache/sysds/parser/FunctionStatementBlock.html" title="class in org.apache.sysds.parser">FunctionStatementBlock</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/controlprogram/FunctionProgramBlock.html#cloneFunctionBlock--">cloneFunctionBlock()</a></span> - Method in class org.apache.sysds.runtime.controlprogram.<a href="org/apache/sysds/runtime/controlprogram/FunctionProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">FunctionProgramBlock</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/util/ProgramConverter.html#cloneInstruction-org.apache.sysds.runtime.instructions.Instruction-long-boolean-boolean-">cloneInstruction(Instruction, long, boolean, boolean)</a></span> - Static method in class org.apache.sysds.runtime.util.<a href="org/apache/sysds/runtime/util/ProgramConverter.html" title="class in org.apache.sysds.runtime.util">ProgramConverter</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/api/jmlc/Connection.html#close--">close()</a></span> - Method in class org.apache.sysds.api.jmlc.<a href="org/apache/sysds/api/jmlc/Connection.html" title="class in org.apache.sysds.api.jmlc">Connection</a></dt>
@@ -2764,6 +2782,10 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/compress/cocode/PlanningCoCodingGroup.ColIndexes.html#ColIndexes-int:A-">ColIndexes(int[])</a></span> - Constructor for class org.apache.sysds.runtime.compress.cocode.<a href="org/apache/sysds/runtime/compress/cocode/PlanningCoCodingGroup.ColIndexes.html" title="class in org.apache.sysds.runtime.compress.cocode">PlanningCoCodingGroup.ColIndexes</a></dt>
 <dd>&nbsp;</dd>
+<dt><a href="org/apache/sysds/runtime/util/CollectionUtils.html" title="class in org.apache.sysds.runtime.util"><span class="typeNameLink">CollectionUtils</span></a> - Class in <a href="org/apache/sysds/runtime/util/package-summary.html">org.apache.sysds.runtime.util</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/util/CollectionUtils.html#CollectionUtils--">CollectionUtils()</a></span> - Constructor for class org.apache.sysds.runtime.util.<a href="org/apache/sysds/runtime/util/CollectionUtils.html" title="class in org.apache.sysds.runtime.util">CollectionUtils</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/parser/dml/DmlParser.IndexedExpressionContext.html#colLower">colLower</a></span> - Variable in class org.apache.sysds.parser.dml.<a href="org/apache/sysds/parser/dml/DmlParser.IndexedExpressionContext.html" title="class in org.apache.sysds.parser.dml">DmlParser.IndexedExpressionContext</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/compress/estim/CompressedSizeInfo.html#colsC">colsC</a></span> - Variable in class org.apache.sysds.runtime.compress.estim.<a href="org/apache/sysds/runtime/compress/estim/CompressedSizeInfo.html" title="class in org.apache.sysds.runtime.compress.estim">CompressedSizeInfo</a></dt>
@@ -3563,17 +3585,25 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/lineage/LineageMap.html#contains-org.apache.sysds.runtime.instructions.cp.CPOperand-">contains(CPOperand)</a></span> - Method in class org.apache.sysds.runtime.lineage.<a href="org/apache/sysds/runtime/lineage/LineageMap.html" title="class in org.apache.sysds.runtime.lineage">LineageMap</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/util/CollectionUtils.html#containsAny-java.util.Collection-java.util.Collection-">containsAny(Collection&lt;T&gt;, Collection&lt;T&gt;)</a></span> - Static method in class org.apache.sysds.runtime.util.<a href="org/apache/sysds/runtime/util/CollectionUtils.html" title="class in org.apache.sysds.runtime.util">CollectionUtils</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/parser/VariableSet.html#containsAnyName-java.util.Set-">containsAnyName(Set&lt;String&gt;)</a></span> - Method in class org.apache.sysds.parser.<a href="org/apache/sysds/parser/VariableSet.html" title="class in org.apache.sysds.parser">VariableSet</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/controlprogram/parfor/opt/ProgramRecompiler.html#containsAtLeastOneFunction-org.apache.sysds.runtime.controlprogram.ProgramBlock-">containsAtLeastOneFunction(ProgramBlock)</a></span> - Static method in class org.apache.sysds.runtime.controlprogram.parfor.opt.<a href="org/apache/sysds/runtime/controlprogram/parfor/opt/ProgramRecompiler.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">ProgramRecompi [...]
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/hops/codegen/template/TemplateUtils.html#containsBinary-org.apache.sysds.hops.codegen.cplan.CNode-org.apache.sysds.hops.codegen.cplan.CNodeBinary.BinType-">containsBinary(CNode, CNodeBinary.BinType)</a></span> - Static method in class org.apache.sysds.hops.codegen.template.<a href="org/apache/sysds/hops/codegen/template/TemplateUtils.html" title="class in org.apache.sysds.hops.codegen.template">TemplateUtils</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/sysds/parser/FunctionDictionary.html#containsFunction-java.lang.String-">containsFunction(String)</a></span> - Method in class org.apache.sysds.parser.<a href="org/apache/sysds/parser/FunctionDictionary.html" title="class in org.apache.sysds.parser">FunctionDictionary</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/sysds/parser/FunctionDictionary.html#containsFunction-java.lang.String-boolean-">containsFunction(String, boolean)</a></span> - Method in class org.apache.sysds.parser.<a href="org/apache/sysds/parser/FunctionDictionary.html" title="class in org.apache.sysds.parser">FunctionDictionary</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/controlprogram/parfor/opt/OptTreeConverter.html#containsFunctionCallInstruction-org.apache.sysds.runtime.controlprogram.BasicProgramBlock-">containsFunctionCallInstruction(BasicProgramBlock)</a></span> - Static method in class org.apache.sysds.runtime.controlprogram.parfor.opt.<a href="org/apache/sysds/runtime/controlprogram/parfor/opt/OptTreeConverter.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.o [...]
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/controlprogram/Program.html#containsFunctionProgramBlock-java.lang.String-java.lang.String-">containsFunctionProgramBlock(String, String)</a></span> - Method in class org.apache.sysds.runtime.controlprogram.<a href="org/apache/sysds/runtime/controlprogram/Program.html" title="class in org.apache.sysds.runtime.controlprogram">Program</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/sysds/parser/DMLProgram.html#containsFunctionStatementBlock-java.lang.String-">containsFunctionStatementBlock(String)</a></span> - Method in class org.apache.sysds.parser.<a href="org/apache/sysds/parser/DMLProgram.html" title="class in org.apache.sysds.parser">DMLProgram</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/controlprogram/Program.html#containsFunctionProgramBlock-java.lang.String-boolean-">containsFunctionProgramBlock(String, boolean)</a></span> - Method in class org.apache.sysds.runtime.controlprogram.<a href="org/apache/sysds/runtime/controlprogram/Program.html" title="class in org.apache.sysds.runtime.controlprogram">Program</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/controlprogram/Program.html#containsFunctionProgramBlock-java.lang.String-java.lang.String-boolean-">containsFunctionProgramBlock(String, String, boolean)</a></span> - Method in class org.apache.sysds.runtime.controlprogram.<a href="org/apache/sysds/runtime/controlprogram/Program.html" title="class in org.apache.sysds.runtime.controlprogram">Program</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/hops/codegen/template/CPlanMemoTable.html#containsHop-org.apache.sysds.hops.Hop-">containsHop(Hop)</a></span> - Method in class org.apache.sysds.hops.codegen.template.<a href="org/apache/sysds/hops/codegen/template/CPlanMemoTable.html" title="class in org.apache.sysds.hops.codegen.template">CPlanMemoTable</a></dt>
 <dd>&nbsp;</dd>
@@ -4091,6 +4121,10 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/util/UtilFunctions.html#copyOf-org.apache.sysds.common.Types.ValueType:A-org.apache.sysds.common.Types.ValueType:A-">copyOf(Types.ValueType[], Types.ValueType[])</a></span> - Static method in class org.apache.sysds.runtime.util.<a href="org/apache/sysds/runtime/util/UtilFunctions.html" title="class in org.apache.sysds.runtime.util">UtilFunctions</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/sysds/parser/DMLProgram.html#copyOriginalFunctions--">copyOriginalFunctions()</a></span> - Method in class org.apache.sysds.parser.<a href="org/apache/sysds/parser/DMLProgram.html" title="class in org.apache.sysds.parser">DMLProgram</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/sysds/parser/FunctionDictionary.html#copyOriginalFunctions--">copyOriginalFunctions()</a></span> - Method in class org.apache.sysds.parser.<a href="org/apache/sysds/parser/FunctionDictionary.html" title="class in org.apache.sysds.parser">FunctionDictionary</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/instructions/gpu/context/CSRPointer.html#copyPtrToHost-org.apache.sysds.runtime.instructions.gpu.context.CSRPointer-int-long-int:A-int:A-">copyPtrToHost(CSRPointer, int, long, int[], int[])</a></span> - Static method in class org.apache.sysds.runtime.instructions.gpu.context.<a href="org/apache/sysds/runtime/instructions/gpu/context/CSRPointer.html" title="class in org.apache.sysds.runtime.instructions.gpu.context">CSRPoi [...]
 <dd>
 <div class="block">Static method to copy a CSR sparse matrix from Device to host</div>
@@ -4467,24 +4501,26 @@
 <dd>
 <div class="block">Creates a deep copy of the given execution context.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/util/ProgramConverter.html#createDeepCopyForProgramBlock-org.apache.sysds.runtime.controlprogram.ForProgramBlock-long-int-org.apache.sysds.runtime.controlprogram.Program-java.util.HashSet-java.util.HashSet-boolean-boolean-">createDeepCopyForProgramBlock(ForProgramBlock, long, int, Program, HashSet&lt;String&gt;, HashSet&lt;String&gt;, boolean, boolean)</a></span> - Static method in class org.apache.sysds.runtime.util.<a h [...]
+<dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/util/ProgramConverter.html#createDeepCopyForProgramBlock-org.apache.sysds.runtime.controlprogram.ForProgramBlock-long-int-org.apache.sysds.runtime.controlprogram.Program-java.util.Set-java.util.Set-boolean-boolean-">createDeepCopyForProgramBlock(ForProgramBlock, long, int, Program, Set&lt;String&gt;, Set&lt;String&gt;, boolean, boolean)</a></span> - Static method in class org.apache.sysds.runtime.util.<a href="org/apache/ [...]
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/util/ProgramConverter.html#createDeepCopyFunctionProgramBlock-java.lang.String-java.lang.String-long-int-org.apache.sysds.runtime.controlprogram.Program-java.util.HashSet-java.util.HashSet-boolean-">createDeepCopyFunctionProgramBlock(String, String, long, int, Program, HashSet&lt;String&gt;, HashSet&lt;String&gt;, boolean)</a></span> - Static method in class org.apache.sysds.runtime.util.<a href="org/apache/sysds/runtime/ [...]
+<dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/util/ProgramConverter.html#createDeepCopyFunctionProgramBlock-java.lang.String-java.lang.String-long-int-org.apache.sysds.runtime.controlprogram.Program-java.util.Set-java.util.Set-boolean-">createDeepCopyFunctionProgramBlock(String, String, long, int, Program, Set&lt;String&gt;, Set&lt;String&gt;, boolean)</a></span> - Static method in class org.apache.sysds.runtime.util.<a href="org/apache/sysds/runtime/util/ProgramConv [...]
 <dd>
 <div class="block">This creates a deep copy of a function program block.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/util/ProgramConverter.html#createDeepCopyFunctionProgramBlock-org.apache.sysds.runtime.controlprogram.FunctionProgramBlock-java.util.HashSet-java.util.HashSet-">createDeepCopyFunctionProgramBlock(FunctionProgramBlock, HashSet&lt;String&gt;, HashSet&lt;String&gt;)</a></span> - Static method in class org.apache.sysds.runtime.util.<a href="org/apache/sysds/runtime/util/ProgramConverter.html" title="class in org.apache.sysds. [...]
+<dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/util/ProgramConverter.html#createDeepCopyFunctionProgramBlock-org.apache.sysds.runtime.controlprogram.FunctionProgramBlock-java.util.Set-java.util.Set-">createDeepCopyFunctionProgramBlock(FunctionProgramBlock, Set&lt;String&gt;, Set&lt;String&gt;)</a></span> - Static method in class org.apache.sysds.runtime.util.<a href="org/apache/sysds/runtime/util/ProgramConverter.html" title="class in org.apache.sysds.runtime.util">Pr [...]
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/util/ProgramConverter.html#createDeepCopyIfProgramBlock-org.apache.sysds.runtime.controlprogram.IfProgramBlock-long-int-org.apache.sysds.runtime.controlprogram.Program-java.util.HashSet-java.util.HashSet-boolean-boolean-">createDeepCopyIfProgramBlock(IfProgramBlock, long, int, Program, HashSet&lt;String&gt;, HashSet&lt;String&gt;, boolean, boolean)</a></span> - Static method in class org.apache.sysds.runtime.util.<a href= [...]
+<dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/util/ProgramConverter.html#createDeepCopyFunctionStatementBlock-org.apache.sysds.parser.FunctionStatementBlock-java.util.Set-java.util.Set-">createDeepCopyFunctionStatementBlock(FunctionStatementBlock, Set&lt;String&gt;, Set&lt;String&gt;)</a></span> - Static method in class org.apache.sysds.runtime.util.<a href="org/apache/sysds/runtime/util/ProgramConverter.html" title="class in org.apache.sysds.runtime.util">ProgramCon [...]
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/util/ProgramConverter.html#createDeepCopyInstructionSet-java.util.ArrayList-long-int-org.apache.sysds.runtime.controlprogram.Program-java.util.HashSet-java.util.HashSet-boolean-boolean-">createDeepCopyInstructionSet(ArrayList&lt;Instruction&gt;, long, int, Program, HashSet&lt;String&gt;, HashSet&lt;String&gt;, boolean, boolean)</a></span> - Static method in class org.apache.sysds.runtime.util.<a href="org/apache/sysds/run [...]
+<dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/util/ProgramConverter.html#createDeepCopyIfProgramBlock-org.apache.sysds.runtime.controlprogram.IfProgramBlock-long-int-org.apache.sysds.runtime.controlprogram.Program-java.util.Set-java.util.Set-boolean-boolean-">createDeepCopyIfProgramBlock(IfProgramBlock, long, int, Program, Set&lt;String&gt;, Set&lt;String&gt;, boolean, boolean)</a></span> - Static method in class org.apache.sysds.runtime.util.<a href="org/apache/sysd [...]
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/util/ProgramConverter.html#createDeepCopyInstructionSet-java.util.ArrayList-long-int-org.apache.sysds.runtime.controlprogram.Program-java.util.Set-java.util.Set-boolean-boolean-">createDeepCopyInstructionSet(ArrayList&lt;Instruction&gt;, long, int, Program, Set&lt;String&gt;, Set&lt;String&gt;, boolean, boolean)</a></span> - Static method in class org.apache.sysds.runtime.util.<a href="org/apache/sysds/runtime/util/Progra [...]
 <dd>
 <div class="block">Creates a deep copy of an array of instructions and replaces the placeholders of parworker
  IDs with the concrete IDs of this parfor instance.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/util/ProgramConverter.html#createDeepCopyParForProgramBlock-org.apache.sysds.runtime.controlprogram.ParForProgramBlock-long-int-org.apache.sysds.runtime.controlprogram.Program-java.util.HashSet-java.util.HashSet-boolean-boolean-">createDeepCopyParForProgramBlock(ParForProgramBlock, long, int, Program, HashSet&lt;String&gt;, HashSet&lt;String&gt;, boolean, boolean)</a></span> - Static method in class org.apache.sysds.runti [...]
+<dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/util/ProgramConverter.html#createDeepCopyParForProgramBlock-org.apache.sysds.runtime.controlprogram.ParForProgramBlock-long-int-org.apache.sysds.runtime.controlprogram.Program-java.util.Set-java.util.Set-boolean-boolean-">createDeepCopyParForProgramBlock(ParForProgramBlock, long, int, Program, Set&lt;String&gt;, Set&lt;String&gt;, boolean, boolean)</a></span> - Static method in class org.apache.sysds.runtime.util.<a href= [...]
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/util/ProgramConverter.html#createDeepCopyWhileProgramBlock-org.apache.sysds.runtime.controlprogram.WhileProgramBlock-long-int-org.apache.sysds.runtime.controlprogram.Program-java.util.HashSet-java.util.HashSet-boolean-boolean-">createDeepCopyWhileProgramBlock(WhileProgramBlock, long, int, Program, HashSet&lt;String&gt;, HashSet&lt;String&gt;, boolean, boolean)</a></span> - Static method in class org.apache.sysds.runtime.u [...]
+<dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/util/ProgramConverter.html#createDeepCopyWhileProgramBlock-org.apache.sysds.runtime.controlprogram.WhileProgramBlock-long-int-org.apache.sysds.runtime.controlprogram.Program-java.util.Set-java.util.Set-boolean-boolean-">createDeepCopyWhileProgramBlock(WhileProgramBlock, long, int, Program, Set&lt;String&gt;, Set&lt;String&gt;, boolean, boolean)</a></span> - Static method in class org.apache.sysds.runtime.util.<a href="org [...]
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/data/DenseBlockFactory.html#createDenseBlock-int-int-">createDenseBlock(int, int)</a></span> - Static method in class org.apache.sysds.runtime.data.<a href="org/apache/sysds/runtime/data/DenseBlockFactory.html" title="class in org.apache.sysds.runtime.data">DenseBlockFactory</a></dt>
 <dd>&nbsp;</dd>
@@ -4530,7 +4566,7 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/controlprogram/paramserv/ParamservUtils.html#createExecutionContext-org.apache.sysds.runtime.controlprogram.context.ExecutionContext-org.apache.sysds.runtime.controlprogram.LocalVariableMap-java.lang.String-java.lang.String-int-">createExecutionContext(ExecutionContext, LocalVariableMap, String, String, int)</a></span> - Static method in class org.apache.sysds.runtime.controlprogram.paramserv.<a href="org/apache/sysds/run [...]
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/util/ProgramConverter.html#createForStatementBlockCopy-org.apache.sysds.parser.ForStatementBlock-long-boolean-boolean-">createForStatementBlockCopy(ForStatementBlock, long, boolean, boolean)</a></span> - Static method in class org.apache.sysds.runtime.util.<a href="org/apache/sysds/runtime/util/ProgramConverter.html" title="class in org.apache.sysds.runtime.util">ProgramConverter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/util/ProgramConverter.html#createForStatementBlockCopy-org.apache.sysds.parser.ForStatementBlock-boolean-">createForStatementBlockCopy(ForStatementBlock, boolean)</a></span> - Static method in class org.apache.sysds.runtime.util.<a href="org/apache/sysds/runtime/util/ProgramConverter.html" title="class in org.apache.sysds.runtime.util">ProgramConverter</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/io/FrameWriter.html#createFrameBlocksForReuse-org.apache.sysds.common.Types.ValueType:A-java.lang.String:A-long-">createFrameBlocksForReuse(Types.ValueType[], String[], long)</a></span> - Static method in class org.apache.sysds.runtime.io.<a href="org/apache/sysds/runtime/io/FrameWriter.html" title="class in org.apache.sysds.runtime.io">FrameWriter</a></dt>
 <dd>&nbsp;</dd>
@@ -4546,7 +4582,7 @@
 <dd>
 <div class="block">Instantiates a new <a href="org/apache/sysds/runtime/instructions/gpu/context/GPUObject.html" title="class in org.apache.sysds.runtime.instructions.gpu.context"><code>GPUObject</code></a> initialized with the given <a href="org/apache/sysds/runtime/controlprogram/caching/MatrixObject.html" title="class in org.apache.sysds.runtime.controlprogram.caching"><code>MatrixObject</code></a>.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/util/ProgramConverter.html#createIfStatementBlockCopy-org.apache.sysds.parser.IfStatementBlock-long-boolean-boolean-">createIfStatementBlockCopy(IfStatementBlock, long, boolean, boolean)</a></span> - Static method in class org.apache.sysds.runtime.util.<a href="org/apache/sysds/runtime/util/ProgramConverter.html" title="class in org.apache.sysds.runtime.util">ProgramConverter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/util/ProgramConverter.html#createIfStatementBlockCopy-org.apache.sysds.parser.IfStatementBlock-boolean-">createIfStatementBlockCopy(IfStatementBlock, boolean)</a></span> - Static method in class org.apache.sysds.runtime.util.<a href="org/apache/sysds/runtime/util/ProgramConverter.html" title="class in org.apache.sysds.runtime.util">ProgramConverter</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/hops/rewrite/HopRewriteUtils.html#createIndexingOp-org.apache.sysds.hops.Hop-long-long-">createIndexingOp(Hop, long, long)</a></span> - Static method in class org.apache.sysds.hops.rewrite.<a href="org/apache/sysds/hops/rewrite/HopRewriteUtils.html" title="class in org.apache.sysds.hops.rewrite">HopRewriteUtils</a></dt>
 <dd>&nbsp;</dd>
@@ -4768,7 +4804,7 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/hops/codegen/cplan/CNode.html#createVarname--">createVarname()</a></span> - Method in class org.apache.sysds.hops.codegen.cplan.<a href="org/apache/sysds/hops/codegen/cplan/CNode.html" title="class in org.apache.sysds.hops.codegen.cplan">CNode</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/util/ProgramConverter.html#createWhileStatementBlockCopy-org.apache.sysds.parser.WhileStatementBlock-long-boolean-boolean-">createWhileStatementBlockCopy(WhileStatementBlock, long, boolean, boolean)</a></span> - Static method in class org.apache.sysds.runtime.util.<a href="org/apache/sysds/runtime/util/ProgramConverter.html" title="class in org.apache.sysds.runtime.util">ProgramConverter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/util/ProgramConverter.html#createWhileStatementBlockCopy-org.apache.sysds.parser.WhileStatementBlock-boolean-">createWhileStatementBlockCopy(WhileStatementBlock, boolean)</a></span> - Static method in class org.apache.sysds.runtime.util.<a href="org/apache/sysds/runtime/util/ProgramConverter.html" title="class in org.apache.sysds.runtime.util">ProgramConverter</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/util/LocalFileUtils.html#createWorkingDirectory--">createWorkingDirectory()</a></span> - Static method in class org.apache.sysds.runtime.util.<a href="org/apache/sysds/runtime/util/LocalFileUtils.html" title="class in org.apache.sysds.runtime.util">LocalFileUtils</a></dt>
 <dd>&nbsp;</dd>
@@ -5702,6 +5738,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/controlprogram/parfor/opt/CostEstimatorHops.html#DEFAULT_MEM_SP">DEFAULT_MEM_SP</a></span> - Static variable in class org.apache.sysds.runtime.controlprogram.parfor.opt.<a href="org/apache/sysds/runtime/controlprogram/parfor/opt/CostEstimatorHops.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">CostEstimatorHops</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/sysds/parser/DataExpression.html#DEFAULT_NA_STRINGS">DEFAULT_NA_STRINGS</a></span> - Static variable in class org.apache.sysds.parser.<a href="org/apache/sysds/parser/DataExpression.html" title="class in org.apache.sysds.parser">DataExpression</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/parser/DMLProgram.html#DEFAULT_NAMESPACE">DEFAULT_NAMESPACE</a></span> - Static variable in class org.apache.sysds.parser.<a href="org/apache/sysds/parser/DMLProgram.html" title="class in org.apache.sysds.parser">DMLProgram</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/conf/DMLConfig.html#DEFAULT_NUMBER_OF_FEDERATED_WORKER_THREADS">DEFAULT_NUMBER_OF_FEDERATED_WORKER_THREADS</a></span> - Static variable in class org.apache.sysds.conf.<a href="org/apache/sysds/conf/DMLConfig.html" title="class in org.apache.sysds.conf">DMLConfig</a></dt>
@@ -7582,6 +7620,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/meta/TensorCharacteristics.html#equals-java.lang.Object-">equals(Object)</a></span> - Method in class org.apache.sysds.runtime.meta.<a href="org/apache/sysds/runtime/meta/TensorCharacteristics.html" title="class in org.apache.sysds.runtime.meta">TensorCharacteristics</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/util/CollectionUtils.html#equals-java.util.List-java.util.List-">equals(List&lt;T&gt;, List&lt;T&gt;)</a></span> - Static method in class org.apache.sysds.runtime.util.<a href="org/apache/sysds/runtime/util/CollectionUtils.html" title="class in org.apache.sysds.runtime.util">CollectionUtils</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/api/DMLException.html#ERROR_MSG_DELIMITER">ERROR_MSG_DELIMITER</a></span> - Static variable in exception org.apache.sysds.api.<a href="org/apache/sysds/api/DMLException.html" title="class in org.apache.sysds.api">DMLException</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/hops/estim/EstimatorBasicAvg.html#estim-org.apache.sysds.hops.estim.MMNode-">estim(MMNode)</a></span> - Method in class org.apache.sysds.hops.estim.<a href="org/apache/sysds/hops/estim/EstimatorBasicAvg.html" title="class in org.apache.sysds.hops.estim">EstimatorBasicAvg</a></dt>
@@ -7970,6 +8010,8 @@
 <div class="block">Indicates if the given matrix characteristics exceed the threshold for 
  caching, i.e., the matrix should be cached.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/util/CollectionUtils.html#except-java.util.List-java.util.List-">except(List&lt;T&gt;, List&lt;T&gt;)</a></span> - Static method in class org.apache.sysds.runtime.util.<a href="org/apache/sysds/runtime/util/CollectionUtils.html" title="class in org.apache.sysds.runtime.util">CollectionUtils</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/controlprogram/federated/FederatedWorkerHandler.html#exceptionCaught-io.netty.channel.ChannelHandlerContext-java.lang.Throwable-">exceptionCaught(ChannelHandlerContext, Throwable)</a></span> - Method in class org.apache.sysds.runtime.controlprogram.federated.<a href="org/apache/sysds/runtime/controlprogram/federated/FederatedWorkerHandler.html" title="class in org.apache.sysds.runtime.controlprogram.federated">FederatedWo [...]
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html#exchangeChild-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-">exchangeChild(OptNode, OptNode)</a></span> - Method in class org.apache.sysds.runtime.controlprogram.parfor.opt.<a href="org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt [...]
@@ -10253,13 +10295,13 @@
 <dd>&nbsp;</dd>
 <dt><a href="org/apache/sysds/lops/FunctionCallCP.html" title="class in org.apache.sysds.lops"><span class="typeNameLink">FunctionCallCP</span></a> - Class in <a href="org/apache/sysds/lops/package-summary.html">org.apache.sysds.lops</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/sysds/lops/FunctionCallCP.html#FunctionCallCP-java.util.ArrayList-java.lang.String-java.lang.String-java.lang.String:A-java.lang.String:A-java.util.ArrayList-org.apache.sysds.lops.LopProperties.ExecType-">FunctionCallCP(ArrayList&lt;Lop&gt;, String, String, String[], String[], ArrayList&lt;Hop&gt;, LopProperties.ExecType)</a></span> - Constructor for class org.apache.sysds.lops.<a href="org/apache/sysds/lops/FunctionCallCP.html" title= [...]
+<dt><span class="memberNameLink"><a href="org/apache/sysds/lops/FunctionCallCP.html#FunctionCallCP-java.util.ArrayList-java.lang.String-java.lang.String-java.lang.String:A-java.lang.String:A-java.util.ArrayList-boolean-org.apache.sysds.lops.LopProperties.ExecType-">FunctionCallCP(ArrayList&lt;Lop&gt;, String, String, String[], String[], ArrayList&lt;Hop&gt;, boolean, LopProperties.ExecType)</a></span> - Constructor for class org.apache.sysds.lops.<a href="org/apache/sysds/lops/FunctionCa [...]
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/lops/FunctionCallCP.html#FunctionCallCP-java.util.ArrayList-java.lang.String-java.lang.String-java.lang.String:A-java.lang.String:A-org.apache.sysds.lops.LopProperties.ExecType-">FunctionCallCP(ArrayList&lt;Lop&gt;, String, String, String[], String[], LopProperties.ExecType)</a></span> - Constructor for class org.apache.sysds.lops.<a href="org/apache/sysds/lops/FunctionCallCP.html" title="class in org.apache.sysds.lops">FunctionC [...]
 <dd>&nbsp;</dd>
 <dt><a href="org/apache/sysds/runtime/instructions/cp/FunctionCallCPInstruction.html" title="class in org.apache.sysds.runtime.instructions.cp"><span class="typeNameLink">FunctionCallCPInstruction</span></a> - Class in <a href="org/apache/sysds/runtime/instructions/cp/package-summary.html">org.apache.sysds.runtime.instructions.cp</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/instructions/cp/FunctionCallCPInstruction.html#FunctionCallCPInstruction-java.lang.String-java.lang.String-org.apache.sysds.runtime.instructions.cp.CPOperand:A-java.util.List-java.util.List-java.util.List-java.lang.String-">FunctionCallCPInstruction(String, String, CPOperand[], List&lt;String&gt;, List&lt;String&gt;, List&lt;String&gt;, String)</a></span> - Constructor for class org.apache.sysds.runtime.instructions.cp.<a [...]
+<dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/instructions/cp/FunctionCallCPInstruction.html#FunctionCallCPInstruction-java.lang.String-java.lang.String-boolean-org.apache.sysds.runtime.instructions.cp.CPOperand:A-java.util.List-java.util.List-java.lang.String-">FunctionCallCPInstruction(String, String, boolean, CPOperand[], List&lt;String&gt;, List&lt;String&gt;, String)</a></span> - Constructor for class org.apache.sysds.runtime.instructions.cp.<a href="org/apache/ [...]
 <dd>&nbsp;</dd>
 <dt><a href="org/apache/sysds/hops/ipa/FunctionCallGraph.html" title="class in org.apache.sysds.hops.ipa"><span class="typeNameLink">FunctionCallGraph</span></a> - Class in <a href="org/apache/sysds/hops/ipa/package-summary.html">org.apache.sysds.hops.ipa</a></dt>
 <dd>&nbsp;</dd>
@@ -10297,6 +10339,13 @@
 <div class="block">Constructs the function call summary for all functions
  reachable from the main program.</div>
 </dd>
+<dt><a href="org/apache/sysds/parser/FunctionDictionary.html" title="class in org.apache.sysds.parser"><span class="typeNameLink">FunctionDictionary</span></a>&lt;<a href="org/apache/sysds/parser/FunctionDictionary.html" title="type parameter in FunctionDictionary">T</a> extends <a href="org/apache/sysds/common/Types.FunctionBlock.html" title="interface in org.apache.sysds.common">Types.FunctionBlock</a>&gt; - Class in <a href="org/apache/sysds/parser/package-summary.html">org.apache.sys [...]
+<dd>
+<div class="block">Dictionary of all functions of a namespace, represented as a simple
+ key-value map of function names and function statement blocks.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/sysds/parser/FunctionDictionary.html#FunctionDictionary--">FunctionDictionary()</a></span> - Constructor for class org.apache.sysds.parser.<a href="org/apache/sysds/parser/FunctionDictionary.html" title="class in org.apache.sysds.parser">FunctionDictionary</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/parser/dml/DmlSyntacticValidator.ConvertedDMLSyntax.html#functionName">functionName</a></span> - Variable in class org.apache.sysds.parser.dml.<a href="org/apache/sysds/parser/dml/DmlSyntacticValidator.ConvertedDMLSyntax.html" title="class in org.apache.sysds.parser.dml">DmlSyntacticValidator.ConvertedDMLSyntax</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/parser/dml/StatementInfo.html#functionName">functionName</a></span> - Variable in class org.apache.sysds.parser.dml.<a href="org/apache/sysds/parser/dml/StatementInfo.html" title="class in org.apache.sysds.parser.dml">StatementInfo</a></dt>
@@ -10317,7 +10366,7 @@
 <dd>&nbsp;</dd>
 <dt><a href="org/apache/sysds/runtime/controlprogram/FunctionProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram"><span class="typeNameLink">FunctionProgramBlock</span></a> - Class in <a href="org/apache/sysds/runtime/controlprogram/package-summary.html">org.apache.sysds.runtime.controlprogram</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/controlprogram/FunctionProgramBlock.html#FunctionProgramBlock-org.apache.sysds.runtime.controlprogram.Program-java.util.ArrayList-java.util.ArrayList-">FunctionProgramBlock(Program, ArrayList&lt;DataIdentifier&gt;, ArrayList&lt;DataIdentifier&gt;)</a></span> - Constructor for class org.apache.sysds.runtime.controlprogram.<a href="org/apache/sysds/runtime/controlprogram/FunctionProgramBlock.html" title="class in org.apache [...]
+<dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/controlprogram/FunctionProgramBlock.html#FunctionProgramBlock-org.apache.sysds.runtime.controlprogram.Program-java.util.List-java.util.List-">FunctionProgramBlock(Program, List&lt;DataIdentifier&gt;, List&lt;DataIdentifier&gt;)</a></span> - Constructor for class org.apache.sysds.runtime.controlprogram.<a href="org/apache/sysds/runtime/controlprogram/FunctionProgramBlock.html" title="class in org.apache.sysds.runtime.contr [...]
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/parser/dml/DmlParser.html#functionStatement--">functionStatement()</a></span> - Method in class org.apache.sysds.parser.dml.<a href="org/apache/sysds/parser/dml/DmlParser.html" title="class in org.apache.sysds.parser.dml">DmlParser</a></dt>
 <dd>&nbsp;</dd>
@@ -11179,10 +11228,6 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/hops/BinaryOp.html#getComplementPPredOperation--">getComplementPPredOperation()</a></span> - Method in class org.apache.sysds.hops.<a href="org/apache/sysds/hops/BinaryOp.html" title="class in org.apache.sysds.hops">BinaryOp</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/controlprogram/paramserv/ParamservUtils.html#getCompleteFuncName-java.lang.String-java.lang.String-">getCompleteFuncName(String, String)</a></span> - Static method in class org.apache.sysds.runtime.controlprogram.paramserv.<a href="org/apache/sysds/runtime/controlprogram/paramserv/ParamservUtils.html" title="class in org.apache.sysds.runtime.controlprogram.paramserv">ParamservUtils</a></dt>
-<dd>
-<div class="block">Get the namespace and function name of a given physical func name</div>
-</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/parser/ImportStatement.html#getCompletePath--">getCompletePath()</a></span> - Method in class org.apache.sysds.parser.<a href="org/apache/sysds/parser/ImportStatement.html" title="class in org.apache.sysds.parser">ImportStatement</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/compress/estim/CompressedSizeInfoColGroup.html#getCompressionSize-org.apache.sysds.runtime.compress.colgroup.ColGroup.CompressionType-">getCompressionSize(ColGroup.CompressionType)</a></span> - Method in class org.apache.sysds.runtime.compress.estim.<a href="org/apache/sysds/runtime/compress/estim/CompressedSizeInfoColGroup.html" title="class in org.apache.sysds.runtime.compress.estim">CompressedSizeInfoColGroup</a></dt>
@@ -11501,6 +11546,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/hops/OptimizerUtils.html#getDefaultFrameSize--">getDefaultFrameSize()</a></span> - Static method in class org.apache.sysds.hops.<a href="org/apache/sysds/hops/OptimizerUtils.html" title="class in org.apache.sysds.hops">OptimizerUtils</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/sysds/parser/DMLProgram.html#getDefaultFunctionDictionary--">getDefaultFunctionDictionary()</a></span> - Method in class org.apache.sysds.parser.<a href="org/apache/sysds/parser/DMLProgram.html" title="class in org.apache.sysds.parser">DMLProgram</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/hops/OptimizerUtils.html#getDefaultLogLevel--">getDefaultLogLevel()</a></span> - Static method in class org.apache.sysds.hops.<a href="org/apache/sysds/hops/OptimizerUtils.html" title="class in org.apache.sysds.hops">OptimizerUtils</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/controlprogram/context/SparkExecutionContext.html#getDefaultParallelism-boolean-">getDefaultParallelism(boolean)</a></span> - Static method in class org.apache.sysds.runtime.controlprogram.context.<a href="org/apache/sysds/runtime/controlprogram/context/SparkExecutionContext.html" title="class in org.apache.sysds.runtime.controlprogram.context">SparkExecutionContext</a></dt>
@@ -12060,6 +12107,10 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/hops/cost/CostEstimatorStaticRuntime.html#getFSWriteTime-long-long-double-">getFSWriteTime(long, long, double)</a></span> - Static method in class org.apache.sysds.hops.cost.<a href="org/apache/sysds/hops/cost/CostEstimatorStaticRuntime.html" title="class in org.apache.sysds.hops.cost">CostEstimatorStaticRuntime</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/sysds/parser/FunctionDictionary.html#getFunction-java.lang.String-">getFunction(String)</a></span> - Method in class org.apache.sysds.parser.<a href="org/apache/sysds/parser/FunctionDictionary.html" title="class in org.apache.sysds.parser">FunctionDictionary</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/sysds/parser/FunctionDictionary.html#getFunction-java.lang.String-boolean-">getFunction(String, boolean)</a></span> - Method in class org.apache.sysds.parser.<a href="org/apache/sysds/parser/FunctionDictionary.html" title="class in org.apache.sysds.parser">FunctionDictionary</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/hops/ipa/FunctionCallSizeInfo.html#getFunctionCallCount-java.lang.String-">getFunctionCallCount(String)</a></span> - Method in class org.apache.sysds.hops.ipa.<a href="org/apache/sysds/hops/ipa/FunctionCallSizeInfo.html" title="class in org.apache.sysds.hops.ipa">FunctionCallSizeInfo</a></dt>
 <dd>
 <div class="block">Gets the number of function calls to a given function.</div>
@@ -12091,8 +12142,18 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/controlprogram/Program.html#getFunctionProgramBlock-java.lang.String-java.lang.String-">getFunctionProgramBlock(String, String)</a></span> - Method in class org.apache.sysds.runtime.controlprogram.<a href="org/apache/sysds/runtime/controlprogram/Program.html" title="class in org.apache.sysds.runtime.controlprogram">Program</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/controlprogram/Program.html#getFunctionProgramBlock-java.lang.String-boolean-">getFunctionProgramBlock(String, boolean)</a></span> - Method in class org.apache.sysds.runtime.controlprogram.<a href="org/apache/sysds/runtime/controlprogram/Program.html" title="class in org.apache.sysds.runtime.controlprogram">Program</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/controlprogram/Program.html#getFunctionProgramBlock-java.lang.String-java.lang.String-boolean-">getFunctionProgramBlock(String, String, boolean)</a></span> - Method in class org.apache.sysds.runtime.controlprogram.<a href="org/apache/sysds/runtime/controlprogram/Program.html" title="class in org.apache.sysds.runtime.controlprogram">Program</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/controlprogram/Program.html#getFunctionProgramBlocks--">getFunctionProgramBlocks()</a></span> - Method in class org.apache.sysds.runtime.controlprogram.<a href="org/apache/sysds/runtime/controlprogram/Program.html" title="class in org.apache.sysds.runtime.controlprogram">Program</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/controlprogram/Program.html#getFunctionProgramBlocks-boolean-">getFunctionProgramBlocks(boolean)</a></span> - Method in class org.apache.sysds.runtime.controlprogram.<a href="org/apache/sysds/runtime/controlprogram/Program.html" title="class in org.apache.sysds.runtime.controlprogram">Program</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/sysds/parser/FunctionDictionary.html#getFunctions--">getFunctions()</a></span> - Method in class org.apache.sysds.parser.<a href="org/apache/sysds/parser/FunctionDictionary.html" title="class in org.apache.sysds.parser">FunctionDictionary</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/sysds/parser/FunctionDictionary.html#getFunctions-boolean-">getFunctions(boolean)</a></span> - Method in class org.apache.sysds.parser.<a href="org/apache/sysds/parser/FunctionDictionary.html" title="class in org.apache.sysds.parser">FunctionDictionary</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/parser/DMLProgram.html#getFunctionStatementBlock-java.lang.String-">getFunctionStatementBlock(String)</a></span> - Method in class org.apache.sysds.parser.<a href="org/apache/sysds/parser/DMLProgram.html" title="class in org.apache.sysds.parser">DMLProgram</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/parser/DMLProgram.html#getFunctionStatementBlock-java.lang.String-java.lang.String-">getFunctionStatementBlock(String, String)</a></span> - Method in class org.apache.sysds.parser.<a href="org/apache/sysds/parser/DMLProgram.html" title="class in org.apache.sysds.parser">DMLProgram</a></dt>
@@ -13011,6 +13072,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/controlprogram/parfor/opt/OptTreePlanMappingAbstract.html#getMappedProg-long-">getMappedProg(long)</a></span> - Method in class org.apache.sysds.runtime.controlprogram.parfor.opt.<a href="org/apache/sysds/runtime/controlprogram/parfor/opt/OptTreePlanMappingAbstract.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptTreePlanMappingAbstract</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/controlprogram/parfor/opt/OptTreePlanMappingAbstract.html#getMappedProgramBlock-long-">getMappedProgramBlock(long)</a></span> - Method in class org.apache.sysds.runtime.controlprogram.parfor.opt.<a href="org/apache/sysds/runtime/controlprogram/parfor/opt/OptTreePlanMappingAbstract.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptTreePlanMappingAbstract</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/hops/OptimizerUtils.html#getMatMultNnz-double-double-long-long-long-boolean-">getMatMultNnz(double, double, long, long, long, boolean)</a></span> - Static method in class org.apache.sysds.hops.<a href="org/apache/sysds/hops/OptimizerUtils.html" title="class in org.apache.sysds.hops">OptimizerUtils</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/instructions/InstructionUtils.html#getMatMultOperator-int-">getMatMultOperator(int)</a></span> - Static method in class org.apache.sysds.runtime.instructions.<a href="org/apache/sysds/runtime/instructions/InstructionUtils.html" title="class in org.apache.sysds.runtime.instructions">InstructionUtils</a></dt>
@@ -13240,8 +13303,6 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/instructions/cp/ListObject.html#getName-int-">getName(int)</a></span> - Method in class org.apache.sysds.runtime.instructions.cp.<a href="org/apache/sysds/runtime/instructions/cp/ListObject.html" title="class in org.apache.sysds.runtime.instructions.cp">ListObject</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/sysds/parser/DMLProgram.html#getNamedFunctionStatementBlocks--">getNamedFunctionStatementBlocks()</a></span> - Method in class org.apache.sysds.parser.<a href="org/apache/sysds/parser/DMLProgram.html" title="class in org.apache.sysds.parser">DMLProgram</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/lops/ParameterizedBuiltin.html#getNamedInput-java.lang.String-">getNamedInput(String)</a></span> - Method in class org.apache.sysds.lops.<a href="org/apache/sysds/lops/ParameterizedBuiltin.html" title="class in org.apache.sysds.lops">ParameterizedBuiltin</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/lops/Data.html#getNamedInputLop-java.lang.String-">getNamedInputLop(String)</a></span> - Method in class org.apache.sysds.lops.<a href="org/apache/sysds/lops/Data.html" title="class in org.apache.sysds.lops">Data</a></dt>
@@ -13418,12 +13479,12 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/compress/UncompressedBitmap.html#getNumColumns--">getNumColumns()</a></span> - Method in class org.apache.sysds.runtime.compress.<a href="org/apache/sysds/runtime/compress/UncompressedBitmap.html" title="class in org.apache.sysds.runtime.compress">UncompressedBitmap</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/controlprogram/caching/CacheableData.html#getNumColumns--">getNumColumns()</a></span> - Method in class org.apache.sysds.runtime.controlprogram.caching.<a href="org/apache/sysds/runtime/controlprogram/caching/CacheableData.html" title="class in org.apache.sysds.runtime.controlprogram.caching">CacheableData</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/controlprogram/caching/CacheBlock.html#getNumColumns--">getNumColumns()</a></span> - Method in interface org.apache.sysds.runtime.controlprogram.caching.<a href="org/apache/sysds/runtime/controlprogram/caching/CacheBlock.html" title="interface in org.apache.sysds.runtime.controlprogram.caching">CacheBlock</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/controlprogram/caching/FrameObject.html#getNumColumns--">getNumColumns()</a></span> - Method in class org.apache.sysds.runtime.controlprogram.caching.<a href="org/apache/sysds/runtime/controlprogram/caching/FrameObject.html" title="class in org.apache.sysds.runtime.controlprogram.caching">FrameObject</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/controlprogram/caching/MatrixObject.html#getNumColumns--">getNumColumns()</a></span> - Method in class org.apache.sysds.runtime.controlprogram.caching.<a href="org/apache/sysds/runtime/controlprogram/caching/MatrixObject.html" title="class in org.apache.sysds.runtime.controlprogram.caching">MatrixObject</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/controlprogram/caching/TensorObject.html#getNumColumns--">getNumColumns()</a></span> - Method in class org.apache.sysds.runtime.controlprogram.caching.<a href="org/apache/sysds/runtime/controlprogram/caching/TensorObject.html" title="class in org.apache.sysds.runtime.controlprogram.caching">TensorObject</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/controlprogram/ParForProgramBlock.PartitionFormat.html#getNumColumns-org.apache.sysds.runtime.meta.DataCharacteristics-">getNumColumns(DataCharacteristics)</a></span> - Method in class org.apache.sysds.runtime.controlprogram.<a href="org/apache/sysds/runtime/controlprogram/ParForProgramBlock.PartitionFormat.html" title="class in org.apache.sysds.runtime.controlprogram">ParForProgramBlock.PartitionFormat</a></dt>
@@ -13557,12 +13618,12 @@
 <dd>
 <div class="block">Get number of rows contained in the ColGroup.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/controlprogram/caching/CacheableData.html#getNumRows--">getNumRows()</a></span> - Method in class org.apache.sysds.runtime.controlprogram.caching.<a href="org/apache/sysds/runtime/controlprogram/caching/CacheableData.html" title="class in org.apache.sysds.runtime.controlprogram.caching">CacheableData</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/controlprogram/caching/CacheBlock.html#getNumRows--">getNumRows()</a></span> - Method in interface org.apache.sysds.runtime.controlprogram.caching.<a href="org/apache/sysds/runtime/controlprogram/caching/CacheBlock.html" title="interface in org.apache.sysds.runtime.controlprogram.caching">CacheBlock</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/controlprogram/caching/FrameObject.html#getNumRows--">getNumRows()</a></span> - Method in class org.apache.sysds.runtime.controlprogram.caching.<a href="org/apache/sysds/runtime/controlprogram/caching/FrameObject.html" title="class in org.apache.sysds.runtime.controlprogram.caching">FrameObject</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/controlprogram/caching/MatrixObject.html#getNumRows--">getNumRows()</a></span> - Method in class org.apache.sysds.runtime.controlprogram.caching.<a href="org/apache/sysds/runtime/controlprogram/caching/MatrixObject.html" title="class in org.apache.sysds.runtime.controlprogram.caching">MatrixObject</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/controlprogram/caching/TensorObject.html#getNumRows--">getNumRows()</a></span> - Method in class org.apache.sysds.runtime.controlprogram.caching.<a href="org/apache/sysds/runtime/controlprogram/caching/TensorObject.html" title="class in org.apache.sysds.runtime.controlprogram.caching">TensorObject</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/controlprogram/ParForProgramBlock.PartitionFormat.html#getNumRows-org.apache.sysds.runtime.meta.DataCharacteristics-">getNumRows(DataCharacteristics)</a></span> - Method in class org.apache.sysds.runtime.controlprogram.<a href="org/apache/sysds/runtime/controlprogram/ParForProgramBlock.PartitionFormat.html" title="class in org.apache.sysds.runtime.controlprogram">ParForProgramBlock.PartitionFormat</a></dt>
@@ -13999,7 +14060,7 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/hops/codegen/template/CPlanMemoTable.html#getPlans--">getPlans()</a></span> - Method in class org.apache.sysds.hops.codegen.template.<a href="org/apache/sysds/hops/codegen/template/CPlanMemoTable.html" title="class in org.apache.sysds.hops.codegen.template">CPlanMemoTable</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/sysds/hops/codegen/template/CPlanMemoTable.html#getPlansBlacklisted--">getPlansBlacklisted()</a></span> - Method in class org.apache.sysds.hops.codegen.template.<a href="org/apache/sysds/hops/codegen/template/CPlanMemoTable.html" title="class in org.apache.sysds.hops.codegen.template">CPlanMemoTable</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/sysds/hops/codegen/template/CPlanMemoTable.html#getPlansExcludeListed--">getPlansExcludeListed()</a></span> - Method in class org.apache.sysds.hops.codegen.template.<a href="org/apache/sysds/hops/codegen/template/CPlanMemoTable.html" title="class in org.apache.sysds.hops.codegen.template">CPlanMemoTable</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/functionobjects/Plus.html#getPlusFnObject--">getPlusFnObject()</a></span> - Static method in class org.apache.sysds.runtime.functionobjects.<a href="org/apache/sysds/runtime/functionobjects/Plus.html" title="class in org.apache.sysds.runtime.functionobjects">Plus</a></dt>
 <dd>&nbsp;</dd>
@@ -14099,7 +14160,7 @@
 <dd>
 <div class="block">Returns all functions that are reachable either directly or indirectly
  form the main program, except the main program itself and the given 
- blacklist of function names.</div>
+ exclude-list of function names.</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/parser/ParForStatementBlock.html#getReadOnlyParentMatrixVars--">getReadOnlyParentMatrixVars()</a></span> - Method in class org.apache.sysds.parser.<a href="org/apache/sysds/parser/ParForStatementBlock.html" title="class in org.apache.sysds.parser">ParForStatementBlock</a></dt>
 <dd>&nbsp;</dd>
@@ -14612,7 +14673,7 @@
 <div class="block">This is a utility method because Sparks StorageLevel.toString() is incompatible with its own
  fromString() method.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/util/UtilFunctions.html#getStream-java.util.Iterator-">getStream(Iterator&lt;T&gt;)</a></span> - Static method in class org.apache.sysds.runtime.util.<a href="org/apache/sysds/runtime/util/UtilFunctions.html" title="class in org.apache.sysds.runtime.util">UtilFunctions</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/util/CollectionUtils.html#getStream-java.util.Iterator-">getStream(Iterator&lt;T&gt;)</a></span> - Static method in class org.apache.sysds.runtime.util.<a href="org/apache/sysds/runtime/util/CollectionUtils.html" title="class in org.apache.sysds.runtime.util">CollectionUtils</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/controlprogram/paramserv/rpc/PSRpcHandler.html#getStreamManager--">getStreamManager()</a></span> - Method in class org.apache.sysds.runtime.controlprogram.paramserv.rpc.<a href="org/apache/sysds/runtime/controlprogram/paramserv/rpc/PSRpcHandler.html" title="class in org.apache.sysds.runtime.controlprogram.paramserv.rpc">PSRpcHandler</a></dt>
 <dd>&nbsp;</dd>
@@ -19407,7 +19468,7 @@
 <dd>
 <div class="block">Merges disjoint data of all blocks per key.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/sysds/parser/StatementBlock.html#mergeFunctionCalls-java.util.ArrayList-org.apache.sysds.parser.DMLProgram-">mergeFunctionCalls(ArrayList&lt;StatementBlock&gt;, DMLProgram)</a></span> - Static method in class org.apache.sysds.parser.<a href="org/apache/sysds/parser/StatementBlock.html" title="class in org.apache.sysds.parser">StatementBlock</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/sysds/parser/StatementBlock.html#mergeFunctionCalls-java.util.List-org.apache.sysds.parser.DMLProgram-">mergeFunctionCalls(List&lt;StatementBlock&gt;, DMLProgram)</a></span> - Static method in class org.apache.sysds.parser.<a href="org/apache/sysds/parser/StatementBlock.html" title="class in org.apache.sysds.parser">StatementBlock</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/util/HDFSTool.html#mergeIntoSingleFile-java.lang.String-java.lang.String-">mergeIntoSingleFile(String, String)</a></span> - Static method in class org.apache.sysds.runtime.util.<a href="org/apache/sysds/runtime/util/HDFSTool.html" title="class in org.apache.sysds.runtime.util">HDFSTool</a></dt>
 <dd>&nbsp;</dd>
@@ -19430,7 +19491,7 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/parser/FunctionStatement.html#mergeStatementBlocks--">mergeStatementBlocks()</a></span> - Method in class org.apache.sysds.parser.<a href="org/apache/sysds/parser/FunctionStatement.html" title="class in org.apache.sysds.parser">FunctionStatement</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/sysds/parser/StatementBlock.html#mergeStatementBlocks-java.util.ArrayList-">mergeStatementBlocks(ArrayList&lt;StatementBlock&gt;)</a></span> - Static method in class org.apache.sysds.parser.<a href="org/apache/sysds/parser/StatementBlock.html" title="class in org.apache.sysds.parser">StatementBlock</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/sysds/parser/StatementBlock.html#mergeStatementBlocks-java.util.List-">mergeStatementBlocks(List&lt;StatementBlock&gt;)</a></span> - Static method in class org.apache.sysds.parser.<a href="org/apache/sysds/parser/StatementBlock.html" title="class in org.apache.sysds.parser">StatementBlock</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/parser/WhileStatement.html#mergeStatementBlocks--">mergeStatementBlocks()</a></span> - Method in class org.apache.sysds.parser.<a href="org/apache/sysds/parser/WhileStatement.html" title="class in org.apache.sysds.parser">WhileStatement</a></dt>
 <dd>&nbsp;</dd>
@@ -20209,6 +20270,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/parser/dml/DmlParser.UnaryExpressionContext.html#op">op</a></span> - Variable in class org.apache.sysds.parser.dml.<a href="org/apache/sysds/parser/dml/DmlParser.UnaryExpressionContext.html" title="class in org.apache.sysds.parser.dml">DmlParser.UnaryExpressionContext</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/sysds/hops/FunctionOp.html#OPCODE">OPCODE</a></span> - Static variable in class org.apache.sysds.hops.<a href="org/apache/sysds/hops/FunctionOp.html" title="class in org.apache.sysds.hops">FunctionOp</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/lops/Append.html#OPCODE">OPCODE</a></span> - Static variable in class org.apache.sysds.lops.<a href="org/apache/sysds/lops/Append.html" title="class in org.apache.sysds.lops">Append</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/lops/AppendG.html#OPCODE">OPCODE</a></span> - Static variable in class org.apache.sysds.lops.<a href="org/apache/sysds/lops/AppendG.html" title="class in org.apache.sysds.lops">AppendG</a></dt>
@@ -20321,8 +20384,6 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/matrix/operators/CountDistinctOperator.html#operatorType">operatorType</a></span> - Variable in class org.apache.sysds.runtime.matrix.operators.<a href="org/apache/sysds/runtime/matrix/operators/CountDistinctOperator.html" title="class in org.apache.sysds.runtime.matrix.operators">CountDistinctOperator</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/sysds/hops/FunctionOp.html#OPSTRING">OPSTRING</a></span> - Static variable in class org.apache.sysds.hops.<a href="org/apache/sysds/hops/FunctionOp.html" title="class in org.apache.sysds.hops">FunctionOp</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/hops/IndexingOp.html#OPSTRING">OPSTRING</a></span> - Static variable in class org.apache.sysds.hops.<a href="org/apache/sysds/hops/IndexingOp.html" title="class in org.apache.sysds.hops">IndexingOp</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/hops/LeftIndexingOp.html#OPSTRING">OPSTRING</a></span> - Static variable in class org.apache.sysds.hops.<a href="org/apache/sysds/hops/LeftIndexingOp.html" title="class in org.apache.sysds.hops">LeftIndexingOp</a></dt>
@@ -22678,11 +22739,13 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/controlprogram/parfor/opt/OptTreeConverter.html#rCreateAbstractOptNodes-org.apache.sysds.hops.Hop-org.apache.sysds.runtime.controlprogram.LocalVariableMap-java.util.Set-">rCreateAbstractOptNodes(Hop, LocalVariableMap, Set&lt;String&gt;)</a></span> - Static method in class org.apache.sysds.runtime.controlprogram.parfor.opt.<a href="org/apache/sysds/runtime/controlprogram/parfor/opt/OptTreeConverter.html" title="class in or [...]
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/util/ProgramConverter.html#rcreateDeepCopyProgramBlocks-java.util.ArrayList-long-int-java.util.HashSet-java.util.HashSet-boolean-boolean-">rcreateDeepCopyProgramBlocks(ArrayList&lt;ProgramBlock&gt;, long, int, HashSet&lt;String&gt;, HashSet&lt;String&gt;, boolean, boolean)</a></span> - Static method in class org.apache.sysds.runtime.util.<a href="org/apache/sysds/runtime/util/ProgramConverter.html" title="class in org.apa [...]
+<dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/util/ProgramConverter.html#rcreateDeepCopyProgramBlocks-java.util.ArrayList-long-int-java.util.Set-java.util.Set-boolean-boolean-">rcreateDeepCopyProgramBlocks(ArrayList&lt;ProgramBlock&gt;, long, int, Set&lt;String&gt;, Set&lt;String&gt;, boolean, boolean)</a></span> - Static method in class org.apache.sysds.runtime.util.<a href="org/apache/sysds/runtime/util/ProgramConverter.html" title="class in org.apache.sysds.runtim [...]
 <dd>
 <div class="block">This recursively creates a deep copy of program blocks and transparently replaces filenames according to the
  specified parallel worker in order to avoid conflicts between parworkers.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/util/ProgramConverter.html#rCreateDeepCopyStatementBlock-org.apache.sysds.parser.StatementBlock-">rCreateDeepCopyStatementBlock(StatementBlock)</a></span> - Static method in class org.apache.sysds.runtime.util.<a href="org/apache/sysds/runtime/util/ProgramConverter.html" title="class in org.apache.sysds.runtime.util">ProgramConverter</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/controlprogram/parfor/opt/OptTreeConverter.html#rCreateOptNode-org.apache.sysds.runtime.controlprogram.ProgramBlock-org.apache.sysds.runtime.controlprogram.LocalVariableMap-boolean-boolean-">rCreateOptNode(ProgramBlock, LocalVariableMap, boolean, boolean)</a></span> - Static method in class org.apache.sysds.runtime.controlprogram.parfor.opt.<a href="org/apache/sysds/runtime/controlprogram/parfor/opt/OptTreeConverter.html" [...]
 <dd>&nbsp;</dd>
 <dt><a href="org/apache/sysds/runtime/instructions/spark/utils/RDDAggregateUtils.html" title="class in org.apache.sysds.runtime.instructions.spark.utils"><span class="typeNameLink">RDDAggregateUtils</span></a> - Class in <a href="org/apache/sysds/runtime/instructions/spark/utils/package-summary.html">org.apache.sysds.runtime.instructions.spark.utils</a></dt>
@@ -22786,9 +22849,13 @@
 <dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/instructions/cp/KahanObject.html#read-java.io.DataInput-">read(DataInput)</a></span> - Method in class org.apache.sysds.runtime.instructions.cp.<a href="org/apache/sysds/runtime/instructions/cp/KahanObject.html" title="class in org.apache.sysds.runtime.instructions.cp">KahanObject</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/parser/DataExpression.html#READ_VALID_MTD_PARAM_NAMES">READ_VALID_MTD_PARAM_NAMES</a></span> - Static variable in class org.apache.sysds.parser.<a href="org/apache/sysds/parser/DataExpression.html" title="class in org.apache.sysds.parser">DataExpression</a></dt>
-<dd>&nbsp;</dd>
+<dd>
+<div class="block">Valid parameter names in metadata file</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/parser/DataExpression.html#READ_VALID_PARAM_NAMES">READ_VALID_PARAM_NAMES</a></span> - Static variable in class org.apache.sysds.parser.<a href="org/apache/sysds/parser/DataExpression.html" title="class in org.apache.sysds.parser">DataExpression</a></dt>
-<dd>&nbsp;</dd>
+<dd>
+<div class="block">Valid parameter names in arguments to read instruction</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/io/IOUtilFunctions.html#readAndParseMatrixMarketHeader-java.lang.String-">readAndParseMatrixMarketHeader(String)</a></span> - Static method in class org.apache.sysds.runtime.io.<a href="org/apache/sysds/runtime/io/IOUtilFunctions.html" title="class in org.apache.sysds.runtime.io">IOUtilFunctions</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/controlprogram/caching/LazyWriteBuffer.html#readBlock-java.lang.String-boolean-">readBlock(String, boolean)</a></span> - Static method in class org.apache.sysds.runtime.controlprogram.caching.<a href="org/apache/sysds/runtime/controlprogram/caching/LazyWriteBuffer.html" title="class in org.apache.sysds.runtime.controlprogram.caching">LazyWriteBuffer</a></dt>
@@ -23343,6 +23410,8 @@
 <div class="block">This method does NO full program block recompile (no stats update, no rewrites, no recursion) but
  only regenerates lops and instructions.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/controlprogram/paramserv/ParamservUtils.html#recompileProgramBlocks-int-java.util.List-">recompileProgramBlocks(int, List&lt;ProgramBlock&gt;)</a></span> - Static method in class org.apache.sysds.runtime.controlprogram.paramserv.<a href="org/apache/sysds/runtime/controlprogram/paramserv/ParamservUtils.html" title="class in org.apache.sysds.runtime.controlprogram.paramserv">ParamservUtils</a></dt>
+<dd>&nbsp;</dd>
 <dt><a href="org/apache/sysds/hops/recompile/Recompiler.html" title="class in org.apache.sysds.hops.recompile"><span class="typeNameLink">Recompiler</span></a> - Class in <a href="org/apache/sysds/hops/recompile/package-summary.html">org.apache.sysds.hops.recompile</a></dt>
 <dd>
 <div class="block">Dynamic recompilation of hop dags to runtime instructions, which includes the 
@@ -23631,6 +23700,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/matrix/data/MatrixBlock.html#removeEmptyOperations-org.apache.sysds.runtime.matrix.data.MatrixBlock-boolean-boolean-">removeEmptyOperations(MatrixBlock, boolean, boolean)</a></span> - Method in class org.apache.sysds.runtime.matrix.data.<a href="org/apache/sysds/runtime/matrix/data/MatrixBlock.html" title="class in org.apache.sysds.runtime.matrix.data">MatrixBlock</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/sysds/parser/FunctionDictionary.html#removeFunction-java.lang.String-">removeFunction(String)</a></span> - Method in class org.apache.sysds.parser.<a href="org/apache/sysds/parser/FunctionDictionary.html" title="class in org.apache.sysds.parser">FunctionDictionary</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/hops/ipa/FunctionCallGraph.html#removeFunctionCall-java.lang.String-org.apache.sysds.hops.FunctionOp-org.apache.sysds.parser.StatementBlock-">removeFunctionCall(String, FunctionOp, StatementBlock)</a></span> - Method in class org.apache.sysds.hops.ipa.<a href="org/apache/sysds/hops/ipa/FunctionCallGraph.html" title="class in org.apache.sysds.hops.ipa">FunctionCallGraph</a></dt>
 <dd>
 <div class="block">Removes a single function call identified by target function name,
@@ -23779,7 +23850,7 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/controlprogram/parfor/opt/OptTreeConverter.html#replaceProgramBlock-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-org.apache.sysds.runtime.controlprogram.ProgramBlock-org.apache.sysds.runtime.controlprogram.ProgramBlock-boolean-">replaceProgramBlock(OptNode, OptNode, ProgramBlock, ProgramBlock, boolean)</a></span> - Static method in class org.apache.s [...]
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/controlprogram/parfor/opt/OptTreeConverter.html#replaceProgramBlock-java.util.ArrayList-org.apache.sysds.runtime.controlprogram.ProgramBlock-org.apache.sysds.runtime.controlprogram.ProgramBlock-">replaceProgramBlock(ArrayList&lt;ProgramBlock&gt;, ProgramBlock, ProgramBlock)</a></span> - Static method in class org.apache.sysds.runtime.controlprogram.parfor.opt.<a href="org/apache/sysds/runtime/controlprogram/parfor/opt/Opt [...]
+<dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/controlprogram/parfor/opt/OptTreeConverter.html#replaceProgramBlock-java.util.List-org.apache.sysds.runtime.controlprogram.ProgramBlock-org.apache.sysds.runtime.controlprogram.ProgramBlock-">replaceProgramBlock(List&lt;ProgramBlock&gt;, ProgramBlock, ProgramBlock)</a></span> - Static method in class org.apache.sysds.runtime.controlprogram.parfor.opt.<a href="org/apache/sysds/runtime/controlprogram/parfor/opt/OptTreeConver [...]
 <dd>&nbsp;</dd>
 <dt><a href="org/apache/sysds/runtime/instructions/spark/functions/ReplicateBlockFunction.html" title="class in org.apache.sysds.runtime.instructions.spark.functions"><span class="typeNameLink">ReplicateBlockFunction</span></a> - Class in <a href="org/apache/sysds/runtime/instructions/spark/functions/package-summary.html">org.apache.sysds.runtime.instructions.spark.functions</a></dt>
 <dd>&nbsp;</dd>
@@ -25552,6 +25623,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/lineage/LineageCacheConfig.html#setCachePolicy-org.apache.sysds.runtime.lineage.LineageCacheConfig.LineageCachePolicy-">setCachePolicy(LineageCacheConfig.LineageCachePolicy)</a></span> - Static method in class org.apache.sysds.runtime.lineage.<a href="org/apache/sysds/runtime/lineage/LineageCacheConfig.html" title="class in org.apache.sysds.runtime.lineage">LineageCacheConfig</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/sysds/hops/FunctionOp.html#setCallOptimized-boolean-">setCallOptimized(boolean)</a></span> - Method in class org.apache.sysds.hops.<a href="org/apache/sysds/hops/FunctionOp.html" title="class in org.apache.sysds.hops">FunctionOp</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/hops/codegen/cplan/CNodeCell.html#setCellType-org.apache.sysds.runtime.codegen.SpoofCellwise.CellType-">setCellType(SpoofCellwise.CellType)</a></span> - Method in class org.apache.sysds.hops.codegen.cplan.<a href="org/apache/sysds/hops/codegen/cplan/CNodeCell.html" title="class in org.apache.sysds.hops.codegen.cplan">CNodeCell</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/parser/dml/CustomErrorListener.ParseIssue.html#setCharPositionInLine-int-">setCharPositionInLine(int)</a></span> - Method in class org.apache.sysds.parser.dml.<a href="org/apache/sysds/parser/dml/CustomErrorListener.ParseIssue.html" title="class in org.apache.sysds.parser.dml">CustomErrorListener.ParseIssue</a></dt>
@@ -26892,6 +26965,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/hops/codegen/cplan/CNodeUnary.html#setType-org.apache.sysds.hops.codegen.cplan.CNodeUnary.UnaryType-">setType(CNodeUnary.UnaryType)</a></span> - Method in class org.apache.sysds.hops.codegen.cplan.<a href="org/apache/sysds/hops/codegen/cplan/CNodeUnary.html" title="class in org.apache.sysds.hops.codegen.cplan">CNodeUnary</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/sysds/hops/rewrite/HopRewriteUtils.html#setUnoptimizedFunctionCalls-org.apache.sysds.parser.StatementBlock-">setUnoptimizedFunctionCalls(StatementBlock)</a></span> - Static method in class org.apache.sysds.hops.rewrite.<a href="org/apache/sysds/hops/rewrite/HopRewriteUtils.html" title="class in org.apache.sysds.hops.rewrite">HopRewriteUtils</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/util/PoissonPRNGenerator.html#setup-double-long-">setup(double, long)</a></span> - Method in class org.apache.sysds.runtime.util.<a href="org/apache/sysds/runtime/util/PoissonPRNGenerator.html" title="class in org.apache.sysds.runtime.util">PoissonPRNGenerator</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/controlprogram/parfor/RemoteParForUtils.html#setupBufferPool-long-">setupBufferPool(long)</a></span> - Static method in class org.apache.sysds.runtime.controlprogram.parfor.<a href="org/apache/sysds/runtime/controlprogram/parfor/RemoteParForUtils.html" title="class in org.apache.sysds.runtime.controlprogram.parfor">RemoteParForUtils</a></dt>
@@ -29110,6 +29185,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/instructions/spark/data/IndexedMatrixValue.html#toString--">toString()</a></span> - Method in class org.apache.sysds.runtime.instructions.spark.data.<a href="org/apache/sysds/runtime/instructions/spark/data/IndexedMatrixValue.html" title="class in org.apache.sysds.runtime.instructions.spark.data">IndexedMatrixValue</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/io/FileFormatPropertiesCSV.html#toString--">toString()</a></span> - Method in class org.apache.sysds.runtime.io.<a href="org/apache/sysds/runtime/io/FileFormatPropertiesCSV.html" title="class in org.apache.sysds.runtime.io">FileFormatPropertiesCSV</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/io/FileFormatPropertiesMM.MMField.html#toString--">toString()</a></span> - Method in enum org.apache.sysds.runtime.io.<a href="org/apache/sysds/runtime/io/FileFormatPropertiesMM.MMField.html" title="enum in org.apache.sysds.runtime.io">FileFormatPropertiesMM.MMField</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/io/FileFormatPropertiesMM.MMFormat.html#toString--">toString()</a></span> - Method in enum org.apache.sysds.runtime.io.<a href="org/apache/sysds/runtime/io/FileFormatPropertiesMM.MMFormat.html" title="enum in org.apache.sysds.runtime.io">FileFormatPropertiesMM.MMFormat</a></dt>
@@ -29338,6 +29415,10 @@
 </dd>
 <dt><a href="org/apache/sysds/common/Types.FileFormat.html" title="enum in org.apache.sysds.common"><span class="typeNameLink">Types.FileFormat</span></a> - Enum in <a href="org/apache/sysds/common/package-summary.html">org.apache.sysds.common</a></dt>
 <dd>&nbsp;</dd>
+<dt><a href="org/apache/sysds/common/Types.FunctionBlock.html" title="interface in org.apache.sysds.common"><span class="typeNameLink">Types.FunctionBlock</span></a> - Interface in <a href="org/apache/sysds/common/package-summary.html">org.apache.sysds.common</a></dt>
+<dd>
+<div class="block">Common type for both function statement blocks and function program blocks</div>
+</dd>
 <dt><a href="org/apache/sysds/common/Types.OpOp1.html" title="enum in org.apache.sysds.common"><span class="typeNameLink">Types.OpOp1</span></a> - Enum in <a href="org/apache/sysds/common/package-summary.html">org.apache.sysds.common</a></dt>
 <dd>&nbsp;</dd>
 <dt><a href="org/apache/sysds/common/Types.OpOp2.html" title="enum in org.apache.sysds.common"><span class="typeNameLink">Types.OpOp2</span></a> - Enum in <a href="org/apache/sysds/common/package-summary.html">org.apache.sysds.common</a></dt>
@@ -29501,6 +29582,10 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/parser/VariableSet.html#union-org.apache.sysds.parser.VariableSet-org.apache.sysds.parser.VariableSet-">union(VariableSet, VariableSet)</a></span> - Static method in class org.apache.sysds.parser.<a href="org/apache/sysds/parser/VariableSet.html" title="class in org.apache.sysds.parser">VariableSet</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/util/CollectionUtils.html#unionAll-java.util.List-java.util.List-">unionAll(List&lt;T&gt;, List&lt;T&gt;)</a></span> - Static method in class org.apache.sysds.runtime.util.<a href="org/apache/sysds/runtime/util/CollectionUtils.html" title="class in org.apache.sysds.runtime.util">CollectionUtils</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/util/CollectionUtils.html#unionDistinct-java.util.List-java.util.List-">unionDistinct(List&lt;T&gt;, List&lt;T&gt;)</a></span> - Static method in class org.apache.sysds.runtime.util.<a href="org/apache/sysds/runtime/util/CollectionUtils.html" title="class in org.apache.sysds.runtime.util">CollectionUtils</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/sysds/runtime/controlprogram/context/ExecutionContext.html#unpinVariables-java.util.List-boolean:A-">unpinVariables(List&lt;String&gt;, boolean[])</a></span> - Method in class org.apache.sysds.runtime.controlprogram.context.<a href="org/apache/sysds/runtime/controlprogram/context/ExecutionContext.html" title="class in org.apache.sysds.runtime.controlprogram.context">ExecutionContext</a></dt>
 <dd>
 <div class="block">Unpin the a given list of variables by setting their "cleanup" status
diff --git a/docs/api/java/org/apache/sysds/api/DMLScript.html b/docs/api/java/org/apache/sysds/api/DMLScript.html
index d69f31d..f41c33e 100644
--- a/docs/api/java/org/apache/sysds/api/DMLScript.html
+++ b/docs/api/java/org/apache/sysds/api/DMLScript.html
@@ -664,12 +664,16 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <li class="blockList">
 <h4>main</h4>
 <pre>public static&nbsp;void&nbsp;main(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;args)
-                 throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+                 throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
+                        <a href="../../../../org/apache/sysds/parser/ParseException.html" title="class in org.apache.sysds.parser">ParseException</a>,
+                        <a href="../../../../org/apache/sysds/runtime/DMLScriptException.html" title="class in org.apache.sysds.runtime">DMLScriptException</a></pre>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>args</code> - command-line arguments</dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - if an IOException occurs in the hadoop GenericOptionsParser</dd>
+<dd><code><a href="../../../../org/apache/sysds/parser/ParseException.html" title="class in org.apache.sysds.parser">ParseException</a></code></dd>
+<dd><code><a href="../../../../org/apache/sysds/runtime/DMLScriptException.html" title="class in org.apache.sysds.runtime">DMLScriptException</a></code></dd>
 </dl>
 </li>
 </ul>
@@ -680,7 +684,10 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <li class="blockList">
 <h4>executeScript</h4>
 <pre>public static&nbsp;boolean&nbsp;executeScript(org.apache.hadoop.conf.Configuration&nbsp;conf,
-                                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;args)</pre>
+                                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;args)
+                             throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
+                                    <a href="../../../../org/apache/sysds/parser/ParseException.html" title="class in org.apache.sysds.parser">ParseException</a>,
+                                    <a href="../../../../org/apache/sysds/runtime/DMLScriptException.html" title="class in org.apache.sysds.runtime">DMLScriptException</a></pre>
 <div class="block">Single entry point for all public invocation alternatives (e.g.,
  main, executeScript, JaqlUdf etc)</div>
 <dl>
@@ -689,6 +696,10 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <dd><code>args</code> - arguments</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>true if success, false otherwise</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - If an internal IO Exception happened.</dd>
+<dd><code><a href="../../../../org/apache/sysds/parser/ParseException.html" title="class in org.apache.sysds.parser">ParseException</a></code></dd>
+<dd><code><a href="../../../../org/apache/sysds/runtime/DMLScriptException.html" title="class in org.apache.sysds.runtime">DMLScriptException</a></code></dd>
 </dl>
 </li>
 </ul>
diff --git a/docs/api/java/org/apache/sysds/common/Builtins.html b/docs/api/java/org/apache/sysds/common/Builtins.html
index c81b4f4..962a8de 100644
--- a/docs/api/java/org/apache/sysds/common/Builtins.html
+++ b/docs/api/java/org/apache/sysds/common/Builtins.html
@@ -125,7 +125,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?i
  case of DML script, these functions are loaded during parsing. As
  always, user-defined DML-bodied functions take precedence over all
  builtin functions.
- 
+
  To add a new builtin script function, simply add the definition here
  as well as a dml file in scripts/builtin with a matching name. On 
  building SystemDS, these scripts are packaged into the jar as well.</div>
@@ -258,74 +258,80 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?i
 <td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#CONV2D_BACKWARD_FILTER">CONV2D_BACKWARD_FILTER</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#COS">COS</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#COR">COR</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#COSH">COSH</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#COS">COS</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#COUNT_DISTINCT">COUNT_DISTINCT</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#COSH">COSH</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#COUNT_DISTINCT_APPROX">COUNT_DISTINCT_APPROX</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#COUNT_DISTINCT">COUNT_DISTINCT</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#COV">COV</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#COUNT_DISTINCT_APPROX">COUNT_DISTINCT_APPROX</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#CUMMAX">CUMMAX</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#COV">COV</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#CUMMIN">CUMMIN</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#CUMMAX">CUMMAX</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#CUMPROD">CUMPROD</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#CUMMIN">CUMMIN</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#CUMSUM">CUMSUM</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#CUMPROD">CUMPROD</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#CUMSUMPROD">CUMSUMPROD</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#CUMSUM">CUMSUM</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#CVLM">CVLM</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#CUMSUMPROD">CUMSUMPROD</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#DETECTSCHEMA">DETECTSCHEMA</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#CVLM">CVLM</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#DIAG">DIAG</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#DETECTSCHEMA">DETECTSCHEMA</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#DISCOVER_FD">DISCOVER_FD</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#DIAG">DIAG</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#DROP_INVALID_LENGTH">DROP_INVALID_LENGTH</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#DISCOVER_FD">DISCOVER_FD</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#DROP_INVALID_TYPE">DROP_INVALID_TYPE</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#DROP_INVALID_LENGTH">DROP_INVALID_LENGTH</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#EIGEN">EIGEN</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#DROP_INVALID_TYPE">DROP_INVALID_TYPE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#EVAL">EVAL</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#EIGEN">EIGEN</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#ExecutePipeline">ExecutePipeline</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#EVAL">EVAL</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#EXISTS">EXISTS</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#ExecutePipeline">ExecutePipeline</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#EXP">EXP</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#EXISTS">EXISTS</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#FLOOR">FLOOR</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#EXP">EXP</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#FLOOR">FLOOR</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
 <td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#GLM">GLM</a></span></code>&nbsp;</td>
 </tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#GMM">GMM</a></span></code>&nbsp;</td>
+</tr>
 <tr class="altColor">
 <td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#GNMF">GNMF</a></span></code>&nbsp;</td>
 </tr>
@@ -336,342 +342,345 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?i
 <td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#GROUPEDAGG">GROUPEDAGG</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#IFELSE">IFELSE</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#HYPERBAND">HYPERBAND</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#IMG_BRIGHTNESS">IMG_BRIGHTNESS</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#IFELSE">IFELSE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#IMG_CROP">IMG_CROP</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#IMG_BRIGHTNESS">IMG_BRIGHTNESS</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#IMG_MIRROR">IMG_MIRROR</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#IMG_CROP">IMG_CROP</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#IMPUTE_FD">IMPUTE_FD</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#IMG_MIRROR">IMG_MIRROR</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#INTERQUANTILE">INTERQUANTILE</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#IMPUTE_FD">IMPUTE_FD</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#INTERSECT">INTERSECT</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#INTERQUANTILE">INTERQUANTILE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#INVCDF">INVCDF</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#INTERSECT">INTERSECT</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#INVERSE">INVERSE</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#INVCDF">INVCDF</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#IQM">IQM</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#INVERSE">INVERSE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#ISINF">ISINF</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#IQM">IQM</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#ISNA">ISNA</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#ISINF">ISINF</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#ISNAN">ISNAN</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#ISNA">ISNA</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#KMEANS">KMEANS</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#ISNAN">ISNAN</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#L2SVM">L2SVM</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#KMEANS">KMEANS</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#LENGTH">LENGTH</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#L2SVM">L2SVM</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#LINEAGE">LINEAGE</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#LENGTH">LENGTH</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#LIST">LIST</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#LINEAGE">LINEAGE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#LISTNV">LISTNV</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#LIST">LIST</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#LM">LM</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#LISTNV">LISTNV</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#LMCG">LMCG</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#LM">LM</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#LMDS">LMDS</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#LMCG">LMCG</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#LMPREDICT">LMPREDICT</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#LMDS">LMDS</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#LOG">LOG</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#LMPREDICT">LMPREDICT</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#LOWER_TRI">LOWER_TRI</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#LOG">LOG</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#LSTM">LSTM</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#LOWER_TRI">LOWER_TRI</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#LSTM_BACKWARD">LSTM_BACKWARD</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#LSTM">LSTM</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#LU">LU</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#LSTM_BACKWARD">LSTM_BACKWARD</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#MAX">MAX</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#LU">LU</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#MAX_POOL">MAX_POOL</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#MAX">MAX</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#MAX_POOL_BACKWARD">MAX_POOL_BACKWARD</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#MAX_POOL">MAX_POOL</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#MEAN">MEAN</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#MAX_POOL_BACKWARD">MAX_POOL_BACKWARD</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#MEDIAN">MEDIAN</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#MEAN">MEAN</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#MICE">MICE</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#MEDIAN">MEDIAN</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#MIN">MIN</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#MICE">MICE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#MOMENT">MOMENT</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#MIN">MIN</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#MSVM">MSVM</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#MOMENT">MOMENT</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#MSVMPREDICT">MSVMPREDICT</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#MSVM">MSVM</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#MULTILOGREG">MULTILOGREG</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#MSVMPREDICT">MSVMPREDICT</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#MULTILOGREGPREDICT">MULTILOGREGPREDICT</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#MULTILOGREG">MULTILOGREG</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#NAIVEBAYES">NAIVEBAYES</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#MULTILOGREGPREDICT">MULTILOGREGPREDICT</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#NCOL">NCOL</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#NAIVEBAYES">NAIVEBAYES</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#NORMALIZE">NORMALIZE</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#NCOL">NCOL</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#NROW">NROW</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#NORMALIZE">NORMALIZE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#ORDER">ORDER</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#NROW">NROW</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#OUTER">OUTER</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#ORDER">ORDER</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#OUTLIER">OUTLIER</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#OUTER">OUTER</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#OUTLIER_IQR">OUTLIER_IQR</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#OUTLIER">OUTLIER</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#OUTLIER_SD">OUTLIER_SD</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#OUTLIER_IQR">OUTLIER_IQR</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#PARAMSERV">PARAMSERV</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#OUTLIER_SD">OUTLIER_SD</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#PCHISQ">PCHISQ</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#PARAMSERV">PARAMSERV</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#PEXP">PEXP</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#PCHISQ">PCHISQ</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#PF">PF</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#PEXP">PEXP</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#PNMF">PNMF</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#PF">PF</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#PNORM">PNORM</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#PNMF">PNMF</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#PPRED">PPRED</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#PNORM">PNORM</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#PROD">PROD</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#PPRED">PPRED</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#PT">PT</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#PROD">PROD</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#QCHISQ">QCHISQ</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#PT">PT</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#QEXP">QEXP</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#QCHISQ">QCHISQ</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#QF">QF</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#QEXP">QEXP</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#QNORM">QNORM</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#QF">QF</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#QR">QR</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#QNORM">QNORM</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#QT">QT</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#QR">QR</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#QUANTILE">QUANTILE</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#QT">QT</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#RANGE">RANGE</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#QUANTILE">QUANTILE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#RBIND">RBIND</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#RANGE">RANGE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#REMOVE">REMOVE</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#RBIND">RBIND</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#REPLACE">REPLACE</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#REMOVE">REMOVE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#REV">REV</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#REPLACE">REPLACE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#RMEMPTY">RMEMPTY</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#REV">REV</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#ROUND">ROUND</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#RMEMPTY">RMEMPTY</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#ROWINDEXMAX">ROWINDEXMAX</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#ROUND">ROUND</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#ROWINDEXMIN">ROWINDEXMIN</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#ROWINDEXMAX">ROWINDEXMAX</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#ROWMAX">ROWMAX</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#ROWINDEXMIN">ROWINDEXMIN</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#ROWMEAN">ROWMEAN</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#ROWMAX">ROWMAX</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#ROWMIN">ROWMIN</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#ROWMEAN">ROWMEAN</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#ROWPROD">ROWPROD</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#ROWMIN">ROWMIN</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#ROWSD">ROWSD</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#ROWPROD">ROWPROD</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#ROWSUM">ROWSUM</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#ROWSD">ROWSD</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#ROWVAR">ROWVAR</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#ROWSUM">ROWSUM</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#SAMPLE">SAMPLE</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#ROWVAR">ROWVAR</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#SCALE">SCALE</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#SAMPLE">SAMPLE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#SD">SD</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#SCALE">SCALE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#SEQ">SEQ</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#SD">SD</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#SIGMOID">SIGMOID</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#SEQ">SEQ</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#SIGN">SIGN</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#SIGMOID">SIGMOID</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#SIN">SIN</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#SIGN">SIGN</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#SINH">SINH</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#SIN">SIN</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#SLICEFINDER">SLICEFINDER</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#SINH">SINH</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#SOLVE">SOLVE</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#SLICEFINDER">SLICEFINDER</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#SQRT">SQRT</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#SOLVE">SOLVE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#STEPLM">STEPLM</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#SQRT">SQRT</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#SUM">SUM</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#STEPLM">STEPLM</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#SVD">SVD</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#SUM">SUM</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#TABLE">TABLE</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#SVD">SVD</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#TAN">TAN</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#TABLE">TABLE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#TANH">TANH</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#TAN">TAN</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#TIME">TIME</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#TANH">TANH</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#TO_ONE_HOT">TO_ONE_HOT</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#TIME">TIME</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#TOSTRING">TOSTRING</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#TO_ONE_HOT">TO_ONE_HOT</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#TRACE">TRACE</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#TOSTRING">TOSTRING</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#TRANS">TRANS</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#TRACE">TRACE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#TRANSFORMAPPLY">TRANSFORMAPPLY</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#TRANS">TRANS</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#TRANSFORMCOLMAP">TRANSFORMCOLMAP</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#TRANSFORMAPPLY">TRANSFORMAPPLY</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#TRANSFORMDECODE">TRANSFORMDECODE</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#TRANSFORMCOLMAP">TRANSFORMCOLMAP</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#TRANSFORMENCODE">TRANSFORMENCODE</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#TRANSFORMDECODE">TRANSFORMDECODE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#TRANSFORMMETA">TRANSFORMMETA</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#TRANSFORMENCODE">TRANSFORMENCODE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#TYPEOF">TYPEOF</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#TRANSFORMMETA">TRANSFORMMETA</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#UPPER_TRI">UPPER_TRI</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#TYPEOF">TYPEOF</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#VAR">VAR</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#UPPER_TRI">UPPER_TRI</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#WINSORIZE">WINSORIZE</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#VAR">VAR</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#WINSORIZE">WINSORIZE</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
 <td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Builtins.html#XOR">XOR</a></span></code>&nbsp;</td>
 </tr>
 </table>
@@ -1171,6 +1180,15 @@ the order they are declared.</div>
 <pre>public static final&nbsp;<a href="../../../../org/apache/sysds/common/Builtins.html" title="enum in org.apache.sysds.common">Builtins</a> CONFUSIONMATRIX</pre>
 </li>
 </ul>
+<a name="COR">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>COR</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/sysds/common/Builtins.html" title="enum in org.apache.sysds.common">Builtins</a> COR</pre>
+</li>
+</ul>
 <a name="DETECTSCHEMA">
 <!--   -->
 </a>
@@ -1279,6 +1297,15 @@ the order they are declared.</div>
 <pre>public static final&nbsp;<a href="../../../../org/apache/sysds/common/Builtins.html" title="enum in org.apache.sysds.common">Builtins</a> GLM</pre>
 </li>
 </ul>
+<a name="GMM">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GMM</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/sysds/common/Builtins.html" title="enum in org.apache.sysds.common">Builtins</a> GMM</pre>
+</li>
+</ul>
 <a name="GNMF">
 <!--   -->
 </a>
@@ -1297,6 +1324,15 @@ the order they are declared.</div>
 <pre>public static final&nbsp;<a href="../../../../org/apache/sysds/common/Builtins.html" title="enum in org.apache.sysds.common">Builtins</a> GRID_SEARCH</pre>
 </li>
 </ul>
+<a name="HYPERBAND">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>HYPERBAND</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/sysds/common/Builtins.html" title="enum in org.apache.sysds.common">Builtins</a> HYPERBAND</pre>
+</li>
+</ul>
 <a name="IFELSE">
 <!--   -->
 </a>
diff --git a/docs/api/java/org/apache/sysds/common/Types.FileFormat.html b/docs/api/java/org/apache/sysds/common/Types.FileFormat.html
index 1bfc190..9558d2c 100644
--- a/docs/api/java/org/apache/sysds/common/Types.FileFormat.html
+++ b/docs/api/java/org/apache/sysds/common/Types.FileFormat.html
@@ -50,7 +50,7 @@ var activeTableTab = "activeTableTab";
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../org/apache/sysds/common/Types.ExecType.html" title="enum in org.apache.sysds.common"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../org/apache/sysds/common/Types.OpOp1.html" title="enum in org.apache.sysds.common"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/sysds/common/Types.FunctionBlock.html" title="interface in org.apache.sysds.common"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../index.html?org/apache/sysds/common/Types.FileFormat.html" target="_top">Frames</a></li>
@@ -482,7 +482,7 @@ not permitted.)</div>
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../org/apache/sysds/common/Types.ExecType.html" title="enum in org.apache.sysds.common"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../org/apache/sysds/common/Types.OpOp1.html" title="enum in org.apache.sysds.common"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/sysds/common/Types.FunctionBlock.html" title="interface in org.apache.sysds.common"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../index.html?org/apache/sysds/common/Types.FileFormat.html" target="_top">Frames</a></li>
diff --git a/docs/api/java/org/apache/sysds/common/Types.FunctionBlock.html b/docs/api/java/org/apache/sysds/common/Types.FunctionBlock.html
new file mode 100644
index 0000000..a0bcb4b
--- /dev/null
+++ b/docs/api/java/org/apache/sysds/common/Types.FunctionBlock.html
@@ -0,0 +1,231 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Types.FunctionBlock (SystemDS 2.0.0-SNAPSHOT API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Types.FunctionBlock (SystemDS 2.0.0-SNAPSHOT API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Types.FunctionBlock.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/sysds/common/Types.FileFormat.html" title="enum in org.apache.sysds.common"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/sysds/common/Types.OpOp1.html" title="enum in org.apache.sysds.common"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/sysds/common/Types.FunctionBlock.html" target="_top">Frames</a></li>
+<li><a href="Types.FunctionBlock.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.sysds.common</div>
+<h2 title="Interface Types.FunctionBlock" class="title">Interface Types.FunctionBlock</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../org/apache/sysds/runtime/controlprogram/FunctionProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">FunctionProgramBlock</a>, <a href="../../../../org/apache/sysds/parser/FunctionStatementBlock.html" title="class in org.apache.sysds.parser">FunctionStatementBlock</a></dd>
+</dl>
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="../../../../org/apache/sysds/common/Types.html" title="class in org.apache.sysds.common">Types</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public static interface <span class="typeNameLabel">Types.FunctionBlock</span></pre>
+<div class="block">Common type for both function statement blocks and function program blocks</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/sysds/common/Types.FunctionBlock.html" title="interface in org.apache.sysds.common">Types.FunctionBlock</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Types.FunctionBlock.html#cloneFunctionBlock--">cloneFunctionBlock</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="cloneFunctionBlock--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>cloneFunctionBlock</h4>
+<pre><a href="../../../../org/apache/sysds/common/Types.FunctionBlock.html" title="interface in org.apache.sysds.common">Types.FunctionBlock</a>&nbsp;cloneFunctionBlock()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Types.FunctionBlock.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/sysds/common/Types.FileFormat.html" title="enum in org.apache.sysds.common"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/sysds/common/Types.OpOp1.html" title="enum in org.apache.sysds.common"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/sysds/common/Types.FunctionBlock.html" target="_top">Frames</a></li>
+<li><a href="Types.FunctionBlock.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/docs/api/java/org/apache/sysds/common/Types.OpOp1.html b/docs/api/java/org/apache/sysds/common/Types.OpOp1.html
index ceb9487..aae7982 100644
--- a/docs/api/java/org/apache/sysds/common/Types.OpOp1.html
+++ b/docs/api/java/org/apache/sysds/common/Types.OpOp1.html
@@ -49,7 +49,7 @@ var activeTableTab = "activeTableTab";
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../org/apache/sysds/common/Types.FileFormat.html" title="enum in org.apache.sysds.common"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/sysds/common/Types.FunctionBlock.html" title="interface in org.apache.sysds.common"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../org/apache/sysds/common/Types.OpOp2.html" title="enum in org.apache.sysds.common"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
@@ -1003,7 +1003,7 @@ not permitted.)</div>
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../org/apache/sysds/common/Types.FileFormat.html" title="enum in org.apache.sysds.common"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/sysds/common/Types.FunctionBlock.html" title="interface in org.apache.sysds.common"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../org/apache/sysds/common/Types.OpOp2.html" title="enum in org.apache.sysds.common"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
diff --git a/docs/api/java/org/apache/sysds/common/Types.html b/docs/api/java/org/apache/sysds/common/Types.html
index 1a46543..4672646 100644
--- a/docs/api/java/org/apache/sysds/common/Types.html
+++ b/docs/api/java/org/apache/sysds/common/Types.html
@@ -166,53 +166,59 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Types.FileFormat.html" title="enum in org.apache.sysds.common">Types.FileFormat</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
+<td class="colFirst"><code>static interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Types.FunctionBlock.html" title="interface in org.apache.sysds.common">Types.FunctionBlock</a></span></code>
+<div class="block">Common type for both function statement blocks and function program blocks</div>
+</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><code>static class&nbsp;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Types.OpOp1.html" title="enum in org.apache.sysds.common">Types.OpOp1</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static class&nbsp;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Types.OpOp2.html" title="enum in org.apache.sysds.common">Types.OpOp2</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>static class&nbsp;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Types.OpOp3.html" title="enum in org.apache.sysds.common">Types.OpOp3</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static class&nbsp;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Types.OpOp4.html" title="enum in org.apache.sysds.common">Types.OpOp4</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>static class&nbsp;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Types.OpOpData.html" title="enum in org.apache.sysds.common">Types.OpOpData</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static class&nbsp;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Types.OpOpDG.html" title="enum in org.apache.sysds.common">Types.OpOpDG</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>static class&nbsp;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Types.OpOpDnn.html" title="enum in org.apache.sysds.common">Types.OpOpDnn</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static class&nbsp;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Types.OpOpN.html" title="enum in org.apache.sysds.common">Types.OpOpN</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>static class&nbsp;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Types.ParamBuiltinOp.html" title="enum in org.apache.sysds.common">Types.ParamBuiltinOp</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static class&nbsp;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Types.ReOrgOp.html" title="enum in org.apache.sysds.common">Types.ReOrgOp</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>static class&nbsp;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Types.ReturnType.html" title="enum in org.apache.sysds.common">Types.ReturnType</a></span></code>
 <div class="block">Type of builtin or user-defined function with regard to its
  number of return variables.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static class&nbsp;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/common/Types.ValueType.html" title="enum in org.apache.sysds.common">Types.ValueType</a></span></code>
 <div class="block">Value types (int, double, string, boolean, unknown).</div>
diff --git a/docs/api/java/org/apache/sysds/common/class-use/Types.FunctionBlock.html b/docs/api/java/org/apache/sysds/common/class-use/Types.FunctionBlock.html
new file mode 100644
index 0000000..69b9e7e
--- /dev/null
+++ b/docs/api/java/org/apache/sysds/common/class-use/Types.FunctionBlock.html
@@ -0,0 +1,251 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.sysds.common.Types.FunctionBlock (SystemDS 2.0.0-SNAPSHOT API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.sysds.common.Types.FunctionBlock (SystemDS 2.0.0-SNAPSHOT API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/sysds/common/Types.FunctionBlock.html" title="interface in org.apache.sysds.common">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/sysds/common/class-use/Types.FunctionBlock.html" target="_top">Frames</a></li>
+<li><a href="Types.FunctionBlock.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.sysds.common.Types.FunctionBlock" class="title">Uses of Interface<br>org.apache.sysds.common.Types.FunctionBlock</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/sysds/common/Types.FunctionBlock.html" title="interface in org.apache.sysds.common">Types.FunctionBlock</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.sysds.common">org.apache.sysds.common</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.sysds.parser">org.apache.sysds.parser</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.sysds.runtime.controlprogram">org.apache.sysds.runtime.controlprogram</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.sysds.common">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/sysds/common/Types.FunctionBlock.html" title="interface in org.apache.sysds.common">Types.FunctionBlock</a> in <a href="../../../../../org/apache/sysds/common/package-summary.html">org.apache.sysds.common</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/sysds/common/package-summary.html">org.apache.sysds.common</a> that return <a href="../../../../../org/apache/sysds/common/Types.FunctionBlock.html" title="interface in org.apache.sysds.common">Types.FunctionBlock</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/sysds/common/Types.FunctionBlock.html" title="interface in org.apache.sysds.common">Types.FunctionBlock</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Types.FunctionBlock.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/common/Types.FunctionBlock.html#cloneFunctionBlock--">cloneFunctionBlock</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.sysds.parser">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/sysds/common/Types.FunctionBlock.html" title="interface in org.apache.sysds.common">Types.FunctionBlock</a> in <a href="../../../../../org/apache/sysds/parser/package-summary.html">org.apache.sysds.parser</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../org/apache/sysds/parser/package-summary.html">org.apache.sysds.parser</a> with type parameters of type <a href="../../../../../org/apache/sysds/common/Types.FunctionBlock.html" title="interface in org.apache.sysds.common">Types.FunctionBlock</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/parser/FunctionDictionary.html" title="class in org.apache.sysds.parser">FunctionDictionary</a>&lt;T extends <a href="../../../../../org/apache/sysds/common/Types.FunctionBlock.html" title="interface in org.apache.sysds.common">Types.FunctionBlock</a>&gt;</span></code>
+<div class="block">Dictionary of all functions of a namespace, represented as a simple
+ key-value map of function names and function statement blocks.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../org/apache/sysds/parser/package-summary.html">org.apache.sysds.parser</a> that implement <a href="../../../../../org/apache/sysds/common/Types.FunctionBlock.html" title="interface in org.apache.sysds.common">Types.FunctionBlock</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/parser/FunctionStatementBlock.html" title="class in org.apache.sysds.parser">FunctionStatementBlock</a></span></code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/sysds/parser/package-summary.html">org.apache.sysds.parser</a> that return <a href="../../../../../org/apache/sysds/common/Types.FunctionBlock.html" title="interface in org.apache.sysds.common">Types.FunctionBlock</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/sysds/common/Types.FunctionBlock.html" title="interface in org.apache.sysds.common">Types.FunctionBlock</a></code></td>
+<td class="colLast"><span class="typeNameLabel">FunctionStatementBlock.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/parser/FunctionStatementBlock.html#cloneFunctionBlock--">cloneFunctionBlock</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.sysds.runtime.controlprogram">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/sysds/common/Types.FunctionBlock.html" title="interface in org.apache.sysds.common">Types.FunctionBlock</a> in <a href="../../../../../org/apache/sysds/runtime/controlprogram/package-summary.html">org.apache.sysds.runtime.controlprogram</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../org/apache/sysds/runtime/controlprogram/package-summary.html">org.apache.sysds.runtime.controlprogram</a> that implement <a href="../../../../../org/apache/sysds/common/Types.FunctionBlock.html" title="interface in org.apache.sysds.common">Types.FunctionBlock</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/controlprogram/FunctionProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">FunctionProgramBlock</a></span></code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/sysds/runtime/controlprogram/package-summary.html">org.apache.sysds.runtime.controlprogram</a> that return <a href="../../../../../org/apache/sysds/common/Types.FunctionBlock.html" title="interface in org.apache.sysds.common">Types.FunctionBlock</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/sysds/common/Types.FunctionBlock.html" title="interface in org.apache.sysds.common">Types.FunctionBlock</a></code></td>
+<td class="colLast"><span class="typeNameLabel">FunctionProgramBlock.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/controlprogram/FunctionProgramBlock.html#cloneFunctionBlock--">cloneFunctionBlock</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/sysds/common/Types.FunctionBlock.html" title="interface in org.apache.sysds.common">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/sysds/common/class-use/Types.FunctionBlock.html" target="_top">Frames</a></li>
+<li><a href="Types.FunctionBlock.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/docs/api/java/org/apache/sysds/common/package-frame.html b/docs/api/java/org/apache/sysds/common/package-frame.html
index ced18b9..d8fce95 100644
--- a/docs/api/java/org/apache/sysds/common/package-frame.html
+++ b/docs/api/java/org/apache/sysds/common/package-frame.html
@@ -11,6 +11,10 @@
 <body>
 <h1 class="bar"><a href="../../../../org/apache/sysds/common/package-summary.html" target="classFrame">org.apache.sysds.common</a></h1>
 <div class="indexContainer">
+<h2 title="Interfaces">Interfaces</h2>
+<ul title="Interfaces">
+<li><a href="Types.FunctionBlock.html" title="interface in org.apache.sysds.common" target="classFrame"><span class="interfaceName">Types.FunctionBlock</span></a></li>
+</ul>
 <h2 title="Classes">Classes</h2>
 <ul title="Classes">
 <li><a href="Types.html" title="class in org.apache.sysds.common" target="classFrame">Types</a></li>
diff --git a/docs/api/java/org/apache/sysds/common/package-summary.html b/docs/api/java/org/apache/sysds/common/package-summary.html
index c0004dc..f11ac07 100644
--- a/docs/api/java/org/apache/sysds/common/package-summary.html
+++ b/docs/api/java/org/apache/sysds/common/package-summary.html
@@ -75,6 +75,23 @@
 <div class="contentContainer">
 <ul class="blockList">
 <li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Interface Summary table, listing interfaces, and an explanation">
+<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/sysds/common/Types.FunctionBlock.html" title="interface in org.apache.sysds.common">Types.FunctionBlock</a></td>
+<td class="colLast">
+<div class="block">Common type for both function statement blocks and function program blocks</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
 <table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
 <caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
diff --git a/docs/api/java/org/apache/sysds/common/package-tree.html b/docs/api/java/org/apache/sysds/common/package-tree.html
index b076441..6dcd68f 100644
--- a/docs/api/java/org/apache/sysds/common/package-tree.html
+++ b/docs/api/java/org/apache/sysds/common/package-tree.html
@@ -86,6 +86,10 @@
 </ul>
 </li>
 </ul>
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li type="circle">org.apache.sysds.common.<a href="../../../../org/apache/sysds/common/Types.FunctionBlock.html" title="interface in org.apache.sysds.common"><span class="typeNameLink">Types.FunctionBlock</span></a></li>
+</ul>
 <h2 title="Enum Hierarchy">Enum Hierarchy</h2>
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
diff --git a/docs/api/java/org/apache/sysds/common/package-use.html b/docs/api/java/org/apache/sysds/common/package-use.html
index ba27c83..789147a 100644
--- a/docs/api/java/org/apache/sysds/common/package-use.html
+++ b/docs/api/java/org/apache/sysds/common/package-use.html
@@ -313,42 +313,47 @@
 <td class="colOne"><a href="../../../../org/apache/sysds/common/class-use/Types.FileFormat.html#org.apache.sysds.common">Types.FileFormat</a>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><a href="../../../../org/apache/sysds/common/class-use/Types.OpOp1.html#org.apache.sysds.common">Types.OpOp1</a>&nbsp;</td>
+<td class="colOne"><a href="../../../../org/apache/sysds/common/class-use/Types.FunctionBlock.html#org.apache.sysds.common">Types.FunctionBlock</a>
+<div class="block">Common type for both function statement blocks and function program blocks</div>
+</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><a href="../../../../org/apache/sysds/common/class-use/Types.OpOp2.html#org.apache.sysds.common">Types.OpOp2</a>&nbsp;</td>
+<td class="colOne"><a href="../../../../org/apache/sysds/common/class-use/Types.OpOp1.html#org.apache.sysds.common">Types.OpOp1</a>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><a href="../../../../org/apache/sysds/common/class-use/Types.OpOp3.html#org.apache.sysds.common">Types.OpOp3</a>&nbsp;</td>
+<td class="colOne"><a href="../../../../org/apache/sysds/common/class-use/Types.OpOp2.html#org.apache.sysds.common">Types.OpOp2</a>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><a href="../../../../org/apache/sysds/common/class-use/Types.OpOp4.html#org.apache.sysds.common">Types.OpOp4</a>&nbsp;</td>
+<td class="colOne"><a href="../../../../org/apache/sysds/common/class-use/Types.OpOp3.html#org.apache.sysds.common">Types.OpOp3</a>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><a href="../../../../org/apache/sysds/common/class-use/Types.OpOpData.html#org.apache.sysds.common">Types.OpOpData</a>&nbsp;</td>
+<td class="colOne"><a href="../../../../org/apache/sysds/common/class-use/Types.OpOp4.html#org.apache.sysds.common">Types.OpOp4</a>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><a href="../../../../org/apache/sysds/common/class-use/Types.OpOpDG.html#org.apache.sysds.common">Types.OpOpDG</a>&nbsp;</td>
+<td class="colOne"><a href="../../../../org/apache/sysds/common/class-use/Types.OpOpData.html#org.apache.sysds.common">Types.OpOpData</a>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><a href="../../../../org/apache/sysds/common/class-use/Types.OpOpDnn.html#org.apache.sysds.common">Types.OpOpDnn</a>&nbsp;</td>
+<td class="colOne"><a href="../../../../org/apache/sysds/common/class-use/Types.OpOpDG.html#org.apache.sysds.common">Types.OpOpDG</a>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><a href="../../../../org/apache/sysds/common/class-use/Types.OpOpN.html#org.apache.sysds.common">Types.OpOpN</a>&nbsp;</td>
+<td class="colOne"><a href="../../../../org/apache/sysds/common/class-use/Types.OpOpDnn.html#org.apache.sysds.common">Types.OpOpDnn</a>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><a href="../../../../org/apache/sysds/common/class-use/Types.ParamBuiltinOp.html#org.apache.sysds.common">Types.ParamBuiltinOp</a>&nbsp;</td>
+<td class="colOne"><a href="../../../../org/apache/sysds/common/class-use/Types.OpOpN.html#org.apache.sysds.common">Types.OpOpN</a>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><a href="../../../../org/apache/sysds/common/class-use/Types.ReOrgOp.html#org.apache.sysds.common">Types.ReOrgOp</a>&nbsp;</td>
+<td class="colOne"><a href="../../../../org/apache/sysds/common/class-use/Types.ParamBuiltinOp.html#org.apache.sysds.common">Types.ParamBuiltinOp</a>&nbsp;</td>
 </tr>
 <tr class="rowColor">
+<td class="colOne"><a href="../../../../org/apache/sysds/common/class-use/Types.ReOrgOp.html#org.apache.sysds.common">Types.ReOrgOp</a>&nbsp;</td>
+</tr>
+<tr class="altColor">
 <td class="colOne"><a href="../../../../org/apache/sysds/common/class-use/Types.ReturnType.html#org.apache.sysds.common">Types.ReturnType</a>
 <div class="block">Type of builtin or user-defined function with regard to its
  number of return variables.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../org/apache/sysds/common/class-use/Types.ValueType.html#org.apache.sysds.common">Types.ValueType</a>
 <div class="block">Value types (int, double, string, boolean, unknown).</div>
 </td>
@@ -641,9 +646,14 @@
 <td class="colOne"><a href="../../../../org/apache/sysds/common/class-use/Types.FileFormat.html#org.apache.sysds.parser">Types.FileFormat</a>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><a href="../../../../org/apache/sysds/common/class-use/Types.ParamBuiltinOp.html#org.apache.sysds.parser">Types.ParamBuiltinOp</a>&nbsp;</td>
+<td class="colOne"><a href="../../../../org/apache/sysds/common/class-use/Types.FunctionBlock.html#org.apache.sysds.parser">Types.FunctionBlock</a>
+<div class="block">Common type for both function statement blocks and function program blocks</div>
+</td>
 </tr>
 <tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/sysds/common/class-use/Types.ParamBuiltinOp.html#org.apache.sysds.parser">Types.ParamBuiltinOp</a>&nbsp;</td>
+</tr>
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../org/apache/sysds/common/class-use/Types.ValueType.html#org.apache.sysds.parser">Types.ValueType</a>
 <div class="block">Value types (int, double, string, boolean, unknown).</div>
 </td>
@@ -661,6 +671,11 @@
 </tr>
 <tbody>
 <tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/sysds/common/class-use/Types.FunctionBlock.html#org.apache.sysds.runtime.controlprogram">Types.FunctionBlock</a>
+<div class="block">Common type for both function statement blocks and function program blocks</div>
+</td>
+</tr>
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../org/apache/sysds/common/class-use/Types.ValueType.html#org.apache.sysds.runtime.controlprogram">Types.ValueType</a>
 <div class="block">Value types (int, double, string, boolean, unknown).</div>
 </td>
diff --git a/docs/api/java/org/apache/sysds/hops/FunctionOp.html b/docs/api/java/org/apache/sysds/hops/FunctionOp.html
index 3a83d0b..35b2f71 100644
--- a/docs/api/java/org/apache/sysds/hops/FunctionOp.html
+++ b/docs/api/java/org/apache/sysds/hops/FunctionOp.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -163,7 +163,7 @@ extends <a href="../../../../org/apache/sysds/hops/Hop.html" title="class in org
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/FunctionOp.html#OPSTRING">OPSTRING</a></span></code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/FunctionOp.html#OPCODE">OPCODE</a></span></code>&nbsp;</td>
 </tr>
 </table>
 <ul class="blockList">
@@ -298,14 +298,18 @@ extends <a href="../../../../org/apache/sysds/hops/Hop.html" title="class in org
 </tr>
 <tr id="i17" class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/FunctionOp.html#setFunctionName-java.lang.String-">setFunctionName</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;fname)</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/FunctionOp.html#setCallOptimized-boolean-">setCallOptimized</a></span>(boolean&nbsp;opt)</code>&nbsp;</td>
 </tr>
 <tr id="i18" class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/FunctionOp.html#setFunctionNamespace-java.lang.String-">setFunctionNamespace</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;fnamespace)</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/FunctionOp.html#setFunctionName-java.lang.String-">setFunctionName</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;fname)</code>&nbsp;</td>
 </tr>
 <tr id="i19" class="rowColor">
 <td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/FunctionOp.html#setFunctionNamespace-java.lang.String-">setFunctionNamespace</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;fnamespace)</code>&nbsp;</td>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/hops/FunctionOp.html#setInputVariableNames-java.lang.String:A-">setInputVariableNames</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;names)</code>&nbsp;</td>
 </tr>
 </table>
@@ -344,16 +348,16 @@ extends <a href="../../../../org/apache/sysds/hops/Hop.html" title="class in org
 <!--   -->
 </a>
 <h3>Field Detail</h3>
-<a name="OPSTRING">
+<a name="OPCODE">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>OPSTRING</h4>
-<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> OPSTRING</pre>
+<h4>OPCODE</h4>
+<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> OPCODE</pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
-<dd><a href="../../../../constant-values.html#org.apache.sysds.hops.FunctionOp.OPSTRING">Constant Field Values</a></dd>
+<dd><a href="../../../../constant-values.html#org.apache.sysds.hops.FunctionOp.OPCODE">Constant Field Values</a></dd>
 </dl>
 </li>
 </ul>
@@ -516,6 +520,15 @@ extends <a href="../../../../org/apache/sysds/hops/Hop.html" title="class in org
 <pre>public&nbsp;<a href="../../../../org/apache/sysds/hops/FunctionOp.FunctionType.html" title="enum in org.apache.sysds.hops">FunctionOp.FunctionType</a>&nbsp;getFunctionType()</pre>
 </li>
 </ul>
+<a name="setCallOptimized-boolean-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setCallOptimized</h4>
+<pre>public&nbsp;void&nbsp;setCallOptimized(boolean&nbsp;opt)</pre>
+</li>
+</ul>
 <a name="allowsAllExecTypes--">
 <!--   -->
 </a>
diff --git a/docs/api/java/org/apache/sysds/hops/class-use/Hop.html b/docs/api/java/org/apache/sysds/hops/class-use/Hop.html
index 881da50..916d36f 100644
--- a/docs/api/java/org/apache/sysds/hops/class-use/Hop.html
+++ b/docs/api/java/org/apache/sysds/hops/class-use/Hop.html
@@ -1382,7 +1382,7 @@
 <tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">CPlanMemoTable.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/hops/codegen/template/CPlanMemoTable.html#remove-org.apache.sysds.hops.Hop-java.util.Set-">remove</a></span>(<a href="../../../../../org/apache/sysds/hops/Hop.html" title="class in org.apache.sysds.hops">Hop</a>&nbsp;hop,
-      <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/sysds/hops/codegen/template/CPlanMemoTable.MemoTableEntry.html" title="class in org.apache.sysds.hops.codegen.template">CPlanMemoTable.MemoTableEntry</a>&gt;&nbsp;blackList)</code>&nbsp;</td>
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/sysds/hops/codegen/template/CPlanMemoTable.MemoTableEntry.html" title="class in org.apache.sysds.hops.codegen.template">CPlanMemoTable.MemoTableEntry</a>&gt;&nbsp;excludeList)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
@@ -2930,12 +2930,13 @@
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/lops/FunctionCallCP.html#FunctionCallCP-java.util.ArrayList-java.lang.String-java.lang.String-java.lang.String:A-java.lang.String:A-java.util.ArrayList-org.apache.sysds.lops.LopProperties.ExecType-">FunctionCallCP</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../.. [...]
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/lops/FunctionCallCP.html#FunctionCallCP-java.util.ArrayList-java.lang.String-java.lang.String-java.lang.String:A-java.lang.String:A-java.util.ArrayList-boolean-org.apache.sysds.lops.LopProperties.ExecType-">FunctionCallCP</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../ [...]
               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;fnamespace,
               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;fname,
               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;inputNames,
               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;outputNames,
               <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../../org/apache/sysds/hops/Hop.html" title="class in org.apache.sysds.hops">Hop</a>&gt;&nbsp;outputHops,
+              boolean&nbsp;opt,
               <a href="../../../../../org/apache/sysds/lops/LopProperties.ExecType.html" title="enum in org.apache.sysds.lops">LopProperties.ExecType</a>&nbsp;et)</code>&nbsp;</td>
 </tr>
 </tbody>
diff --git a/docs/api/java/org/apache/sysds/hops/codegen/template/CPlanMemoTable.html b/docs/api/java/org/apache/sysds/hops/codegen/template/CPlanMemoTable.html
index 6a726ab..d9c25b0 100644
--- a/docs/api/java/org/apache/sysds/hops/codegen/template/CPlanMemoTable.html
+++ b/docs/api/java/org/apache/sysds/hops/codegen/template/CPlanMemoTable.html
@@ -310,7 +310,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </tr>
 <tr id="i28" class="altColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/hops/codegen/template/CPlanMemoTable.html#getPlansBlacklisted--">getPlansBlacklisted</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/hops/codegen/template/CPlanMemoTable.html#getPlansExcludeListed--">getPlansExcludeListed</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i29" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
@@ -331,7 +331,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <tr id="i32" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/hops/codegen/template/CPlanMemoTable.html#remove-org.apache.sysds.hops.Hop-java.util.Set-">remove</a></span>(<a href="../../../../../../org/apache/sysds/hops/Hop.html" title="class in org.apache.sysds.hops">Hop</a>&nbsp;hop,
-      <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/sysds/hops/codegen/template/CPlanMemoTable.MemoTableEntry.html" title="class in org.apache.sysds.hops.codegen.template">CPlanMemoTable.MemoTableEntry</a>&gt;&nbsp;blackList)</code>&nbsp;</td>
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/sysds/hops/codegen/template/CPlanMemoTable.MemoTableEntry.html" title="class in org.apache.sysds.hops.codegen.template">CPlanMemoTable.MemoTableEntry</a>&gt;&nbsp;excludeList)</code>&nbsp;</td>
 </tr>
 <tr id="i33" class="rowColor">
 <td class="colFirst"><code>void</code></td>
@@ -408,13 +408,13 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/sysds/hops/ [...]
 </li>
 </ul>
-<a name="getPlansBlacklisted--">
+<a name="getPlansExcludeListed--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getPlansBlacklisted</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;&nbsp;getPlansBlacklisted()</pre>
+<h4>getPlansExcludeListed</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;&nbsp;getPlansExcludeListed()</pre>
 </li>
 </ul>
 <a name="getHopRefs--">
@@ -608,7 +608,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <li class="blockList">
 <h4>remove</h4>
 <pre>public&nbsp;void&nbsp;remove(<a href="../../../../../../org/apache/sysds/hops/Hop.html" title="class in org.apache.sysds.hops">Hop</a>&nbsp;hop,
-                   <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/sysds/hops/codegen/template/CPlanMemoTable.MemoTableEntry.html" title="class in org.apache.sysds.hops.codegen.template">CPlanMemoTable.MemoTableEntry</a>&gt;&nbsp;blackList)</pre>
+                   <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/sysds/hops/codegen/template/CPlanMemoTable.MemoTableEntry.html" title="class in org.apache.sysds.hops.codegen.template">CPlanMemoTable.MemoTableEntry</a>&gt;&nbsp;excludeList)</pre>
 </li>
 </ul>
 <a name="remove-org.apache.sysds.hops.Hop-org.apache.sysds.hops.codegen.template.TemplateBase.TemplateType-">
diff --git a/docs/api/java/org/apache/sysds/hops/codegen/template/class-use/CPlanMemoTable.MemoTableEntry.html b/docs/api/java/org/apache/sysds/hops/codegen/template/class-use/CPlanMemoTable.MemoTableEntry.html
index cc73694..253ea03 100644
--- a/docs/api/java/org/apache/sysds/hops/codegen/template/class-use/CPlanMemoTable.MemoTableEntry.html
+++ b/docs/api/java/org/apache/sysds/hops/codegen/template/class-use/CPlanMemoTable.MemoTableEntry.html
@@ -233,7 +233,7 @@
 <tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">CPlanMemoTable.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/hops/codegen/template/CPlanMemoTable.html#remove-org.apache.sysds.hops.Hop-java.util.Set-">remove</a></span>(<a href="../../../../../../../org/apache/sysds/hops/Hop.html" title="class in org.apache.sysds.hops">Hop</a>&nbsp;hop,
-      <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../../org/apache/sysds/hops/codegen/template/CPlanMemoTable.MemoTableEntry.html" title="class in org.apache.sysds.hops.codegen.template">CPlanMemoTable.MemoTableEntry</a>&gt;&nbsp;blackList)</code>&nbsp;</td>
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../../org/apache/sysds/hops/codegen/template/CPlanMemoTable.MemoTableEntry.html" title="class in org.apache.sysds.hops.codegen.template">CPlanMemoTable.MemoTableEntry</a>&gt;&nbsp;excludeList)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
diff --git a/docs/api/java/org/apache/sysds/hops/ipa/FunctionCallGraph.html b/docs/api/java/org/apache/sysds/hops/ipa/FunctionCallGraph.html
index fbc9176..39fe0a9 100644
--- a/docs/api/java/org/apache/sysds/hops/ipa/FunctionCallGraph.html
+++ b/docs/api/java/org/apache/sysds/hops/ipa/FunctionCallGraph.html
@@ -198,10 +198,10 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </tr>
 <tr id="i6" class="altColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/hops/ipa/FunctionCallGraph.html#getReachableFunctions-java.util.Set-">getReachableFunctions</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;bla [...]
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/hops/ipa/FunctionCallGraph.html#getReachableFunctions-java.util.Set-">getReachableFunctions</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;exc [...]
 <div class="block">Returns all functions that are reachable either directly or indirectly
  form the main program, except the main program itself and the given 
- blacklist of function names.</div>
+ exclude-list of function names.</div>
 </td>
 </tr>
 <tr id="i7" class="rowColor">
@@ -549,13 +549,13 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getReachableFunctions</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getReachableFunctions(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.or [...]
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getReachableFunctions(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.or [...]
 <div class="block">Returns all functions that are reachable either directly or indirectly
  form the main program, except the main program itself and the given 
- blacklist of function names.</div>
+ exclude-list of function names.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
-<dd><code>blacklist</code> - list of function keys to exclude</dd>
+<dd><code>excludeList</code> - list of function keys to exclude</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>set of function keys (namespace and name)</dd>
 </dl>
diff --git a/docs/api/java/org/apache/sysds/hops/rewrite/HopRewriteUtils.html b/docs/api/java/org/apache/sysds/hops/rewrite/HopRewriteUtils.html
index 8765f0f..5900b7c 100644
--- a/docs/api/java/org/apache/sysds/hops/rewrite/HopRewriteUtils.html
+++ b/docs/api/java/org/apache/sysds/hops/rewrite/HopRewriteUtils.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9,"i7":9,"i8":9,"i9":9,"i10":9,"i11":9,"i12":9,"i13":9,"i14":9,"i15":9,"i16":9,"i17":9,"i18":9,"i19":9,"i20":9,"i21":9,"i22":9,"i23":9,"i24":9,"i25":9,"i26":9,"i27":9,"i28":9,"i29":9,"i30":9,"i31":9,"i32":9,"i33":9,"i34":9,"i35":9,"i36":9,"i37":9,"i38":9,"i39":9,"i40":9,"i41":9,"i42":9,"i43":9,"i44":9,"i45":9,"i46":9,"i47":9,"i48":9,"i49":9,"i50":9,"i51":9,"i52":9,"i53":9,"i54":9,"i55":9,"i56":9,"i57":9,"i58":9,"i59":9,"i60":9 [...]
+var methods = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9,"i7":9,"i8":9,"i9":9,"i10":9,"i11":9,"i12":9,"i13":9,"i14":9,"i15":9,"i16":9,"i17":9,"i18":9,"i19":9,"i20":9,"i21":9,"i22":9,"i23":9,"i24":9,"i25":9,"i26":9,"i27":9,"i28":9,"i29":9,"i30":9,"i31":9,"i32":9,"i33":9,"i34":9,"i35":9,"i36":9,"i37":9,"i38":9,"i39":9,"i40":9,"i41":9,"i42":9,"i43":9,"i44":9,"i45":9,"i46":9,"i47":9,"i48":9,"i49":9,"i50":9,"i51":9,"i52":9,"i53":9,"i54":9,"i55":9,"i56":9,"i57":9,"i58":9,"i59":9,"i60":9 [...]
 var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -1033,11 +1033,15 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </tr>
 <tr id="i176" class="altColor">
 <td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/hops/rewrite/HopRewriteUtils.html#setUnoptimizedFunctionCalls-org.apache.sysds.parser.StatementBlock-">setUnoptimizedFunctionCalls</a></span>(<a href="../../../../../org/apache/sysds/parser/StatementBlock.html" title="class in org.apache.sysds.parser">StatementBlock</a>&nbsp;sb)</code>&nbsp;</td>
+</tr>
+<tr id="i177" class="rowColor">
+<td class="colFirst"><code>static void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/hops/rewrite/HopRewriteUtils.html#updateHopCharacteristics-org.apache.sysds.hops.Hop-int-org.apache.sysds.hops.Hop-">updateHopCharacteristics</a></span>(<a href="../../../../../org/apache/sysds/hops/Hop.html" title="class in org.apache.sysds.hops">Hop</a>&nbsp;hop,
                         int&nbsp;blen,
                         <a href="../../../../../org/apache/sysds/hops/Hop.html" title="class in org.apache.sysds.hops">Hop</a>&nbsp;src)</code>&nbsp;</td>
 </tr>
-<tr id="i177" class="rowColor">
+<tr id="i178" class="altColor">
 <td class="colFirst"><code>static void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/hops/rewrite/HopRewriteUtils.html#updateHopCharacteristics-org.apache.sysds.hops.Hop-int-org.apache.sysds.hops.MemoTable-org.apache.sysds.hops.Hop-">updateHopCharacteristics</a></span>(<a href="../../../../../org/apache/sysds/hops/Hop.html" title="class in org.apache.sysds.hops">Hop</a>&nbsp;hop,
                         int&nbsp;blen,
@@ -2901,12 +2905,21 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <a name="containsSecondOrderBuiltin-java.util.ArrayList-">
 <!--   -->
 </a>
-<ul class="blockListLast">
+<ul class="blockList">
 <li class="blockList">
 <h4>containsSecondOrderBuiltin</h4>
 <pre>public static&nbsp;boolean&nbsp;containsSecondOrderBuiltin(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../../org/apache/sysds/hops/Hop.html" title="class in org.apache.sysds.hops">Hop</a>&gt;&nbsp;roots)</pre>
 </li>
 </ul>
+<a name="setUnoptimizedFunctionCalls-org.apache.sysds.parser.StatementBlock-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>setUnoptimizedFunctionCalls</h4>
+<pre>public static&nbsp;void&nbsp;setUnoptimizedFunctionCalls(<a href="../../../../../org/apache/sysds/parser/StatementBlock.html" title="class in org.apache.sysds.parser">StatementBlock</a>&nbsp;sb)</pre>
+</li>
+</ul>
 </li>
 </ul>
 </li>
diff --git a/docs/api/java/org/apache/sysds/lops/FunctionCallCP.html b/docs/api/java/org/apache/sysds/lops/FunctionCallCP.html
index 114e6c6..3723ba6 100644
--- a/docs/api/java/org/apache/sysds/lops/FunctionCallCP.html
+++ b/docs/api/java/org/apache/sysds/lops/FunctionCallCP.html
@@ -164,12 +164,13 @@ extends <a href="../../../../org/apache/sysds/lops/Lop.html" title="class in org
 <th class="colOne" scope="col">Constructor and Description</th>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/lops/FunctionCallCP.html#FunctionCallCP-java.util.ArrayList-java.lang.String-java.lang.String-java.lang.String:A-java.lang.String:A-java.util.ArrayList-org.apache.sysds.lops.LopProperties.ExecType-">FunctionCallCP</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../org [...]
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/lops/FunctionCallCP.html#FunctionCallCP-java.util.ArrayList-java.lang.String-java.lang.String-java.lang.String:A-java.lang.String:A-java.util.ArrayList-boolean-org.apache.sysds.lops.LopProperties.ExecType-">FunctionCallCP</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../. [...]
               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;fnamespace,
               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;fname,
               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;inputNames,
               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;outputNames,
               <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../org/apache/sysds/hops/Hop.html" title="class in org.apache.sysds.hops">Hop</a>&gt;&nbsp;outputHops,
+              boolean&nbsp;opt,
               <a href="../../../../org/apache/sysds/lops/LopProperties.ExecType.html" title="enum in org.apache.sysds.lops">LopProperties.ExecType</a>&nbsp;et)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
@@ -245,7 +246,7 @@ extends <a href="../../../../org/apache/sysds/lops/Lop.html" title="class in org
 <!--   -->
 </a>
 <h3>Constructor Detail</h3>
-<a name="FunctionCallCP-java.util.ArrayList-java.lang.String-java.lang.String-java.lang.String:A-java.lang.String:A-java.util.ArrayList-org.apache.sysds.lops.LopProperties.ExecType-">
+<a name="FunctionCallCP-java.util.ArrayList-java.lang.String-java.lang.String-java.lang.String:A-java.lang.String:A-java.util.ArrayList-boolean-org.apache.sysds.lops.LopProperties.ExecType-">
 <!--   -->
 </a>
 <ul class="blockList">
@@ -257,6 +258,7 @@ extends <a href="../../../../org/apache/sysds/lops/Lop.html" title="class in org
                       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;inputNames,
                       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;outputNames,
                       <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../org/apache/sysds/hops/Hop.html" title="class in org.apache.sysds.hops">Hop</a>&gt;&nbsp;outputHops,
+                      boolean&nbsp;opt,
                       <a href="../../../../org/apache/sysds/lops/LopProperties.ExecType.html" title="enum in org.apache.sysds.lops">LopProperties.ExecType</a>&nbsp;et)</pre>
 </li>
 </ul>
diff --git a/docs/api/java/org/apache/sysds/lops/class-use/Lop.html b/docs/api/java/org/apache/sysds/lops/class-use/Lop.html
index 6f7225d..89e8827 100644
--- a/docs/api/java/org/apache/sysds/lops/class-use/Lop.html
+++ b/docs/api/java/org/apache/sysds/lops/class-use/Lop.html
@@ -1495,12 +1495,13 @@
          <a href="../../../../../org/apache/sysds/common/Types.ValueType.html" title="enum in org.apache.sysds.common">Types.ValueType</a>&nbsp;valueType)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/lops/FunctionCallCP.html#FunctionCallCP-java.util.ArrayList-java.lang.String-java.lang.String-java.lang.String:A-java.lang.String:A-java.util.ArrayList-org.apache.sysds.lops.LopProperties.ExecType-">FunctionCallCP</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../.. [...]
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/lops/FunctionCallCP.html#FunctionCallCP-java.util.ArrayList-java.lang.String-java.lang.String-java.lang.String:A-java.lang.String:A-java.util.ArrayList-boolean-org.apache.sysds.lops.LopProperties.ExecType-">FunctionCallCP</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../ [...]
               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;fnamespace,
               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;fname,
               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;inputNames,
               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;outputNames,
               <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../../org/apache/sysds/hops/Hop.html" title="class in org.apache.sysds.hops">Hop</a>&gt;&nbsp;outputHops,
+              boolean&nbsp;opt,
               <a href="../../../../../org/apache/sysds/lops/LopProperties.ExecType.html" title="enum in org.apache.sysds.lops">LopProperties.ExecType</a>&nbsp;et)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
diff --git a/docs/api/java/org/apache/sysds/lops/class-use/LopProperties.ExecType.html b/docs/api/java/org/apache/sysds/lops/class-use/LopProperties.ExecType.html
index 2eef3f2..843cf38 100644
--- a/docs/api/java/org/apache/sysds/lops/class-use/LopProperties.ExecType.html
+++ b/docs/api/java/org/apache/sysds/lops/class-use/LopProperties.ExecType.html
@@ -524,12 +524,13 @@ the order they are declared.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/lops/FunctionCallCP.html#FunctionCallCP-java.util.ArrayList-java.lang.String-java.lang.String-java.lang.String:A-java.lang.String:A-java.util.ArrayList-org.apache.sysds.lops.LopProperties.ExecType-">FunctionCallCP</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../.. [...]
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/lops/FunctionCallCP.html#FunctionCallCP-java.util.ArrayList-java.lang.String-java.lang.String-java.lang.String:A-java.lang.String:A-java.util.ArrayList-boolean-org.apache.sysds.lops.LopProperties.ExecType-">FunctionCallCP</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../ [...]
               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;fnamespace,
               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;fname,
               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;inputNames,
               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;outputNames,
               <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../../org/apache/sysds/hops/Hop.html" title="class in org.apache.sysds.hops">Hop</a>&gt;&nbsp;outputHops,
+              boolean&nbsp;opt,
               <a href="../../../../../org/apache/sysds/lops/LopProperties.ExecType.html" title="enum in org.apache.sysds.lops">LopProperties.ExecType</a>&nbsp;et)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
diff --git a/docs/api/java/org/apache/sysds/parser/DMLProgram.html b/docs/api/java/org/apache/sysds/parser/DMLProgram.html
index b793471..15e1303 100644
--- a/docs/api/java/org/apache/sysds/parser/DMLProgram.html
+++ b/docs/api/java/org/apache/sysds/parser/DMLProgram.html
@@ -193,36 +193,36 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;fname)</code>&nbsp;</td>
 </tr>
 <tr id="i4" class="altColor">
-<td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/DMLProgram.html#containsFunctionStatementBlock-java.lang.String-">containsFunctionStatementBlock</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>&nbsp;</td>
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/DMLProgram.html#copyOriginalFunctions--">copyOriginalFunctions</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/sysds/parser/FunctionDictionary.html" title="class in org.apache.sysds.parser">FunctionDictionary</a>&lt;<a href="../../../../org/apache/sysds/parser/FunctionStatementBlock.html" title="class in org.apache.sysds.parser">FunctionStatementBlock</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/DMLProgram.html#getDefaultFunctionDictionary--">getDefaultFunctionDictionary</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i6" class="altColor">
 <td class="colFirst"><code><a href="../../../../org/apache/sysds/parser/FunctionStatementBlock.html" title="class in org.apache.sysds.parser">FunctionStatementBlock</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/DMLProgram.html#getFunctionStatementBlock-java.lang.String-">getFunctionStatementBlock</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;fkey)</code>&nbsp;</td>
 </tr>
-<tr id="i6" class="altColor">
+<tr id="i7" class="rowColor">
 <td class="colFirst"><code><a href="../../../../org/apache/sysds/parser/FunctionStatementBlock.html" title="class in org.apache.sysds.parser">FunctionStatementBlock</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/DMLProgram.html#getFunctionStatementBlock-java.lang.String-java.lang.String-">getFunctionStatementBlock</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespaceKey,
                          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;functionName)</code>&nbsp;</td>
 </tr>
-<tr id="i7" class="rowColor">
-<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../org/apache/sysds/parser/FunctionStatementBlock.html" title="class in org.apache.sysds.parser">FunctionStatementBlock</a>&gt;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/DMLProgram.html#getFunctionStatementBlocks--">getFunctionStatementBlocks</a></span>()</code>&nbsp;</td>
-</tr>
 <tr id="i8" class="altColor">
-<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../org/apache/sysds/parser/FunctionStatementBlock.html" title="class in org.apache.sysds.parser">FunctionStatementBlock</a>&gt;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/DMLProgram.html#getFunctionStatementBlocks-java.lang.String-">getFunctionStatementBlocks</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespaceKey)</code>&nbsp;</td>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/apache/sysds/parser/FunctionStatementBlock.html" title="class in org.apache.sysds.parser">FunctionStatementBlock</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/DMLProgram.html#getFunctionStatementBlocks--">getFunctionStatementBlocks</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i9" class="rowColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../org/apache/sysds/parser/FunctionStatementBlock.html" title="class in org.apache.sysds.parser">FunctionStatementBlock</a>&gt;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/DMLProgram.html#getNamedFunctionStatementBlocks--">getNamedFunctionStatementBlocks</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/DMLProgram.html#getFunctionStatementBlocks-java.lang.String-">getFunctionStatementBlocks</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespaceKey)</code>&nbsp;</td>
 </tr>
 <tr id="i10" class="altColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../org/apache/sysds/parser/FunctionStatementBlock.html" title="class in org.apache.sysds.parser">FunctionStatementBlock</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/DMLProgram.html#getNamedNSFunctionStatementBlocks--">getNamedNSFunctionStatementBlocks</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i11" class="rowColor">
-<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../org/apache/sysds/parser/DMLProgram.html" title="class in org.apache.sysds.parser">DMLProgram</a>&gt;</code></td>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../org/apache/sysds/parser/FunctionDictionary.html" title="class in org.apache.sysds.parser">FunctionDictionary</a>&lt;<a href="../../../../org/apache/sysds/parser/Fu [...]
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/DMLProgram.html#getNamespaces--">getNamespaces</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i12" class="altColor">
@@ -358,7 +358,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getNamespaces</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../org/apache/sysds/parser/DMLProgram.html" title="class in org.apache.sysds.parser">DMLProgram</a>&gt;&nbsp;getNamespaces()</pre>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../org/apache/sysds/parser/FunctionDictionary.html" title="class in org.apache.sysds.parser">FunctionDictionary</a>&lt;<a href="../../../../org/apache/sysds/parser/FunctionStat [...]
 </li>
 </ul>
 <a name="addStatementBlock-org.apache.sysds.parser.StatementBlock-">
@@ -430,7 +430,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getFunctionStatementBlocks</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../org/apache/sysds/parser/FunctionStatementBlock.html" title="class in org.apache.sysds.parser">FunctionStatementBlock</a>&gt;&nbsp;getFunctionStatementBlocks(<a href= [...]
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../org/apache/sysds/parser/FunctionStatementBlock.html" title="class in org.apache.sysds.parser">FunctionStatementBlock</a>&gt;&nbsp;getFunctionStatementBlocks(<a href="https:/ [...]
 </li>
 </ul>
 <a name="hasFunctionStatementBlocks--">
@@ -448,7 +448,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getFunctionStatementBlocks</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../org/apache/sysds/parser/FunctionStatementBlock.html" title="class in org.apache.sysds.parser">FunctionStatementBlock</a>&gt;&nbsp;getFunctionStatementBlocks()</pre>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/apache/sysds/parser/FunctionStatementBlock.html" title="class in org.apache.sysds.parser">FunctionStatementBlock</a>&gt;&nbsp;getFunctionStatementBlocks()</pre>
 </li>
 </ul>
 <a name="getNamedNSFunctionStatementBlocks--">
@@ -460,22 +460,13 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../org/apache/sysds/parser/FunctionStatementBlock.html" title="class in org.apache.sysds.parser">FunctionStatementBlock</a>&gt;&nbsp;getNamedNSFunctionStatementBlocks()</pre>
 </li>
 </ul>
-<a name="getNamedFunctionStatementBlocks--">
+<a name="getDefaultFunctionDictionary--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getNamedFunctionStatementBlocks</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../org/apache/sysds/parser/FunctionStatementBlock.html" title="class in org.apache.sysds.parser">FunctionStatementBlock</a>&gt;&nbsp;getNamedFunctionStatementBlocks()</pre>
-</li>
-</ul>
-<a name="containsFunctionStatementBlock-java.lang.String-">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>containsFunctionStatementBlock</h4>
-<pre>public&nbsp;boolean&nbsp;containsFunctionStatementBlock(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<h4>getDefaultFunctionDictionary</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/sysds/parser/FunctionDictionary.html" title="class in org.apache.sysds.parser">FunctionDictionary</a>&lt;<a href="../../../../org/apache/sysds/parser/FunctionStatementBlock.html" title="class in org.apache.sysds.parser">FunctionStatementBlock</a>&gt;&nbsp;getDefaultFunctionDictionary()</pre>
 </li>
 </ul>
 <a name="addFunctionStatementBlock-java.lang.String-org.apache.sysds.parser.FunctionStatementBlock-">
@@ -499,6 +490,15 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
                                       <a href="../../../../org/apache/sysds/parser/FunctionStatementBlock.html" title="class in org.apache.sysds.parser">FunctionStatementBlock</a>&nbsp;fsb)</pre>
 </li>
 </ul>
+<a name="copyOriginalFunctions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>copyOriginalFunctions</h4>
+<pre>public&nbsp;void&nbsp;copyOriginalFunctions()</pre>
+</li>
+</ul>
 <a name="getStatementBlocks--">
 <!--   -->
 </a>
diff --git a/docs/api/java/org/apache/sysds/parser/DataExpression.html b/docs/api/java/org/apache/sysds/parser/DataExpression.html
index ad8ebe1..68edd7c 100644
--- a/docs/api/java/org/apache/sysds/parser/DataExpression.html
+++ b/docs/api/java/org/apache/sysds/parser/DataExpression.html
@@ -201,173 +201,181 @@ extends <a href="../../../../org/apache/sysds/parser/DataIdentifier.html" title=
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/DataExpression.html#DELIM_DELIMITER">DELIM_DELIMITER</a></span></code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/DataExpression.html#DEFAULT_NA_STRINGS">DEFAULT_NA_STRINGS</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/DataExpression.html#DELIM_FILL">DELIM_FILL</a></span></code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/DataExpression.html#DELIM_DELIMITER">DELIM_DELIMITER</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/DataExpression.html#DELIM_FILL_VALUE">DELIM_FILL_VALUE</a></span></code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/DataExpression.html#DELIM_FILL">DELIM_FILL</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/DataExpression.html#DELIM_HAS_HEADER_ROW">DELIM_HAS_HEADER_ROW</a></span></code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/DataExpression.html#DELIM_FILL_VALUE">DELIM_FILL_VALUE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/DataExpression.html#DELIM_NA_STRING_SEP">DELIM_NA_STRING_SEP</a></span></code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/DataExpression.html#DELIM_HAS_HEADER_ROW">DELIM_HAS_HEADER_ROW</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/DataExpression.html#DELIM_NA_STRINGS">DELIM_NA_STRINGS</a></span></code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/DataExpression.html#DELIM_NA_STRING_SEP">DELIM_NA_STRING_SEP</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/DataExpression.html#DELIM_SPARSE">DELIM_SPARSE</a></span></code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/DataExpression.html#DELIM_NA_STRINGS">DELIM_NA_STRINGS</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/DataExpression.html#DESCRIPTIONPARAM">DESCRIPTIONPARAM</a></span></code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/DataExpression.html#DELIM_SPARSE">DELIM_SPARSE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/DataExpression.html#FED_ADDRESSES">FED_ADDRESSES</a></span></code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/DataExpression.html#DESCRIPTIONPARAM">DESCRIPTIONPARAM</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/DataExpression.html#FED_RANGES">FED_RANGES</a></span></code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/DataExpression.html#FED_ADDRESSES">FED_ADDRESSES</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/DataExpression.html#FED_TYPE">FED_TYPE</a></span></code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/DataExpression.html#FED_RANGES">FED_RANGES</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/DataExpression.html#FED_TYPE">FED_TYPE</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/DataExpression.html#FEDERATED_VALID_PARAM_NAMES">FEDERATED_VALID_PARAM_NAMES</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/DataExpression.html#FORMAT_TYPE">FORMAT_TYPE</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/DataExpression.html#IO_FILENAME">IO_FILENAME</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/DataExpression.html#PRIVACY">PRIVACY</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/DataExpression.html#RAND_BY_ROW">RAND_BY_ROW</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/DataExpression.html#RAND_COLS">RAND_COLS</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/DataExpression.html#RAND_DATA">RAND_DATA</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/DataExpression.html#RAND_DIMNAMES">RAND_DIMNAMES</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/DataExpression.html#RAND_DIMS">RAND_DIMS</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/DataExpression.html#RAND_LAMBDA">RAND_LAMBDA</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/DataExpression.html#RAND_MAX">RAND_MAX</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/DataExpression.html#RAND_MIN">RAND_MIN</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/DataExpression.html#RAND_PDF">RAND_PDF</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/DataExpression.html#RAND_PDF_UNIFORM">RAND_PDF_UNIFORM</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/DataExpression.html#RAND_ROWS">RAND_ROWS</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/DataExpression.html#RAND_SEED">RAND_SEED</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/DataExpression.html#RAND_SPARSITY">RAND_SPARSITY</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
-<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/DataExpression.html#RAND_VALID_PARAM_NAMES">RAND_VALID_PARAM_NAMES</a></span></code>&nbsp;</td>
-</tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/DataExpression.html#READ_VALID_MTD_PARAM_NAMES">READ_VALID_MTD_PARAM_NAMES</a></span></code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/DataExpression.html#RAND_VALID_PARAM_NAMES">RAND_VALID_PARAM_NAMES</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/DataExpression.html#READ_VALID_PARAM_NAMES">READ_VALID_PARAM_NAMES</a></span></code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/DataExpression.html#READ_VALID_MTD_PARAM_NAMES">READ_VALID_MTD_PARAM_NAMES</a></span></code>
+<div class="block">Valid parameter names in metadata file</div>
+</td>
 </tr>
 <tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/DataExpression.html#READ_VALID_PARAM_NAMES">READ_VALID_PARAM_NAMES</a></span></code>
+<div class="block">Valid parameter names in arguments to read instruction</div>
+</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/DataExpression.html#READCOLPARAM">READCOLPARAM</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/DataExpression.html#READNNZPARAM">READNNZPARAM</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/DataExpression.html#READROWPARAM">READROWPARAM</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/DataExpression.html#RESHAPE_VALID_PARAM_NAMES">RESHAPE_VALID_PARAM_NAMES</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/DataExpression.html#ROWBLOCKCOUNTPARAM">ROWBLOCKCOUNTPARAM</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/DataExpression.html#SCHEMAPARAM">SCHEMAPARAM</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/DataExpression.html#SQL_CONN">SQL_CONN</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/DataExpression.html#SQL_PASS">SQL_PASS</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/DataExpression.html#SQL_QUERY">SQL_QUERY</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/DataExpression.html#SQL_USER">SQL_USER</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/DataExpression.html#SQL_VALID_PARAM_NAMES">SQL_VALID_PARAM_NAMES</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/DataExpression.html#VALUETYPEPARAM">VALUETYPEPARAM</a></span></code>&nbsp;</td>
 </tr>
@@ -1188,6 +1196,7 @@ extends <a href="../../../../org/apache/sysds/parser/DataIdentifier.html" title=
 <li class="blockList">
 <h4>READ_VALID_MTD_PARAM_NAMES</h4>
 <pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt; READ_VALID_MTD_PARAM_NAMES</pre>
+<div class="block">Valid parameter names in metadata file</div>
 </li>
 </ul>
 <a name="READ_VALID_PARAM_NAMES">
@@ -1197,6 +1206,7 @@ extends <a href="../../../../org/apache/sysds/parser/DataIdentifier.html" title=
 <li class="blockList">
 <h4>READ_VALID_PARAM_NAMES</h4>
 <pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt; READ_VALID_PARAM_NAMES</pre>
+<div class="block">Valid parameter names in arguments to read instruction</div>
 </li>
 </ul>
 <a name="DEFAULT_DELIM_DELIMITER">
@@ -1254,7 +1264,7 @@ extends <a href="../../../../org/apache/sysds/parser/DataIdentifier.html" title=
 <a name="DEFAULT_DELIM_SPARSE">
 <!--   -->
 </a>
-<ul class="blockListLast">
+<ul class="blockList">
 <li class="blockList">
 <h4>DEFAULT_DELIM_SPARSE</h4>
 <pre>public static final&nbsp;boolean DEFAULT_DELIM_SPARSE</pre>
@@ -1264,6 +1274,19 @@ extends <a href="../../../../org/apache/sysds/parser/DataIdentifier.html" title=
 </dl>
 </li>
 </ul>
+<a name="DEFAULT_NA_STRINGS">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DEFAULT_NA_STRINGS</h4>
+<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> DEFAULT_NA_STRINGS</pre>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.apache.sysds.parser.DataExpression.DEFAULT_NA_STRINGS">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
 </li>
 </ul>
 <!-- ========= CONSTRUCTOR DETAIL ======== -->
diff --git a/docs/api/java/org/apache/sysds/parser/ForStatementBlock.html b/docs/api/java/org/apache/sysds/parser/ForStatementBlock.html
index 4f2ff68..9c4d43c 100644
--- a/docs/api/java/org/apache/sysds/parser/ForStatementBlock.html
+++ b/docs/api/java/org/apache/sysds/parser/ForStatementBlock.html
@@ -269,7 +269,7 @@ extends <a href="../../../../org/apache/sysds/parser/StatementBlock.html" title=
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.sysds.parser.<a href="../../../../org/apache/sysds/parser/StatementBlock.html" title="class in org.apache.sysds.parser">StatementBlock</a></h3>
-<code><a href="../../../../org/apache/sysds/parser/StatementBlock.html#addStatement-org.apache.sysds.parser.Statement-">addStatement</a>, <a href="../../../../org/apache/sysds/parser/StatementBlock.html#addStatementBlock-org.apache.sysds.parser.StatementBlock-">addStatementBlock</a>, <a href="../../../../org/apache/sysds/parser/StatementBlock.html#getBeginColumn--">getBeginColumn</a>, <a href="../../../../org/apache/sysds/parser/StatementBlock.html#getBeginLine--">getBeginLine</a>, <a hr [...]
+<code><a href="../../../../org/apache/sysds/parser/StatementBlock.html#addStatement-org.apache.sysds.parser.Statement-">addStatement</a>, <a href="../../../../org/apache/sysds/parser/StatementBlock.html#addStatementBlock-org.apache.sysds.parser.StatementBlock-">addStatementBlock</a>, <a href="../../../../org/apache/sysds/parser/StatementBlock.html#getBeginColumn--">getBeginColumn</a>, <a href="../../../../org/apache/sysds/parser/StatementBlock.html#getBeginLine--">getBeginLine</a>, <a hr [...]
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.sysds.parser.LiveVariableAnalysis">
diff --git a/docs/api/java/org/apache/sysds/parser/FunctionCallIdentifier.html b/docs/api/java/org/apache/sysds/parser/FunctionCallIdentifier.html
index 7a927e4..b5cb5c0 100644
--- a/docs/api/java/org/apache/sysds/parser/FunctionCallIdentifier.html
+++ b/docs/api/java/org/apache/sysds/parser/FunctionCallIdentifier.html
@@ -50,7 +50,7 @@ var activeTableTab = "activeTableTab";
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../org/apache/sysds/parser/ForStatementBlock.html" title="class in org.apache.sysds.parser"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../org/apache/sysds/parser/FunctionStatement.html" title="class in org.apache.sysds.parser"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/sysds/parser/FunctionDictionary.html" title="class in org.apache.sysds.parser"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../index.html?org/apache/sysds/parser/FunctionCallIdentifier.html" target="_top">Frames</a></li>
@@ -488,7 +488,7 @@ extends <a href="../../../../org/apache/sysds/parser/DataIdentifier.html" title=
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../org/apache/sysds/parser/ForStatementBlock.html" title="class in org.apache.sysds.parser"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../org/apache/sysds/parser/FunctionStatement.html" title="class in org.apache.sysds.parser"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/sysds/parser/FunctionDictionary.html" title="class in org.apache.sysds.parser"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../index.html?org/apache/sysds/parser/FunctionCallIdentifier.html" target="_top">Frames</a></li>
diff --git a/docs/api/java/org/apache/sysds/parser/FunctionDictionary.html b/docs/api/java/org/apache/sysds/parser/FunctionDictionary.html
new file mode 100644
index 0000000..fb49e04
--- /dev/null
+++ b/docs/api/java/org/apache/sysds/parser/FunctionDictionary.html
@@ -0,0 +1,405 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>FunctionDictionary (SystemDS 2.0.0-SNAPSHOT API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="FunctionDictionary (SystemDS 2.0.0-SNAPSHOT API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/FunctionDictionary.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/sysds/parser/FunctionCallIdentifier.html" title="class in org.apache.sysds.parser"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/sysds/parser/FunctionStatement.html" title="class in org.apache.sysds.parser"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/sysds/parser/FunctionDictionary.html" target="_top">Frames</a></li>
+<li><a href="FunctionDictionary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&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>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.sysds.parser</div>
+<h2 title="Class FunctionDictionary" class="title">Class FunctionDictionary&lt;T extends <a href="../../../../org/apache/sysds/common/Types.FunctionBlock.html" title="interface in org.apache.sysds.common">Types.FunctionBlock</a>&gt;</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.sysds.parser.FunctionDictionary&lt;T&gt;</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">FunctionDictionary&lt;T extends <a href="../../../../org/apache/sysds/common/Types.FunctionBlock.html" title="interface in org.apache.sysds.common">Types.FunctionBlock</a>&gt;</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+<div class="block">Dictionary of all functions of a namespace, represented as a simple
+ key-value map of function names and function statement blocks.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/FunctionDictionary.html#FunctionDictionary--">FunctionDictionary</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/FunctionDictionary.html#addFunction-java.lang.String-T-">addFunction</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;fname,
+           <a href="../../../../org/apache/sysds/parser/FunctionDictionary.html" title="type parameter in FunctionDictionary">T</a>&nbsp;fsb)</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/FunctionDictionary.html#addFunction-java.lang.String-T-boolean-">addFunction</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;fname,
+           <a href="../../../../org/apache/sysds/parser/FunctionDictionary.html" title="type parameter in FunctionDictionary">T</a>&nbsp;fsb,
+           boolean&nbsp;opt)</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/FunctionDictionary.html#containsFunction-java.lang.String-">containsFunction</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;fname)</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/FunctionDictionary.html#containsFunction-java.lang.String-boolean-">containsFunction</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;fname,
+                boolean&nbsp;opt)</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/FunctionDictionary.html#copyOriginalFunctions--">copyOriginalFunctions</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/sysds/parser/FunctionDictionary.html" title="type parameter in FunctionDictionary">T</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/FunctionDictionary.html#getFunction-java.lang.String-">getFunction</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;fname)</code>&nbsp;</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/sysds/parser/FunctionDictionary.html" title="type parameter in FunctionDictionary">T</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/FunctionDictionary.html#getFunction-java.lang.String-boolean-">getFunction</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;fname,
+           boolean&nbsp;opt)</code>&nbsp;</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../org/apache/sysds/parser/FunctionDictionary.html" title="type parameter in FunctionDictionary">T</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/FunctionDictionary.html#getFunctions--">getFunctions</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../org/apache/sysds/parser/FunctionDictionary.html" title="type parameter in FunctionDictionary">T</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/FunctionDictionary.html#getFunctions-boolean-">getFunctions</a></span>(boolean&nbsp;opt)</code>&nbsp;</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/FunctionDictionary.html#removeFunction-java.lang.String-">removeFunction</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;fname)</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a hre [...]
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="FunctionDictionary--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>FunctionDictionary</h4>
+<pre>public&nbsp;FunctionDictionary()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="addFunction-java.lang.String-org.apache.sysds.common.Types.FunctionBlock-">
+<!--   -->
+</a><a name="addFunction-java.lang.String-T-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addFunction</h4>
+<pre>public&nbsp;void&nbsp;addFunction(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;fname,
+                        <a href="../../../../org/apache/sysds/parser/FunctionDictionary.html" title="type parameter in FunctionDictionary">T</a>&nbsp;fsb)</pre>
+</li>
+</ul>
+<a name="addFunction-java.lang.String-org.apache.sysds.common.Types.FunctionBlock-boolean-">
+<!--   -->
+</a><a name="addFunction-java.lang.String-T-boolean-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addFunction</h4>
+<pre>public&nbsp;void&nbsp;addFunction(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;fname,
+                        <a href="../../../../org/apache/sysds/parser/FunctionDictionary.html" title="type parameter in FunctionDictionary">T</a>&nbsp;fsb,
+                        boolean&nbsp;opt)</pre>
+</li>
+</ul>
+<a name="removeFunction-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>removeFunction</h4>
+<pre>public&nbsp;void&nbsp;removeFunction(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;fname)</pre>
+</li>
+</ul>
+<a name="getFunction-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFunction</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/sysds/parser/FunctionDictionary.html" title="type parameter in FunctionDictionary">T</a>&nbsp;getFunction(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;fname)</pre>
+</li>
+</ul>
+<a name="getFunction-java.lang.String-boolean-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFunction</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/sysds/parser/FunctionDictionary.html" title="type parameter in FunctionDictionary">T</a>&nbsp;getFunction(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;fname,
+                     boolean&nbsp;opt)</pre>
+</li>
+</ul>
+<a name="containsFunction-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>containsFunction</h4>
+<pre>public&nbsp;boolean&nbsp;containsFunction(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;fname)</pre>
+</li>
+</ul>
+<a name="containsFunction-java.lang.String-boolean-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>containsFunction</h4>
+<pre>public&nbsp;boolean&nbsp;containsFunction(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;fname,
+                                boolean&nbsp;opt)</pre>
+</li>
+</ul>
+<a name="getFunctions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFunctions</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../org/apache/sysds/parser/FunctionDictionary.html" title="type parameter in FunctionDictionary">T</a>&gt;&nbsp;getFunctions()</pre>
+</li>
+</ul>
+<a name="getFunctions-boolean-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFunctions</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../org/apache/sysds/parser/FunctionDictionary.html" title="type parameter in FunctionDictionary">T</a>&gt;&nbsp;getFunctions(boolean&nbsp;opt)</pre>
+</li>
+</ul>
+<a name="copyOriginalFunctions--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>copyOriginalFunctions</h4>
+<pre>public&nbsp;void&nbsp;copyOriginalFunctions()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/FunctionDictionary.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/sysds/parser/FunctionCallIdentifier.html" title="class in org.apache.sysds.parser"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/sysds/parser/FunctionStatement.html" title="class in org.apache.sysds.parser"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/sysds/parser/FunctionDictionary.html" target="_top">Frames</a></li>
+<li><a href="FunctionDictionary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&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>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/docs/api/java/org/apache/sysds/parser/FunctionStatement.html b/docs/api/java/org/apache/sysds/parser/FunctionStatement.html
index 2e1453d..08f538c 100644
--- a/docs/api/java/org/apache/sysds/parser/FunctionStatement.html
+++ b/docs/api/java/org/apache/sysds/parser/FunctionStatement.html
@@ -49,7 +49,7 @@ var activeTableTab = "activeTableTab";
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../org/apache/sysds/parser/FunctionCallIdentifier.html" title="class in org.apache.sysds.parser"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/sysds/parser/FunctionDictionary.html" title="class in org.apache.sysds.parser"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../org/apache/sysds/parser/FunctionStatementBlock.html" title="class in org.apache.sysds.parser"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
@@ -554,7 +554,7 @@ extends <a href="../../../../org/apache/sysds/parser/Statement.html" title="clas
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../org/apache/sysds/parser/FunctionCallIdentifier.html" title="class in org.apache.sysds.parser"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/sysds/parser/FunctionDictionary.html" title="class in org.apache.sysds.parser"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../org/apache/sysds/parser/FunctionStatementBlock.html" title="class in org.apache.sysds.parser"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
diff --git a/docs/api/java/org/apache/sysds/parser/FunctionStatementBlock.html b/docs/api/java/org/apache/sysds/parser/FunctionStatementBlock.html
index 244ced7..6d4ead2 100644
--- a/docs/api/java/org/apache/sysds/parser/FunctionStatementBlock.html
+++ b/docs/api/java/org/apache/sysds/parser/FunctionStatementBlock.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -119,12 +119,13 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <dl>
 <dt>All Implemented Interfaces:</dt>
-<dd><a href="../../../../org/apache/sysds/parser/ParseInfo.html" title="interface in org.apache.sysds.parser">ParseInfo</a></dd>
+<dd><a href="../../../../org/apache/sysds/common/Types.FunctionBlock.html" title="interface in org.apache.sysds.common">Types.FunctionBlock</a>, <a href="../../../../org/apache/sysds/parser/ParseInfo.html" title="interface in org.apache.sysds.parser">ParseInfo</a></dd>
 </dl>
 <hr>
 <br>
 <pre>public class <span class="typeNameLabel">FunctionStatementBlock</span>
-extends <a href="../../../../org/apache/sysds/parser/StatementBlock.html" title="class in org.apache.sysds.parser">StatementBlock</a></pre>
+extends <a href="../../../../org/apache/sysds/parser/StatementBlock.html" title="class in org.apache.sysds.parser">StatementBlock</a>
+implements <a href="../../../../org/apache/sysds/common/Types.FunctionBlock.html" title="interface in org.apache.sysds.common">Types.FunctionBlock</a></pre>
 </li>
 </ul>
 </div>
@@ -170,14 +171,18 @@ extends <a href="../../../../org/apache/sysds/parser/StatementBlock.html" title=
        <a href="../../../../org/apache/sysds/parser/VariableSet.html" title="class in org.apache.sysds.parser">VariableSet</a>&nbsp;loPassed)</code>&nbsp;</td>
 </tr>
 <tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/sysds/common/Types.FunctionBlock.html" title="interface in org.apache.sysds.common">Types.FunctionBlock</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/FunctionStatementBlock.html#cloneFunctionBlock--">cloneFunctionBlock</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
 <td class="colFirst"><code><a href="../../../../org/apache/sysds/hops/FunctionOp.FunctionType.html" title="enum in org.apache.sysds.hops">FunctionOp.FunctionType</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/FunctionStatementBlock.html#getFunctionOpType--">getFunctionOpType</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i3" class="rowColor">
+<tr id="i4" class="altColor">
 <td class="colFirst"><code><a href="../../../../org/apache/sysds/parser/VariableSet.html" title="class in org.apache.sysds.parser">VariableSet</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/FunctionStatementBlock.html#initializebackwardLV-org.apache.sysds.parser.VariableSet-">initializebackwardLV</a></span>(<a href="../../../../org/apache/sysds/parser/VariableSet.html" title="class in org.apache.sysds.parser">VariableSet</a>&nbsp;loPassed)</code>&nbsp;</td>
 </tr>
-<tr id="i4" class="altColor">
+<tr id="i5" class="rowColor">
 <td class="colFirst"><code><a href="../../../../org/apache/sysds/parser/VariableSet.html" title="class in org.apache.sysds.parser">VariableSet</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/FunctionStatementBlock.html#initializeforwardLV-org.apache.sysds.parser.VariableSet-">initializeforwardLV</a></span>(<a href="../../../../org/apache/sysds/parser/VariableSet.html" title="class in org.apache.sysds.parser">VariableSet</a>&nbsp;activeInPassed)</code>
 <div class="block">For each statement:
@@ -189,23 +194,23 @@ extends <a href="../../../../org/apache/sysds/parser/StatementBlock.html" title=
  add to kill.</div>
 </td>
 </tr>
-<tr id="i5" class="rowColor">
+<tr id="i6" class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/FunctionStatementBlock.html#isNondeterministic--">isNondeterministic</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i6" class="altColor">
+<tr id="i7" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/FunctionStatementBlock.html#isRecompileOnce--">isRecompileOnce</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i7" class="rowColor">
+<tr id="i8" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/FunctionStatementBlock.html#setNondeterministic-boolean-">setNondeterministic</a></span>(boolean&nbsp;flag)</code>&nbsp;</td>
 </tr>
-<tr id="i8" class="altColor">
+<tr id="i9" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/FunctionStatementBlock.html#setRecompileOnce-boolean-">setRecompileOnce</a></span>(boolean&nbsp;flag)</code>&nbsp;</td>
 </tr>
-<tr id="i9" class="rowColor">
+<tr id="i10" class="altColor">
 <td class="colFirst"><code><a href="../../../../org/apache/sysds/parser/VariableSet.html" title="class in org.apache.sysds.parser">VariableSet</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/FunctionStatementBlock.html#validate-org.apache.sysds.parser.DMLProgram-org.apache.sysds.parser.VariableSet-java.util.HashMap-boolean-">validate</a></span>(<a href="../../../../org/apache/sysds/parser/DMLProgram.html" title="class in org.apache.sysds.parser">DMLProgram</a>&nbsp;dmlProg,
         <a href="../../../../org/apache/sysds/parser/VariableSet.html" title="class in org.apache.sysds.parser">VariableSet</a>&nbsp;ids,
@@ -225,7 +230,7 @@ extends <a href="../../../../org/apache/sysds/parser/StatementBlock.html" title=
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.sysds.parser.<a href="../../../../org/apache/sysds/parser/StatementBlock.html" title="class in org.apache.sysds.parser">StatementBlock</a></h3>
-<code><a href="../../../../org/apache/sysds/parser/StatementBlock.html#addStatement-org.apache.sysds.parser.Statement-">addStatement</a>, <a href="../../../../org/apache/sysds/parser/StatementBlock.html#addStatementBlock-org.apache.sysds.parser.StatementBlock-">addStatementBlock</a>, <a href="../../../../org/apache/sysds/parser/StatementBlock.html#getBeginColumn--">getBeginColumn</a>, <a href="../../../../org/apache/sysds/parser/StatementBlock.html#getBeginLine--">getBeginLine</a>, <a hr [...]
+<code><a href="../../../../org/apache/sysds/parser/StatementBlock.html#addStatement-org.apache.sysds.parser.Statement-">addStatement</a>, <a href="../../../../org/apache/sysds/parser/StatementBlock.html#addStatementBlock-org.apache.sysds.parser.StatementBlock-">addStatementBlock</a>, <a href="../../../../org/apache/sysds/parser/StatementBlock.html#getBeginColumn--">getBeginColumn</a>, <a href="../../../../org/apache/sysds/parser/StatementBlock.html#getBeginLine--">getBeginLine</a>, <a hr [...]
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.sysds.parser.LiveVariableAnalysis">
@@ -401,7 +406,7 @@ extends <a href="../../../../org/apache/sysds/parser/StatementBlock.html" title=
 <a name="isNondeterministic--">
 <!--   -->
 </a>
-<ul class="blockListLast">
+<ul class="blockList">
 <li class="blockList">
 <h4>isNondeterministic</h4>
 <pre>public&nbsp;boolean&nbsp;isNondeterministic()</pre>
@@ -411,6 +416,19 @@ extends <a href="../../../../org/apache/sysds/parser/StatementBlock.html" title=
 </dl>
 </li>
 </ul>
+<a name="cloneFunctionBlock--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>cloneFunctionBlock</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/sysds/common/Types.FunctionBlock.html" title="interface in org.apache.sysds.common">Types.FunctionBlock</a>&nbsp;cloneFunctionBlock()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/sysds/common/Types.FunctionBlock.html#cloneFunctionBlock--">cloneFunctionBlock</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/sysds/common/Types.FunctionBlock.html" title="interface in org.apache.sysds.common">Types.FunctionBlock</a></code></dd>
+</dl>
+</li>
+</ul>
 </li>
 </ul>
 </li>
diff --git a/docs/api/java/org/apache/sysds/parser/IfStatementBlock.html b/docs/api/java/org/apache/sysds/parser/IfStatementBlock.html
index 0b2c337..9bf57e1 100644
--- a/docs/api/java/org/apache/sysds/parser/IfStatementBlock.html
+++ b/docs/api/java/org/apache/sysds/parser/IfStatementBlock.html
@@ -217,7 +217,7 @@ extends <a href="../../../../org/apache/sysds/parser/StatementBlock.html" title=
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.sysds.parser.<a href="../../../../org/apache/sysds/parser/StatementBlock.html" title="class in org.apache.sysds.parser">StatementBlock</a></h3>
-<code><a href="../../../../org/apache/sysds/parser/StatementBlock.html#addStatement-org.apache.sysds.parser.Statement-">addStatement</a>, <a href="../../../../org/apache/sysds/parser/StatementBlock.html#addStatementBlock-org.apache.sysds.parser.StatementBlock-">addStatementBlock</a>, <a href="../../../../org/apache/sysds/parser/StatementBlock.html#getBeginColumn--">getBeginColumn</a>, <a href="../../../../org/apache/sysds/parser/StatementBlock.html#getBeginLine--">getBeginLine</a>, <a hr [...]
+<code><a href="../../../../org/apache/sysds/parser/StatementBlock.html#addStatement-org.apache.sysds.parser.Statement-">addStatement</a>, <a href="../../../../org/apache/sysds/parser/StatementBlock.html#addStatementBlock-org.apache.sysds.parser.StatementBlock-">addStatementBlock</a>, <a href="../../../../org/apache/sysds/parser/StatementBlock.html#getBeginColumn--">getBeginColumn</a>, <a href="../../../../org/apache/sysds/parser/StatementBlock.html#getBeginLine--">getBeginLine</a>, <a hr [...]
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.sysds.parser.LiveVariableAnalysis">
diff --git a/docs/api/java/org/apache/sysds/parser/ParForStatementBlock.html b/docs/api/java/org/apache/sysds/parser/ParForStatementBlock.html
index c1761fe..59900c7 100644
--- a/docs/api/java/org/apache/sysds/parser/ParForStatementBlock.html
+++ b/docs/api/java/org/apache/sysds/parser/ParForStatementBlock.html
@@ -288,7 +288,7 @@ extends <a href="../../../../org/apache/sysds/parser/ForStatementBlock.html" tit
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.sysds.parser.<a href="../../../../org/apache/sysds/parser/StatementBlock.html" title="class in org.apache.sysds.parser">StatementBlock</a></h3>
-<code><a href="../../../../org/apache/sysds/parser/StatementBlock.html#addStatement-org.apache.sysds.parser.Statement-">addStatement</a>, <a href="../../../../org/apache/sysds/parser/StatementBlock.html#addStatementBlock-org.apache.sysds.parser.StatementBlock-">addStatementBlock</a>, <a href="../../../../org/apache/sysds/parser/StatementBlock.html#getBeginColumn--">getBeginColumn</a>, <a href="../../../../org/apache/sysds/parser/StatementBlock.html#getBeginLine--">getBeginLine</a>, <a hr [...]
+<code><a href="../../../../org/apache/sysds/parser/StatementBlock.html#addStatement-org.apache.sysds.parser.Statement-">addStatement</a>, <a href="../../../../org/apache/sysds/parser/StatementBlock.html#addStatementBlock-org.apache.sysds.parser.StatementBlock-">addStatementBlock</a>, <a href="../../../../org/apache/sysds/parser/StatementBlock.html#getBeginColumn--">getBeginColumn</a>, <a href="../../../../org/apache/sysds/parser/StatementBlock.html#getBeginLine--">getBeginLine</a>, <a hr [...]
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.sysds.parser.LiveVariableAnalysis">
diff --git a/docs/api/java/org/apache/sysds/parser/StatementBlock.html b/docs/api/java/org/apache/sysds/parser/StatementBlock.html
index f01efcd..fd19a9a 100644
--- a/docs/api/java/org/apache/sysds/parser/StatementBlock.html
+++ b/docs/api/java/org/apache/sysds/parser/StatementBlock.html
@@ -294,12 +294,12 @@ implements <a href="../../../../org/apache/sysds/parser/ParseInfo.html" title="i
 </tr>
 <tr id="i30" class="altColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../org/apache/sysds/parser/StatementBlock.html" title="class in org.apache.sysds.parser">StatementBlock</a>&gt;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/StatementBlock.html#mergeFunctionCalls-java.util.ArrayList-org.apache.sysds.parser.DMLProgram-">mergeFunctionCalls</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../org/apache/sysds/parser/StatementBlock.html" title="class in org.apache.sysds.parser">Statemen [...]
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/StatementBlock.html#mergeFunctionCalls-java.util.List-org.apache.sysds.parser.DMLProgram-">mergeFunctionCalls</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/apache/sysds/parser/StatementBlock.html" title="class in org.apache.sysds.parser">StatementBlock</a>&gt;& [...]
                   <a href="../../../../org/apache/sysds/parser/DMLProgram.html" title="class in org.apache.sysds.parser">DMLProgram</a>&nbsp;dmlProg)</code>&nbsp;</td>
 </tr>
 <tr id="i31" class="rowColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../org/apache/sysds/parser/StatementBlock.html" title="class in org.apache.sysds.parser">StatementBlock</a>&gt;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/StatementBlock.html#mergeStatementBlocks-java.util.ArrayList-">mergeStatementBlocks</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../org/apache/sysds/parser/StatementBlock.html" title="class in org.apache.sysds.parser">StatementBlock</a>&gt;&nbsp;sb)</code>& [...]
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/sysds/parser/StatementBlock.html#mergeStatementBlocks-java.util.List-">mergeStatementBlocks</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/apache/sysds/parser/StatementBlock.html" title="class in org.apache.sysds.parser">StatementBlock</a>&gt;&nbsp;sb)</code>&nbsp;</td>
 </tr>
 <tr id="i32" class="altColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
@@ -667,13 +667,13 @@ implements <a href="../../../../org/apache/sysds/parser/ParseInfo.html" title="i
                                         <a href="../../../../org/apache/sysds/parser/DMLProgram.html" title="class in org.apache.sysds.parser">DMLProgram</a>&nbsp;dmlProg)</pre>
 </li>
 </ul>
-<a name="mergeFunctionCalls-java.util.ArrayList-org.apache.sysds.parser.DMLProgram-">
+<a name="mergeFunctionCalls-java.util.List-org.apache.sysds.parser.DMLProgram-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>mergeFunctionCalls</h4>
-<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../org/apache/sysds/parser/StatementBlock.html" title="class in org.apache.sysds.parser">StatementBlock</a>&gt;&nbsp;mergeFunctionCalls(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../ [...]
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../org/apache/sysds/parser/StatementBlock.html" title="class in org.apache.sysds.parser">StatementBlock</a>&gt;&nbsp;mergeFunctionCalls(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../o [...]
                                                            <a href="../../../../org/apache/sysds/parser/DMLProgram.html" title="class in org.apache.sysds.parser">DMLProgram</a>&nbsp;dmlProg)</pre>
 </li>
 </ul>
@@ -717,13 +717,13 @@ implements <a href="../../../../org/apache/sysds/parser/ParseInfo.html" title="i
 <pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../org/apache/sysds/parser/DataIdentifier.html" title="class in org.apache.sysds.parser">DataIdentifier</a>&gt;&nbsp;getOutputsofSB()</pre>
 </li>
 </ul>
-<a name="mergeStatementBlocks-java.util.ArrayList-">
+<a name="mergeStatementBlocks-java.util.List-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>mergeStatementBlocks</h4>
-<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../org/apache/sysds/parser/StatementBlock.html" title="class in org.apache.sysds.parser">StatementBlock</a>&gt;&nbsp;mergeStatementBlocks(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href=". [...]
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../org/apache/sysds/parser/StatementBlock.html" title="class in org.apache.sysds.parser">StatementBlock</a>&gt;&nbsp;mergeStatementBlocks(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../.. [...]
 </li>
 </ul>
 <a name="rHoistFunctionCallsFromExpressions-org.apache.sysds.parser.StatementBlock-org.apache.sysds.parser.DMLProgram-">
diff --git a/docs/api/java/org/apache/sysds/parser/WhileStatementBlock.html b/docs/api/java/org/apache/sysds/parser/WhileStatementBlock.html
index fad9e81..8c028c2 100644
--- a/docs/api/java/org/apache/sysds/parser/WhileStatementBlock.html
+++ b/docs/api/java/org/apache/sysds/parser/WhileStatementBlock.html
@@ -217,7 +217,7 @@ extends <a href="../../../../org/apache/sysds/parser/StatementBlock.html" title=
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.sysds.parser.<a href="../../../../org/apache/sysds/parser/StatementBlock.html" title="class in org.apache.sysds.parser">StatementBlock</a></h3>
-<code><a href="../../../../org/apache/sysds/parser/StatementBlock.html#addStatement-org.apache.sysds.parser.Statement-">addStatement</a>, <a href="../../../../org/apache/sysds/parser/StatementBlock.html#addStatementBlock-org.apache.sysds.parser.StatementBlock-">addStatementBlock</a>, <a href="../../../../org/apache/sysds/parser/StatementBlock.html#getBeginColumn--">getBeginColumn</a>, <a href="../../../../org/apache/sysds/parser/StatementBlock.html#getBeginLine--">getBeginLine</a>, <a hr [...]
+<code><a href="../../../../org/apache/sysds/parser/StatementBlock.html#addStatement-org.apache.sysds.parser.Statement-">addStatement</a>, <a href="../../../../org/apache/sysds/parser/StatementBlock.html#addStatementBlock-org.apache.sysds.parser.StatementBlock-">addStatementBlock</a>, <a href="../../../../org/apache/sysds/parser/StatementBlock.html#getBeginColumn--">getBeginColumn</a>, <a href="../../../../org/apache/sysds/parser/StatementBlock.html#getBeginLine--">getBeginLine</a>, <a hr [...]
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.sysds.parser.LiveVariableAnalysis">
diff --git a/docs/api/java/org/apache/sysds/parser/class-use/DMLProgram.html b/docs/api/java/org/apache/sysds/parser/class-use/DMLProgram.html
index 8e78dcb..9ac6144 100644
--- a/docs/api/java/org/apache/sysds/parser/class-use/DMLProgram.html
+++ b/docs/api/java/org/apache/sysds/parser/class-use/DMLProgram.html
@@ -311,19 +311,6 @@
 </tbody>
 </table>
 <table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
-<caption><span>Methods in <a href="../../../../../org/apache/sysds/parser/package-summary.html">org.apache.sysds.parser</a> that return types with arguments of type <a href="../../../../../org/apache/sysds/parser/DMLProgram.html" title="class in org.apache.sysds.parser">DMLProgram</a></span><span class="tabEnd">&nbsp;</span></caption>
-<tr>
-<th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
-</tr>
-<tbody>
-<tr class="altColor">
-<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/sysds/parser/DMLProgram.html" title="class in org.apache.sysds.parser">DMLProgram</a>&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">DMLProgram.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/parser/DMLProgram.html#getNamespaces--">getNamespaces</a></span>()</code>&nbsp;</td>
-</tr>
-</tbody>
-</table>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
 <caption><span>Methods in <a href="../../../../../org/apache/sysds/parser/package-summary.html">org.apache.sysds.parser</a> with parameters of type <a href="../../../../../org/apache/sysds/parser/DMLProgram.html" title="class in org.apache.sysds.parser">DMLProgram</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
@@ -377,7 +364,7 @@
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../../org/apache/sysds/parser/StatementBlock.html" title="class in org.apache.sysds.parser">StatementBlock</a>&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">StatementBlock.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/parser/StatementBlock.html#mergeFunctionCalls-java.util.ArrayList-org.apache.sysds.parser.DMLProgram-">mergeFunctionCalls</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../../org/apache/sysds/parser/StatementBlock [...]
+<td class="colLast"><span class="typeNameLabel">StatementBlock.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/parser/StatementBlock.html#mergeFunctionCalls-java.util.List-org.apache.sysds.parser.DMLProgram-">mergeFunctionCalls</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/sysds/parser/StatementBlock.html" title="c [...]
                   <a href="../../../../../org/apache/sysds/parser/DMLProgram.html" title="class in org.apache.sysds.parser">DMLProgram</a>&nbsp;dmlProg)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
@@ -515,19 +502,6 @@
 <!--   -->
 </a>
 <h3>Uses of <a href="../../../../../org/apache/sysds/parser/DMLProgram.html" title="class in org.apache.sysds.parser">DMLProgram</a> in <a href="../../../../../org/apache/sysds/parser/dml/package-summary.html">org.apache.sysds.parser.dml</a></h3>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing fields, and an explanation">
-<caption><span>Fields in <a href="../../../../../org/apache/sysds/parser/dml/package-summary.html">org.apache.sysds.parser.dml</a> with type parameters of type <a href="../../../../../org/apache/sysds/parser/DMLProgram.html" title="class in org.apache.sysds.parser">DMLProgram</a></span><span class="tabEnd">&nbsp;</span></caption>
-<tr>
-<th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Field and Description</th>
-</tr>
-<tbody>
-<tr class="altColor">
-<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/sysds/parser/DMLProgram.html" title="class in org.apache.sysds.parser">DMLProgram</a>&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">StatementInfo.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/parser/dml/StatementInfo.html#namespaces">namespaces</a></span></code>&nbsp;</td>
-</tr>
-</tbody>
-</table>
 <table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
 <caption><span>Methods in <a href="../../../../../org/apache/sysds/parser/dml/package-summary.html">org.apache.sysds.parser.dml</a> that return <a href="../../../../../org/apache/sysds/parser/DMLProgram.html" title="class in org.apache.sysds.parser">DMLProgram</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
diff --git a/docs/api/java/org/apache/sysds/parser/class-use/DataIdentifier.html b/docs/api/java/org/apache/sysds/parser/class-use/DataIdentifier.html
index c827f41..b9b2d91 100644
--- a/docs/api/java/org/apache/sysds/parser/class-use/DataIdentifier.html
+++ b/docs/api/java/org/apache/sysds/parser/class-use/DataIdentifier.html
@@ -530,14 +530,14 @@
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/controlprogram/FunctionProgramBlock.html#FunctionProgramBlock-org.apache.sysds.runtime.controlprogram.Program-java.util.ArrayList-java.util.ArrayList-">FunctionProgramBlock</a></span>(<a href="../../../../../org/apache/sysds/runtime/controlprogram/Program.html" title="class in org.apache.sysds.runtime.controlprogram">Program</a>&nbsp;prog,
-                    <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../../org/apache/sysds/parser/DataIdentifier.html" title="class in org.apache.sysds.parser">DataIdentifier</a>&gt;&nbsp;inputParams,
-                    <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../../org/apache/sysds/parser/DataIdentifier.html" title="class in org.apache.sysds.parser">DataIdentifier</a>&gt;&nbsp;outputParams)</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/controlprogram/FunctionProgramBlock.html#FunctionProgramBlock-org.apache.sysds.runtime.controlprogram.Program-java.util.List-java.util.List-">FunctionProgramBlock</a></span>(<a href="../../../../../org/apache/sysds/runtime/controlprogram/Program.html" title="class in org.apache.sysds.runtime.controlprogram">Program</a>&nbsp;prog,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/sysds/parser/DataIdentifier.html" title="class in org.apache.sysds.parser">DataIdentifier</a>&gt;&nbsp;inputParams,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/sysds/parser/DataIdentifier.html" title="class in org.apache.sysds.parser">DataIdentifier</a>&gt;&nbsp;outputParams)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/controlprogram/FunctionProgramBlock.html#FunctionProgramBlock-org.apache.sysds.runtime.controlprogram.Program-java.util.ArrayList-java.util.ArrayList-">FunctionProgramBlock</a></span>(<a href="../../../../../org/apache/sysds/runtime/controlprogram/Program.html" title="class in org.apache.sysds.runtime.controlprogram">Program</a>&nbsp;prog,
-                    <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../../org/apache/sysds/parser/DataIdentifier.html" title="class in org.apache.sysds.parser">DataIdentifier</a>&gt;&nbsp;inputParams,
-                    <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../../org/apache/sysds/parser/DataIdentifier.html" title="class in org.apache.sysds.parser">DataIdentifier</a>&gt;&nbsp;outputParams)</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/controlprogram/FunctionProgramBlock.html#FunctionProgramBlock-org.apache.sysds.runtime.controlprogram.Program-java.util.List-java.util.List-">FunctionProgramBlock</a></span>(<a href="../../../../../org/apache/sysds/runtime/controlprogram/Program.html" title="class in org.apache.sysds.runtime.controlprogram">Program</a>&nbsp;prog,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/sysds/parser/DataIdentifier.html" title="class in org.apache.sysds.parser">DataIdentifier</a>&gt;&nbsp;inputParams,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/sysds/parser/DataIdentifier.html" title="class in org.apache.sysds.parser">DataIdentifier</a>&gt;&nbsp;outputParams)</code>&nbsp;</td>
 </tr>
 </tbody>
 </table>
diff --git a/docs/api/java/org/apache/sysds/parser/class-use/ForStatementBlock.html b/docs/api/java/org/apache/sysds/parser/class-use/ForStatementBlock.html
index 7d01eff..17f5198 100644
--- a/docs/api/java/org/apache/sysds/parser/class-use/ForStatementBlock.html
+++ b/docs/api/java/org/apache/sysds/parser/class-use/ForStatementBlock.html
@@ -151,9 +151,7 @@
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/sysds/parser/ForStatementBlock.html" title="class in org.apache.sysds.parser">ForStatementBlock</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ProgramConverter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#createForStatementBlockCopy-org.apache.sysds.parser.ForStatementBlock-long-boolean-boolean-">createForStatementBlockCopy</a></span>(<a href="../../../../../org/apache/sysds/parser/ForStatementBlock.html" title="class in org.apache.sysds.parser">ForStatementBlock</a>&nbsp;sb,
-                           long&nbsp;pid,
-                           boolean&nbsp;plain,
+<td class="colLast"><span class="typeNameLabel">ProgramConverter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#createForStatementBlockCopy-org.apache.sysds.parser.ForStatementBlock-boolean-">createForStatementBlockCopy</a></span>(<a href="../../../../../org/apache/sysds/parser/ForStatementBlock.html" title="class in org.apache.sysds.parser">ForStatementBlock</a>&nbsp;sb,
                            boolean&nbsp;forceDeepCopy)</code>&nbsp;</td>
 </tr>
 </tbody>
@@ -167,9 +165,7 @@
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/sysds/parser/ForStatementBlock.html" title="class in org.apache.sysds.parser">ForStatementBlock</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ProgramConverter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#createForStatementBlockCopy-org.apache.sysds.parser.ForStatementBlock-long-boolean-boolean-">createForStatementBlockCopy</a></span>(<a href="../../../../../org/apache/sysds/parser/ForStatementBlock.html" title="class in org.apache.sysds.parser">ForStatementBlock</a>&nbsp;sb,
-                           long&nbsp;pid,
-                           boolean&nbsp;plain,
+<td class="colLast"><span class="typeNameLabel">ProgramConverter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#createForStatementBlockCopy-org.apache.sysds.parser.ForStatementBlock-boolean-">createForStatementBlockCopy</a></span>(<a href="../../../../../org/apache/sysds/parser/ForStatementBlock.html" title="class in org.apache.sysds.parser">ForStatementBlock</a>&nbsp;sb,
                            boolean&nbsp;forceDeepCopy)</code>&nbsp;</td>
 </tr>
 </tbody>
diff --git a/docs/api/java/org/apache/sysds/parser/class-use/IfStatementBlock.html b/docs/api/java/org/apache/sysds/parser/class-use/FunctionDictionary.html
similarity index 52%
copy from docs/api/java/org/apache/sysds/parser/class-use/IfStatementBlock.html
copy to docs/api/java/org/apache/sysds/parser/class-use/FunctionDictionary.html
index b52418d..eeb4d24 100644
--- a/docs/api/java/org/apache/sysds/parser/class-use/IfStatementBlock.html
+++ b/docs/api/java/org/apache/sysds/parser/class-use/FunctionDictionary.html
@@ -4,7 +4,7 @@
 <head>
 <!-- Generated by javadoc -->
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Uses of Class org.apache.sysds.parser.IfStatementBlock (SystemDS 2.0.0-SNAPSHOT API)</title>
+<title>Uses of Class org.apache.sysds.parser.FunctionDictionary (SystemDS 2.0.0-SNAPSHOT API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
 </head>
@@ -12,7 +12,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.apache.sysds.parser.IfStatementBlock (SystemDS 2.0.0-SNAPSHOT API)";
+            parent.document.title="Uses of Class org.apache.sysds.parser.FunctionDictionary (SystemDS 2.0.0-SNAPSHOT API)";
         }
     }
     catch(err) {
@@ -33,7 +33,7 @@
 <ul class="navList" title="Navigation">
 <li><a href="../../../../../overview-summary.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../org/apache/sysds/parser/IfStatementBlock.html" title="class in org.apache.sysds.parser">Class</a></li>
+<li><a href="../../../../../org/apache/sysds/parser/FunctionDictionary.html" title="class in org.apache.sysds.parser">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
@@ -47,8 +47,8 @@
 <li>Next</li>
 </ul>
 <ul class="navList">
-<li><a href="../../../../../index.html?org/apache/sysds/parser/class-use/IfStatementBlock.html" target="_top">Frames</a></li>
-<li><a href="IfStatementBlock.html" target="_top">No&nbsp;Frames</a></li>
+<li><a href="../../../../../index.html?org/apache/sysds/parser/class-use/FunctionDictionary.html" target="_top">Frames</a></li>
+<li><a href="FunctionDictionary.html" target="_top">No&nbsp;Frames</a></li>
 </ul>
 <ul class="navList" id="allclasses_navbar_top">
 <li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
@@ -70,13 +70,13 @@
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
 <div class="header">
-<h2 title="Uses of Class org.apache.sysds.parser.IfStatementBlock" class="title">Uses of Class<br>org.apache.sysds.parser.IfStatementBlock</h2>
+<h2 title="Uses of Class org.apache.sysds.parser.FunctionDictionary" class="title">Uses of Class<br>org.apache.sysds.parser.FunctionDictionary</h2>
 </div>
 <div class="classUseContainer">
 <ul class="blockList">
 <li class="blockList">
 <table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
-<caption><span>Packages that use <a href="../../../../../org/apache/sysds/parser/IfStatementBlock.html" title="class in org.apache.sysds.parser">IfStatementBlock</a></span><span class="tabEnd">&nbsp;</span></caption>
+<caption><span>Packages that use <a href="../../../../../org/apache/sysds/parser/FunctionDictionary.html" title="class in org.apache.sysds.parser">FunctionDictionary</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Package</th>
 <th class="colLast" scope="col">Description</th>
@@ -87,7 +87,7 @@
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="#org.apache.sysds.runtime.util">org.apache.sysds.runtime.util</a></td>
+<td class="colFirst"><a href="#org.apache.sysds.parser.dml">org.apache.sysds.parser.dml</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 </tbody>
@@ -98,54 +98,48 @@
 <li class="blockList"><a name="org.apache.sysds.parser">
 <!--   -->
 </a>
-<h3>Uses of <a href="../../../../../org/apache/sysds/parser/IfStatementBlock.html" title="class in org.apache.sysds.parser">IfStatementBlock</a> in <a href="../../../../../org/apache/sysds/parser/package-summary.html">org.apache.sysds.parser</a></h3>
+<h3>Uses of <a href="../../../../../org/apache/sysds/parser/FunctionDictionary.html" title="class in org.apache.sysds.parser">FunctionDictionary</a> in <a href="../../../../../org/apache/sysds/parser/package-summary.html">org.apache.sysds.parser</a></h3>
 <table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
-<caption><span>Methods in <a href="../../../../../org/apache/sysds/parser/package-summary.html">org.apache.sysds.parser</a> with parameters of type <a href="../../../../../org/apache/sysds/parser/IfStatementBlock.html" title="class in org.apache.sysds.parser">IfStatementBlock</a></span><span class="tabEnd">&nbsp;</span></caption>
+<caption><span>Methods in <a href="../../../../../org/apache/sysds/parser/package-summary.html">org.apache.sysds.parser</a> that return <a href="../../../../../org/apache/sysds/parser/FunctionDictionary.html" title="class in org.apache.sysds.parser">FunctionDictionary</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
 <th class="colLast" scope="col">Method and Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">DMLTranslator.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/parser/DMLTranslator.html#constructHopsForIfControlBlock-org.apache.sysds.parser.IfStatementBlock-">constructHopsForIfControlBlock</a></span>(<a href="../../../../../org/apache/sysds/parser/IfStatementBlock.html" title="class in org.apache.sysds.parser">IfStatementBlock</a>&nbsp;sb)</code>&nbsp;</td>
+<td class="colFirst"><code><a href="../../../../../org/apache/sysds/parser/FunctionDictionary.html" title="class in org.apache.sysds.parser">FunctionDictionary</a>&lt;<a href="../../../../../org/apache/sysds/parser/FunctionStatementBlock.html" title="class in org.apache.sysds.parser">FunctionStatementBlock</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DMLProgram.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/parser/DMLProgram.html#getDefaultFunctionDictionary--">getDefaultFunctionDictionary</a></span>()</code>&nbsp;</td>
 </tr>
 </tbody>
 </table>
-</li>
-<li class="blockList"><a name="org.apache.sysds.runtime.util">
-<!--   -->
-</a>
-<h3>Uses of <a href="../../../../../org/apache/sysds/parser/IfStatementBlock.html" title="class in org.apache.sysds.parser">IfStatementBlock</a> in <a href="../../../../../org/apache/sysds/runtime/util/package-summary.html">org.apache.sysds.runtime.util</a></h3>
 <table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
-<caption><span>Methods in <a href="../../../../../org/apache/sysds/runtime/util/package-summary.html">org.apache.sysds.runtime.util</a> that return <a href="../../../../../org/apache/sysds/parser/IfStatementBlock.html" title="class in org.apache.sysds.parser">IfStatementBlock</a></span><span class="tabEnd">&nbsp;</span></caption>
+<caption><span>Methods in <a href="../../../../../org/apache/sysds/parser/package-summary.html">org.apache.sysds.parser</a> that return types with arguments of type <a href="../../../../../org/apache/sysds/parser/FunctionDictionary.html" title="class in org.apache.sysds.parser">FunctionDictionary</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
 <th class="colLast" scope="col">Method and Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code>static <a href="../../../../../org/apache/sysds/parser/IfStatementBlock.html" title="class in org.apache.sysds.parser">IfStatementBlock</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ProgramConverter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#createIfStatementBlockCopy-org.apache.sysds.parser.IfStatementBlock-long-boolean-boolean-">createIfStatementBlockCopy</a></span>(<a href="../../../../../org/apache/sysds/parser/IfStatementBlock.html" title="class in org.apache.sysds.parser">IfStatementBlock</a>&nbsp;sb,
-                          long&nbsp;pid,
-                          boolean&nbsp;plain,
-                          boolean&nbsp;forceDeepCopy)</code>&nbsp;</td>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/sysds/parser/FunctionDictionary.html" title="class in org.apache.sysds.parser">FunctionDictionary</a>&lt;<a href="../../../../../org/apache/sysds/par [...]
+<td class="colLast"><span class="typeNameLabel">DMLProgram.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/parser/DMLProgram.html#getNamespaces--">getNamespaces</a></span>()</code>&nbsp;</td>
 </tr>
 </tbody>
 </table>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
-<caption><span>Methods in <a href="../../../../../org/apache/sysds/runtime/util/package-summary.html">org.apache.sysds.runtime.util</a> with parameters of type <a href="../../../../../org/apache/sysds/parser/IfStatementBlock.html" title="class in org.apache.sysds.parser">IfStatementBlock</a></span><span class="tabEnd">&nbsp;</span></caption>
+</li>
+<li class="blockList"><a name="org.apache.sysds.parser.dml">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/sysds/parser/FunctionDictionary.html" title="class in org.apache.sysds.parser">FunctionDictionary</a> in <a href="../../../../../org/apache/sysds/parser/dml/package-summary.html">org.apache.sysds.parser.dml</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing fields, and an explanation">
+<caption><span>Fields in <a href="../../../../../org/apache/sysds/parser/dml/package-summary.html">org.apache.sysds.parser.dml</a> with type parameters of type <a href="../../../../../org/apache/sysds/parser/FunctionDictionary.html" title="class in org.apache.sysds.parser">FunctionDictionary</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
+<th class="colLast" scope="col">Field and Description</th>
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code>static <a href="../../../../../org/apache/sysds/parser/IfStatementBlock.html" title="class in org.apache.sysds.parser">IfStatementBlock</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ProgramConverter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#createIfStatementBlockCopy-org.apache.sysds.parser.IfStatementBlock-long-boolean-boolean-">createIfStatementBlockCopy</a></span>(<a href="../../../../../org/apache/sysds/parser/IfStatementBlock.html" title="class in org.apache.sysds.parser">IfStatementBlock</a>&nbsp;sb,
-                          long&nbsp;pid,
-                          boolean&nbsp;plain,
-                          boolean&nbsp;forceDeepCopy)</code>&nbsp;</td>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/sysds/parser/FunctionDictionary.html" title="class in org.apache.sysds.parser">FunctionDictionary</a>&lt;<a href="../../../../../org/apache/s [...]
+<td class="colLast"><span class="typeNameLabel">StatementInfo.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/parser/dml/StatementInfo.html#namespaces">namespaces</a></span></code>&nbsp;</td>
 </tr>
 </tbody>
 </table>
@@ -165,7 +159,7 @@
 <ul class="navList" title="Navigation">
 <li><a href="../../../../../overview-summary.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../org/apache/sysds/parser/IfStatementBlock.html" title="class in org.apache.sysds.parser">Class</a></li>
+<li><a href="../../../../../org/apache/sysds/parser/FunctionDictionary.html" title="class in org.apache.sysds.parser">Class</a></li>
 <li class="navBarCell1Rev">Use</li>
 <li><a href="../package-tree.html">Tree</a></li>
 <li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
@@ -179,8 +173,8 @@
 <li>Next</li>
 </ul>
 <ul class="navList">
-<li><a href="../../../../../index.html?org/apache/sysds/parser/class-use/IfStatementBlock.html" target="_top">Frames</a></li>
-<li><a href="IfStatementBlock.html" target="_top">No&nbsp;Frames</a></li>
+<li><a href="../../../../../index.html?org/apache/sysds/parser/class-use/FunctionDictionary.html" target="_top">Frames</a></li>
+<li><a href="FunctionDictionary.html" target="_top">No&nbsp;Frames</a></li>
 </ul>
 <ul class="navList" id="allclasses_navbar_bottom">
 <li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
diff --git a/docs/api/java/org/apache/sysds/parser/class-use/FunctionStatementBlock.html b/docs/api/java/org/apache/sysds/parser/class-use/FunctionStatementBlock.html
index bfb6b27..03371d2 100644
--- a/docs/api/java/org/apache/sysds/parser/class-use/FunctionStatementBlock.html
+++ b/docs/api/java/org/apache/sysds/parser/class-use/FunctionStatementBlock.html
@@ -94,6 +94,10 @@
 <td class="colFirst"><a href="#org.apache.sysds.parser.dml">org.apache.sysds.parser.dml</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.sysds.runtime.util">org.apache.sysds.runtime.util</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
 </tbody>
 </table>
 </li>
@@ -154,21 +158,25 @@
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../../org/apache/sysds/parser/FunctionStatementBlock.html" title="class in org.apache.sysds.parser">FunctionStatementBlock</a>&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">DMLProgram.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/parser/DMLProgram.html#getFunctionStatementBlocks--">getFunctionStatementBlocks</a></span>()</code>&nbsp;</td>
+<td class="colFirst"><code><a href="../../../../../org/apache/sysds/parser/FunctionDictionary.html" title="class in org.apache.sysds.parser">FunctionDictionary</a>&lt;<a href="../../../../../org/apache/sysds/parser/FunctionStatementBlock.html" title="class in org.apache.sysds.parser">FunctionStatementBlock</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DMLProgram.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/parser/DMLProgram.html#getDefaultFunctionDictionary--">getDefaultFunctionDictionary</a></span>()</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/sysds/parser/FunctionStatementBlock.html" title="class in org.apache.sysds.parser">FunctionStatementBlock</a>&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">DMLProgram.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/parser/DMLProgram.html#getFunctionStatementBlocks-java.lang.String-">getFunctionStatementBlocks</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespaceKey)</code>&nbsp;</td>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/sysds/parser/FunctionStatementBlock.html" title="class in org.apache.sysds.parser">FunctionStatementBlock</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DMLProgram.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/parser/DMLProgram.html#getFunctionStatementBlocks--">getFunctionStatementBlocks</a></span>()</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/sysds/parser/FunctionStatementBlock.html" title="class in org.apache.sysds.parser">FunctionStatementBlock</a>&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">DMLProgram.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/parser/DMLProgram.html#getNamedFunctionStatementBlocks--">getNamedFunctionStatementBlocks</a></span>()</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">DMLProgram.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/parser/DMLProgram.html#getFunctionStatementBlocks-java.lang.String-">getFunctionStatementBlocks</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespaceKey)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/sysds/parser/FunctionStatementBlock.html" title="class in org.apache.sysds.parser">FunctionStatementBlock</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">DMLProgram.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/parser/DMLProgram.html#getNamedNSFunctionStatementBlocks--">getNamedNSFunctionStatementBlocks</a></span>()</code>&nbsp;</td>
 </tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/sysds/parser/FunctionDictionary.html" title="class in org.apache.sysds.parser">FunctionDictionary</a>&lt;<a href="../../../../../org/apache/sysds/par [...]
+<td class="colLast"><span class="typeNameLabel">DMLProgram.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/parser/DMLProgram.html#getNamespaces--">getNamespaces</a></span>()</code>&nbsp;</td>
+</tr>
 </tbody>
 </table>
 <table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
@@ -210,6 +218,19 @@
 <!--   -->
 </a>
 <h3>Uses of <a href="../../../../../org/apache/sysds/parser/FunctionStatementBlock.html" title="class in org.apache.sysds.parser">FunctionStatementBlock</a> in <a href="../../../../../org/apache/sysds/parser/dml/package-summary.html">org.apache.sysds.parser.dml</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing fields, and an explanation">
+<caption><span>Fields in <a href="../../../../../org/apache/sysds/parser/dml/package-summary.html">org.apache.sysds.parser.dml</a> with type parameters of type <a href="../../../../../org/apache/sysds/parser/FunctionStatementBlock.html" title="class in org.apache.sysds.parser">FunctionStatementBlock</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/sysds/parser/FunctionDictionary.html" title="class in org.apache.sysds.parser">FunctionDictionary</a>&lt;<a href="../../../../../org/apache/s [...]
+<td class="colLast"><span class="typeNameLabel">StatementInfo.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/parser/dml/StatementInfo.html#namespaces">namespaces</a></span></code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
 <table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
 <caption><span>Methods in <a href="../../../../../org/apache/sysds/parser/dml/package-summary.html">org.apache.sysds.parser.dml</a> that return types with arguments of type <a href="../../../../../org/apache/sysds/parser/FunctionStatementBlock.html" title="class in org.apache.sysds.parser">FunctionStatementBlock</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
@@ -225,6 +246,41 @@
 </tbody>
 </table>
 </li>
+<li class="blockList"><a name="org.apache.sysds.runtime.util">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/sysds/parser/FunctionStatementBlock.html" title="class in org.apache.sysds.parser">FunctionStatementBlock</a> in <a href="../../../../../org/apache/sysds/runtime/util/package-summary.html">org.apache.sysds.runtime.util</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/sysds/runtime/util/package-summary.html">org.apache.sysds.runtime.util</a> that return <a href="../../../../../org/apache/sysds/parser/FunctionStatementBlock.html" title="class in org.apache.sysds.parser">FunctionStatementBlock</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/sysds/parser/FunctionStatementBlock.html" title="class in org.apache.sysds.parser">FunctionStatementBlock</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ProgramConverter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#createDeepCopyFunctionStatementBlock-org.apache.sysds.parser.FunctionStatementBlock-java.util.Set-java.util.Set-">createDeepCopyFunctionStatementBlock</a></span>(<a href="../../../../../org/apache/sysds/parser/FunctionStatementBlock.html" title="class in org.apache.sysds.parser">FunctionStatementBlock</a>&nbsp;fsb,
+                                    <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnStack,
+                                    <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnCreated)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/sysds/runtime/util/package-summary.html">org.apache.sysds.runtime.util</a> with parameters of type <a href="../../../../../org/apache/sysds/parser/FunctionStatementBlock.html" title="class in org.apache.sysds.parser">FunctionStatementBlock</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/sysds/parser/FunctionStatementBlock.html" title="class in org.apache.sysds.parser">FunctionStatementBlock</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ProgramConverter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#createDeepCopyFunctionStatementBlock-org.apache.sysds.parser.FunctionStatementBlock-java.util.Set-java.util.Set-">createDeepCopyFunctionStatementBlock</a></span>(<a href="../../../../../org/apache/sysds/parser/FunctionStatementBlock.html" title="class in org.apache.sysds.parser">FunctionStatementBlock</a>&nbsp;fsb,
+                                    <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnStack,
+                                    <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnCreated)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
 </ul>
 </li>
 </ul>
diff --git a/docs/api/java/org/apache/sysds/parser/class-use/IfStatementBlock.html b/docs/api/java/org/apache/sysds/parser/class-use/IfStatementBlock.html
index b52418d..d963d4f 100644
--- a/docs/api/java/org/apache/sysds/parser/class-use/IfStatementBlock.html
+++ b/docs/api/java/org/apache/sysds/parser/class-use/IfStatementBlock.html
@@ -126,9 +126,7 @@
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/sysds/parser/IfStatementBlock.html" title="class in org.apache.sysds.parser">IfStatementBlock</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ProgramConverter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#createIfStatementBlockCopy-org.apache.sysds.parser.IfStatementBlock-long-boolean-boolean-">createIfStatementBlockCopy</a></span>(<a href="../../../../../org/apache/sysds/parser/IfStatementBlock.html" title="class in org.apache.sysds.parser">IfStatementBlock</a>&nbsp;sb,
-                          long&nbsp;pid,
-                          boolean&nbsp;plain,
+<td class="colLast"><span class="typeNameLabel">ProgramConverter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#createIfStatementBlockCopy-org.apache.sysds.parser.IfStatementBlock-boolean-">createIfStatementBlockCopy</a></span>(<a href="../../../../../org/apache/sysds/parser/IfStatementBlock.html" title="class in org.apache.sysds.parser">IfStatementBlock</a>&nbsp;sb,
                           boolean&nbsp;forceDeepCopy)</code>&nbsp;</td>
 </tr>
 </tbody>
@@ -142,9 +140,7 @@
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/sysds/parser/IfStatementBlock.html" title="class in org.apache.sysds.parser">IfStatementBlock</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ProgramConverter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#createIfStatementBlockCopy-org.apache.sysds.parser.IfStatementBlock-long-boolean-boolean-">createIfStatementBlockCopy</a></span>(<a href="../../../../../org/apache/sysds/parser/IfStatementBlock.html" title="class in org.apache.sysds.parser">IfStatementBlock</a>&nbsp;sb,
-                          long&nbsp;pid,
-                          boolean&nbsp;plain,
+<td class="colLast"><span class="typeNameLabel">ProgramConverter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#createIfStatementBlockCopy-org.apache.sysds.parser.IfStatementBlock-boolean-">createIfStatementBlockCopy</a></span>(<a href="../../../../../org/apache/sysds/parser/IfStatementBlock.html" title="class in org.apache.sysds.parser">IfStatementBlock</a>&nbsp;sb,
                           boolean&nbsp;forceDeepCopy)</code>&nbsp;</td>
 </tr>
 </tbody>
diff --git a/docs/api/java/org/apache/sysds/parser/class-use/ParseException.html b/docs/api/java/org/apache/sysds/parser/class-use/ParseException.html
index d04894b..f2694a3 100644
--- a/docs/api/java/org/apache/sysds/parser/class-use/ParseException.html
+++ b/docs/api/java/org/apache/sysds/parser/class-use/ParseException.html
@@ -107,9 +107,21 @@
 <td class="colLast"><span class="typeNameLabel">DMLScript.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/api/DMLScript.html#cleanupHadoopExecution-org.apache.sysds.conf.DMLConfig-">cleanupHadoopExecution</a></span>(<a href="../../../../../org/apache/sysds/conf/DMLConfig.html" title="class in org.apache.sysds.conf">DMLConfig</a>&nbsp;config)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">DMLScript.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/api/DMLScript.html#executeScript-org.apache.hadoop.conf.Configuration-java.lang.String:A-">executeScript</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;args)</code>
+<div class="block">Single entry point for all public invocation alternatives (e.g.,
+ main, executeScript, JaqlUdf etc)</div>
+</td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><code>static void</code></td>
 <td class="colLast"><span class="typeNameLabel">DMLScript.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/api/DMLScript.html#initHadoopExecution-org.apache.sysds.conf.DMLConfig-">initHadoopExecution</a></span>(<a href="../../../../../org/apache/sysds/conf/DMLConfig.html" title="class in org.apache.sysds.conf">DMLConfig</a>&nbsp;config)</code>&nbsp;</td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><span class="typeNameLabel">DMLScript.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/api/DMLScript.html#main-java.lang.String:A-">main</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;args)</code>&nbsp;</td>
+</tr>
 </tbody>
 </table>
 </li>
diff --git a/docs/api/java/org/apache/sysds/parser/class-use/StatementBlock.html b/docs/api/java/org/apache/sysds/parser/class-use/StatementBlock.html
index fe5f0b7..07e833e 100644
--- a/docs/api/java/org/apache/sysds/parser/class-use/StatementBlock.html
+++ b/docs/api/java/org/apache/sysds/parser/class-use/StatementBlock.html
@@ -531,6 +531,10 @@
 <td class="colLast"><span class="typeNameLabel">ProgramRewriter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/hops/rewrite/ProgramRewriter.html#rRewriteStatementBlockHopDAGs-org.apache.sysds.parser.StatementBlock-org.apache.sysds.hops.rewrite.ProgramRewriteStatus-">rRewriteStatementBlockHopDAGs</a></span>(<a href="../../../../../org/apache/sysds/parser/StatementBlock.html" title="class in org.apache.sysds.parser">StatementBlock</a>&nbsp;current,
                              <a href="../../../../../org/apache/sysds/hops/rewrite/ProgramRewriteStatus.html" title="class in org.apache.sysds.hops.rewrite">ProgramRewriteStatus</a>&nbsp;state)</code>&nbsp;</td>
 </tr>
+<tr class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><span class="typeNameLabel">HopRewriteUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/hops/rewrite/HopRewriteUtils.html#setUnoptimizedFunctionCalls-org.apache.sysds.parser.StatementBlock-">setUnoptimizedFunctionCalls</a></span>(<a href="../../../../../org/apache/sysds/parser/StatementBlock.html" title="class in org.apache.sysds.parser">StatementBlock</a>&nbsp;sb)</code>&nbsp;</td>
+</tr>
 </tbody>
 </table>
 <table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
@@ -720,12 +724,12 @@
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../../org/apache/sysds/parser/StatementBlock.html" title="class in org.apache.sysds.parser">StatementBlock</a>&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">StatementBlock.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/parser/StatementBlock.html#mergeFunctionCalls-java.util.ArrayList-org.apache.sysds.parser.DMLProgram-">mergeFunctionCalls</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../../org/apache/sysds/parser/StatementBlock [...]
+<td class="colLast"><span class="typeNameLabel">StatementBlock.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/parser/StatementBlock.html#mergeFunctionCalls-java.util.List-org.apache.sysds.parser.DMLProgram-">mergeFunctionCalls</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/sysds/parser/StatementBlock.html" title="c [...]
                   <a href="../../../../../org/apache/sysds/parser/DMLProgram.html" title="class in org.apache.sysds.parser">DMLProgram</a>&nbsp;dmlProg)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../../org/apache/sysds/parser/StatementBlock.html" title="class in org.apache.sysds.parser">StatementBlock</a>&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">StatementBlock.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/parser/StatementBlock.html#mergeStatementBlocks-java.util.ArrayList-">mergeStatementBlocks</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../../org/apache/sysds/parser/StatementBlock.html" title="class in org.apac [...]
+<td class="colLast"><span class="typeNameLabel">StatementBlock.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/parser/StatementBlock.html#mergeStatementBlocks-java.util.List-">mergeStatementBlocks</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/sysds/parser/StatementBlock.html" title="class in org.apache.sysds.parser [...]
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/sysds/parser/StatementBlock.html" title="class in org.apache.sysds.parser">StatementBlock</a>&gt;</code></td>
@@ -816,12 +820,12 @@
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../../org/apache/sysds/parser/StatementBlock.html" title="class in org.apache.sysds.parser">StatementBlock</a>&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">StatementBlock.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/parser/StatementBlock.html#mergeFunctionCalls-java.util.ArrayList-org.apache.sysds.parser.DMLProgram-">mergeFunctionCalls</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../../org/apache/sysds/parser/StatementBlock [...]
+<td class="colLast"><span class="typeNameLabel">StatementBlock.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/parser/StatementBlock.html#mergeFunctionCalls-java.util.List-org.apache.sysds.parser.DMLProgram-">mergeFunctionCalls</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/sysds/parser/StatementBlock.html" title="c [...]
                   <a href="../../../../../org/apache/sysds/parser/DMLProgram.html" title="class in org.apache.sysds.parser">DMLProgram</a>&nbsp;dmlProg)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../../org/apache/sysds/parser/StatementBlock.html" title="class in org.apache.sysds.parser">StatementBlock</a>&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">StatementBlock.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/parser/StatementBlock.html#mergeStatementBlocks-java.util.ArrayList-">mergeStatementBlocks</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../../org/apache/sysds/parser/StatementBlock.html" title="class in org.apac [...]
+<td class="colLast"><span class="typeNameLabel">StatementBlock.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/parser/StatementBlock.html#mergeStatementBlocks-java.util.List-">mergeStatementBlocks</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/sysds/parser/StatementBlock.html" title="class in org.apache.sysds.parser [...]
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
@@ -989,6 +993,10 @@
                         boolean&nbsp;plain,
                         boolean&nbsp;forceDeepCopy)</code>&nbsp;</td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/sysds/parser/StatementBlock.html" title="class in org.apache.sysds.parser">StatementBlock</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ProgramConverter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#rCreateDeepCopyStatementBlock-org.apache.sysds.parser.StatementBlock-">rCreateDeepCopyStatementBlock</a></span>(<a href="../../../../../org/apache/sysds/parser/StatementBlock.html" title="class in org.apache.sysds.parser">StatementBlock</a>&nbsp;sb)</code>&nbsp;</td>
+</tr>
 </tbody>
 </table>
 <table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
@@ -1005,6 +1013,10 @@
                         boolean&nbsp;plain,
                         boolean&nbsp;forceDeepCopy)</code>&nbsp;</td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/sysds/parser/StatementBlock.html" title="class in org.apache.sysds.parser">StatementBlock</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ProgramConverter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#rCreateDeepCopyStatementBlock-org.apache.sysds.parser.StatementBlock-">rCreateDeepCopyStatementBlock</a></span>(<a href="../../../../../org/apache/sysds/parser/StatementBlock.html" title="class in org.apache.sysds.parser">StatementBlock</a>&nbsp;sb)</code>&nbsp;</td>
+</tr>
 </tbody>
 </table>
 </li>
diff --git a/docs/api/java/org/apache/sysds/parser/class-use/WhileStatementBlock.html b/docs/api/java/org/apache/sysds/parser/class-use/WhileStatementBlock.html
index b41d088..8f979cd 100644
--- a/docs/api/java/org/apache/sysds/parser/class-use/WhileStatementBlock.html
+++ b/docs/api/java/org/apache/sysds/parser/class-use/WhileStatementBlock.html
@@ -126,9 +126,7 @@
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/sysds/parser/WhileStatementBlock.html" title="class in org.apache.sysds.parser">WhileStatementBlock</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ProgramConverter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#createWhileStatementBlockCopy-org.apache.sysds.parser.WhileStatementBlock-long-boolean-boolean-">createWhileStatementBlockCopy</a></span>(<a href="../../../../../org/apache/sysds/parser/WhileStatementBlock.html" title="class in org.apache.sysds.parser">WhileStatementBlock</a>&nbsp;sb,
-                             long&nbsp;pid,
-                             boolean&nbsp;plain,
+<td class="colLast"><span class="typeNameLabel">ProgramConverter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#createWhileStatementBlockCopy-org.apache.sysds.parser.WhileStatementBlock-boolean-">createWhileStatementBlockCopy</a></span>(<a href="../../../../../org/apache/sysds/parser/WhileStatementBlock.html" title="class in org.apache.sysds.parser">WhileStatementBlock</a>&nbsp;sb,
                              boolean&nbsp;forceDeepCopy)</code>&nbsp;</td>
 </tr>
 </tbody>
@@ -142,9 +140,7 @@
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/sysds/parser/WhileStatementBlock.html" title="class in org.apache.sysds.parser">WhileStatementBlock</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ProgramConverter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#createWhileStatementBlockCopy-org.apache.sysds.parser.WhileStatementBlock-long-boolean-boolean-">createWhileStatementBlockCopy</a></span>(<a href="../../../../../org/apache/sysds/parser/WhileStatementBlock.html" title="class in org.apache.sysds.parser">WhileStatementBlock</a>&nbsp;sb,
-                             long&nbsp;pid,
-                             boolean&nbsp;plain,
+<td class="colLast"><span class="typeNameLabel">ProgramConverter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#createWhileStatementBlockCopy-org.apache.sysds.parser.WhileStatementBlock-boolean-">createWhileStatementBlockCopy</a></span>(<a href="../../../../../org/apache/sysds/parser/WhileStatementBlock.html" title="class in org.apache.sysds.parser">WhileStatementBlock</a>&nbsp;sb,
                              boolean&nbsp;forceDeepCopy)</code>&nbsp;</td>
 </tr>
 </tbody>
diff --git a/docs/api/java/org/apache/sysds/parser/dml/StatementInfo.html b/docs/api/java/org/apache/sysds/parser/dml/StatementInfo.html
index 8abeb4c..5566e5a 100644
--- a/docs/api/java/org/apache/sysds/parser/dml/StatementInfo.html
+++ b/docs/api/java/org/apache/sysds/parser/dml/StatementInfo.html
@@ -134,7 +134,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/parser/dml/StatementInfo.html#functionName">functionName</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/sysds/parser/DMLProgram.html" title="class in org.apache.sysds.parser">DMLProgram</a>&gt;</code></td>
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/sysds/parser/FunctionDictionary.html" title="class in org.apache.sysds.parser">FunctionDictionary</a>&lt;<a href="../../../../../org/apache/s [...]
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/parser/dml/StatementInfo.html#namespaces">namespaces</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
@@ -203,7 +203,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>namespaces</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/sysds/parser/DMLProgram.html" title="class in org.apache.sysds.parser">DMLProgram</a>&gt; namespaces</pre>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/sysds/parser/FunctionDictionary.html" title="class in org.apache.sysds.parser">FunctionDictionary</a>&lt;<a href="../../../../../org/apache/sysds/parse [...]
 </li>
 </ul>
 <a name="functionName">
diff --git a/docs/api/java/org/apache/sysds/parser/package-frame.html b/docs/api/java/org/apache/sysds/parser/package-frame.html
index f530613..8467c80 100644
--- a/docs/api/java/org/apache/sysds/parser/package-frame.html
+++ b/docs/api/java/org/apache/sysds/parser/package-frame.html
@@ -34,6 +34,7 @@
 <li><a href="ForStatement.html" title="class in org.apache.sysds.parser" target="classFrame">ForStatement</a></li>
 <li><a href="ForStatementBlock.html" title="class in org.apache.sysds.parser" target="classFrame">ForStatementBlock</a></li>
 <li><a href="FunctionCallIdentifier.html" title="class in org.apache.sysds.parser" target="classFrame">FunctionCallIdentifier</a></li>
+<li><a href="FunctionDictionary.html" title="class in org.apache.sysds.parser" target="classFrame">FunctionDictionary</a></li>
 <li><a href="FunctionStatement.html" title="class in org.apache.sysds.parser" target="classFrame">FunctionStatement</a></li>
 <li><a href="FunctionStatementBlock.html" title="class in org.apache.sysds.parser" target="classFrame">FunctionStatementBlock</a></li>
 <li><a href="Identifier.html" title="class in org.apache.sysds.parser" target="classFrame">Identifier</a></li>
diff --git a/docs/api/java/org/apache/sysds/parser/package-summary.html b/docs/api/java/org/apache/sysds/parser/package-summary.html
index 75a3bad..315bfbd 100644
--- a/docs/api/java/org/apache/sysds/parser/package-summary.html
+++ b/docs/api/java/org/apache/sysds/parser/package-summary.html
@@ -166,127 +166,134 @@
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/sysds/parser/FunctionDictionary.html" title="class in org.apache.sysds.parser">FunctionDictionary</a>&lt;T extends <a href="../../../../org/apache/sysds/common/Types.FunctionBlock.html" title="interface in org.apache.sysds.common">Types.FunctionBlock</a>&gt;</td>
+<td class="colLast">
+<div class="block">Dictionary of all functions of a namespace, represented as a simple
+ key-value map of function names and function statement blocks.</div>
+</td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/sysds/parser/FunctionStatement.html" title="class in org.apache.sysds.parser">FunctionStatement</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../org/apache/sysds/parser/FunctionStatementBlock.html" title="class in org.apache.sysds.parser">FunctionStatementBlock</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/sysds/parser/Identifier.html" title="class in org.apache.sysds.parser">Identifier</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../org/apache/sysds/parser/IfStatement.html" title="class in org.apache.sysds.parser">IfStatement</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/sysds/parser/IfStatementBlock.html" title="class in org.apache.sysds.parser">IfStatementBlock</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../org/apache/sysds/parser/ImportStatement.html" title="class in org.apache.sysds.parser">ImportStatement</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/sysds/parser/IndexedIdentifier.html" title="class in org.apache.sysds.parser">IndexedIdentifier</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../org/apache/sysds/parser/IntIdentifier.html" title="class in org.apache.sysds.parser">IntIdentifier</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/sysds/parser/IterablePredicate.html" title="class in org.apache.sysds.parser">IterablePredicate</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../org/apache/sysds/parser/LanguageException.LanguageErrorCodes.html" title="class in org.apache.sysds.parser">LanguageException.LanguageErrorCodes</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/sysds/parser/LiveVariableAnalysis.html" title="class in org.apache.sysds.parser">LiveVariableAnalysis</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../org/apache/sysds/parser/MultiAssignmentStatement.html" title="class in org.apache.sysds.parser">MultiAssignmentStatement</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/sysds/parser/OutputStatement.html" title="class in org.apache.sysds.parser">OutputStatement</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../org/apache/sysds/parser/ParameterExpression.html" title="class in org.apache.sysds.parser">ParameterExpression</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/sysds/parser/ParameterizedBuiltinFunctionExpression.html" title="class in org.apache.sysds.parser">ParameterizedBuiltinFunctionExpression</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../org/apache/sysds/parser/ParForStatement.html" title="class in org.apache.sysds.parser">ParForStatement</a></td>
 <td class="colLast">
 <div class="block">This ParForStatement is essentially identical to a ForStatement, except an extended
  toString method for printing the 'parfor' keyword.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/sysds/parser/ParForStatementBlock.html" title="class in org.apache.sysds.parser">ParForStatementBlock</a></td>
 <td class="colLast">
 <div class="block">This ParForStatementBlock is essentially identical to a ForStatementBlock, except an extended validate
  for checking/setting optional parfor parameters and running the loop dependency analysis.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../org/apache/sysds/parser/ParForStatementBlock.ResultVar.html" title="class in org.apache.sysds.parser">ParForStatementBlock.ResultVar</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/sysds/parser/ParserFactory.html" title="class in org.apache.sysds.parser">ParserFactory</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../org/apache/sysds/parser/ParserWrapper.html" title="class in org.apache.sysds.parser">ParserWrapper</a></td>
 <td class="colLast">
 <div class="block">Base class for all dml parsers in order to make the various compilation chains
  independent of the used parser.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/sysds/parser/PathStatement.html" title="class in org.apache.sysds.parser">PathStatement</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../org/apache/sysds/parser/PrintStatement.html" title="class in org.apache.sysds.parser">PrintStatement</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/sysds/parser/RelationalExpression.html" title="class in org.apache.sysds.parser">RelationalExpression</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../org/apache/sysds/parser/Statement.html" title="class in org.apache.sysds.parser">Statement</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/sysds/parser/StatementBlock.html" title="class in org.apache.sysds.parser">StatementBlock</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../org/apache/sysds/parser/StringIdentifier.html" title="class in org.apache.sysds.parser">StringIdentifier</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/sysds/parser/VariableSet.html" title="class in org.apache.sysds.parser">VariableSet</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../org/apache/sysds/parser/WhileStatement.html" title="class in org.apache.sysds.parser">WhileStatement</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../org/apache/sysds/parser/WhileStatementBlock.html" title="class in org.apache.sysds.parser">WhileStatementBlock</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
diff --git a/docs/api/java/org/apache/sysds/parser/package-tree.html b/docs/api/java/org/apache/sysds/parser/package-tree.html
index 6111453..88030ac 100644
--- a/docs/api/java/org/apache/sysds/parser/package-tree.html
+++ b/docs/api/java/org/apache/sysds/parser/package-tree.html
@@ -114,6 +114,7 @@
 <li type="circle">org.apache.sysds.parser.<a href="../../../../org/apache/sysds/parser/RelationalExpression.html" title="class in org.apache.sysds.parser"><span class="typeNameLink">RelationalExpression</span></a></li>
 </ul>
 </li>
+<li type="circle">org.apache.sysds.parser.<a href="../../../../org/apache/sysds/parser/FunctionDictionary.html" title="class in org.apache.sysds.parser"><span class="typeNameLink">FunctionDictionary</span></a>&lt;T&gt;</li>
 <li type="circle">org.apache.sysds.parser.<a href="../../../../org/apache/sysds/parser/LanguageException.LanguageErrorCodes.html" title="class in org.apache.sysds.parser"><span class="typeNameLink">LanguageException.LanguageErrorCodes</span></a></li>
 <li type="circle">org.apache.sysds.parser.<a href="../../../../org/apache/sysds/parser/LiveVariableAnalysis.html" title="class in org.apache.sysds.parser"><span class="typeNameLink">LiveVariableAnalysis</span></a>
 <ul>
@@ -124,7 +125,7 @@
 <li type="circle">org.apache.sysds.parser.<a href="../../../../org/apache/sysds/parser/ParForStatementBlock.html" title="class in org.apache.sysds.parser"><span class="typeNameLink">ParForStatementBlock</span></a></li>
 </ul>
 </li>
-<li type="circle">org.apache.sysds.parser.<a href="../../../../org/apache/sysds/parser/FunctionStatementBlock.html" title="class in org.apache.sysds.parser"><span class="typeNameLink">FunctionStatementBlock</span></a></li>
+<li type="circle">org.apache.sysds.parser.<a href="../../../../org/apache/sysds/parser/FunctionStatementBlock.html" title="class in org.apache.sysds.parser"><span class="typeNameLink">FunctionStatementBlock</span></a> (implements org.apache.sysds.common.<a href="../../../../org/apache/sysds/common/Types.FunctionBlock.html" title="interface in org.apache.sysds.common">Types.FunctionBlock</a>)</li>
 <li type="circle">org.apache.sysds.parser.<a href="../../../../org/apache/sysds/parser/IfStatementBlock.html" title="class in org.apache.sysds.parser"><span class="typeNameLink">IfStatementBlock</span></a></li>
 <li type="circle">org.apache.sysds.parser.<a href="../../../../org/apache/sysds/parser/WhileStatementBlock.html" title="class in org.apache.sysds.parser"><span class="typeNameLink">WhileStatementBlock</span></a></li>
 </ul>
diff --git a/docs/api/java/org/apache/sysds/parser/package-use.html b/docs/api/java/org/apache/sysds/parser/package-use.html
index fcb9493..3bd05eb 100644
--- a/docs/api/java/org/apache/sysds/parser/package-use.html
+++ b/docs/api/java/org/apache/sysds/parser/package-use.html
@@ -402,82 +402,88 @@
 <td class="colOne"><a href="../../../../org/apache/sysds/parser/class-use/FunctionCallIdentifier.html#org.apache.sysds.parser">FunctionCallIdentifier</a>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><a href="../../../../org/apache/sysds/parser/class-use/FunctionStatementBlock.html#org.apache.sysds.parser">FunctionStatementBlock</a>&nbsp;</td>
+<td class="colOne"><a href="../../../../org/apache/sysds/parser/class-use/FunctionDictionary.html#org.apache.sysds.parser">FunctionDictionary</a>
+<div class="block">Dictionary of all functions of a namespace, represented as a simple
+ key-value map of function names and function statement blocks.</div>
+</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><a href="../../../../org/apache/sysds/parser/class-use/Identifier.html#org.apache.sysds.parser">Identifier</a>&nbsp;</td>
+<td class="colOne"><a href="../../../../org/apache/sysds/parser/class-use/FunctionStatementBlock.html#org.apache.sysds.parser">FunctionStatementBlock</a>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><a href="../../../../org/apache/sysds/parser/class-use/IfStatementBlock.html#org.apache.sysds.parser">IfStatementBlock</a>&nbsp;</td>
+<td class="colOne"><a href="../../../../org/apache/sysds/parser/class-use/Identifier.html#org.apache.sysds.parser">Identifier</a>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><a href="../../../../org/apache/sysds/parser/class-use/IntIdentifier.html#org.apache.sysds.parser">IntIdentifier</a>&nbsp;</td>
+<td class="colOne"><a href="../../../../org/apache/sysds/parser/class-use/IfStatementBlock.html#org.apache.sysds.parser">IfStatementBlock</a>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><a href="../../../../org/apache/sysds/parser/class-use/IterablePredicate.html#org.apache.sysds.parser">IterablePredicate</a>&nbsp;</td>
+<td class="colOne"><a href="../../../../org/apache/sysds/parser/class-use/IntIdentifier.html#org.apache.sysds.parser">IntIdentifier</a>&nbsp;</td>
 </tr>
 <tr class="rowColor">
+<td class="colOne"><a href="../../../../org/apache/sysds/parser/class-use/IterablePredicate.html#org.apache.sysds.parser">IterablePredicate</a>&nbsp;</td>
+</tr>
+<tr class="altColor">
 <td class="colOne"><a href="../../../../org/apache/sysds/parser/class-use/LanguageException.html#org.apache.sysds.parser">LanguageException</a>
 <div class="block">Exception occurring at the Language level.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../org/apache/sysds/parser/class-use/LiveVariableAnalysis.html#org.apache.sysds.parser">LiveVariableAnalysis</a>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../org/apache/sysds/parser/class-use/MultiAssignmentStatement.html#org.apache.sysds.parser">MultiAssignmentStatement</a>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../org/apache/sysds/parser/class-use/OutputStatement.html#org.apache.sysds.parser">OutputStatement</a>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../org/apache/sysds/parser/class-use/ParameterExpression.html#org.apache.sysds.parser">ParameterExpression</a>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../org/apache/sysds/parser/class-use/ParameterizedBuiltinFunctionExpression.html#org.apache.sysds.parser">ParameterizedBuiltinFunctionExpression</a>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../org/apache/sysds/parser/class-use/ParForStatementBlock.ResultVar.html#org.apache.sysds.parser">ParForStatementBlock.ResultVar</a>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../org/apache/sysds/parser/class-use/ParseInfo.html#org.apache.sysds.parser">ParseInfo</a>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../org/apache/sysds/parser/class-use/ParserWrapper.html#org.apache.sysds.parser">ParserWrapper</a>
 <div class="block">Base class for all dml parsers in order to make the various compilation chains
  independent of the used parser.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../org/apache/sysds/parser/class-use/PrintStatement.PRINTTYPE.html#org.apache.sysds.parser">PrintStatement.PRINTTYPE</a>
 <div class="block">The PRINTTYPE options are: PRINT, PRINTF, and STOP.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../org/apache/sysds/parser/class-use/Statement.html#org.apache.sysds.parser">Statement</a>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../org/apache/sysds/parser/class-use/Statement.PSCheckpointing.html#org.apache.sysds.parser">Statement.PSCheckpointing</a>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../org/apache/sysds/parser/class-use/Statement.PSFrequency.html#org.apache.sysds.parser">Statement.PSFrequency</a>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../org/apache/sysds/parser/class-use/Statement.PSModeType.html#org.apache.sysds.parser">Statement.PSModeType</a>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../org/apache/sysds/parser/class-use/Statement.PSScheme.html#org.apache.sysds.parser">Statement.PSScheme</a>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../org/apache/sysds/parser/class-use/Statement.PSUpdateType.html#org.apache.sysds.parser">Statement.PSUpdateType</a>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../org/apache/sysds/parser/class-use/StatementBlock.html#org.apache.sysds.parser">StatementBlock</a>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../org/apache/sysds/parser/class-use/VariableSet.html#org.apache.sysds.parser">VariableSet</a>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../org/apache/sysds/parser/class-use/WhileStatementBlock.html#org.apache.sysds.parser">WhileStatementBlock</a>&nbsp;</td>
 </tr>
 </tbody>
@@ -499,21 +505,27 @@
 <td class="colOne"><a href="../../../../org/apache/sysds/parser/class-use/Expression.html#org.apache.sysds.parser.dml">Expression</a>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><a href="../../../../org/apache/sysds/parser/class-use/FunctionStatementBlock.html#org.apache.sysds.parser.dml">FunctionStatementBlock</a>&nbsp;</td>
+<td class="colOne"><a href="../../../../org/apache/sysds/parser/class-use/FunctionDictionary.html#org.apache.sysds.parser.dml">FunctionDictionary</a>
+<div class="block">Dictionary of all functions of a namespace, represented as a simple
+ key-value map of function names and function statement blocks.</div>
+</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><a href="../../../../org/apache/sysds/parser/class-use/ParameterExpression.html#org.apache.sysds.parser.dml">ParameterExpression</a>&nbsp;</td>
+<td class="colOne"><a href="../../../../org/apache/sysds/parser/class-use/FunctionStatementBlock.html#org.apache.sysds.parser.dml">FunctionStatementBlock</a>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><a href="../../../../org/apache/sysds/parser/class-use/ParseInfo.html#org.apache.sysds.parser.dml">ParseInfo</a>&nbsp;</td>
+<td class="colOne"><a href="../../../../org/apache/sysds/parser/class-use/ParameterExpression.html#org.apache.sysds.parser.dml">ParameterExpression</a>&nbsp;</td>
 </tr>
 <tr class="rowColor">
+<td class="colOne"><a href="../../../../org/apache/sysds/parser/class-use/ParseInfo.html#org.apache.sysds.parser.dml">ParseInfo</a>&nbsp;</td>
+</tr>
+<tr class="altColor">
 <td class="colOne"><a href="../../../../org/apache/sysds/parser/class-use/ParserWrapper.html#org.apache.sysds.parser.dml">ParserWrapper</a>
 <div class="block">Base class for all dml parsers in order to make the various compilation chains
  independent of the used parser.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../org/apache/sysds/parser/class-use/Statement.html#org.apache.sysds.parser.dml">Statement</a>&nbsp;</td>
 </tr>
 </tbody>
@@ -664,15 +676,18 @@
 <td class="colOne"><a href="../../../../org/apache/sysds/parser/class-use/ForStatementBlock.html#org.apache.sysds.runtime.util">ForStatementBlock</a>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><a href="../../../../org/apache/sysds/parser/class-use/IfStatementBlock.html#org.apache.sysds.runtime.util">IfStatementBlock</a>&nbsp;</td>
+<td class="colOne"><a href="../../../../org/apache/sysds/parser/class-use/FunctionStatementBlock.html#org.apache.sysds.runtime.util">FunctionStatementBlock</a>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><a href="../../../../org/apache/sysds/parser/class-use/ParForStatementBlock.ResultVar.html#org.apache.sysds.runtime.util">ParForStatementBlock.ResultVar</a>&nbsp;</td>
+<td class="colOne"><a href="../../../../org/apache/sysds/parser/class-use/IfStatementBlock.html#org.apache.sysds.runtime.util">IfStatementBlock</a>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><a href="../../../../org/apache/sysds/parser/class-use/StatementBlock.html#org.apache.sysds.runtime.util">StatementBlock</a>&nbsp;</td>
+<td class="colOne"><a href="../../../../org/apache/sysds/parser/class-use/ParForStatementBlock.ResultVar.html#org.apache.sysds.runtime.util">ParForStatementBlock.ResultVar</a>&nbsp;</td>
 </tr>
 <tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/sysds/parser/class-use/StatementBlock.html#org.apache.sysds.runtime.util">StatementBlock</a>&nbsp;</td>
+</tr>
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../org/apache/sysds/parser/class-use/WhileStatementBlock.html#org.apache.sysds.runtime.util">WhileStatementBlock</a>&nbsp;</td>
 </tr>
 </tbody>
diff --git a/docs/api/java/org/apache/sysds/runtime/class-use/DMLScriptException.html b/docs/api/java/org/apache/sysds/runtime/class-use/DMLScriptException.html
index 806bd02..e9d7adc 100644
--- a/docs/api/java/org/apache/sysds/runtime/class-use/DMLScriptException.html
+++ b/docs/api/java/org/apache/sysds/runtime/class-use/DMLScriptException.html
@@ -72,7 +72,55 @@
 <div class="header">
 <h2 title="Uses of Class org.apache.sysds.runtime.DMLScriptException" class="title">Uses of Class<br>org.apache.sysds.runtime.DMLScriptException</h2>
 </div>
-<div class="classUseContainer">No usage of org.apache.sysds.runtime.DMLScriptException</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/sysds/runtime/DMLScriptException.html" title="class in org.apache.sysds.runtime">DMLScriptException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.sysds.api">org.apache.sysds.api</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.sysds.api">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/sysds/runtime/DMLScriptException.html" title="class in org.apache.sysds.runtime">DMLScriptException</a> in <a href="../../../../../org/apache/sysds/api/package-summary.html">org.apache.sysds.api</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/sysds/api/package-summary.html">org.apache.sysds.api</a> that throw <a href="../../../../../org/apache/sysds/runtime/DMLScriptException.html" title="class in org.apache.sysds.runtime">DMLScriptException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">DMLScript.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/api/DMLScript.html#executeScript-org.apache.hadoop.conf.Configuration-java.lang.String:A-">executeScript</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;args)</code>
+<div class="block">Single entry point for all public invocation alternatives (e.g.,
+ main, executeScript, JaqlUdf etc)</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><span class="typeNameLabel">DMLScript.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/api/DMLScript.html#main-java.lang.String:A-">main</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;args)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
 <div class="bottomNav"><a name="navbar.bottom">
 <!--   -->
diff --git a/docs/api/java/org/apache/sysds/runtime/controlprogram/FunctionProgramBlock.html b/docs/api/java/org/apache/sysds/runtime/controlprogram/FunctionProgramBlock.html
index 86c01b8..b6ea3a8 100644
--- a/docs/api/java/org/apache/sysds/runtime/controlprogram/FunctionProgramBlock.html
+++ b/docs/api/java/org/apache/sysds/runtime/controlprogram/FunctionProgramBlock.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -114,12 +114,13 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <dl>
 <dt>All Implemented Interfaces:</dt>
-<dd><a href="../../../../../org/apache/sysds/parser/ParseInfo.html" title="interface in org.apache.sysds.parser">ParseInfo</a></dd>
+<dd><a href="../../../../../org/apache/sysds/common/Types.FunctionBlock.html" title="interface in org.apache.sysds.common">Types.FunctionBlock</a>, <a href="../../../../../org/apache/sysds/parser/ParseInfo.html" title="interface in org.apache.sysds.parser">ParseInfo</a></dd>
 </dl>
 <hr>
 <br>
 <pre>public class <span class="typeNameLabel">FunctionProgramBlock</span>
-extends <a href="../../../../../org/apache/sysds/runtime/controlprogram/ProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">ProgramBlock</a></pre>
+extends <a href="../../../../../org/apache/sysds/runtime/controlprogram/ProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">ProgramBlock</a>
+implements <a href="../../../../../org/apache/sysds/common/Types.FunctionBlock.html" title="interface in org.apache.sysds.common">Types.FunctionBlock</a></pre>
 </li>
 </ul>
 </div>
@@ -168,9 +169,9 @@ extends <a href="../../../../../org/apache/sysds/runtime/controlprogram/ProgramB
 <th class="colOne" scope="col">Constructor and Description</th>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/controlprogram/FunctionProgramBlock.html#FunctionProgramBlock-org.apache.sysds.runtime.controlprogram.Program-java.util.ArrayList-java.util.ArrayList-">FunctionProgramBlock</a></span>(<a href="../../../../../org/apache/sysds/runtime/controlprogram/Program.html" title="class in org.apache.sysds.runtime.controlprogram">Program</a>&nbsp;prog,
-                    <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../../org/apache/sysds/parser/DataIdentifier.html" title="class in org.apache.sysds.parser">DataIdentifier</a>&gt;&nbsp;inputParams,
-                    <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../../org/apache/sysds/parser/DataIdentifier.html" title="class in org.apache.sysds.parser">DataIdentifier</a>&gt;&nbsp;outputParams)</code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/controlprogram/FunctionProgramBlock.html#FunctionProgramBlock-org.apache.sysds.runtime.controlprogram.Program-java.util.List-java.util.List-">FunctionProgramBlock</a></span>(<a href="../../../../../org/apache/sysds/runtime/controlprogram/Program.html" title="class in org.apache.sysds.runtime.controlprogram">Program</a>&nbsp;prog,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/sysds/parser/DataIdentifier.html" title="class in org.apache.sysds.parser">DataIdentifier</a>&gt;&nbsp;inputParams,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/sysds/parser/DataIdentifier.html" title="class in org.apache.sysds.parser">DataIdentifier</a>&gt;&nbsp;outputParams)</code>&nbsp;</td>
 </tr>
 </table>
 </li>
@@ -192,62 +193,66 @@ extends <a href="../../../../../org/apache/sysds/runtime/controlprogram/ProgramB
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/controlprogram/FunctionProgramBlock.html#addProgramBlock-org.apache.sysds.runtime.controlprogram.ProgramBlock-">addProgramBlock</a></span>(<a href="../../../../../org/apache/sysds/runtime/controlprogram/ProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">ProgramBlock</a>&nbsp;childBlock)</code>&nbsp;</td>
 </tr>
 <tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/sysds/common/Types.FunctionBlock.html" title="interface in org.apache.sysds.common">Types.FunctionBlock</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/controlprogram/FunctionProgramBlock.html#cloneFunctionBlock--">cloneFunctionBlock</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/controlprogram/FunctionProgramBlock.html#execute-org.apache.sysds.runtime.controlprogram.context.ExecutionContext-">execute</a></span>(<a href="../../../../../org/apache/sysds/runtime/controlprogram/context/ExecutionContext.html" title="class in org.apache.sysds.runtime.controlprogram.context">ExecutionContext</a>&nbsp;ec)</code>
 <div class="block">Executes this program block (incl recompilation if required).</div>
 </td>
 </tr>
-<tr id="i2" class="altColor">
+<tr id="i3" class="rowColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../../org/apache/sysds/runtime/controlprogram/ProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">ProgramBlock</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/controlprogram/FunctionProgramBlock.html#getChildBlocks--">getChildBlocks</a></span>()</code>
 <div class="block">Get the list of child program blocks if nested;
  otherwise this method returns null.</div>
 </td>
 </tr>
-<tr id="i3" class="rowColor">
+<tr id="i4" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/sysds/parser/DataIdentifier.html" title="class in org.apache.sysds.parser">DataIdentifier</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/controlprogram/FunctionProgramBlock.html#getInputParam-java.lang.String-">getInputParam</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>&nbsp;</td>
 </tr>
-<tr id="i4" class="altColor">
+<tr id="i5" class="rowColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/controlprogram/FunctionProgramBlock.html#getInputParamNames--">getInputParamNames</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i5" class="rowColor">
+<tr id="i6" class="altColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../../org/apache/sysds/parser/DataIdentifier.html" title="class in org.apache.sysds.parser">DataIdentifier</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/controlprogram/FunctionProgramBlock.html#getInputParams--">getInputParams</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i6" class="altColor">
+<tr id="i7" class="rowColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../../org/apache/sysds/parser/DataIdentifier.html" title="class in org.apache.sysds.parser">DataIdentifier</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/controlprogram/FunctionProgramBlock.html#getOutputParams--">getOutputParams</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i7" class="rowColor">
+<tr id="i8" class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/controlprogram/FunctionProgramBlock.html#isNested--">isNested</a></span>()</code>
 <div class="block">Indicates if the program block is nested, i.e., 
  if it contains other program blocks (e.g., loops).</div>
 </td>
 </tr>
-<tr id="i8" class="altColor">
+<tr id="i9" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/controlprogram/FunctionProgramBlock.html#isNondeterministic--">isNondeterministic</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i9" class="rowColor">
+<tr id="i10" class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/controlprogram/FunctionProgramBlock.html#isRecompileOnce--">isRecompileOnce</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i10" class="altColor">
+<tr id="i11" class="rowColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/controlprogram/FunctionProgramBlock.html#printBlockErrorLocation--">printBlockErrorLocation</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i11" class="rowColor">
+<tr id="i12" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/controlprogram/FunctionProgramBlock.html#setChildBlocks-java.util.ArrayList-">setChildBlocks</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../../org/apache/sysds/runtime/controlprogram/ProgramBlock.html" title="class in org.apache.sysds.runtime.controlpr [...]
 </tr>
-<tr id="i12" class="altColor">
+<tr id="i13" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/controlprogram/FunctionProgramBlock.html#setNondeterministic-boolean-">setNondeterministic</a></span>(boolean&nbsp;flag)</code>&nbsp;</td>
 </tr>
-<tr id="i13" class="rowColor">
+<tr id="i14" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/controlprogram/FunctionProgramBlock.html#setRecompileOnce-boolean-">setRecompileOnce</a></span>(boolean&nbsp;flag)</code>&nbsp;</td>
 </tr>
@@ -313,15 +318,15 @@ extends <a href="../../../../../org/apache/sysds/runtime/controlprogram/ProgramB
 <!--   -->
 </a>
 <h3>Constructor Detail</h3>
-<a name="FunctionProgramBlock-org.apache.sysds.runtime.controlprogram.Program-java.util.ArrayList-java.util.ArrayList-">
+<a name="FunctionProgramBlock-org.apache.sysds.runtime.controlprogram.Program-java.util.List-java.util.List-">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>FunctionProgramBlock</h4>
 <pre>public&nbsp;FunctionProgramBlock(<a href="../../../../../org/apache/sysds/runtime/controlprogram/Program.html" title="class in org.apache.sysds.runtime.controlprogram">Program</a>&nbsp;prog,
-                            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../../org/apache/sysds/parser/DataIdentifier.html" title="class in org.apache.sysds.parser">DataIdentifier</a>&gt;&nbsp;inputParams,
-                            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../../org/apache/sysds/parser/DataIdentifier.html" title="class in org.apache.sysds.parser">DataIdentifier</a>&gt;&nbsp;outputParams)</pre>
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/sysds/parser/DataIdentifier.html" title="class in org.apache.sysds.parser">DataIdentifier</a>&gt;&nbsp;inputParams,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/sysds/parser/DataIdentifier.html" title="class in org.apache.sysds.parser">DataIdentifier</a>&gt;&nbsp;outputParams)</pre>
 </li>
 </ul>
 </li>
@@ -475,6 +480,19 @@ extends <a href="../../../../../org/apache/sysds/runtime/controlprogram/ProgramB
 <pre>public&nbsp;boolean&nbsp;isNondeterministic()</pre>
 </li>
 </ul>
+<a name="cloneFunctionBlock--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>cloneFunctionBlock</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/sysds/common/Types.FunctionBlock.html" title="interface in org.apache.sysds.common">Types.FunctionBlock</a>&nbsp;cloneFunctionBlock()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/sysds/common/Types.FunctionBlock.html#cloneFunctionBlock--">cloneFunctionBlock</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/sysds/common/Types.FunctionBlock.html" title="interface in org.apache.sysds.common">Types.FunctionBlock</a></code></dd>
+</dl>
+</li>
+</ul>
 <a name="printBlockErrorLocation--">
 <!--   -->
 </a>
diff --git a/docs/api/java/org/apache/sysds/runtime/controlprogram/LocalVariableMap.html b/docs/api/java/org/apache/sysds/runtime/controlprogram/LocalVariableMap.html
index 26f47d4..b4b6756 100644
--- a/docs/api/java/org/apache/sysds/runtime/controlprogram/LocalVariableMap.html
+++ b/docs/api/java/org/apache/sysds/runtime/controlprogram/LocalVariableMap.html
@@ -220,11 +220,11 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Cloneabl
 </tr>
 <tr id="i14" class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/controlprogram/LocalVariableMap.html#removeAllIn-java.util.Set-">removeAllIn</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;blacklist) [...]
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/controlprogram/LocalVariableMap.html#removeAllIn-java.util.Set-">removeAllIn</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;excludeLis [...]
 </tr>
 <tr id="i15" class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/controlprogram/LocalVariableMap.html#removeAllNotIn-java.util.Set-">removeAllNotIn</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;blac [...]
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/controlprogram/LocalVariableMap.html#removeAllNotIn-java.util.Set-">removeAllNotIn</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;excl [...]
 </tr>
 <tr id="i16" class="altColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
@@ -379,7 +379,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Cloneabl
 <ul class="blockList">
 <li class="blockList">
 <h4>removeAllIn</h4>
-<pre>public&nbsp;void&nbsp;removeAllIn(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;blacklist)</pre>
+<pre>public&nbsp;void&nbsp;removeAllIn(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;excludeList)</pre>
 </li>
 </ul>
 <a name="removeAllNotIn-java.util.Set-">
@@ -388,7 +388,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Cloneabl
 <ul class="blockList">
 <li class="blockList">
 <h4>removeAllNotIn</h4>
-<pre>public&nbsp;void&nbsp;removeAllNotIn(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;blacklist)</pre>
+<pre>public&nbsp;void&nbsp;removeAllNotIn(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;excludeList)</pre>
 </li>
 </ul>
 <a name="hasReferences-org.apache.sysds.runtime.instructions.cp.Data-">
diff --git a/docs/api/java/org/apache/sysds/runtime/controlprogram/Program.html b/docs/api/java/org/apache/sysds/runtime/controlprogram/Program.html
index dde711a..5107f88 100644
--- a/docs/api/java/org/apache/sysds/runtime/controlprogram/Program.html
+++ b/docs/api/java/org/apache/sysds/runtime/controlprogram/Program.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -176,48 +176,81 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </tr>
 <tr id="i1" class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/controlprogram/Program.html#addProgramBlock-org.apache.sysds.runtime.controlprogram.ProgramBlock-">addProgramBlock</a></span>(<a href="../../../../../org/apache/sysds/runtime/controlprogram/ProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">ProgramBlock</a>&nbsp;pb)</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/controlprogram/Program.html#addFunctionProgramBlock-java.lang.String-java.lang.String-org.apache.sysds.runtime.controlprogram.FunctionProgramBlock-boolean-">addFunctionProgramBlock</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
+                       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;fname,
+                       <a href="../../../../../org/apache/sysds/runtime/controlprogram/FunctionProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">FunctionProgramBlock</a>&nbsp;fpb,
+                       boolean&nbsp;opt)</code>&nbsp;</td>
 </tr>
 <tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/controlprogram/Program.html#addProgramBlock-org.apache.sysds.runtime.controlprogram.ProgramBlock-">addProgramBlock</a></span>(<a href="../../../../../org/apache/sysds/runtime/controlprogram/ProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">ProgramBlock</a>&nbsp;pb)</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/controlprogram/Program.html#clone--">clone</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i3" class="rowColor">
+<tr id="i4" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/sysds/runtime/controlprogram/Program.html" title="class in org.apache.sysds.runtime.controlprogram">Program</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/controlprogram/Program.html#clone-boolean-">clone</a></span>(boolean&nbsp;deep)</code>&nbsp;</td>
 </tr>
-<tr id="i4" class="altColor">
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/controlprogram/Program.html#containsFunctionProgramBlock-java.lang.String-boolean-">containsFunctionProgramBlock</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;fkey,
+                            boolean&nbsp;opt)</code>&nbsp;</td>
+</tr>
+<tr id="i6" class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/controlprogram/Program.html#containsFunctionProgramBlock-java.lang.String-java.lang.String-">containsFunctionProgramBlock</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
                             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;fname)</code>&nbsp;</td>
 </tr>
-<tr id="i5" class="rowColor">
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/controlprogram/Program.html#containsFunctionProgramBlock-java.lang.String-java.lang.String-boolean-">containsFunctionProgramBlock</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;fname,
+                            boolean&nbsp;opt)</code>&nbsp;</td>
+</tr>
+<tr id="i8" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/controlprogram/Program.html#execute-org.apache.sysds.runtime.controlprogram.context.ExecutionContext-">execute</a></span>(<a href="../../../../../org/apache/sysds/runtime/controlprogram/context/ExecutionContext.html" title="class in org.apache.sysds.runtime.controlprogram.context">ExecutionContext</a>&nbsp;ec)</code>&nbsp;</td>
 </tr>
-<tr id="i6" class="altColor">
+<tr id="i9" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/sysds/parser/DMLProgram.html" title="class in org.apache.sysds.parser">DMLProgram</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/controlprogram/Program.html#getDMLProg--">getDMLProg</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i7" class="rowColor">
+<tr id="i10" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/sysds/runtime/controlprogram/FunctionProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">FunctionProgramBlock</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/controlprogram/Program.html#getFunctionProgramBlock-java.lang.String-boolean-">getFunctionProgramBlock</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;fkey,
+                       boolean&nbsp;opt)</code>&nbsp;</td>
+</tr>
+<tr id="i11" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/sysds/runtime/controlprogram/FunctionProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">FunctionProgramBlock</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/controlprogram/Program.html#getFunctionProgramBlock-java.lang.String-java.lang.String-">getFunctionProgramBlock</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
                        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;fname)</code>&nbsp;</td>
 </tr>
-<tr id="i8" class="altColor">
+<tr id="i12" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/sysds/runtime/controlprogram/FunctionProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">FunctionProgramBlock</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/controlprogram/Program.html#getFunctionProgramBlock-java.lang.String-java.lang.String-boolean-">getFunctionProgramBlock</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
+                       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;fname,
+                       boolean&nbsp;opt)</code>&nbsp;</td>
+</tr>
+<tr id="i13" class="rowColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/sysds/runtime/controlprogram/FunctionProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">FunctionProgramBlock</a>&gt; [...]
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/controlprogram/Program.html#getFunctionProgramBlocks--">getFunctionProgramBlocks</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i9" class="rowColor">
+<tr id="i14" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/sysds/runtime/controlprogram/FunctionProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">FunctionProgramBlock</a>&gt; [...]
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/controlprogram/Program.html#getFunctionProgramBlocks-boolean-">getFunctionProgramBlocks</a></span>(boolean&nbsp;opt)</code>&nbsp;</td>
+</tr>
+<tr id="i15" class="rowColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../../org/apache/sysds/runtime/controlprogram/ProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">ProgramBlock</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/controlprogram/Program.html#getProgramBlocks--">getProgramBlocks</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i10" class="altColor">
+<tr id="i16" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/controlprogram/Program.html#removeFunctionProgramBlock-java.lang.String-java.lang.String-">removeFunctionProgramBlock</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;fname)</code>&nbsp;</td>
 </tr>
-<tr id="i11" class="rowColor">
+<tr id="i17" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/controlprogram/Program.html#setDMLProg-org.apache.sysds.parser.DMLProgram-">setDMLProg</a></span>(<a href="../../../../../org/apache/sysds/parser/DMLProgram.html" title="class in org.apache.sysds.parser">DMLProgram</a>&nbsp;prog)</code>&nbsp;</td>
 </tr>
@@ -319,6 +352,18 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
                                     <a href="../../../../../org/apache/sysds/runtime/controlprogram/FunctionProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">FunctionProgramBlock</a>&nbsp;fpb)</pre>
 </li>
 </ul>
+<a name="addFunctionProgramBlock-java.lang.String-java.lang.String-org.apache.sysds.runtime.controlprogram.FunctionProgramBlock-boolean-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addFunctionProgramBlock</h4>
+<pre>public&nbsp;void&nbsp;addFunctionProgramBlock(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
+                                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;fname,
+                                    <a href="../../../../../org/apache/sysds/runtime/controlprogram/FunctionProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">FunctionProgramBlock</a>&nbsp;fpb,
+                                    boolean&nbsp;opt)</pre>
+</li>
+</ul>
 <a name="removeFunctionProgramBlock-java.lang.String-java.lang.String-">
 <!--   -->
 </a>
@@ -338,6 +383,15 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/sysds/runtime/controlprogram/FunctionProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">FunctionProgramBlock</a>&gt;&nbsp;getF [...]
 </li>
 </ul>
+<a name="getFunctionProgramBlocks-boolean-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFunctionProgramBlocks</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/sysds/runtime/controlprogram/FunctionProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">FunctionProgramBlock</a>&gt;&nbsp;getF [...]
+</li>
+</ul>
 <a name="containsFunctionProgramBlock-java.lang.String-java.lang.String-">
 <!--   -->
 </a>
@@ -348,6 +402,27 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
                                             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;fname)</pre>
 </li>
 </ul>
+<a name="containsFunctionProgramBlock-java.lang.String-boolean-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>containsFunctionProgramBlock</h4>
+<pre>public&nbsp;boolean&nbsp;containsFunctionProgramBlock(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;fkey,
+                                            boolean&nbsp;opt)</pre>
+</li>
+</ul>
+<a name="containsFunctionProgramBlock-java.lang.String-java.lang.String-boolean-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>containsFunctionProgramBlock</h4>
+<pre>public&nbsp;boolean&nbsp;containsFunctionProgramBlock(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
+                                            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;fname,
+                                            boolean&nbsp;opt)</pre>
+</li>
+</ul>
 <a name="getFunctionProgramBlock-java.lang.String-java.lang.String-">
 <!--   -->
 </a>
@@ -358,6 +433,27 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
                                                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;fname)</pre>
 </li>
 </ul>
+<a name="getFunctionProgramBlock-java.lang.String-boolean-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFunctionProgramBlock</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/sysds/runtime/controlprogram/FunctionProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">FunctionProgramBlock</a>&nbsp;getFunctionProgramBlock(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;fkey,
+                                                    boolean&nbsp;opt)</pre>
+</li>
+</ul>
+<a name="getFunctionProgramBlock-java.lang.String-java.lang.String-boolean-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFunctionProgramBlock</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/sysds/runtime/controlprogram/FunctionProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">FunctionProgramBlock</a>&nbsp;getFunctionProgramBlock(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
+                                                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;fname,
+                                                    boolean&nbsp;opt)</pre>
+</li>
+</ul>
 <a name="addProgramBlock-org.apache.sysds.runtime.controlprogram.ProgramBlock-">
 <!--   -->
 </a>
diff --git a/docs/api/java/org/apache/sysds/runtime/controlprogram/caching/CacheableData.html b/docs/api/java/org/apache/sysds/runtime/controlprogram/caching/CacheableData.html
index 39ba1be..8e28a73 100644
--- a/docs/api/java/org/apache/sysds/runtime/controlprogram/caching/CacheableData.html
+++ b/docs/api/java/org/apache/sysds/runtime/controlprogram/caching/CacheableData.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":9,"i4":9,"i5":9,"i6":10,"i7":9,"i8":9,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":9,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":9,"i32":9,"i33":10,"i34":9,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":6,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":10,"i50":10,"i51":10,"i52":10,"i53":10,"i54":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":9,"i4":9,"i5":9,"i6":10,"i7":9,"i8":9,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":9,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":9,"i34":9,"i35":10,"i36":9,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":6,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":10,"i50":10,"i51":10,"i52":10,"i53":10,"i54":10,"i [...]
 var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -372,49 +372,57 @@ extends <a href="../../../../../../org/apache/sysds/runtime/instructions/cp/Data
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/controlprogram/caching/CacheableData.html#getMetaData--">getMetaData</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i27" class="rowColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/controlprogram/caching/CacheableData.html#getNumColumns--">getNumColumns</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i28" class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/controlprogram/caching/CacheableData.html#getNumRows--">getNumRows</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i29" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/sysds/runtime/privacy/PrivacyConstraint.html" title="class in org.apache.sysds.runtime.privacy">PrivacyConstraint</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/controlprogram/caching/CacheableData.html#getPrivacyConstraint--">getPrivacyConstraint</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i28" class="altColor">
+<tr id="i30" class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/sysds/runtime/instructions/spark/data/RDDObject.html" title="class in org.apache.sysds.runtime.instructions.spark.data">RDDObject</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/controlprogram/caching/CacheableData.html#getRDDHandle--">getRDDHandle</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i29" class="rowColor">
+<tr id="i31" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/sysds/runtime/controlprogram/caching/CacheableData.CacheStatus.html" title="enum in org.apache.sysds.runtime.controlprogram.caching">CacheableData.CacheStatus</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/controlprogram/caching/CacheableData.html#getStatus--">getStatus</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i30" class="altColor">
+<tr id="i32" class="altColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/controlprogram/caching/CacheableData.html#getUniqueID--">getUniqueID</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i31" class="rowColor">
+<tr id="i33" class="rowColor">
 <td class="colFirst"><code>static void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/controlprogram/caching/CacheableData.html#initCaching--">initCaching</a></span>()</code>
 <div class="block">Inits caching with the default uuid of DMLScript</div>
 </td>
 </tr>
-<tr id="i32" class="altColor">
+<tr id="i34" class="altColor">
 <td class="colFirst"><code>static void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/controlprogram/caching/CacheableData.html#initCaching-java.lang.String-">initCaching</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;uuid)</code>
 <div class="block">Creates the DML-script-specific caching working dir.</div>
 </td>
 </tr>
-<tr id="i33" class="rowColor">
+<tr id="i35" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/controlprogram/caching/CacheableData.html#isCached-boolean-">isCached</a></span>(boolean&nbsp;inclCachedNoWrite)</code>&nbsp;</td>
 </tr>
-<tr id="i34" class="altColor">
+<tr id="i36" class="altColor">
 <td class="colFirst"><code>static boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/controlprogram/caching/CacheableData.html#isCachingActive--">isCachingActive</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i35" class="rowColor">
+<tr id="i37" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/controlprogram/caching/CacheableData.html#isCleanupEnabled--">isCleanupEnabled</a></span>()</code>
 <div class="block">Indicates if cleanup of the associated data object 
  is enabled on clearData().</div>
 </td>
 </tr>
-<tr id="i36" class="altColor">
+<tr id="i38" class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/controlprogram/caching/CacheableData.html#isDirty--">isDirty</a></span>()</code>
 <div class="block"><code>true</code> if the in-memory or evicted matrix may be different from
@@ -422,83 +430,83 @@ extends <a href="../../../../../../org/apache/sysds/runtime/instructions/cp/Data
  matrices are supposed to be the same.</div>
 </td>
 </tr>
-<tr id="i37" class="rowColor">
+<tr id="i39" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/controlprogram/caching/CacheableData.html#isFederated--">isFederated</a></span>()</code>
 <div class="block">Check if object is federated.</div>
 </td>
 </tr>
-<tr id="i38" class="altColor">
+<tr id="i40" class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/controlprogram/caching/CacheableData.html#isHDFSFileExists--">isHDFSFileExists</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i39" class="rowColor">
+<tr id="i41" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/controlprogram/caching/CacheableData.html#moveData-java.lang.String-java.lang.String-">moveData</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;fName,
         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;outputFormat)</code>&nbsp;</td>
 </tr>
-<tr id="i40" class="altColor">
+<tr id="i42" class="altColor">
 <td class="colFirst"><code>abstract void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/controlprogram/caching/CacheableData.html#refreshMetaData--">refreshMetaData</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i41" class="rowColor">
+<tr id="i43" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/controlprogram/caching/CacheableData.html#release--">release</a></span>()</code>
 <div class="block">Releases the shared ("read-only") or exclusive ("write") lock.</div>
 </td>
 </tr>
-<tr id="i42" class="altColor">
+<tr id="i44" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/controlprogram/caching/CacheableData.html#removeMetaData--">removeMetaData</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i43" class="rowColor">
+<tr id="i45" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/controlprogram/caching/CacheableData.html#setBroadcastHandle-org.apache.sysds.runtime.instructions.spark.data.BroadcastObject-">setBroadcastHandle</a></span>(<a href="../../../../../../org/apache/sysds/runtime/instructions/spark/data/BroadcastObject.html" title="class in org.apache.sysds.runtime.instructions.spark.data">BroadcastObject</a>&nbsp;bc)</code>&nbsp;</td>
 </tr>
-<tr id="i44" class="altColor">
+<tr id="i46" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/controlprogram/caching/CacheableData.html#setDirty-boolean-">setDirty</a></span>(boolean&nbsp;flag)</code>&nbsp;</td>
 </tr>
-<tr id="i45" class="rowColor">
+<tr id="i47" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/controlprogram/caching/CacheableData.html#setEmptyStatus--">setEmptyStatus</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i46" class="altColor">
+<tr id="i48" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/controlprogram/caching/CacheableData.html#setFedMapping-java.util.Map-">setFedMapping</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../../org/apache/sysds/runtime/controlprogram/federated/FederatedRange.html" title="class in org.apache.sysds.runtime.controlpro [...]
 <div class="block">Sets the mapping of indices ranges to federated objects.</div>
 </td>
 </tr>
-<tr id="i47" class="rowColor">
+<tr id="i49" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/controlprogram/caching/CacheableData.html#setFileFormatProperties-org.apache.sysds.runtime.io.FileFormatProperties-">setFileFormatProperties</a></span>(<a href="../../../../../../org/apache/sysds/runtime/io/FileFormatProperties.html" title="class in org.apache.sysds.runtime.io">FileFormatProperties</a>&nbsp;props)</code>&nbsp;</td>
 </tr>
-<tr id="i48" class="altColor">
+<tr id="i50" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/controlprogram/caching/CacheableData.html#setFileName-java.lang.String-">setFileName</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;file)</code>&nbsp;</td>
 </tr>
-<tr id="i49" class="rowColor">
+<tr id="i51" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/controlprogram/caching/CacheableData.html#setGPUObject-org.apache.sysds.runtime.instructions.gpu.context.GPUContext-org.apache.sysds.runtime.instructions.gpu.context.GPUObject-">setGPUObject</a></span>(<a href="../../../../../../org/apache/sysds/runtime/instructions/gpu/context/GPUContext.html" title="class in org.apache.sysds.runtime.instructions.gpu.context">GPUContext</a>&nbsp;gCtx,
             <a href="../../../../../../org/apache/sysds/runtime/instructions/gpu/context/GPUObject.html" title="class in org.apache.sysds.runtime.instructions.gpu.context">GPUObject</a>&nbsp;gObj)</code>&nbsp;</td>
 </tr>
-<tr id="i50" class="altColor">
+<tr id="i52" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/controlprogram/caching/CacheableData.html#setHDFSFileExists-boolean-">setHDFSFileExists</a></span>(boolean&nbsp;flag)</code>&nbsp;</td>
 </tr>
-<tr id="i51" class="rowColor">
+<tr id="i53" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/controlprogram/caching/CacheableData.html#setMetaData-org.apache.sysds.runtime.meta.MetaData-">setMetaData</a></span>(<a href="../../../../../../org/apache/sysds/runtime/meta/MetaData.html" title="class in org.apache.sysds.runtime.meta">MetaData</a>&nbsp;md)</code>&nbsp;</td>
 </tr>
-<tr id="i52" class="altColor">
+<tr id="i54" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/controlprogram/caching/CacheableData.html#setPrivacyConstraints-org.apache.sysds.runtime.privacy.PrivacyConstraint-">setPrivacyConstraints</a></span>(<a href="../../../../../../org/apache/sysds/runtime/privacy/PrivacyConstraint.html" title="class in org.apache.sysds.runtime.privacy">PrivacyConstraint</a>&nbsp;pc)</code>&nbsp;</td>
 </tr>
-<tr id="i53" class="rowColor">
+<tr id="i55" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/controlprogram/caching/CacheableData.html#setRDDHandle-org.apache.sysds.runtime.instructions.spark.data.RDDObject-">setRDDHandle</a></span>(<a href="../../../../../../org/apache/sysds/runtime/instructions/spark/data/RDDObject.html" title="class in org.apache.sysds.runtime.instructions.spark.data">RDDObject</a>&nbsp;rdd)</code>&nbsp;</td>
 </tr>
-<tr id="i54" class="altColor">
+<tr id="i56" class="altColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/controlprogram/caching/CacheableData.html#toString--">toString</a></span>()</code>&nbsp;</td>
 </tr>
@@ -846,6 +854,24 @@ extends <a href="../../../../../../org/apache/sysds/runtime/instructions/cp/Data
 <pre>public&nbsp;<a href="../../../../../../org/apache/sysds/runtime/meta/DataCharacteristics.html" title="class in org.apache.sysds.runtime.meta">DataCharacteristics</a>&nbsp;getDataCharacteristics()</pre>
 </li>
 </ul>
+<a name="getNumRows--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getNumRows</h4>
+<pre>public&nbsp;long&nbsp;getNumRows()</pre>
+</li>
+</ul>
+<a name="getNumColumns--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getNumColumns</h4>
+<pre>public&nbsp;long&nbsp;getNumColumns()</pre>
+</li>
+</ul>
 <a name="refreshMetaData--">
 <!--   -->
 </a>
diff --git a/docs/api/java/org/apache/sysds/runtime/controlprogram/caching/FrameObject.html b/docs/api/java/org/apache/sysds/runtime/controlprogram/caching/FrameObject.html
index 8eced62..cb6a636 100644
--- a/docs/api/java/org/apache/sysds/runtime/controlprogram/caching/FrameObject.html
+++ b/docs/api/java/org/apache/sysds/runtime/controlprogram/caching/FrameObject.html
@@ -423,6 +423,10 @@ extends <a href="../../../../../../org/apache/sysds/runtime/controlprogram/cachi
 <li class="blockList">
 <h4>getNumRows</h4>
 <pre>public&nbsp;long&nbsp;getNumRows()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../../org/apache/sysds/runtime/controlprogram/caching/CacheableData.html#getNumRows--">getNumRows</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/sysds/runtime/controlprogram/caching/CacheableData.html" title="class in org.apache.sysds.runtime.controlprogram.caching">CacheableData</a>&lt;<a href="../../../../../../org/apache/sysds/runtime/matrix/data/FrameBlock.html" title="class in org.apache.sysds.runtime.matrix.data">FrameBlock< [...]
+</dl>
 </li>
 </ul>
 <a name="getNumColumns--">
@@ -432,6 +436,10 @@ extends <a href="../../../../../../org/apache/sysds/runtime/controlprogram/cachi
 <li class="blockList">
 <h4>getNumColumns</h4>
 <pre>public&nbsp;long&nbsp;getNumColumns()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../../org/apache/sysds/runtime/controlprogram/caching/CacheableData.html#getNumColumns--">getNumColumns</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/sysds/runtime/controlprogram/caching/CacheableData.html" title="class in org.apache.sysds.runtime.controlprogram.caching">CacheableData</a>&lt;<a href="../../../../../../org/apache/sysds/runtime/matrix/data/FrameBlock.html" title="class in org.apache.sysds.runtime.matrix.data">Frame [...]
+</dl>
 </li>
 </ul>
 <a name="acquireRead--">
diff --git a/docs/api/java/org/apache/sysds/runtime/controlprogram/caching/MatrixObject.html b/docs/api/java/org/apache/sysds/runtime/controlprogram/caching/MatrixObject.html
index 3e5f4be..f0abf4f 100644
--- a/docs/api/java/org/apache/sysds/runtime/controlprogram/caching/MatrixObject.html
+++ b/docs/api/java/org/apache/sysds/runtime/controlprogram/caching/MatrixObject.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -243,85 +243,77 @@ extends <a href="../../../../../../org/apache/sysds/runtime/controlprogram/cachi
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/controlprogram/caching/MatrixObject.html#getNnz--">getNnz</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i3" class="rowColor">
-<td class="colFirst"><code>long</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/controlprogram/caching/MatrixObject.html#getNumColumns--">getNumColumns</a></span>()</code>&nbsp;</td>
-</tr>
-<tr id="i4" class="altColor">
-<td class="colFirst"><code>long</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/controlprogram/caching/MatrixObject.html#getNumRows--">getNumRows</a></span>()</code>&nbsp;</td>
-</tr>
-<tr id="i5" class="rowColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/controlprogram/caching/MatrixObject.html#getPartitionFileName-org.apache.sysds.runtime.util.IndexRange-int-">getPartitionFileName</a></span>(<a href="../../../../../../org/apache/sysds/runtime/util/IndexRange.html" title="class in org.apache.sysds.runtime.util">IndexRange</a>&nbsp;pred,
                     int&nbsp;blen)</code>&nbsp;</td>
 </tr>
-<tr id="i6" class="altColor">
+<tr id="i4" class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/sysds/runtime/controlprogram/ParForProgramBlock.PDataPartitionFormat.html" title="enum in org.apache.sysds.runtime.controlprogram">ParForProgramBlock.PDataPartitionFormat</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/controlprogram/caching/MatrixObject.html#getPartitionFormat--">getPartitionFormat</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i7" class="rowColor">
+<tr id="i5" class="rowColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/controlprogram/caching/MatrixObject.html#getPartitionSize--">getPartitionSize</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i8" class="altColor">
+<tr id="i6" class="altColor">
 <td class="colFirst"><code>double</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/controlprogram/caching/MatrixObject.html#getSparsity--">getSparsity</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i9" class="rowColor">
+<tr id="i7" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/sysds/runtime/controlprogram/caching/MatrixObject.UpdateType.html" title="enum in org.apache.sysds.runtime.controlprogram.caching">MatrixObject.UpdateType</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/controlprogram/caching/MatrixObject.html#getUpdateType--">getUpdateType</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i10" class="altColor">
+<tr id="i8" class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/controlprogram/caching/MatrixObject.html#isDiag--">isDiag</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i11" class="rowColor">
+<tr id="i9" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/controlprogram/caching/MatrixObject.html#isMarked--">isMarked</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i12" class="altColor">
+<tr id="i10" class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/controlprogram/caching/MatrixObject.html#isPartitioned--">isPartitioned</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i13" class="rowColor">
+<tr id="i11" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/sysds/runtime/matrix/data/MatrixBlock.html" title="class in org.apache.sysds.runtime.matrix.data">MatrixBlock</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/controlprogram/caching/MatrixObject.html#readMatrixPartition-org.apache.sysds.runtime.util.IndexRange-">readMatrixPartition</a></span>(<a href="../../../../../../org/apache/sysds/runtime/util/IndexRange.html" title="class in org.apache.sysds.runtime.util">IndexRange</a>&nbsp;pred)</code>
 <div class="block">NOTE: for reading matrix partitions, we could cache (in its real sense) the read block
  with soft references (no need for eviction, as partitioning only applied for read-only matrices).</div>
 </td>
 </tr>
-<tr id="i14" class="altColor">
+<tr id="i12" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/controlprogram/caching/MatrixObject.html#refreshMetaData--">refreshMetaData</a></span>()</code>
 <div class="block">Make the matrix metadata consistent with the in-memory matrix data</div>
 </td>
 </tr>
-<tr id="i15" class="rowColor">
+<tr id="i13" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/controlprogram/caching/MatrixObject.html#setDiag-boolean-">setDiag</a></span>(boolean&nbsp;diag)</code>&nbsp;</td>
 </tr>
-<tr id="i16" class="altColor">
+<tr id="i14" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/controlprogram/caching/MatrixObject.html#setInMemoryPartition-org.apache.sysds.runtime.matrix.data.MatrixBlock-">setInMemoryPartition</a></span>(<a href="../../../../../../org/apache/sysds/runtime/matrix/data/MatrixBlock.html" title="class in org.apache.sysds.runtime.matrix.data">MatrixBlock</a>&nbsp;block)</code>&nbsp;</td>
 </tr>
-<tr id="i17" class="rowColor">
+<tr id="i15" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/controlprogram/caching/MatrixObject.html#setMarkForLinCache-boolean-">setMarkForLinCache</a></span>(boolean&nbsp;mark)</code>&nbsp;</td>
 </tr>
-<tr id="i18" class="altColor">
+<tr id="i16" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/controlprogram/caching/MatrixObject.html#setPartitioned-org.apache.sysds.runtime.controlprogram.ParForProgramBlock.PDataPartitionFormat-int-">setPartitioned</a></span>(<a href="../../../../../../org/apache/sysds/runtime/controlprogram/ParForProgramBlock.PDataPartitionFormat.html" title="enum in org.apache.sysds.runtime.controlprogram">ParForProgramBlock.PDataPartitionFormat</a>&nbsp [...]
               int&nbsp;n)</code>&nbsp;</td>
 </tr>
-<tr id="i19" class="rowColor">
+<tr id="i17" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/controlprogram/caching/MatrixObject.html#setUpdateType-org.apache.sysds.runtime.controlprogram.caching.MatrixObject.UpdateType-">setUpdateType</a></span>(<a href="../../../../../../org/apache/sysds/runtime/controlprogram/caching/MatrixObject.UpdateType.html" title="enum in org.apache.sysds.runtime.controlprogram.caching">MatrixObject.UpdateType</a>&nbsp;flag)</code>&nbsp;</td>
 </tr>
-<tr id="i20" class="altColor">
+<tr id="i18" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/controlprogram/caching/MatrixObject.html#unsetPartitioned--">unsetPartitioned</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i21" class="rowColor">
+<tr id="i19" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/controlprogram/caching/MatrixObject.html#updateDataCharacteristics-org.apache.sysds.runtime.meta.DataCharacteristics-">updateDataCharacteristics</a></span>(<a href="../../../../../../org/apache/sysds/runtime/meta/DataCharacteristics.html" title="class in org.apache.sysds.runtime.meta">DataCharacteristics</a>&nbsp;dc)</code>&nbsp;</td>
 </tr>
@@ -331,7 +323,7 @@ extends <a href="../../../../../../org/apache/sysds/runtime/controlprogram/cachi
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.sysds.runtime.controlprogram.caching.<a href="../../../../../../org/apache/sysds/runtime/controlprogram/caching/CacheableData.html" title="class in org.apache.sysds.runtime.controlprogram.caching">CacheableData</a></h3>
-<code><a href="../../../../../../org/apache/sysds/runtime/controlprogram/caching/CacheableData.html#acquireModify-T-">acquireModify</a>, <a href="../../../../../../org/apache/sysds/runtime/controlprogram/caching/CacheableData.html#acquireReadAndRelease--">acquireReadAndRelease</a>, <a href="../../../../../../org/apache/sysds/runtime/controlprogram/caching/CacheableData.html#addBroadcastSize-long-">addBroadcastSize</a>, <a href="../../../../../../org/apache/sysds/runtime/controlprogram/ca [...]
+<code><a href="../../../../../../org/apache/sysds/runtime/controlprogram/caching/CacheableData.html#acquireModify-T-">acquireModify</a>, <a href="../../../../../../org/apache/sysds/runtime/controlprogram/caching/CacheableData.html#acquireReadAndRelease--">acquireReadAndRelease</a>, <a href="../../../../../../org/apache/sysds/runtime/controlprogram/caching/CacheableData.html#addBroadcastSize-long-">addBroadcastSize</a>, <a href="../../../../../../org/apache/sysds/runtime/controlprogram/ca [...]
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.sysds.runtime.instructions.cp.Data">
@@ -498,24 +490,6 @@ extends <a href="../../../../../../org/apache/sysds/runtime/controlprogram/cachi
 </dl>
 </li>
 </ul>
-<a name="getNumRows--">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>getNumRows</h4>
-<pre>public&nbsp;long&nbsp;getNumRows()</pre>
-</li>
-</ul>
-<a name="getNumColumns--">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>getNumColumns</h4>
-<pre>public&nbsp;long&nbsp;getNumColumns()</pre>
-</li>
-</ul>
 <a name="getBlocksize--">
 <!--   -->
 </a>
diff --git a/docs/api/java/org/apache/sysds/runtime/controlprogram/caching/TensorObject.html b/docs/api/java/org/apache/sysds/runtime/controlprogram/caching/TensorObject.html
index eb724f7..cde41a3 100644
--- a/docs/api/java/org/apache/sysds/runtime/controlprogram/caching/TensorObject.html
+++ b/docs/api/java/org/apache/sysds/runtime/controlprogram/caching/TensorObject.html
@@ -330,6 +330,10 @@ extends <a href="../../../../../../org/apache/sysds/runtime/controlprogram/cachi
 <li class="blockList">
 <h4>getNumRows</h4>
 <pre>public&nbsp;long&nbsp;getNumRows()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../../org/apache/sysds/runtime/controlprogram/caching/CacheableData.html#getNumRows--">getNumRows</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/sysds/runtime/controlprogram/caching/CacheableData.html" title="class in org.apache.sysds.runtime.controlprogram.caching">CacheableData</a>&lt;<a href="../../../../../../org/apache/sysds/runtime/data/TensorBlock.html" title="class in org.apache.sysds.runtime.data">TensorBlock</a>&gt;</code></dd>
+</dl>
 </li>
 </ul>
 <a name="getNumColumns--">
@@ -339,6 +343,10 @@ extends <a href="../../../../../../org/apache/sysds/runtime/controlprogram/cachi
 <li class="blockList">
 <h4>getNumColumns</h4>
 <pre>public&nbsp;long&nbsp;getNumColumns()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../../org/apache/sysds/runtime/controlprogram/caching/CacheableData.html#getNumColumns--">getNumColumns</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/sysds/runtime/controlprogram/caching/CacheableData.html" title="class in org.apache.sysds.runtime.controlprogram.caching">CacheableData</a>&lt;<a href="../../../../../../org/apache/sysds/runtime/data/TensorBlock.html" title="class in org.apache.sysds.runtime.data">TensorBlock</a>&gt [...]
+</dl>
 </li>
 </ul>
 <a name="getNnz--">
diff --git a/docs/api/java/org/apache/sysds/runtime/controlprogram/caching/class-use/CacheBlock.html b/docs/api/java/org/apache/sysds/runtime/controlprogram/caching/class-use/CacheBlock.html
index e6cd1e9..773bd12 100644
--- a/docs/api/java/org/apache/sysds/runtime/controlprogram/caching/class-use/CacheBlock.html
+++ b/docs/api/java/org/apache/sysds/runtime/controlprogram/caching/class-use/CacheBlock.html
@@ -311,7 +311,7 @@
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">CachedReuseVariables.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/CachedReuseVariables.html#reuseVariables-long-org.apache.sysds.runtime.controlprogram.LocalVariableMap-java.util.Collection-java.util.Map-boolean-">reuseVariables</a></span>(long&nbsp;pfid,
               <a href="../../../../../../../org/apache/sysds/runtime/controlprogram/LocalVariableMap.html" title="class in org.apache.sysds.runtime.controlprogram">LocalVariableMap</a>&nbsp;vars,
-              <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;blacklist,
+              <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;excludeList,
               <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,org.apache.spark.broadcast.Broadcast&lt;<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/caching/CacheBlock.html" title="interface in org.apache.sysds.runtime.controlprogram.ca [...]
               boolean&nbsp;cleanCache)</code>&nbsp;</td>
 </tr>
diff --git a/docs/api/java/org/apache/sysds/runtime/controlprogram/class-use/ForProgramBlock.html b/docs/api/java/org/apache/sysds/runtime/controlprogram/class-use/ForProgramBlock.html
index 0e34971..0e43ad0 100644
--- a/docs/api/java/org/apache/sysds/runtime/controlprogram/class-use/ForProgramBlock.html
+++ b/docs/api/java/org/apache/sysds/runtime/controlprogram/class-use/ForProgramBlock.html
@@ -158,12 +158,12 @@
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../../org/apache/sysds/runtime/controlprogram/ForProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">ForProgramBlock</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ProgramConverter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#createDeepCopyForProgramBlock-org.apache.sysds.runtime.controlprogram.ForProgramBlock-long-int-org.apache.sysds.runtime.controlprogram.Program-java.util.HashSet-java.util.HashSet-boolean-boolean-">createDeepCopyForProgramBlock</a></span>(<a href="../../../../../../org/apache/sysds/runtime/controlprogram/F [...]
+<td class="colLast"><span class="typeNameLabel">ProgramConverter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#createDeepCopyForProgramBlock-org.apache.sysds.runtime.controlprogram.ForProgramBlock-long-int-org.apache.sysds.runtime.controlprogram.Program-java.util.Set-java.util.Set-boolean-boolean-">createDeepCopyForProgramBlock</a></span>(<a href="../../../../../../org/apache/sysds/runtime/controlprogram/ForProgra [...]
                              long&nbsp;pid,
                              int&nbsp;IDPrefix,
                              <a href="../../../../../../org/apache/sysds/runtime/controlprogram/Program.html" title="class in org.apache.sysds.runtime.controlprogram">Program</a>&nbsp;prog,
-                             <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnStack,
-                             <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnCreated,
+                             <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnStack,
+                             <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnCreated,
                              boolean&nbsp;plain,
                              boolean&nbsp;forceDeepCopy)</code>&nbsp;</td>
 </tr>
@@ -183,12 +183,12 @@
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../../org/apache/sysds/runtime/controlprogram/ForProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">ForProgramBlock</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ProgramConverter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#createDeepCopyForProgramBlock-org.apache.sysds.runtime.controlprogram.ForProgramBlock-long-int-org.apache.sysds.runtime.controlprogram.Program-java.util.HashSet-java.util.HashSet-boolean-boolean-">createDeepCopyForProgramBlock</a></span>(<a href="../../../../../../org/apache/sysds/runtime/controlprogram/F [...]
+<td class="colLast"><span class="typeNameLabel">ProgramConverter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#createDeepCopyForProgramBlock-org.apache.sysds.runtime.controlprogram.ForProgramBlock-long-int-org.apache.sysds.runtime.controlprogram.Program-java.util.Set-java.util.Set-boolean-boolean-">createDeepCopyForProgramBlock</a></span>(<a href="../../../../../../org/apache/sysds/runtime/controlprogram/ForProgra [...]
                              long&nbsp;pid,
                              int&nbsp;IDPrefix,
                              <a href="../../../../../../org/apache/sysds/runtime/controlprogram/Program.html" title="class in org.apache.sysds.runtime.controlprogram">Program</a>&nbsp;prog,
-                             <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnStack,
-                             <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnCreated,
+                             <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnStack,
+                             <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnCreated,
                              boolean&nbsp;plain,
                              boolean&nbsp;forceDeepCopy)</code>&nbsp;</td>
 </tr>
diff --git a/docs/api/java/org/apache/sysds/runtime/controlprogram/class-use/FunctionProgramBlock.html b/docs/api/java/org/apache/sysds/runtime/controlprogram/class-use/FunctionProgramBlock.html
index 08cfcf2..924ae60 100644
--- a/docs/api/java/org/apache/sysds/runtime/controlprogram/class-use/FunctionProgramBlock.html
+++ b/docs/api/java/org/apache/sysds/runtime/controlprogram/class-use/FunctionProgramBlock.html
@@ -108,9 +108,20 @@
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/sysds/runtime/controlprogram/FunctionProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">FunctionProgramBlock</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Program.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/controlprogram/Program.html#getFunctionProgramBlock-java.lang.String-boolean-">getFunctionProgramBlock</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;fkey,
+                       boolean&nbsp;opt)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/sysds/runtime/controlprogram/FunctionProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">FunctionProgramBlock</a></code></td>
 <td class="colLast"><span class="typeNameLabel">Program.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/controlprogram/Program.html#getFunctionProgramBlock-java.lang.String-java.lang.String-">getFunctionProgramBlock</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
                        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;fname)</code>&nbsp;</td>
 </tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/sysds/runtime/controlprogram/FunctionProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">FunctionProgramBlock</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Program.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/controlprogram/Program.html#getFunctionProgramBlock-java.lang.String-java.lang.String-boolean-">getFunctionProgramBlock</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
+                       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;fname,
+                       boolean&nbsp;opt)</code>&nbsp;</td>
+</tr>
 </tbody>
 </table>
 <table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
@@ -124,6 +135,10 @@
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../../org/apache/sysds/runtime/controlprogram/FunctionProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">FunctionProgramBlock</a>& [...]
 <td class="colLast"><span class="typeNameLabel">Program.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/controlprogram/Program.html#getFunctionProgramBlocks--">getFunctionProgramBlocks</a></span>()</code>&nbsp;</td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../../org/apache/sysds/runtime/controlprogram/FunctionProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">FunctionProgramBlock</a>& [...]
+<td class="colLast"><span class="typeNameLabel">Program.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/controlprogram/Program.html#getFunctionProgramBlocks-boolean-">getFunctionProgramBlocks</a></span>(boolean&nbsp;opt)</code>&nbsp;</td>
+</tr>
 </tbody>
 </table>
 <table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
@@ -139,6 +154,13 @@
                        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;fname,
                        <a href="../../../../../../org/apache/sysds/runtime/controlprogram/FunctionProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">FunctionProgramBlock</a>&nbsp;fpb)</code>&nbsp;</td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">Program.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/controlprogram/Program.html#addFunctionProgramBlock-java.lang.String-java.lang.String-org.apache.sysds.runtime.controlprogram.FunctionProgramBlock-boolean-">addFunctionProgramBlock</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
+                       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;fname,
+                       <a href="../../../../../../org/apache/sysds/runtime/controlprogram/FunctionProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">FunctionProgramBlock</a>&nbsp;fpb,
+                       boolean&nbsp;opt)</code>&nbsp;</td>
+</tr>
 </tbody>
 </table>
 </li>
@@ -155,9 +177,9 @@
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../../org/apache/sysds/runtime/controlprogram/FunctionProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">FunctionProgramBlock</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ProgramConverter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#createDeepCopyFunctionProgramBlock-org.apache.sysds.runtime.controlprogram.FunctionProgramBlock-java.util.HashSet-java.util.HashSet-">createDeepCopyFunctionProgramBlock</a></span>(<a href="../../../../../../org/apache/sysds/runtime/controlprogram/FunctionProgramBlock.html" title="class in org.apache.sysds [...]
-                                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnStack,
-                                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnCreated)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">ProgramConverter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#createDeepCopyFunctionProgramBlock-org.apache.sysds.runtime.controlprogram.FunctionProgramBlock-java.util.Set-java.util.Set-">createDeepCopyFunctionProgramBlock</a></span>(<a href="../../../../../../org/apache/sysds/runtime/controlprogram/FunctionProgramBlock.html" title="class in org.apache.sysds.runtime [...]
+                                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnStack,
+                                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnCreated)</code>&nbsp;</td>
 </tr>
 </tbody>
 </table>
@@ -170,9 +192,9 @@
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../../org/apache/sysds/runtime/controlprogram/FunctionProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">FunctionProgramBlock</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ProgramConverter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#createDeepCopyFunctionProgramBlock-org.apache.sysds.runtime.controlprogram.FunctionProgramBlock-java.util.HashSet-java.util.HashSet-">createDeepCopyFunctionProgramBlock</a></span>(<a href="../../../../../../org/apache/sysds/runtime/controlprogram/FunctionProgramBlock.html" title="class in org.apache.sysds [...]
-                                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnStack,
-                                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnCreated)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">ProgramConverter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#createDeepCopyFunctionProgramBlock-org.apache.sysds.runtime.controlprogram.FunctionProgramBlock-java.util.Set-java.util.Set-">createDeepCopyFunctionProgramBlock</a></span>(<a href="../../../../../../org/apache/sysds/runtime/controlprogram/FunctionProgramBlock.html" title="class in org.apache.sysds.runtime [...]
+                                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnStack,
+                                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnCreated)</code>&nbsp;</td>
 </tr>
 </tbody>
 </table>
diff --git a/docs/api/java/org/apache/sysds/runtime/controlprogram/class-use/IfProgramBlock.html b/docs/api/java/org/apache/sysds/runtime/controlprogram/class-use/IfProgramBlock.html
index 428546b..7c30430 100644
--- a/docs/api/java/org/apache/sysds/runtime/controlprogram/class-use/IfProgramBlock.html
+++ b/docs/api/java/org/apache/sysds/runtime/controlprogram/class-use/IfProgramBlock.html
@@ -128,12 +128,12 @@
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../../org/apache/sysds/runtime/controlprogram/IfProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">IfProgramBlock</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ProgramConverter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#createDeepCopyIfProgramBlock-org.apache.sysds.runtime.controlprogram.IfProgramBlock-long-int-org.apache.sysds.runtime.controlprogram.Program-java.util.HashSet-java.util.HashSet-boolean-boolean-">createDeepCopyIfProgramBlock</a></span>(<a href="../../../../../../org/apache/sysds/runtime/controlprogram/IfPr [...]
+<td class="colLast"><span class="typeNameLabel">ProgramConverter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#createDeepCopyIfProgramBlock-org.apache.sysds.runtime.controlprogram.IfProgramBlock-long-int-org.apache.sysds.runtime.controlprogram.Program-java.util.Set-java.util.Set-boolean-boolean-">createDeepCopyIfProgramBlock</a></span>(<a href="../../../../../../org/apache/sysds/runtime/controlprogram/IfProgramBlo [...]
                             long&nbsp;pid,
                             int&nbsp;IDPrefix,
                             <a href="../../../../../../org/apache/sysds/runtime/controlprogram/Program.html" title="class in org.apache.sysds.runtime.controlprogram">Program</a>&nbsp;prog,
-                            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnStack,
-                            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnCreated,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnStack,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnCreated,
                             boolean&nbsp;plain,
                             boolean&nbsp;forceDeepCopy)</code>&nbsp;</td>
 </tr>
@@ -148,12 +148,12 @@
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../../org/apache/sysds/runtime/controlprogram/IfProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">IfProgramBlock</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ProgramConverter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#createDeepCopyIfProgramBlock-org.apache.sysds.runtime.controlprogram.IfProgramBlock-long-int-org.apache.sysds.runtime.controlprogram.Program-java.util.HashSet-java.util.HashSet-boolean-boolean-">createDeepCopyIfProgramBlock</a></span>(<a href="../../../../../../org/apache/sysds/runtime/controlprogram/IfPr [...]
+<td class="colLast"><span class="typeNameLabel">ProgramConverter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#createDeepCopyIfProgramBlock-org.apache.sysds.runtime.controlprogram.IfProgramBlock-long-int-org.apache.sysds.runtime.controlprogram.Program-java.util.Set-java.util.Set-boolean-boolean-">createDeepCopyIfProgramBlock</a></span>(<a href="../../../../../../org/apache/sysds/runtime/controlprogram/IfProgramBlo [...]
                             long&nbsp;pid,
                             int&nbsp;IDPrefix,
                             <a href="../../../../../../org/apache/sysds/runtime/controlprogram/Program.html" title="class in org.apache.sysds.runtime.controlprogram">Program</a>&nbsp;prog,
-                            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnStack,
-                            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnCreated,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnStack,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnCreated,
                             boolean&nbsp;plain,
                             boolean&nbsp;forceDeepCopy)</code>&nbsp;</td>
 </tr>
diff --git a/docs/api/java/org/apache/sysds/runtime/controlprogram/class-use/LocalVariableMap.html b/docs/api/java/org/apache/sysds/runtime/controlprogram/class-use/LocalVariableMap.html
index a4d6b76..73434ad 100644
--- a/docs/api/java/org/apache/sysds/runtime/controlprogram/class-use/LocalVariableMap.html
+++ b/docs/api/java/org/apache/sysds/runtime/controlprogram/class-use/LocalVariableMap.html
@@ -670,7 +670,7 @@
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">CachedReuseVariables.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/controlprogram/parfor/CachedReuseVariables.html#reuseVariables-long-org.apache.sysds.runtime.controlprogram.LocalVariableMap-java.util.Collection-java.util.Map-boolean-">reuseVariables</a></span>(long&nbsp;pfid,
               <a href="../../../../../../org/apache/sysds/runtime/controlprogram/LocalVariableMap.html" title="class in org.apache.sysds.runtime.controlprogram">LocalVariableMap</a>&nbsp;vars,
-              <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;blacklist,
+              <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;excludeList,
               <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,org.apache.spark.broadcast.Broadcast&lt;<a href="../../../../../../org/apache/sysds/runtime/controlprogram/caching/CacheBlock.html" title="interface in org.apache.sysds.runtime.controlprogram.cachi [...]
               boolean&nbsp;cleanCache)</code>&nbsp;</td>
 </tr>
diff --git a/docs/api/java/org/apache/sysds/runtime/controlprogram/class-use/ParForProgramBlock.html b/docs/api/java/org/apache/sysds/runtime/controlprogram/class-use/ParForProgramBlock.html
index c114c0a..1c25cfd 100644
--- a/docs/api/java/org/apache/sysds/runtime/controlprogram/class-use/ParForProgramBlock.html
+++ b/docs/api/java/org/apache/sysds/runtime/controlprogram/class-use/ParForProgramBlock.html
@@ -181,12 +181,12 @@
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../../org/apache/sysds/runtime/controlprogram/ParForProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">ParForProgramBlock</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ProgramConverter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#createDeepCopyParForProgramBlock-org.apache.sysds.runtime.controlprogram.ParForProgramBlock-long-int-org.apache.sysds.runtime.controlprogram.Program-java.util.HashSet-java.util.HashSet-boolean-boolean-">createDeepCopyParForProgramBlock</a></span>(<a href="../../../../../../org/apache/sysds/runtime/control [...]
+<td class="colLast"><span class="typeNameLabel">ProgramConverter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#createDeepCopyParForProgramBlock-org.apache.sysds.runtime.controlprogram.ParForProgramBlock-long-int-org.apache.sysds.runtime.controlprogram.Program-java.util.Set-java.util.Set-boolean-boolean-">createDeepCopyParForProgramBlock</a></span>(<a href="../../../../../../org/apache/sysds/runtime/controlprogram/ [...]
                                 long&nbsp;pid,
                                 int&nbsp;IDPrefix,
                                 <a href="../../../../../../org/apache/sysds/runtime/controlprogram/Program.html" title="class in org.apache.sysds.runtime.controlprogram">Program</a>&nbsp;prog,
-                                <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnStack,
-                                <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnCreated,
+                                <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnStack,
+                                <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnCreated,
                                 boolean&nbsp;plain,
                                 boolean&nbsp;forceDeepCopy)</code>&nbsp;</td>
 </tr>
@@ -201,12 +201,12 @@
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../../org/apache/sysds/runtime/controlprogram/ParForProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">ParForProgramBlock</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ProgramConverter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#createDeepCopyParForProgramBlock-org.apache.sysds.runtime.controlprogram.ParForProgramBlock-long-int-org.apache.sysds.runtime.controlprogram.Program-java.util.HashSet-java.util.HashSet-boolean-boolean-">createDeepCopyParForProgramBlock</a></span>(<a href="../../../../../../org/apache/sysds/runtime/control [...]
+<td class="colLast"><span class="typeNameLabel">ProgramConverter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#createDeepCopyParForProgramBlock-org.apache.sysds.runtime.controlprogram.ParForProgramBlock-long-int-org.apache.sysds.runtime.controlprogram.Program-java.util.Set-java.util.Set-boolean-boolean-">createDeepCopyParForProgramBlock</a></span>(<a href="../../../../../../org/apache/sysds/runtime/controlprogram/ [...]
                                 long&nbsp;pid,
                                 int&nbsp;IDPrefix,
                                 <a href="../../../../../../org/apache/sysds/runtime/controlprogram/Program.html" title="class in org.apache.sysds.runtime.controlprogram">Program</a>&nbsp;prog,
-                                <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnStack,
-                                <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnCreated,
+                                <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnStack,
+                                <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnCreated,
                                 boolean&nbsp;plain,
                                 boolean&nbsp;forceDeepCopy)</code>&nbsp;</td>
 </tr>
diff --git a/docs/api/java/org/apache/sysds/runtime/controlprogram/class-use/Program.html b/docs/api/java/org/apache/sysds/runtime/controlprogram/class-use/Program.html
index 5b060c6..966a85f 100644
--- a/docs/api/java/org/apache/sysds/runtime/controlprogram/class-use/Program.html
+++ b/docs/api/java/org/apache/sysds/runtime/controlprogram/class-use/Program.html
@@ -340,9 +340,9 @@
                <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;iterPredVar)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/controlprogram/FunctionProgramBlock.html#FunctionProgramBlock-org.apache.sysds.runtime.controlprogram.Program-java.util.ArrayList-java.util.ArrayList-">FunctionProgramBlock</a></span>(<a href="../../../../../../org/apache/sysds/runtime/controlprogram/Program.html" title="class in org.apache.sysds.runtime.controlprogram">Program</a>&nbsp;prog,
-                    <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../../../org/apache/sysds/parser/DataIdentifier.html" title="class in org.apache.sysds.parser">DataIdentifier</a>&gt;&nbsp;inputParams,
-                    <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../../../org/apache/sysds/parser/DataIdentifier.html" title="class in org.apache.sysds.parser">DataIdentifier</a>&gt;&nbsp;outputParams)</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/controlprogram/FunctionProgramBlock.html#FunctionProgramBlock-org.apache.sysds.runtime.controlprogram.Program-java.util.List-java.util.List-">FunctionProgramBlock</a></span>(<a href="../../../../../../org/apache/sysds/runtime/controlprogram/Program.html" title="class in org.apache.sysds.runtime.controlprogram">Program</a>&nbsp;prog,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/sysds/parser/DataIdentifier.html" title="class in org.apache.sysds.parser">DataIdentifier</a>&gt;&nbsp;inputParams,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/sysds/parser/DataIdentifier.html" title="class in org.apache.sysds.parser">DataIdentifier</a>&gt;&nbsp;outputParams)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/controlprogram/IfProgramBlock.html#IfProgramBlock-org.apache.sysds.runtime.controlprogram.Program-java.util.ArrayList-">IfProgramBlock</a></span>(<a href="../../../../../../org/apache/sysds/runtime/controlprogram/Program.html" title="class in org.apache.sysds.runtime.controlprogram">Program</a>&nbsp;prog,
@@ -475,47 +475,47 @@
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../../org/apache/sysds/runtime/controlprogram/ForProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">ForProgramBlock</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ProgramConverter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#createDeepCopyForProgramBlock-org.apache.sysds.runtime.controlprogram.ForProgramBlock-long-int-org.apache.sysds.runtime.controlprogram.Program-java.util.HashSet-java.util.HashSet-boolean-boolean-">createDeepCopyForProgramBlock</a></span>(<a href="../../../../../../org/apache/sysds/runtime/controlprogram/F [...]
+<td class="colLast"><span class="typeNameLabel">ProgramConverter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#createDeepCopyForProgramBlock-org.apache.sysds.runtime.controlprogram.ForProgramBlock-long-int-org.apache.sysds.runtime.controlprogram.Program-java.util.Set-java.util.Set-boolean-boolean-">createDeepCopyForProgramBlock</a></span>(<a href="../../../../../../org/apache/sysds/runtime/controlprogram/ForProgra [...]
                              long&nbsp;pid,
                              int&nbsp;IDPrefix,
                              <a href="../../../../../../org/apache/sysds/runtime/controlprogram/Program.html" title="class in org.apache.sysds.runtime.controlprogram">Program</a>&nbsp;prog,
-                             <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnStack,
-                             <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnCreated,
+                             <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnStack,
+                             <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnCreated,
                              boolean&nbsp;plain,
                              boolean&nbsp;forceDeepCopy)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static void</code></td>
-<td class="colLast"><span class="typeNameLabel">ProgramConverter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#createDeepCopyFunctionProgramBlock-java.lang.String-java.lang.String-long-int-org.apache.sysds.runtime.controlprogram.Program-java.util.HashSet-java.util.HashSet-boolean-">createDeepCopyFunctionProgramBlock</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=tru [...]
+<td class="colLast"><span class="typeNameLabel">ProgramConverter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#createDeepCopyFunctionProgramBlock-java.lang.String-java.lang.String-long-int-org.apache.sysds.runtime.controlprogram.Program-java.util.Set-java.util.Set-boolean-">createDeepCopyFunctionProgramBlock</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title [...]
                                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;oldName,
                                   long&nbsp;pid,
                                   int&nbsp;IDPrefix,
                                   <a href="../../../../../../org/apache/sysds/runtime/controlprogram/Program.html" title="class in org.apache.sysds.runtime.controlprogram">Program</a>&nbsp;prog,
-                                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnStack,
-                                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnCreated,
+                                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnStack,
+                                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnCreated,
                                   boolean&nbsp;plain)</code>
 <div class="block">This creates a deep copy of a function program block.</div>
 </td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../../org/apache/sysds/runtime/controlprogram/IfProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">IfProgramBlock</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ProgramConverter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#createDeepCopyIfProgramBlock-org.apache.sysds.runtime.controlprogram.IfProgramBlock-long-int-org.apache.sysds.runtime.controlprogram.Program-java.util.HashSet-java.util.HashSet-boolean-boolean-">createDeepCopyIfProgramBlock</a></span>(<a href="../../../../../../org/apache/sysds/runtime/controlprogram/IfPr [...]
+<td class="colLast"><span class="typeNameLabel">ProgramConverter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#createDeepCopyIfProgramBlock-org.apache.sysds.runtime.controlprogram.IfProgramBlock-long-int-org.apache.sysds.runtime.controlprogram.Program-java.util.Set-java.util.Set-boolean-boolean-">createDeepCopyIfProgramBlock</a></span>(<a href="../../../../../../org/apache/sysds/runtime/controlprogram/IfProgramBlo [...]
                             long&nbsp;pid,
                             int&nbsp;IDPrefix,
                             <a href="../../../../../../org/apache/sysds/runtime/controlprogram/Program.html" title="class in org.apache.sysds.runtime.controlprogram">Program</a>&nbsp;prog,
-                            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnStack,
-                            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnCreated,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnStack,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnCreated,
                             boolean&nbsp;plain,
                             boolean&nbsp;forceDeepCopy)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../../../org/apache/sysds/runtime/instructions/Instruction.html" title="class in org.apache.sysds.runtime.instructions">Instruction</a>&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">ProgramConverter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#createDeepCopyInstructionSet-java.util.ArrayList-long-int-org.apache.sysds.runtime.controlprogram.Program-java.util.HashSet-java.util.HashSet-boolean-boolean-">createDeepCopyInstructionSet</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class [...]
+<td class="colLast"><span class="typeNameLabel">ProgramConverter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#createDeepCopyInstructionSet-java.util.ArrayList-long-int-org.apache.sysds.runtime.controlprogram.Program-java.util.Set-java.util.Set-boolean-boolean-">createDeepCopyInstructionSet</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or inte [...]
                             long&nbsp;pid,
                             int&nbsp;IDPrefix,
                             <a href="../../../../../../org/apache/sysds/runtime/controlprogram/Program.html" title="class in org.apache.sysds.runtime.controlprogram">Program</a>&nbsp;prog,
-                            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnStack,
-                            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnCreated,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnStack,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnCreated,
                             boolean&nbsp;plain,
                             boolean&nbsp;cpFunctions)</code>
 <div class="block">Creates a deep copy of an array of instructions and replaces the placeholders of parworker
@@ -524,23 +524,23 @@
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../../org/apache/sysds/runtime/controlprogram/ParForProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">ParForProgramBlock</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ProgramConverter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#createDeepCopyParForProgramBlock-org.apache.sysds.runtime.controlprogram.ParForProgramBlock-long-int-org.apache.sysds.runtime.controlprogram.Program-java.util.HashSet-java.util.HashSet-boolean-boolean-">createDeepCopyParForProgramBlock</a></span>(<a href="../../../../../../org/apache/sysds/runtime/control [...]
+<td class="colLast"><span class="typeNameLabel">ProgramConverter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#createDeepCopyParForProgramBlock-org.apache.sysds.runtime.controlprogram.ParForProgramBlock-long-int-org.apache.sysds.runtime.controlprogram.Program-java.util.Set-java.util.Set-boolean-boolean-">createDeepCopyParForProgramBlock</a></span>(<a href="../../../../../../org/apache/sysds/runtime/controlprogram/ [...]
                                 long&nbsp;pid,
                                 int&nbsp;IDPrefix,
                                 <a href="../../../../../../org/apache/sysds/runtime/controlprogram/Program.html" title="class in org.apache.sysds.runtime.controlprogram">Program</a>&nbsp;prog,
-                                <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnStack,
-                                <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnCreated,
+                                <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnStack,
+                                <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnCreated,
                                 boolean&nbsp;plain,
                                 boolean&nbsp;forceDeepCopy)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../../org/apache/sysds/runtime/controlprogram/WhileProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">WhileProgramBlock</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ProgramConverter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#createDeepCopyWhileProgramBlock-org.apache.sysds.runtime.controlprogram.WhileProgramBlock-long-int-org.apache.sysds.runtime.controlprogram.Program-java.util.HashSet-java.util.HashSet-boolean-boolean-">createDeepCopyWhileProgramBlock</a></span>(<a href="../../../../../../org/apache/sysds/runtime/controlpro [...]
+<td class="colLast"><span class="typeNameLabel">ProgramConverter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#createDeepCopyWhileProgramBlock-org.apache.sysds.runtime.controlprogram.WhileProgramBlock-long-int-org.apache.sysds.runtime.controlprogram.Program-java.util.Set-java.util.Set-boolean-boolean-">createDeepCopyWhileProgramBlock</a></span>(<a href="../../../../../../org/apache/sysds/runtime/controlprogram/Whi [...]
                                long&nbsp;pid,
                                int&nbsp;IDPrefix,
                                <a href="../../../../../../org/apache/sysds/runtime/controlprogram/Program.html" title="class in org.apache.sysds.runtime.controlprogram">Program</a>&nbsp;prog,
-                               <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnStack,
-                               <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnCreated,
+                               <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnStack,
+                               <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnCreated,
                                boolean&nbsp;plain,
                                boolean&nbsp;forceDeepCopy)</code>&nbsp;</td>
 </tr>
diff --git a/docs/api/java/org/apache/sysds/runtime/controlprogram/class-use/ProgramBlock.html b/docs/api/java/org/apache/sysds/runtime/controlprogram/class-use/ProgramBlock.html
index e33dd7b..fa9e535 100644
--- a/docs/api/java/org/apache/sysds/runtime/controlprogram/class-use/ProgramBlock.html
+++ b/docs/api/java/org/apache/sysds/runtime/controlprogram/class-use/ProgramBlock.html
@@ -107,22 +107,26 @@
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="#org.apache.sysds.runtime.controlprogram.parfor">org.apache.sysds.runtime.controlprogram.parfor</a></td>
+<td class="colFirst"><a href="#org.apache.sysds.runtime.controlprogram.paramserv">org.apache.sysds.runtime.controlprogram.paramserv</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="#org.apache.sysds.runtime.controlprogram.parfor.opt">org.apache.sysds.runtime.controlprogram.parfor.opt</a></td>
+<td class="colFirst"><a href="#org.apache.sysds.runtime.controlprogram.parfor">org.apache.sysds.runtime.controlprogram.parfor</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="#org.apache.sysds.runtime.lineage">org.apache.sysds.runtime.lineage</a></td>
+<td class="colFirst"><a href="#org.apache.sysds.runtime.controlprogram.parfor.opt">org.apache.sysds.runtime.controlprogram.parfor.opt</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="#org.apache.sysds.runtime.util">org.apache.sysds.runtime.util</a></td>
+<td class="colFirst"><a href="#org.apache.sysds.runtime.lineage">org.apache.sysds.runtime.lineage</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
+<td class="colFirst"><a href="#org.apache.sysds.runtime.util">org.apache.sysds.runtime.util</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><a href="#org.apache.sysds.utils">org.apache.sysds.utils</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
@@ -427,6 +431,25 @@
 </tbody>
 </table>
 </li>
+<li class="blockList"><a name="org.apache.sysds.runtime.controlprogram.paramserv">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/sysds/runtime/controlprogram/ProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">ProgramBlock</a> in <a href="../../../../../../org/apache/sysds/runtime/controlprogram/paramserv/package-summary.html">org.apache.sysds.runtime.controlprogram.paramserv</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Method parameters in <a href="../../../../../../org/apache/sysds/runtime/controlprogram/paramserv/package-summary.html">org.apache.sysds.runtime.controlprogram.paramserv</a> with type arguments of type <a href="../../../../../../org/apache/sysds/runtime/controlprogram/ProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">ProgramBlock</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><span class="typeNameLabel">ParamservUtils.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/controlprogram/paramserv/ParamservUtils.html#recompileProgramBlocks-int-java.util.List-">recompileProgramBlocks</a></span>(int&nbsp;k,
+                      <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/sysds/runtime/controlprogram/ProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">ProgramBlock</a>&gt;&nbsp;pbs)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
 <li class="blockList"><a name="org.apache.sysds.runtime.controlprogram.parfor">
 <!--   -->
 </a>
@@ -476,6 +499,19 @@
 </a>
 <h3>Uses of <a href="../../../../../../org/apache/sysds/runtime/controlprogram/ProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">ProgramBlock</a> in <a href="../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/package-summary.html">org.apache.sysds.runtime.controlprogram.parfor.opt</a></h3>
 <table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/package-summary.html">org.apache.sysds.runtime.controlprogram.parfor.opt</a> that return <a href="../../../../../../org/apache/sysds/runtime/controlprogram/ProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">ProgramBlock</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/sysds/runtime/controlprogram/ProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">ProgramBlock</a></code></td>
+<td class="colLast"><span class="typeNameLabel">OptTreePlanMappingAbstract.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptTreePlanMappingAbstract.html#getMappedProgramBlock-long-">getMappedProgramBlock</a></span>(long&nbsp;id)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
 <caption><span>Methods in <a href="../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/package-summary.html">org.apache.sysds.runtime.controlprogram.parfor.opt</a> that return types with arguments of type <a href="../../../../../../org/apache/sysds/runtime/controlprogram/ProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">ProgramBlock</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
@@ -549,7 +585,7 @@
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static void</code></td>
-<td class="colLast"><span class="typeNameLabel">OptTreeConverter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptTreeConverter.html#replaceProgramBlock-java.util.ArrayList-org.apache.sysds.runtime.controlprogram.ProgramBlock-org.apache.sysds.runtime.controlprogram.ProgramBlock-">replaceProgramBlock</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class [...]
+<td class="colLast"><span class="typeNameLabel">OptTreeConverter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptTreeConverter.html#replaceProgramBlock-java.util.List-org.apache.sysds.runtime.controlprogram.ProgramBlock-org.apache.sysds.runtime.controlprogram.ProgramBlock-">replaceProgramBlock</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interf [...]
                    <a href="../../../../../../org/apache/sysds/runtime/controlprogram/ProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">ProgramBlock</a>&nbsp;pbOld,
                    <a href="../../../../../../org/apache/sysds/runtime/controlprogram/ProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">ProgramBlock</a>&nbsp;pbNew)</code>&nbsp;</td>
 </tr>
@@ -583,7 +619,7 @@
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code>static void</code></td>
-<td class="colLast"><span class="typeNameLabel">OptTreeConverter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptTreeConverter.html#replaceProgramBlock-java.util.ArrayList-org.apache.sysds.runtime.controlprogram.ProgramBlock-org.apache.sysds.runtime.controlprogram.ProgramBlock-">replaceProgramBlock</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class [...]
+<td class="colLast"><span class="typeNameLabel">OptTreeConverter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptTreeConverter.html#replaceProgramBlock-java.util.List-org.apache.sysds.runtime.controlprogram.ProgramBlock-org.apache.sysds.runtime.controlprogram.ProgramBlock-">replaceProgramBlock</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interf [...]
                    <a href="../../../../../../org/apache/sysds/runtime/controlprogram/ProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">ProgramBlock</a>&nbsp;pbOld,
                    <a href="../../../../../../org/apache/sysds/runtime/controlprogram/ProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">ProgramBlock</a>&nbsp;pbNew)</code>&nbsp;</td>
 </tr>
@@ -652,11 +688,11 @@
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../../../org/apache/sysds/runtime/controlprogram/ProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">ProgramBlock</a>&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">ProgramConverter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#rcreateDeepCopyProgramBlocks-java.util.ArrayList-long-int-java.util.HashSet-java.util.HashSet-boolean-boolean-">rcreateDeepCopyProgramBlocks</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a  [...]
+<td class="colLast"><span class="typeNameLabel">ProgramConverter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#rcreateDeepCopyProgramBlocks-java.util.ArrayList-long-int-java.util.Set-java.util.Set-boolean-boolean-">rcreateDeepCopyProgramBlocks</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href=".. [...]
                             long&nbsp;pid,
                             int&nbsp;IDPrefix,
-                            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnStack,
-                            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnCreated,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnStack,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnCreated,
                             boolean&nbsp;plain,
                             boolean&nbsp;forceDeepCopy)</code>
 <div class="block">This recursively creates a deep copy of program blocks and transparently replaces filenames according to the
@@ -674,11 +710,11 @@
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../../../org/apache/sysds/runtime/controlprogram/ProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">ProgramBlock</a>&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">ProgramConverter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#rcreateDeepCopyProgramBlocks-java.util.ArrayList-long-int-java.util.HashSet-java.util.HashSet-boolean-boolean-">rcreateDeepCopyProgramBlocks</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a  [...]
+<td class="colLast"><span class="typeNameLabel">ProgramConverter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#rcreateDeepCopyProgramBlocks-java.util.ArrayList-long-int-java.util.Set-java.util.Set-boolean-boolean-">rcreateDeepCopyProgramBlocks</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href=".. [...]
                             long&nbsp;pid,
                             int&nbsp;IDPrefix,
-                            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnStack,
-                            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnCreated,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnStack,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnCreated,
                             boolean&nbsp;plain,
                             boolean&nbsp;forceDeepCopy)</code>
 <div class="block">This recursively creates a deep copy of program blocks and transparently replaces filenames according to the
diff --git a/docs/api/java/org/apache/sysds/runtime/controlprogram/class-use/WhileProgramBlock.html b/docs/api/java/org/apache/sysds/runtime/controlprogram/class-use/WhileProgramBlock.html
index adc1181..d399066 100644
--- a/docs/api/java/org/apache/sysds/runtime/controlprogram/class-use/WhileProgramBlock.html
+++ b/docs/api/java/org/apache/sysds/runtime/controlprogram/class-use/WhileProgramBlock.html
@@ -104,12 +104,12 @@
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../../org/apache/sysds/runtime/controlprogram/WhileProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">WhileProgramBlock</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ProgramConverter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#createDeepCopyWhileProgramBlock-org.apache.sysds.runtime.controlprogram.WhileProgramBlock-long-int-org.apache.sysds.runtime.controlprogram.Program-java.util.HashSet-java.util.HashSet-boolean-boolean-">createDeepCopyWhileProgramBlock</a></span>(<a href="../../../../../../org/apache/sysds/runtime/controlpro [...]
+<td class="colLast"><span class="typeNameLabel">ProgramConverter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#createDeepCopyWhileProgramBlock-org.apache.sysds.runtime.controlprogram.WhileProgramBlock-long-int-org.apache.sysds.runtime.controlprogram.Program-java.util.Set-java.util.Set-boolean-boolean-">createDeepCopyWhileProgramBlock</a></span>(<a href="../../../../../../org/apache/sysds/runtime/controlprogram/Whi [...]
                                long&nbsp;pid,
                                int&nbsp;IDPrefix,
                                <a href="../../../../../../org/apache/sysds/runtime/controlprogram/Program.html" title="class in org.apache.sysds.runtime.controlprogram">Program</a>&nbsp;prog,
-                               <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnStack,
-                               <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnCreated,
+                               <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnStack,
+                               <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnCreated,
                                boolean&nbsp;plain,
                                boolean&nbsp;forceDeepCopy)</code>&nbsp;</td>
 </tr>
@@ -124,12 +124,12 @@
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../../org/apache/sysds/runtime/controlprogram/WhileProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">WhileProgramBlock</a></code></td>
-<td class="colLast"><span class="typeNameLabel">ProgramConverter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#createDeepCopyWhileProgramBlock-org.apache.sysds.runtime.controlprogram.WhileProgramBlock-long-int-org.apache.sysds.runtime.controlprogram.Program-java.util.HashSet-java.util.HashSet-boolean-boolean-">createDeepCopyWhileProgramBlock</a></span>(<a href="../../../../../../org/apache/sysds/runtime/controlpro [...]
+<td class="colLast"><span class="typeNameLabel">ProgramConverter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#createDeepCopyWhileProgramBlock-org.apache.sysds.runtime.controlprogram.WhileProgramBlock-long-int-org.apache.sysds.runtime.controlprogram.Program-java.util.Set-java.util.Set-boolean-boolean-">createDeepCopyWhileProgramBlock</a></span>(<a href="../../../../../../org/apache/sysds/runtime/controlprogram/Whi [...]
                                long&nbsp;pid,
                                int&nbsp;IDPrefix,
                                <a href="../../../../../../org/apache/sysds/runtime/controlprogram/Program.html" title="class in org.apache.sysds.runtime.controlprogram">Program</a>&nbsp;prog,
-                               <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnStack,
-                               <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnCreated,
+                               <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnStack,
+                               <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnCreated,
                                boolean&nbsp;plain,
                                boolean&nbsp;forceDeepCopy)</code>&nbsp;</td>
 </tr>
diff --git a/docs/api/java/org/apache/sysds/runtime/controlprogram/package-tree.html b/docs/api/java/org/apache/sysds/runtime/controlprogram/package-tree.html
index 9654b3a..44641bc 100644
--- a/docs/api/java/org/apache/sysds/runtime/controlprogram/package-tree.html
+++ b/docs/api/java/org/apache/sysds/runtime/controlprogram/package-tree.html
@@ -92,7 +92,7 @@
 <li type="circle">org.apache.sysds.runtime.controlprogram.<a href="../../../../../org/apache/sysds/runtime/controlprogram/ParForProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram"><span class="typeNameLink">ParForProgramBlock</span></a></li>
 </ul>
 </li>
-<li type="circle">org.apache.sysds.runtime.controlprogram.<a href="../../../../../org/apache/sysds/runtime/controlprogram/FunctionProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram"><span class="typeNameLink">FunctionProgramBlock</span></a></li>
+<li type="circle">org.apache.sysds.runtime.controlprogram.<a href="../../../../../org/apache/sysds/runtime/controlprogram/FunctionProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram"><span class="typeNameLink">FunctionProgramBlock</span></a> (implements org.apache.sysds.common.<a href="../../../../../org/apache/sysds/common/Types.FunctionBlock.html" title="interface in org.apache.sysds.common">Types.FunctionBlock</a>)</li>
 <li type="circle">org.apache.sysds.runtime.controlprogram.<a href="../../../../../org/apache/sysds/runtime/controlprogram/IfProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram"><span class="typeNameLink">IfProgramBlock</span></a></li>
 <li type="circle">org.apache.sysds.runtime.controlprogram.<a href="../../../../../org/apache/sysds/runtime/controlprogram/WhileProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram"><span class="typeNameLink">WhileProgramBlock</span></a></li>
 </ul>
diff --git a/docs/api/java/org/apache/sysds/runtime/controlprogram/package-use.html b/docs/api/java/org/apache/sysds/runtime/controlprogram/package-use.html
index b02a8be..847d3c1 100644
--- a/docs/api/java/org/apache/sysds/runtime/controlprogram/package-use.html
+++ b/docs/api/java/org/apache/sysds/runtime/controlprogram/package-use.html
@@ -444,6 +444,9 @@
  variable names and references.</div>
 </td>
 </tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/sysds/runtime/controlprogram/class-use/ProgramBlock.html#org.apache.sysds.runtime.controlprogram.paramserv">ProgramBlock</a>&nbsp;</td>
+</tr>
 </tbody>
 </table>
 </li>
diff --git a/docs/api/java/org/apache/sysds/runtime/controlprogram/paramserv/ParamservUtils.html b/docs/api/java/org/apache/sysds/runtime/controlprogram/paramserv/ParamservUtils.html
index bb6b0d2..20ee09b 100644
--- a/docs/api/java/org/apache/sysds/runtime/controlprogram/paramserv/ParamservUtils.html
+++ b/docs/api/java/org/apache/sysds/runtime/controlprogram/paramserv/ParamservUtils.html
@@ -278,21 +278,19 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </td>
 </tr>
 <tr id="i17" class="rowColor">
-<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/controlprogram/paramserv/ParamservUtils.html#getCompleteFuncName-java.lang.String-java.lang.String-">getCompleteFuncName</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;funcName,
-                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;prefix)</code>
-<div class="block">Get the namespace and function name of a given physical func name</div>
-</td>
-</tr>
-<tr id="i18" class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../../org/apache/sysds/runtime/controlprogram/caching/MatrixObject.html" title="class in org.apache.sysds.runtime.controlprogram.caching">MatrixObject</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/controlprogram/paramserv/ParamservUtils.html#newMatrixObject-org.apache.sysds.runtime.matrix.data.MatrixBlock-">newMatrixObject</a></span>(<a href="../../../../../../org/apache/sysds/runtime/matrix/data/MatrixBlock.html" title="class in org.apache.sysds.runtime.matrix.data">MatrixBlock</a>&nbsp;mb)</code>&nbsp;</td>
 </tr>
-<tr id="i19" class="rowColor">
+<tr id="i18" class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../../org/apache/sysds/runtime/controlprogram/caching/MatrixObject.html" title="class in org.apache.sysds.runtime.controlprogram.caching">MatrixObject</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/controlprogram/paramserv/ParamservUtils.html#newMatrixObject-org.apache.sysds.runtime.matrix.data.MatrixBlock-boolean-">newMatrixObject</a></span>(<a href="../../../../../../org/apache/sysds/runtime/matrix/data/MatrixBlock.html" title="class in org.apache.sysds.runtime.matrix.data">MatrixBlock</a>&nbsp;mb,
                boolean&nbsp;cleanup)</code>&nbsp;</td>
 </tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/controlprogram/paramserv/ParamservUtils.html#recompileProgramBlocks-int-java.util.List-">recompileProgramBlocks</a></span>(int&nbsp;k,
+                      <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/sysds/runtime/controlprogram/ProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">ProgramBlock</a>&gt;&nbsp;pbs)</code>&nbsp;</td>
+</tr>
 <tr id="i20" class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../../org/apache/sysds/runtime/controlprogram/caching/MatrixObject.html" title="class in org.apache.sysds.runtime.controlprogram.caching">MatrixObject</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/controlprogram/paramserv/ParamservUtils.html#sliceMatrix-org.apache.sysds.runtime.controlprogram.caching.MatrixObject-long-long-">sliceMatrix</a></span>(<a href="../../../../../../org/apache/sysds/runtime/controlprogram/caching/MatrixObject.html" title="class in org.apache.sysds.runtime.controlprogram.caching">MatrixObject</a>&nbsp;mo,
@@ -568,24 +566,6 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </dl>
 </li>
 </ul>
-<a name="getCompleteFuncName-java.lang.String-java.lang.String-">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>getCompleteFuncName</h4>
-<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;getCompleteFuncName(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;funcName,
-                                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;prefix)</pre>
-<div class="block">Get the namespace and function name of a given physical func name</div>
-<dl>
-<dt><span class="paramLabel">Parameters:</span></dt>
-<dd><code>funcName</code> - physical func name (e.g., "ns:func")</dd>
-<dd><code>prefix</code> - prefix</dd>
-<dt><span class="returnLabel">Returns:</span></dt>
-<dd>an string array of size 2 where array[0] is namespace and array[1] is name</dd>
-</dl>
-</li>
-</ul>
 <a name="createExecutionContext-org.apache.sysds.runtime.controlprogram.context.ExecutionContext-org.apache.sysds.runtime.controlprogram.LocalVariableMap-java.lang.String-java.lang.String-int-">
 <!--   -->
 </a>
@@ -609,6 +589,16 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
                                                           int&nbsp;num)</pre>
 </li>
 </ul>
+<a name="recompileProgramBlocks-int-java.util.List-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>recompileProgramBlocks</h4>
+<pre>public static&nbsp;void&nbsp;recompileProgramBlocks(int&nbsp;k,
+                                          <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/sysds/runtime/controlprogram/ProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">ProgramBlock</a>&gt;&nbsp;pbs)</pre>
+</li>
+</ul>
 <a name="cbindMatrix-org.apache.sysds.runtime.matrix.data.MatrixBlock-org.apache.sysds.runtime.matrix.data.MatrixBlock-">
 <!--   -->
 </a>
diff --git a/docs/api/java/org/apache/sysds/runtime/controlprogram/parfor/CachedReuseVariables.html b/docs/api/java/org/apache/sysds/runtime/controlprogram/parfor/CachedReuseVariables.html
index b099e88..69f870f 100644
--- a/docs/api/java/org/apache/sysds/runtime/controlprogram/parfor/CachedReuseVariables.html
+++ b/docs/api/java/org/apache/sysds/runtime/controlprogram/parfor/CachedReuseVariables.html
@@ -158,7 +158,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/controlprogram/parfor/CachedReuseVariables.html#reuseVariables-long-org.apache.sysds.runtime.controlprogram.LocalVariableMap-java.util.Collection-java.util.Map-boolean-">reuseVariables</a></span>(long&nbsp;pfid,
               <a href="../../../../../../org/apache/sysds/runtime/controlprogram/LocalVariableMap.html" title="class in org.apache.sysds.runtime.controlprogram">LocalVariableMap</a>&nbsp;vars,
-              <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;blacklist,
+              <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;excludeList,
               <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,org.apache.spark.broadcast.Broadcast&lt;<a href="../../../../../../org/apache/sysds/runtime/controlprogram/caching/CacheBlock.html" title="interface in org.apache.sysds.runtime.controlprogram.cachi [...]
               boolean&nbsp;cleanCache)</code>&nbsp;</td>
 </tr>
@@ -218,7 +218,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <h4>reuseVariables</h4>
 <pre>public&nbsp;void&nbsp;reuseVariables(long&nbsp;pfid,
                            <a href="../../../../../../org/apache/sysds/runtime/controlprogram/LocalVariableMap.html" title="class in org.apache.sysds.runtime.controlprogram">LocalVariableMap</a>&nbsp;vars,
-                           <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;blacklist,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;excludeList,
                            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,org.apache.spark.broadcast.Broadcast&lt;<a href="../../../../../../org/apache/sysds/runtime/controlprogram/caching/CacheBlock.html" title="interface in org.apache.sysds.runtime.control [...]
                            boolean&nbsp;cleanCache)</pre>
 </li>
diff --git a/docs/api/java/org/apache/sysds/runtime/controlprogram/parfor/opt/OptTreeConverter.html b/docs/api/java/org/apache/sysds/runtime/controlprogram/parfor/opt/OptTreeConverter.html
index ef86926..1f1da38 100644
--- a/docs/api/java/org/apache/sysds/runtime/controlprogram/parfor/opt/OptTreeConverter.html
+++ b/docs/api/java/org/apache/sysds/runtime/controlprogram/parfor/opt/OptTreeConverter.html
@@ -256,7 +256,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </tr>
 <tr id="i14" class="altColor">
 <td class="colFirst"><code>static void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptTreeConverter.html#replaceProgramBlock-java.util.ArrayList-org.apache.sysds.runtime.controlprogram.ProgramBlock-org.apache.sysds.runtime.controlprogram.ProgramBlock-">replaceProgramBlock</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a h [...]
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptTreeConverter.html#replaceProgramBlock-java.util.List-org.apache.sysds.runtime.controlprogram.ProgramBlock-org.apache.sysds.runtime.controlprogram.ProgramBlock-">replaceProgramBlock</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../. [...]
                    <a href="../../../../../../../org/apache/sysds/runtime/controlprogram/ProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">ProgramBlock</a>&nbsp;pbOld,
                    <a href="../../../../../../../org/apache/sysds/runtime/controlprogram/ProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">ProgramBlock</a>&nbsp;pbNew)</code>&nbsp;</td>
 </tr>
@@ -473,13 +473,13 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
                                        boolean&nbsp;rtMap)</pre>
 </li>
 </ul>
-<a name="replaceProgramBlock-java.util.ArrayList-org.apache.sysds.runtime.controlprogram.ProgramBlock-org.apache.sysds.runtime.controlprogram.ProgramBlock-">
+<a name="replaceProgramBlock-java.util.List-org.apache.sysds.runtime.controlprogram.ProgramBlock-org.apache.sysds.runtime.controlprogram.ProgramBlock-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>replaceProgramBlock</h4>
-<pre>public static&nbsp;void&nbsp;replaceProgramBlock(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/ProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">ProgramBlock</a>&gt;&nbsp;pbs,
+<pre>public static&nbsp;void&nbsp;replaceProgramBlock(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/ProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">ProgramBlock</a>&gt;&nbsp;pbs,
                                        <a href="../../../../../../../org/apache/sysds/runtime/controlprogram/ProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">ProgramBlock</a>&nbsp;pbOld,
                                        <a href="../../../../../../../org/apache/sysds/runtime/controlprogram/ProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">ProgramBlock</a>&nbsp;pbNew)</pre>
 </li>
diff --git a/docs/api/java/org/apache/sysds/runtime/controlprogram/parfor/opt/OptTreePlanMappingAbstract.html b/docs/api/java/org/apache/sysds/runtime/controlprogram/parfor/opt/OptTreePlanMappingAbstract.html
index c008ee1..3f266f7 100644
--- a/docs/api/java/org/apache/sysds/runtime/controlprogram/parfor/opt/OptTreePlanMappingAbstract.html
+++ b/docs/api/java/org/apache/sysds/runtime/controlprogram/parfor/opt/OptTreePlanMappingAbstract.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -164,26 +164,30 @@ extends <a href="../../../../../../../org/apache/sysds/runtime/controlprogram/pa
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptTreePlanMappingAbstract.html#getMappedProg-long-">getMappedProg</a></span>(long&nbsp;id)</code>&nbsp;</td>
 </tr>
 <tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/ProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">ProgramBlock</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptTreePlanMappingAbstract.html#getMappedProgramBlock-long-">getMappedProgramBlock</a></span>(long&nbsp;id)</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[]</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptTreePlanMappingAbstract.html#getRootProgram--">getRootProgram</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i4" class="altColor">
+<tr id="i5" class="rowColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptTreePlanMappingAbstract.html#putHopMapping-org.apache.sysds.hops.Hop-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-">putHopMapping</a></span>(<a href="../../../../../../../org/apache/sysds/hops/Hop.html" title="class in org.apache.sysds.hops">Hop</a>&nbsp;hops,
              <a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n)</code>&nbsp;</td>
 </tr>
-<tr id="i5" class="rowColor">
+<tr id="i6" class="altColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptTreePlanMappingAbstract.html#putProgMapping-org.apache.sysds.parser.StatementBlock-org.apache.sysds.runtime.controlprogram.ProgramBlock-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-">putProgMapping</a></span>(<a href="../../../../../../../org/apache/sysds/parser/StatementBlock.html" title="class in org.apache.sysds.parser">StatementBlock [...]
               <a href="../../../../../../../org/apache/sysds/runtime/controlprogram/ProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">ProgramBlock</a>&nbsp;pb,
               <a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n)</code>&nbsp;</td>
 </tr>
-<tr id="i6" class="altColor">
+<tr id="i7" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptTreePlanMappingAbstract.html#putRootProgram-org.apache.sysds.parser.DMLProgram-org.apache.sysds.runtime.controlprogram.Program-">putRootProgram</a></span>(<a href="../../../../../../../org/apache/sysds/parser/DMLProgram.html" title="class in org.apache.sysds.parser">DMLProgram</a>&nbsp;prog,
               <a href="../../../../../../../org/apache/sysds/runtime/controlprogram/Program.html" title="class in org.apache.sysds.runtime.controlprogram">Program</a>&nbsp;rtprog)</code>&nbsp;</td>
 </tr>
-<tr id="i7" class="rowColor">
+<tr id="i8" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptTreePlanMappingAbstract.html#replaceMapping-org.apache.sysds.runtime.controlprogram.ProgramBlock-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-">replaceMapping</a></span>(<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/ProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">ProgramBlock</a>&nbsp;pb,
               <a href="../../../../../../../org/apache/sysds/runtime/controlprogram/parfor/opt/OptNode.html" title="class in org.apache.sysds.runtime.controlprogram.parfor.opt">OptNode</a>&nbsp;n)</code>&nbsp;</td>
@@ -292,6 +296,15 @@ extends <a href="../../../../../../../org/apache/sysds/runtime/controlprogram/pa
 <pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[]&nbsp;getMappedProg(long&nbsp;id)</pre>
 </li>
 </ul>
+<a name="getMappedProgramBlock-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMappedProgramBlock</h4>
+<pre>public&nbsp;<a href="../../../../../../../org/apache/sysds/runtime/controlprogram/ProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">ProgramBlock</a>&nbsp;getMappedProgramBlock(long&nbsp;id)</pre>
+</li>
+</ul>
 <a name="replaceMapping-org.apache.sysds.runtime.controlprogram.ProgramBlock-org.apache.sysds.runtime.controlprogram.parfor.opt.OptNode-">
 <!--   -->
 </a>
diff --git a/docs/api/java/org/apache/sysds/runtime/instructions/class-use/Instruction.html b/docs/api/java/org/apache/sysds/runtime/instructions/class-use/Instruction.html
index 740cfc3..31d5a34 100644
--- a/docs/api/java/org/apache/sysds/runtime/instructions/class-use/Instruction.html
+++ b/docs/api/java/org/apache/sysds/runtime/instructions/class-use/Instruction.html
@@ -1555,12 +1555,12 @@
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../../../org/apache/sysds/runtime/instructions/Instruction.html" title="class in org.apache.sysds.runtime.instructions">Instruction</a>&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">ProgramConverter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#createDeepCopyInstructionSet-java.util.ArrayList-long-int-org.apache.sysds.runtime.controlprogram.Program-java.util.HashSet-java.util.HashSet-boolean-boolean-">createDeepCopyInstructionSet</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class [...]
+<td class="colLast"><span class="typeNameLabel">ProgramConverter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#createDeepCopyInstructionSet-java.util.ArrayList-long-int-org.apache.sysds.runtime.controlprogram.Program-java.util.Set-java.util.Set-boolean-boolean-">createDeepCopyInstructionSet</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or inte [...]
                             long&nbsp;pid,
                             int&nbsp;IDPrefix,
                             <a href="../../../../../../org/apache/sysds/runtime/controlprogram/Program.html" title="class in org.apache.sysds.runtime.controlprogram">Program</a>&nbsp;prog,
-                            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnStack,
-                            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnCreated,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnStack,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnCreated,
                             boolean&nbsp;plain,
                             boolean&nbsp;cpFunctions)</code>
 <div class="block">Creates a deep copy of an array of instructions and replaces the placeholders of parworker
@@ -1594,12 +1594,12 @@
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../../../org/apache/sysds/runtime/instructions/Instruction.html" title="class in org.apache.sysds.runtime.instructions">Instruction</a>&gt;</code></td>
-<td class="colLast"><span class="typeNameLabel">ProgramConverter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#createDeepCopyInstructionSet-java.util.ArrayList-long-int-org.apache.sysds.runtime.controlprogram.Program-java.util.HashSet-java.util.HashSet-boolean-boolean-">createDeepCopyInstructionSet</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class [...]
+<td class="colLast"><span class="typeNameLabel">ProgramConverter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#createDeepCopyInstructionSet-java.util.ArrayList-long-int-org.apache.sysds.runtime.controlprogram.Program-java.util.Set-java.util.Set-boolean-boolean-">createDeepCopyInstructionSet</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or inte [...]
                             long&nbsp;pid,
                             int&nbsp;IDPrefix,
                             <a href="../../../../../../org/apache/sysds/runtime/controlprogram/Program.html" title="class in org.apache.sysds.runtime.controlprogram">Program</a>&nbsp;prog,
-                            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnStack,
-                            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnCreated,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnStack,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnCreated,
                             boolean&nbsp;plain,
                             boolean&nbsp;cpFunctions)</code>
 <div class="block">Creates a deep copy of an array of instructions and replaces the placeholders of parworker
diff --git a/docs/api/java/org/apache/sysds/runtime/instructions/cp/CPInstruction.CPType.html b/docs/api/java/org/apache/sysds/runtime/instructions/cp/CPInstruction.CPType.html
index 83fb879..615d340 100644
--- a/docs/api/java/org/apache/sysds/runtime/instructions/cp/CPInstruction.CPType.html
+++ b/docs/api/java/org/apache/sysds/runtime/instructions/cp/CPInstruction.CPType.html
@@ -178,7 +178,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?i
 <td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/instructions/cp/CPInstruction.CPType.html#Dnn">Dnn</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/instructions/cp/CPInstruction.CPType.html#External">External</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/instructions/cp/CPInstruction.CPType.html#FCall">FCall</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/instructions/cp/CPInstruction.CPType.html#MatrixIndexing">MatrixIndexing</a></span></code>&nbsp;</td>
@@ -435,13 +435,13 @@ the order they are declared.</div>
 <pre>public static final&nbsp;<a href="../../../../../../org/apache/sysds/runtime/instructions/cp/CPInstruction.CPType.html" title="enum in org.apache.sysds.runtime.instructions.cp">CPInstruction.CPType</a> Variable</pre>
 </li>
 </ul>
-<a name="External">
+<a name="FCall">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>External</h4>
-<pre>public static final&nbsp;<a href="../../../../../../org/apache/sysds/runtime/instructions/cp/CPInstruction.CPType.html" title="enum in org.apache.sysds.runtime.instructions.cp">CPInstruction.CPType</a> External</pre>
+<h4>FCall</h4>
+<pre>public static final&nbsp;<a href="../../../../../../org/apache/sysds/runtime/instructions/cp/CPInstruction.CPType.html" title="enum in org.apache.sysds.runtime.instructions.cp">CPInstruction.CPType</a> FCall</pre>
 </li>
 </ul>
 <a name="Append">
diff --git a/docs/api/java/org/apache/sysds/runtime/instructions/cp/FunctionCallCPInstruction.html b/docs/api/java/org/apache/sysds/runtime/instructions/cp/FunctionCallCPInstruction.html
index 5512744..ba79541 100644
--- a/docs/api/java/org/apache/sysds/runtime/instructions/cp/FunctionCallCPInstruction.html
+++ b/docs/api/java/org/apache/sysds/runtime/instructions/cp/FunctionCallCPInstruction.html
@@ -176,10 +176,10 @@ extends <a href="../../../../../../org/apache/sysds/runtime/instructions/cp/CPIn
 <th class="colOne" scope="col">Constructor and Description</th>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/instructions/cp/FunctionCallCPInstruction.html#FunctionCallCPInstruction-java.lang.String-java.lang.String-org.apache.sysds.runtime.instructions.cp.CPOperand:A-java.util.List-java.util.List-java.util.List-java.lang.String-">FunctionCallCPInstruction</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java. [...]
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/sysds/runtime/instructions/cp/FunctionCallCPInstruction.html#FunctionCallCPInstruction-java.lang.String-java.lang.String-boolean-org.apache.sysds.runtime.instructions.cp.CPOperand:A-java.util.List-java.util.List-java.lang.String-">FunctionCallCPInstruction</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">S [...]
                          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;functName,
+                         boolean&nbsp;opt,
                          <a href="../../../../../../org/apache/sysds/runtime/instructions/cp/CPOperand.html" title="class in org.apache.sysds.runtime.instructions.cp">CPOperand</a>[]&nbsp;boundInputs,
-                         <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;boundInputNames,
                          <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;funArgNames,
                          <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;boundOutputNames,
                          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;istr)</code>&nbsp;</td>
@@ -282,7 +282,7 @@ extends <a href="../../../../../../org/apache/sysds/runtime/instructions/cp/CPIn
 <!--   -->
 </a>
 <h3>Constructor Detail</h3>
-<a name="FunctionCallCPInstruction-java.lang.String-java.lang.String-org.apache.sysds.runtime.instructions.cp.CPOperand:A-java.util.List-java.util.List-java.util.List-java.lang.String-">
+<a name="FunctionCallCPInstruction-java.lang.String-java.lang.String-boolean-org.apache.sysds.runtime.instructions.cp.CPOperand:A-java.util.List-java.util.List-java.lang.String-">
 <!--   -->
 </a>
 <ul class="blockListLast">
@@ -290,8 +290,8 @@ extends <a href="../../../../../../org/apache/sysds/runtime/instructions/cp/CPIn
 <h4>FunctionCallCPInstruction</h4>
 <pre>public&nbsp;FunctionCallCPInstruction(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
                                  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;functName,
+                                 boolean&nbsp;opt,
                                  <a href="../../../../../../org/apache/sysds/runtime/instructions/cp/CPOperand.html" title="class in org.apache.sysds.runtime.instructions.cp">CPOperand</a>[]&nbsp;boundInputs,
-                                 <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;boundInputNames,
                                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;funArgNames,
                                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;boundOutputNames,
                                  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;istr)</pre>
diff --git a/docs/api/java/org/apache/sysds/runtime/instructions/cp/class-use/CPOperand.html b/docs/api/java/org/apache/sysds/runtime/instructions/cp/class-use/CPOperand.html
index 70c1b02..6acd2e2 100644
--- a/docs/api/java/org/apache/sysds/runtime/instructions/cp/class-use/CPOperand.html
+++ b/docs/api/java/org/apache/sysds/runtime/instructions/cp/class-use/CPOperand.html
@@ -439,10 +439,10 @@
                      <a href="../../../../../../../org/apache/sysds/runtime/instructions/cp/CPOperand.html" title="class in org.apache.sysds.runtime.instructions.cp">CPOperand</a>...&nbsp;inputs)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/instructions/cp/FunctionCallCPInstruction.html#FunctionCallCPInstruction-java.lang.String-java.lang.String-org.apache.sysds.runtime.instructions.cp.CPOperand:A-java.util.List-java.util.List-java.util.List-java.lang.String-">FunctionCallCPInstruction</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in j [...]
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/sysds/runtime/instructions/cp/FunctionCallCPInstruction.html#FunctionCallCPInstruction-java.lang.String-java.lang.String-boolean-org.apache.sysds.runtime.instructions.cp.CPOperand:A-java.util.List-java.util.List-java.lang.String-">FunctionCallCPInstruction</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lan [...]
                          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;functName,
+                         boolean&nbsp;opt,
                          <a href="../../../../../../../org/apache/sysds/runtime/instructions/cp/CPOperand.html" title="class in org.apache.sysds.runtime.instructions.cp">CPOperand</a>[]&nbsp;boundInputs,
-                         <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;boundInputNames,
                          <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;funArgNames,
                          <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;boundOutputNames,
                          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;istr)</code>&nbsp;</td>
diff --git a/docs/api/java/org/apache/sysds/runtime/io/FileFormatPropertiesCSV.html b/docs/api/java/org/apache/sysds/runtime/io/FileFormatPropertiesCSV.html
index f46d921..083734e 100644
--- a/docs/api/java/org/apache/sysds/runtime/io/FileFormatPropertiesCSV.html
+++ b/docs/api/java/org/apache/sysds/runtime/io/FileFormatPropertiesCSV.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -216,6 +216,10 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializab
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/io/FileFormatPropertiesCSV.html#setSparse-boolean-">setSparse</a></span>(boolean&nbsp;sparse)</code>&nbsp;</td>
 </tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/io/FileFormatPropertiesCSV.html#toString--">toString</a></span>()</code>&nbsp;</td>
+</tr>
 </table>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.sysds.runtime.io.FileFormatProperties">
@@ -229,7 +233,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializab
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
-<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a hre [...]
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a hre [...]
 </ul>
 </li>
 </ul>
@@ -379,12 +383,25 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializab
 <a name="setSparse-boolean-">
 <!--   -->
 </a>
-<ul class="blockListLast">
+<ul class="blockList">
 <li class="blockList">
 <h4>setSparse</h4>
 <pre>public&nbsp;void&nbsp;setSparse(boolean&nbsp;sparse)</pre>
 </li>
 </ul>
+<a name="toString--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>toString</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;toString()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+</dl>
+</li>
+</ul>
 </li>
 </ul>
 </li>
diff --git a/docs/api/java/org/apache/sysds/runtime/io/FrameReader.html b/docs/api/java/org/apache/sysds/runtime/io/FrameReader.html
index ea05374..9768ac9 100644
--- a/docs/api/java/org/apache/sysds/runtime/io/FrameReader.html
+++ b/docs/api/java/org/apache/sysds/runtime/io/FrameReader.html
@@ -115,10 +115,9 @@ var activeTableTab = "activeTableTab";
 <br>
 <pre>public abstract class <span class="typeNameLabel">FrameReader</span>
 extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
-<div class="block">Base class for all format-specific frame readers. Every reader is required to implement the basic 
- read functionality but might provide additional custom functionality. Any non-default parameters
- (e.g., CSV read properties) should be passed into custom constructors. There is also a factory
- for creating format-specific readers.</div>
+<div class="block">Base class for all format-specific frame readers. Every reader is required to implement the basic read functionality
+ but might provide additional custom functionality. Any non-default parameters (e.g., CSV read properties) should be
+ passed into custom constructors. There is also a factory for creating format-specific readers.</div>
 </li>
 </ul>
 </div>
diff --git a/docs/api/java/org/apache/sysds/runtime/lineage/LineageCacheConfig.LineageCachePolicy.html b/docs/api/java/org/apache/sysds/runtime/lineage/LineageCacheConfig.LineageCachePolicy.html
index 19576ae..754dc80 100644
--- a/docs/api/java/org/apache/sysds/runtime/lineage/LineageCacheConfig.LineageCachePolicy.html
+++ b/docs/api/java/org/apache/sysds/runtime/lineage/LineageCacheConfig.LineageCachePolicy.html
@@ -142,13 +142,13 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?i
 <th class="colOne" scope="col">Enum Constant and Description</th>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/lineage/LineageCacheConfig.LineageCachePolicy.html#HYBRID">HYBRID</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/lineage/LineageCacheConfig.LineageCachePolicy.html#COSTNSIZE">COSTNSIZE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/lineage/LineageCacheConfig.LineageCachePolicy.html#LRU">LRU</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/lineage/LineageCacheConfig.LineageCachePolicy.html#HYBRID">HYBRID</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/lineage/LineageCacheConfig.LineageCachePolicy.html#WEIGHTED">WEIGHTED</a></span></code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/lineage/LineageCacheConfig.LineageCachePolicy.html#LRU">LRU</a></span></code>&nbsp;</td>
 </tr>
 </table>
 </li>
@@ -216,13 +216,13 @@ the order they are declared.</div>
 <pre>public static final&nbsp;<a href="../../../../../org/apache/sysds/runtime/lineage/LineageCacheConfig.LineageCachePolicy.html" title="enum in org.apache.sysds.runtime.lineage">LineageCacheConfig.LineageCachePolicy</a> LRU</pre>
 </li>
 </ul>
-<a name="WEIGHTED">
+<a name="COSTNSIZE">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>WEIGHTED</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/sysds/runtime/lineage/LineageCacheConfig.LineageCachePolicy.html" title="enum in org.apache.sysds.runtime.lineage">LineageCacheConfig.LineageCachePolicy</a> WEIGHTED</pre>
+<h4>COSTNSIZE</h4>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/sysds/runtime/lineage/LineageCacheConfig.LineageCachePolicy.html" title="enum in org.apache.sysds.runtime.lineage">LineageCacheConfig.LineageCachePolicy</a> COSTNSIZE</pre>
 </li>
 </ul>
 <a name="HYBRID">
diff --git a/docs/api/java/org/apache/sysds/runtime/lineage/LineageItemUtils.html b/docs/api/java/org/apache/sysds/runtime/lineage/LineageItemUtils.html
index 0e54c16..6cf52f1 100644
--- a/docs/api/java/org/apache/sysds/runtime/lineage/LineageItemUtils.html
+++ b/docs/api/java/org/apache/sysds/runtime/lineage/LineageItemUtils.html
@@ -382,6 +382,12 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
                               <a href="../../../../../org/apache/sysds/runtime/lineage/LineageItem.html" title="class in org.apache.sysds.runtime.lineage">LineageItem</a>&nbsp;liNew)</pre>
 <div class="block">Non-recursive equivalent of <a href="../../../../../org/apache/sysds/runtime/lineage/LineageItemUtils.html#rReplace-org.apache.sysds.runtime.lineage.LineageItem-org.apache.sysds.runtime.lineage.LineageItem-org.apache.sysds.runtime.lineage.LineageItem-"><code>rReplace(LineageItem, LineageItem, LineageItem)</code></a> 
  for robustness with regard to stack overflow errors.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>current</code> - Current lineage item</dd>
+<dd><code>liOld</code> - Old lineage item</dd>
+<dd><code>liNew</code> - New Lineage item.</dd>
+</dl>
 </li>
 </ul>
 <a name="replaceDagLeaves-org.apache.sysds.runtime.controlprogram.context.ExecutionContext-org.apache.sysds.runtime.lineage.LineageItem-org.apache.sysds.runtime.instructions.cp.CPOperand:A-">
diff --git a/docs/api/java/org/apache/sysds/runtime/package-use.html b/docs/api/java/org/apache/sysds/runtime/package-use.html
index 0067cfe..9f105a7 100644
--- a/docs/api/java/org/apache/sysds/runtime/package-use.html
+++ b/docs/api/java/org/apache/sysds/runtime/package-use.html
@@ -151,6 +151,11 @@
 <div class="block">This exception should be thrown to flag runtime errors -- DML equivalent to java.lang.RuntimeException.</div>
 </td>
 </tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/apache/sysds/runtime/class-use/DMLScriptException.html#org.apache.sysds.api">DMLScriptException</a>
+<div class="block">This exception should be thrown to flag DML Script errors.</div>
+</td>
+</tr>
 </tbody>
 </table>
 </li>
diff --git a/docs/api/java/org/apache/sysds/runtime/privacy/PrivacyMonitor.html b/docs/api/java/org/apache/sysds/runtime/privacy/PrivacyMonitor.html
index f7fbcb7..c0044c2 100644
--- a/docs/api/java/org/apache/sysds/runtime/privacy/PrivacyMonitor.html
+++ b/docs/api/java/org/apache/sysds/runtime/privacy/PrivacyMonitor.html
@@ -286,7 +286,8 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <div class="block">Throw DMLPrivacyException if privacy is activated for the input variable</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
-<dd><code>input</code> - variable for which the privacy constraint is checked</dd>
+<dd><code>input</code> - Variable for which the privacy constraint is checked</dd>
+<dd><code>ec</code> - The execution context associated with the operand.</dd>
 </dl>
 </li>
 </ul>
diff --git a/docs/api/java/org/apache/sysds/runtime/util/ByteBufferDataInput.html b/docs/api/java/org/apache/sysds/runtime/util/ByteBufferDataInput.html
index 03a0680..0baf30c 100644
--- a/docs/api/java/org/apache/sysds/runtime/util/ByteBufferDataInput.html
+++ b/docs/api/java/org/apache/sysds/runtime/util/ByteBufferDataInput.html
@@ -50,7 +50,7 @@ var activeTableTab = "activeTableTab";
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/sysds/runtime/util/BinaryBlockRecordReader.html" title="class in org.apache.sysds.runtime.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/sysds/runtime/util/CommonThreadPool.html" title="class in org.apache.sysds.runtime.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/sysds/runtime/util/CollectionUtils.html" title="class in org.apache.sysds.runtime.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/sysds/runtime/util/ByteBufferDataInput.html" target="_top">Frames</a></li>
@@ -605,7 +605,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/io/DataInput.
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/sysds/runtime/util/BinaryBlockRecordReader.html" title="class in org.apache.sysds.runtime.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/sysds/runtime/util/CommonThreadPool.html" title="class in org.apache.sysds.runtime.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/sysds/runtime/util/CollectionUtils.html" title="class in org.apache.sysds.runtime.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/sysds/runtime/util/ByteBufferDataInput.html" target="_top">Frames</a></li>
diff --git a/docs/api/java/org/apache/sysds/runtime/util/CollectionUtils.html b/docs/api/java/org/apache/sysds/runtime/util/CollectionUtils.html
new file mode 100644
index 0000000..cf5fe2f
--- /dev/null
+++ b/docs/api/java/org/apache/sysds/runtime/util/CollectionUtils.html
@@ -0,0 +1,457 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>CollectionUtils (SystemDS 2.0.0-SNAPSHOT API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="CollectionUtils (SystemDS 2.0.0-SNAPSHOT API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9,"i7":9,"i8":9,"i9":9,"i10":9,"i11":9,"i12":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CollectionUtils.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/sysds/runtime/util/ByteBufferDataInput.html" title="class in org.apache.sysds.runtime.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/sysds/runtime/util/CommonThreadPool.html" title="class in org.apache.sysds.runtime.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/sysds/runtime/util/CollectionUtils.html" target="_top">Frames</a></li>
+<li><a href="CollectionUtils.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&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>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.sysds.runtime.util</div>
+<h2 title="Class CollectionUtils" class="title">Class CollectionUtils</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.sysds.runtime.util.CollectionUtils</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">CollectionUtils</span>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/CollectionUtils.html#CollectionUtils--">CollectionUtils</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/CollectionUtils.html#addAll-java.util.Collection-T:A-">addAll</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;T&gt;&nbsp;a,
+      T[]&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;T&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/CollectionUtils.html#asArrayList-T...-">asArrayList</a></span>(T...&nbsp;inputs)</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;T&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/CollectionUtils.html#asList-java.util.List...-">asList</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;T&gt;...&nbsp;inputs)</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;T&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/CollectionUtils.html#asSet-java.util.List...-">asSet</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;T&gt;...&nbsp;inputs)</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;T&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/CollectionUtils.html#asSet-T...-">asSet</a></span>(T...&nbsp;inputs)</code>&nbsp;</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;T&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/CollectionUtils.html#asSet-T:A...-">asSet</a></span>(T[]...&nbsp;inputs)</code>&nbsp;</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/CollectionUtils.html#cardinality-T-java.util.List-">cardinality</a></span>(T&nbsp;a,
+           <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;T&gt;&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/CollectionUtils.html#containsAny-java.util.Collection-java.util.Collection-">containsAny</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;T&gt;&nbsp;a,
+           <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;T&gt;&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/CollectionUtils.html#equals-java.util.List-java.util.List-">equals</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;T&gt;&nbsp;a,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;T&gt;&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;T&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/CollectionUtils.html#except-java.util.List-java.util.List-">except</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;T&gt;&nbsp;a,
+      <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;T&gt;&nbsp;exceptions)</code>&nbsp;</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/stream/Stream.html?is-external=true" title="class or interface in java.util.stream">Stream</a>&lt;T&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/CollectionUtils.html#getStream-java.util.Iterator-">getStream</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a>&lt;T&gt;&nbsp;iter)</code>&nbsp;</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;T&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/CollectionUtils.html#unionAll-java.util.List-java.util.List-">unionAll</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;T&gt;&nbsp;a,
+        <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;T&gt;&nbsp;b)</code>&nbsp;</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;T&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/CollectionUtils.html#unionDistinct-java.util.List-java.util.List-">unionDistinct</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;T&gt;&nbsp;a,
+             <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;T&gt;&nbsp;b)</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a hre [...]
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="CollectionUtils--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>CollectionUtils</h4>
+<pre>public&nbsp;CollectionUtils()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="asList-java.util.List...-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>asList</h4>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/SafeVarargs.html?is-external=true" title="class or interface in java.lang">@SafeVarargs</a>
+public static&nbsp;&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;T&gt;&nbsp;asList(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;T&gt;...&nbsp;inputs)</pre>
+</li>
+</ul>
+<a name="asArrayList-java.lang.Object:A-">
+<!--   -->
+</a><a name="asArrayList-T...-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>asArrayList</h4>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/SafeVarargs.html?is-external=true" title="class or interface in java.lang">@SafeVarargs</a>
+public static&nbsp;&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;T&gt;&nbsp;asArrayList(T...&nbsp;inputs)</pre>
+</li>
+</ul>
+<a name="asSet-java.lang.Object:A-">
+<!--   -->
+</a><a name="asSet-T...-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>asSet</h4>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/SafeVarargs.html?is-external=true" title="class or interface in java.lang">@SafeVarargs</a>
+public static&nbsp;&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;T&gt;&nbsp;asSet(T...&nbsp;inputs)</pre>
+</li>
+</ul>
+<a name="asSet-java.lang.Object:A:A-">
+<!--   -->
+</a><a name="asSet-T:A...-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>asSet</h4>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/SafeVarargs.html?is-external=true" title="class or interface in java.lang">@SafeVarargs</a>
+public static&nbsp;&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;T&gt;&nbsp;asSet(T[]...&nbsp;inputs)</pre>
+</li>
+</ul>
+<a name="asSet-java.util.List...-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>asSet</h4>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/SafeVarargs.html?is-external=true" title="class or interface in java.lang">@SafeVarargs</a>
+public static&nbsp;&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;T&gt;&nbsp;asSet(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;T&gt;...&nbsp;inputs)</pre>
+</li>
+</ul>
+<a name="getStream-java.util.Iterator-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStream</h4>
+<pre>public static&nbsp;&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/stream/Stream.html?is-external=true" title="class or interface in java.util.stream">Stream</a>&lt;T&gt;&nbsp;getStream(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a>&lt;T&gt;&nbsp;iter)</pre>
+</li>
+</ul>
+<a name="equals-java.util.List-java.util.List-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre>public static&nbsp;&lt;T&gt;&nbsp;boolean&nbsp;equals(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;T&gt;&nbsp;a,
+                                 <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;T&gt;&nbsp;b)</pre>
+</li>
+</ul>
+<a name="containsAny-java.util.Collection-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>containsAny</h4>
+<pre>public static&nbsp;&lt;T&gt;&nbsp;boolean&nbsp;containsAny(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;T&gt;&nbsp;a,
+                                      <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;T&gt;&nbsp;b)</pre>
+</li>
+</ul>
+<a name="unionDistinct-java.util.List-java.util.List-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>unionDistinct</h4>
+<pre>public static&nbsp;&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;T&gt;&nbsp;unionDistinct(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;T&gt;&nbsp;a,
+                                        <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;T&gt;&nbsp;b)</pre>
+</li>
+</ul>
+<a name="unionAll-java.util.List-java.util.List-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>unionAll</h4>
+<pre>public static&nbsp;&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;T&gt;&nbsp;unionAll(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;T&gt;&nbsp;a,
+                                   <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;T&gt;&nbsp;b)</pre>
+</li>
+</ul>
+<a name="except-java.util.List-java.util.List-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>except</h4>
+<pre>public static&nbsp;&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;T&gt;&nbsp;except(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;T&gt;&nbsp;a,
+                                 <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;T&gt;&nbsp;exceptions)</pre>
+</li>
+</ul>
+<a name="addAll-java.util.Collection-java.lang.Object:A-">
+<!--   -->
+</a><a name="addAll-java.util.Collection-T:A-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addAll</h4>
+<pre>public static&nbsp;&lt;T&gt;&nbsp;void&nbsp;addAll(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;T&gt;&nbsp;a,
+                              T[]&nbsp;b)</pre>
+</li>
+</ul>
+<a name="cardinality-java.lang.Object-java.util.List-">
+<!--   -->
+</a><a name="cardinality-T-java.util.List-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>cardinality</h4>
+<pre>public static&nbsp;&lt;T&gt;&nbsp;int&nbsp;cardinality(T&nbsp;a,
+                                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;T&gt;&nbsp;b)</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CollectionUtils.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/sysds/runtime/util/ByteBufferDataInput.html" title="class in org.apache.sysds.runtime.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/sysds/runtime/util/CommonThreadPool.html" title="class in org.apache.sysds.runtime.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/sysds/runtime/util/CollectionUtils.html" target="_top">Frames</a></li>
+<li><a href="CollectionUtils.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&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>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/docs/api/java/org/apache/sysds/runtime/util/CommonThreadPool.html b/docs/api/java/org/apache/sysds/runtime/util/CommonThreadPool.html
index 55d61d5..356b684 100644
--- a/docs/api/java/org/apache/sysds/runtime/util/CommonThreadPool.html
+++ b/docs/api/java/org/apache/sysds/runtime/util/CommonThreadPool.html
@@ -49,7 +49,7 @@ var activeTableTab = "activeTableTab";
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/sysds/runtime/util/ByteBufferDataInput.html" title="class in org.apache.sysds.runtime.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/sysds/runtime/util/CollectionUtils.html" title="class in org.apache.sysds.runtime.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../../org/apache/sysds/runtime/util/DataConverter.html" title="class in org.apache.sysds.runtime.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
@@ -519,7 +519,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurre
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/sysds/runtime/util/ByteBufferDataInput.html" title="class in org.apache.sysds.runtime.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/sysds/runtime/util/CollectionUtils.html" title="class in org.apache.sysds.runtime.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../../org/apache/sysds/runtime/util/DataConverter.html" title="class in org.apache.sysds.runtime.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
diff --git a/docs/api/java/org/apache/sysds/runtime/util/ProgramConverter.html b/docs/api/java/org/apache/sysds/runtime/util/ProgramConverter.html
index 58507ff..a1db2c7 100644
--- a/docs/api/java/org/apache/sysds/runtime/util/ProgramConverter.html
+++ b/docs/api/java/org/apache/sysds/runtime/util/ProgramConverter.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9,"i7":9,"i8":9,"i9":9,"i10":9,"i11":9,"i12":9,"i13":9,"i14":9,"i15":9,"i16":9,"i17":9,"i18":9,"i19":9,"i20":9,"i21":9,"i22":9,"i23":9,"i24":9,"i25":9,"i26":9,"i27":9};
+var methods = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9,"i7":9,"i8":9,"i9":9,"i10":9,"i11":9,"i12":9,"i13":9,"i14":9,"i15":9,"i16":9,"i17":9,"i18":9,"i19":9,"i20":9,"i21":9,"i22":9,"i23":9,"i24":9,"i25":9,"i26":9,"i27":9,"i28":9,"i29":9};
 var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -343,189 +343,193 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </tr>
 <tr id="i2" class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/sysds/runtime/controlprogram/ForProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">ForProgramBlock</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#createDeepCopyForProgramBlock-org.apache.sysds.runtime.controlprogram.ForProgramBlock-long-int-org.apache.sysds.runtime.controlprogram.Program-java.util.HashSet-java.util.HashSet-boolean-boolean-">createDeepCopyForProgramBlock</a></span>(<a href="../../../../../org/apache/sysds/runtime/controlprogram/ForProgramBlock.html" title="class in org.apache.sysds.runt [...]
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#createDeepCopyForProgramBlock-org.apache.sysds.runtime.controlprogram.ForProgramBlock-long-int-org.apache.sysds.runtime.controlprogram.Program-java.util.Set-java.util.Set-boolean-boolean-">createDeepCopyForProgramBlock</a></span>(<a href="../../../../../org/apache/sysds/runtime/controlprogram/ForProgramBlock.html" title="class in org.apache.sysds.runtime.cont [...]
                              long&nbsp;pid,
                              int&nbsp;IDPrefix,
                              <a href="../../../../../org/apache/sysds/runtime/controlprogram/Program.html" title="class in org.apache.sysds.runtime.controlprogram">Program</a>&nbsp;prog,
-                             <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnStack,
-                             <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnCreated,
+                             <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnStack,
+                             <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnCreated,
                              boolean&nbsp;plain,
                              boolean&nbsp;forceDeepCopy)</code>&nbsp;</td>
 </tr>
 <tr id="i3" class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/sysds/runtime/controlprogram/FunctionProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">FunctionProgramBlock</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#createDeepCopyFunctionProgramBlock-org.apache.sysds.runtime.controlprogram.FunctionProgramBlock-java.util.HashSet-java.util.HashSet-">createDeepCopyFunctionProgramBlock</a></span>(<a href="../../../../../org/apache/sysds/runtime/controlprogram/FunctionProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">FunctionProgramBlock</a>&nbsp;fpb,
-                                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnStack,
-                                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnCreated)</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#createDeepCopyFunctionProgramBlock-org.apache.sysds.runtime.controlprogram.FunctionProgramBlock-java.util.Set-java.util.Set-">createDeepCopyFunctionProgramBlock</a></span>(<a href="../../../../../org/apache/sysds/runtime/controlprogram/FunctionProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">FunctionProgramBlock</a>&nbsp;fpb,
+                                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnStack,
+                                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnCreated)</code>&nbsp;</td>
 </tr>
 <tr id="i4" class="altColor">
 <td class="colFirst"><code>static void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#createDeepCopyFunctionProgramBlock-java.lang.String-java.lang.String-long-int-org.apache.sysds.runtime.controlprogram.Program-java.util.HashSet-java.util.HashSet-boolean-">createDeepCopyFunctionProgramBlock</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&n [...]
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#createDeepCopyFunctionProgramBlock-java.lang.String-java.lang.String-long-int-org.apache.sysds.runtime.controlprogram.Program-java.util.Set-java.util.Set-boolean-">createDeepCopyFunctionProgramBlock</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
                                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;oldName,
                                   long&nbsp;pid,
                                   int&nbsp;IDPrefix,
                                   <a href="../../../../../org/apache/sysds/runtime/controlprogram/Program.html" title="class in org.apache.sysds.runtime.controlprogram">Program</a>&nbsp;prog,
-                                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnStack,
-                                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnCreated,
+                                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnStack,
+                                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnCreated,
                                   boolean&nbsp;plain)</code>
 <div class="block">This creates a deep copy of a function program block.</div>
 </td>
 </tr>
 <tr id="i5" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/sysds/parser/FunctionStatementBlock.html" title="class in org.apache.sysds.parser">FunctionStatementBlock</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#createDeepCopyFunctionStatementBlock-org.apache.sysds.parser.FunctionStatementBlock-java.util.Set-java.util.Set-">createDeepCopyFunctionStatementBlock</a></span>(<a href="../../../../../org/apache/sysds/parser/FunctionStatementBlock.html" title="class in org.apache.sysds.parser">FunctionStatementBlock</a>&nbsp;fsb,
+                                    <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnStack,
+                                    <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnCreated)</code>&nbsp;</td>
+</tr>
+<tr id="i6" class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/sysds/runtime/controlprogram/IfProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">IfProgramBlock</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#createDeepCopyIfProgramBlock-org.apache.sysds.runtime.controlprogram.IfProgramBlock-long-int-org.apache.sysds.runtime.controlprogram.Program-java.util.HashSet-java.util.HashSet-boolean-boolean-">createDeepCopyIfProgramBlock</a></span>(<a href="../../../../../org/apache/sysds/runtime/controlprogram/IfProgramBlock.html" title="class in org.apache.sysds.runtime. [...]
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#createDeepCopyIfProgramBlock-org.apache.sysds.runtime.controlprogram.IfProgramBlock-long-int-org.apache.sysds.runtime.controlprogram.Program-java.util.Set-java.util.Set-boolean-boolean-">createDeepCopyIfProgramBlock</a></span>(<a href="../../../../../org/apache/sysds/runtime/controlprogram/IfProgramBlock.html" title="class in org.apache.sysds.runtime.controlp [...]
                             long&nbsp;pid,
                             int&nbsp;IDPrefix,
                             <a href="../../../../../org/apache/sysds/runtime/controlprogram/Program.html" title="class in org.apache.sysds.runtime.controlprogram">Program</a>&nbsp;prog,
-                            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnStack,
-                            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnCreated,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnStack,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnCreated,
                             boolean&nbsp;plain,
                             boolean&nbsp;forceDeepCopy)</code>&nbsp;</td>
 </tr>
-<tr id="i6" class="altColor">
+<tr id="i7" class="rowColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../../org/apache/sysds/runtime/instructions/Instruction.html" title="class in org.apache.sysds.runtime.instructions">Instruction</a>&gt;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#createDeepCopyInstructionSet-java.util.ArrayList-long-int-org.apache.sysds.runtime.controlprogram.Program-java.util.HashSet-java.util.HashSet-boolean-boolean-">createDeepCopyInstructionSet</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href=". [...]
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#createDeepCopyInstructionSet-java.util.ArrayList-long-int-org.apache.sysds.runtime.controlprogram.Program-java.util.Set-java.util.Set-boolean-boolean-">createDeepCopyInstructionSet</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../ [...]
                             long&nbsp;pid,
                             int&nbsp;IDPrefix,
                             <a href="../../../../../org/apache/sysds/runtime/controlprogram/Program.html" title="class in org.apache.sysds.runtime.controlprogram">Program</a>&nbsp;prog,
-                            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnStack,
-                            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnCreated,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnStack,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnCreated,
                             boolean&nbsp;plain,
                             boolean&nbsp;cpFunctions)</code>
 <div class="block">Creates a deep copy of an array of instructions and replaces the placeholders of parworker
  IDs with the concrete IDs of this parfor instance.</div>
 </td>
 </tr>
-<tr id="i7" class="rowColor">
+<tr id="i8" class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/sysds/runtime/controlprogram/ParForProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">ParForProgramBlock</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#createDeepCopyParForProgramBlock-org.apache.sysds.runtime.controlprogram.ParForProgramBlock-long-int-org.apache.sysds.runtime.controlprogram.Program-java.util.HashSet-java.util.HashSet-boolean-boolean-">createDeepCopyParForProgramBlock</a></span>(<a href="../../../../../org/apache/sysds/runtime/controlprogram/ParForProgramBlock.html" title="class in org.apach [...]
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#createDeepCopyParForProgramBlock-org.apache.sysds.runtime.controlprogram.ParForProgramBlock-long-int-org.apache.sysds.runtime.controlprogram.Program-java.util.Set-java.util.Set-boolean-boolean-">createDeepCopyParForProgramBlock</a></span>(<a href="../../../../../org/apache/sysds/runtime/controlprogram/ParForProgramBlock.html" title="class in org.apache.sysds. [...]
                                 long&nbsp;pid,
                                 int&nbsp;IDPrefix,
                                 <a href="../../../../../org/apache/sysds/runtime/controlprogram/Program.html" title="class in org.apache.sysds.runtime.controlprogram">Program</a>&nbsp;prog,
-                                <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnStack,
-                                <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnCreated,
+                                <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnStack,
+                                <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnCreated,
                                 boolean&nbsp;plain,
                                 boolean&nbsp;forceDeepCopy)</code>&nbsp;</td>
 </tr>
-<tr id="i8" class="altColor">
+<tr id="i9" class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/sysds/runtime/controlprogram/WhileProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">WhileProgramBlock</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#createDeepCopyWhileProgramBlock-org.apache.sysds.runtime.controlprogram.WhileProgramBlock-long-int-org.apache.sysds.runtime.controlprogram.Program-java.util.HashSet-java.util.HashSet-boolean-boolean-">createDeepCopyWhileProgramBlock</a></span>(<a href="../../../../../org/apache/sysds/runtime/controlprogram/WhileProgramBlock.html" title="class in org.apache.sy [...]
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#createDeepCopyWhileProgramBlock-org.apache.sysds.runtime.controlprogram.WhileProgramBlock-long-int-org.apache.sysds.runtime.controlprogram.Program-java.util.Set-java.util.Set-boolean-boolean-">createDeepCopyWhileProgramBlock</a></span>(<a href="../../../../../org/apache/sysds/runtime/controlprogram/WhileProgramBlock.html" title="class in org.apache.sysds.runt [...]
                                long&nbsp;pid,
                                int&nbsp;IDPrefix,
                                <a href="../../../../../org/apache/sysds/runtime/controlprogram/Program.html" title="class in org.apache.sysds.runtime.controlprogram">Program</a>&nbsp;prog,
-                               <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnStack,
-                               <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnCreated,
+                               <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnStack,
+                               <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnCreated,
                                boolean&nbsp;plain,
                                boolean&nbsp;forceDeepCopy)</code>&nbsp;</td>
 </tr>
-<tr id="i9" class="rowColor">
+<tr id="i10" class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/sysds/parser/ForStatementBlock.html" title="class in org.apache.sysds.parser">ForStatementBlock</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#createForStatementBlockCopy-org.apache.sysds.parser.ForStatementBlock-long-boolean-boolean-">createForStatementBlockCopy</a></span>(<a href="../../../../../org/apache/sysds/parser/ForStatementBlock.html" title="class in org.apache.sysds.parser">ForStatementBlock</a>&nbsp;sb,
-                           long&nbsp;pid,
-                           boolean&nbsp;plain,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#createForStatementBlockCopy-org.apache.sysds.parser.ForStatementBlock-boolean-">createForStatementBlockCopy</a></span>(<a href="../../../../../org/apache/sysds/parser/ForStatementBlock.html" title="class in org.apache.sysds.parser">ForStatementBlock</a>&nbsp;sb,
                            boolean&nbsp;forceDeepCopy)</code>&nbsp;</td>
 </tr>
-<tr id="i10" class="altColor">
+<tr id="i11" class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/sysds/parser/IfStatementBlock.html" title="class in org.apache.sysds.parser">IfStatementBlock</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#createIfStatementBlockCopy-org.apache.sysds.parser.IfStatementBlock-long-boolean-boolean-">createIfStatementBlockCopy</a></span>(<a href="../../../../../org/apache/sysds/parser/IfStatementBlock.html" title="class in org.apache.sysds.parser">IfStatementBlock</a>&nbsp;sb,
-                          long&nbsp;pid,
-                          boolean&nbsp;plain,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#createIfStatementBlockCopy-org.apache.sysds.parser.IfStatementBlock-boolean-">createIfStatementBlockCopy</a></span>(<a href="../../../../../org/apache/sysds/parser/IfStatementBlock.html" title="class in org.apache.sysds.parser">IfStatementBlock</a>&nbsp;sb,
                           boolean&nbsp;forceDeepCopy)</code>&nbsp;</td>
 </tr>
-<tr id="i11" class="rowColor">
+<tr id="i12" class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/sysds/runtime/controlprogram/ForProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">ForProgramBlock</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#createShallowCopyForProgramBlock-org.apache.sysds.runtime.controlprogram.ForProgramBlock-org.apache.sysds.runtime.controlprogram.Program-">createShallowCopyForProgramBlock</a></span>(<a href="../../../../../org/apache/sysds/runtime/controlprogram/ForProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">ForProgramBlock</a>&nbsp;fpb,
                                 <a href="../../../../../org/apache/sysds/runtime/controlprogram/Program.html" title="class in org.apache.sysds.runtime.controlprogram">Program</a>&nbsp;prog)</code>&nbsp;</td>
 </tr>
-<tr id="i12" class="altColor">
+<tr id="i13" class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/sysds/parser/StatementBlock.html" title="class in org.apache.sysds.parser">StatementBlock</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#createStatementBlockCopy-org.apache.sysds.parser.StatementBlock-long-boolean-boolean-">createStatementBlockCopy</a></span>(<a href="../../../../../org/apache/sysds/parser/StatementBlock.html" title="class in org.apache.sysds.parser">StatementBlock</a>&nbsp;sb,
                         long&nbsp;pid,
                         boolean&nbsp;plain,
                         boolean&nbsp;forceDeepCopy)</code>&nbsp;</td>
 </tr>
-<tr id="i13" class="rowColor">
+<tr id="i14" class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/sysds/parser/WhileStatementBlock.html" title="class in org.apache.sysds.parser">WhileStatementBlock</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#createWhileStatementBlockCopy-org.apache.sysds.parser.WhileStatementBlock-long-boolean-boolean-">createWhileStatementBlockCopy</a></span>(<a href="../../../../../org/apache/sysds/parser/WhileStatementBlock.html" title="class in org.apache.sysds.parser">WhileStatementBlock</a>&nbsp;sb,
-                             long&nbsp;pid,
-                             boolean&nbsp;plain,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#createWhileStatementBlockCopy-org.apache.sysds.parser.WhileStatementBlock-boolean-">createWhileStatementBlockCopy</a></span>(<a href="../../../../../org/apache/sysds/parser/WhileStatementBlock.html" title="class in org.apache.sysds.parser">WhileStatementBlock</a>&nbsp;sb,
                              boolean&nbsp;forceDeepCopy)</code>&nbsp;</td>
 </tr>
-<tr id="i14" class="altColor">
+<tr id="i15" class="rowColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[]</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#parseDataObject-java.lang.String-">parseDataObject</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;in)</code>
 <div class="block">NOTE: MRJobConfiguration cannot be used for the general case because program blocks and
  related symbol tables can be hierarchically structured.</div>
 </td>
 </tr>
-<tr id="i15" class="rowColor">
+<tr id="i16" class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/sysds/runtime/controlprogram/parfor/ParForBody.html" title="class in org.apache.sysds.runtime.controlprogram.parfor">ParForBody</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#parseParForBody-java.lang.String-int-">parseParForBody</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;in,
                int&nbsp;id)</code>&nbsp;</td>
 </tr>
-<tr id="i16" class="altColor">
+<tr id="i17" class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/sysds/runtime/controlprogram/parfor/ParForBody.html" title="class in org.apache.sysds.runtime.controlprogram.parfor">ParForBody</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#parseParForBody-java.lang.String-int-boolean-">parseParForBody</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;in,
                int&nbsp;id,
                boolean&nbsp;inSpark)</code>&nbsp;</td>
 </tr>
-<tr id="i17" class="rowColor">
+<tr id="i18" class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/sysds/runtime/controlprogram/Program.html" title="class in org.apache.sysds.runtime.controlprogram">Program</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#parseProgram-java.lang.String-int-">parseProgram</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;in,
             int&nbsp;id)</code>&nbsp;</td>
 </tr>
-<tr id="i18" class="altColor">
+<tr id="i19" class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/sysds/runtime/controlprogram/paramserv/SparkPSBody.html" title="class in org.apache.sysds.runtime.controlprogram.paramserv">SparkPSBody</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#parseSparkPSBody-java.lang.String-int-">parseSparkPSBody</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;in,
                 int&nbsp;id)</code>&nbsp;</td>
 </tr>
-<tr id="i19" class="rowColor">
+<tr id="i20" class="altColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../../org/apache/sysds/runtime/controlprogram/ProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">ProgramBlock</a>&gt;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#rcreateDeepCopyProgramBlocks-java.util.ArrayList-long-int-java.util.HashSet-java.util.HashSet-boolean-boolean-">rcreateDeepCopyProgramBlocks</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../../org/apache/sysds/runtime/controlpr [...]
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#rcreateDeepCopyProgramBlocks-java.util.ArrayList-long-int-java.util.Set-java.util.Set-boolean-boolean-">rcreateDeepCopyProgramBlocks</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../../org/apache/sysds/runtime/controlprogram/Pr [...]
                             long&nbsp;pid,
                             int&nbsp;IDPrefix,
-                            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnStack,
-                            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnCreated,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnStack,
+                            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnCreated,
                             boolean&nbsp;plain,
                             boolean&nbsp;forceDeepCopy)</code>
 <div class="block">This recursively creates a deep copy of program blocks and transparently replaces filenames according to the
  specified parallel worker in order to avoid conflicts between parworkers.</div>
 </td>
 </tr>
-<tr id="i20" class="altColor">
+<tr id="i21" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/sysds/parser/StatementBlock.html" title="class in org.apache.sysds.parser">StatementBlock</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#rCreateDeepCopyStatementBlock-org.apache.sysds.parser.StatementBlock-">rCreateDeepCopyStatementBlock</a></span>(<a href="../../../../../org/apache/sysds/parser/StatementBlock.html" title="class in org.apache.sysds.parser">StatementBlock</a>&nbsp;sb)</code>&nbsp;</td>
+</tr>
+<tr id="i22" class="altColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#saveReplaceFilenameThreadID-java.lang.String-java.lang.String-java.lang.String-">saveReplaceFilenameThreadID</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;fname,
                            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;pattern,
                            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;replace)</code>&nbsp;</td>
 </tr>
-<tr id="i21" class="rowColor">
+<tr id="i23" class="rowColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#serializeDataObject-java.lang.String-org.apache.sysds.runtime.instructions.cp.Data-">serializeDataObject</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
                    <a href="../../../../../org/apache/sysds/runtime/instructions/cp/Data.html" title="class in org.apache.sysds.runtime.instructions.cp">Data</a>&nbsp;dat)</code>&nbsp;</td>
 </tr>
-<tr id="i22" class="altColor">
+<tr id="i24" class="altColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#serializeList-java.util.List-">serializeList</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;elements)</co [...]
 </tr>
-<tr id="i23" class="rowColor">
+<tr id="i25" class="rowColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#serializeList-java.util.List-java.lang.String-">serializeList</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&n [...]
              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;delim)</code>&nbsp;</td>
 </tr>
-<tr id="i24" class="altColor">
+<tr id="i26" class="altColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#serializeParForBody-org.apache.sysds.runtime.controlprogram.parfor.ParForBody-">serializeParForBody</a></span>(<a href="../../../../../org/apache/sysds/runtime/controlprogram/parfor/ParForBody.html" title="class in org.apache.sysds.runtime.controlprogram.parfor">ParForBody</a>&nbsp;body)</code>&nbsp;</td>
 </tr>
-<tr id="i25" class="rowColor">
+<tr id="i27" class="rowColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#serializeParForBody-org.apache.sysds.runtime.controlprogram.parfor.ParForBody-java.util.HashMap-">serializeParForBody</a></span>(<a href="../../../../../org/apache/sysds/runtime/controlprogram/parfor/ParForBody.html" title="class in org.apache.sysds.runtime.controlprogram.parfor">ParForBody</a>&nbsp;body,
                    <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,byte[]&gt;&nbsp;clsMap)</code>&nbsp;</td>
 </tr>
-<tr id="i26" class="altColor">
+<tr id="i28" class="altColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#serializeResultVariables-java.util.List-">serializeResultVariables</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/sysds/parser/ParForStatementBlock.ResultVar.html" title="class in org.apache.sysds.parser">ParForStatementB [...]
 </tr>
-<tr id="i27" class="rowColor">
+<tr id="i29" class="rowColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/ProgramConverter.html#serializeSparkPSBody-org.apache.sysds.runtime.controlprogram.paramserv.SparkPSBody-java.util.HashMap-">serializeSparkPSBody</a></span>(<a href="../../../../../org/apache/sysds/runtime/controlprogram/paramserv/SparkPSBody.html" title="class in org.apache.sysds.runtime.controlprogram.paramserv">SparkPSBody</a>&nbsp;body,
                     <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,byte[]&gt;&nbsp;clsMap)</code>&nbsp;</td>
@@ -1130,7 +1134,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </dl>
 </li>
 </ul>
-<a name="rcreateDeepCopyProgramBlocks-java.util.ArrayList-long-int-java.util.HashSet-java.util.HashSet-boolean-boolean-">
+<a name="rcreateDeepCopyProgramBlocks-java.util.ArrayList-long-int-java.util.Set-java.util.Set-boolean-boolean-">
 <!--   -->
 </a>
 <ul class="blockList">
@@ -1139,8 +1143,8 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../../../../../org/apache/sysds/runtime/controlprogram/ProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">ProgramBlock</a>&gt;&nbsp;rcreateDeepCopyProgramBlocks(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in [...]
                                                                    long&nbsp;pid,
                                                                    int&nbsp;IDPrefix,
-                                                                   <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnStack,
-                                                                   <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnCreated,
+                                                                   <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnStack,
+                                                                   <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnCreated,
                                                                    boolean&nbsp;plain,
                                                                    boolean&nbsp;forceDeepCopy)</pre>
 <div class="block">This recursively creates a deep copy of program blocks and transparently replaces filenames according to the
@@ -1160,7 +1164,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </dl>
 </li>
 </ul>
-<a name="createDeepCopyWhileProgramBlock-org.apache.sysds.runtime.controlprogram.WhileProgramBlock-long-int-org.apache.sysds.runtime.controlprogram.Program-java.util.HashSet-java.util.HashSet-boolean-boolean-">
+<a name="createDeepCopyWhileProgramBlock-org.apache.sysds.runtime.controlprogram.WhileProgramBlock-long-int-org.apache.sysds.runtime.controlprogram.Program-java.util.Set-java.util.Set-boolean-boolean-">
 <!--   -->
 </a>
 <ul class="blockList">
@@ -1170,13 +1174,13 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
                                                                 long&nbsp;pid,
                                                                 int&nbsp;IDPrefix,
                                                                 <a href="../../../../../org/apache/sysds/runtime/controlprogram/Program.html" title="class in org.apache.sysds.runtime.controlprogram">Program</a>&nbsp;prog,
-                                                                <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnStack,
-                                                                <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnCreated,
+                                                                <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnStack,
+                                                                <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnCreated,
                                                                 boolean&nbsp;plain,
                                                                 boolean&nbsp;forceDeepCopy)</pre>
 </li>
 </ul>
-<a name="createDeepCopyIfProgramBlock-org.apache.sysds.runtime.controlprogram.IfProgramBlock-long-int-org.apache.sysds.runtime.controlprogram.Program-java.util.HashSet-java.util.HashSet-boolean-boolean-">
+<a name="createDeepCopyIfProgramBlock-org.apache.sysds.runtime.controlprogram.IfProgramBlock-long-int-org.apache.sysds.runtime.controlprogram.Program-java.util.Set-java.util.Set-boolean-boolean-">
 <!--   -->
 </a>
 <ul class="blockList">
@@ -1186,13 +1190,13 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
                                                           long&nbsp;pid,
                                                           int&nbsp;IDPrefix,
                                                           <a href="../../../../../org/apache/sysds/runtime/controlprogram/Program.html" title="class in org.apache.sysds.runtime.controlprogram">Program</a>&nbsp;prog,
-                                                          <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnStack,
-                                                          <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnCreated,
+                                                          <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnStack,
+                                                          <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnCreated,
                                                           boolean&nbsp;plain,
                                                           boolean&nbsp;forceDeepCopy)</pre>
 </li>
 </ul>
-<a name="createDeepCopyForProgramBlock-org.apache.sysds.runtime.controlprogram.ForProgramBlock-long-int-org.apache.sysds.runtime.controlprogram.Program-java.util.HashSet-java.util.HashSet-boolean-boolean-">
+<a name="createDeepCopyForProgramBlock-org.apache.sysds.runtime.controlprogram.ForProgramBlock-long-int-org.apache.sysds.runtime.controlprogram.Program-java.util.Set-java.util.Set-boolean-boolean-">
 <!--   -->
 </a>
 <ul class="blockList">
@@ -1202,8 +1206,8 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
                                                             long&nbsp;pid,
                                                             int&nbsp;IDPrefix,
                                                             <a href="../../../../../org/apache/sysds/runtime/controlprogram/Program.html" title="class in org.apache.sysds.runtime.controlprogram">Program</a>&nbsp;prog,
-                                                            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnStack,
-                                                            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnCreated,
+                                                            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnStack,
+                                                            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnCreated,
                                                             boolean&nbsp;plain,
                                                             boolean&nbsp;forceDeepCopy)</pre>
 </li>
@@ -1218,7 +1222,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
                                                                <a href="../../../../../org/apache/sysds/runtime/controlprogram/Program.html" title="class in org.apache.sysds.runtime.controlprogram">Program</a>&nbsp;prog)</pre>
 </li>
 </ul>
-<a name="createDeepCopyParForProgramBlock-org.apache.sysds.runtime.controlprogram.ParForProgramBlock-long-int-org.apache.sysds.runtime.controlprogram.Program-java.util.HashSet-java.util.HashSet-boolean-boolean-">
+<a name="createDeepCopyParForProgramBlock-org.apache.sysds.runtime.controlprogram.ParForProgramBlock-long-int-org.apache.sysds.runtime.controlprogram.Program-java.util.Set-java.util.Set-boolean-boolean-">
 <!--   -->
 </a>
 <ul class="blockList">
@@ -1228,13 +1232,13 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
                                                                   long&nbsp;pid,
                                                                   int&nbsp;IDPrefix,
                                                                   <a href="../../../../../org/apache/sysds/runtime/controlprogram/Program.html" title="class in org.apache.sysds.runtime.controlprogram">Program</a>&nbsp;prog,
-                                                                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnStack,
-                                                                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnCreated,
+                                                                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnStack,
+                                                                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnCreated,
                                                                   boolean&nbsp;plain,
                                                                   boolean&nbsp;forceDeepCopy)</pre>
 </li>
 </ul>
-<a name="createDeepCopyFunctionProgramBlock-java.lang.String-java.lang.String-long-int-org.apache.sysds.runtime.controlprogram.Program-java.util.HashSet-java.util.HashSet-boolean-">
+<a name="createDeepCopyFunctionProgramBlock-java.lang.String-java.lang.String-long-int-org.apache.sysds.runtime.controlprogram.Program-java.util.Set-java.util.Set-boolean-">
 <!--   -->
 </a>
 <ul class="blockList">
@@ -1245,8 +1249,8 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
                                                       long&nbsp;pid,
                                                       int&nbsp;IDPrefix,
                                                       <a href="../../../../../org/apache/sysds/runtime/controlprogram/Program.html" title="class in org.apache.sysds.runtime.controlprogram">Program</a>&nbsp;prog,
-                                                      <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnStack,
-                                                      <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnCreated,
+                                                      <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnStack,
+                                                      <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnCreated,
                                                       boolean&nbsp;plain)</pre>
 <div class="block">This creates a deep copy of a function program block. The central reference to singletons of function program blocks
  poses the need for explicit copies in order to prevent conflicting writes of temporary variables (see ExternalFunctionProgramBlock.</div>
@@ -1263,18 +1267,18 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </dl>
 </li>
 </ul>
-<a name="createDeepCopyFunctionProgramBlock-org.apache.sysds.runtime.controlprogram.FunctionProgramBlock-java.util.HashSet-java.util.HashSet-">
+<a name="createDeepCopyFunctionProgramBlock-org.apache.sysds.runtime.controlprogram.FunctionProgramBlock-java.util.Set-java.util.Set-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>createDeepCopyFunctionProgramBlock</h4>
 <pre>public static&nbsp;<a href="../../../../../org/apache/sysds/runtime/controlprogram/FunctionProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">FunctionProgramBlock</a>&nbsp;createDeepCopyFunctionProgramBlock(<a href="../../../../../org/apache/sysds/runtime/controlprogram/FunctionProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram">FunctionProgramBlock</a>&nbsp;fpb,
-                                                                      <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnStack,
-                                                                      <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnCreated)</pre>
+                                                                      <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnStack,
+                                                                      <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnCreated)</pre>
 </li>
 </ul>
-<a name="createDeepCopyInstructionSet-java.util.ArrayList-long-int-org.apache.sysds.runtime.controlprogram.Program-java.util.HashSet-java.util.HashSet-boolean-boolean-">
+<a name="createDeepCopyInstructionSet-java.util.ArrayList-long-int-org.apache.sysds.runtime.controlprogram.Program-java.util.Set-java.util.Set-boolean-boolean-">
 <!--   -->
 </a>
 <ul class="blockList">
@@ -1284,8 +1288,8 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
                                                                   long&nbsp;pid,
                                                                   int&nbsp;IDPrefix,
                                                                   <a href="../../../../../org/apache/sysds/runtime/controlprogram/Program.html" title="class in org.apache.sysds.runtime.controlprogram">Program</a>&nbsp;prog,
-                                                                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnStack,
-                                                                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html?is-external=true" title="class or interface in java.util">HashSet</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnCreated,
+                                                                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnStack,
+                                                                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnCreated,
                                                                   boolean&nbsp;plain,
                                                                   boolean&nbsp;cpFunctions)</pre>
 <div class="block">Creates a deep copy of an array of instructions and replaces the placeholders of parworker
@@ -1318,6 +1322,26 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
                                            boolean&nbsp;cpFunctions)</pre>
 </li>
 </ul>
+<a name="createDeepCopyFunctionStatementBlock-org.apache.sysds.parser.FunctionStatementBlock-java.util.Set-java.util.Set-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createDeepCopyFunctionStatementBlock</h4>
+<pre>public static&nbsp;<a href="../../../../../org/apache/sysds/parser/FunctionStatementBlock.html" title="class in org.apache.sysds.parser">FunctionStatementBlock</a>&nbsp;createDeepCopyFunctionStatementBlock(<a href="../../../../../org/apache/sysds/parser/FunctionStatementBlock.html" title="class in org.apache.sysds.parser">FunctionStatementBlock</a>&nbsp;fsb,
+                                                                          <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnStack,
+                                                                          <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fnCreated)</pre>
+</li>
+</ul>
+<a name="rCreateDeepCopyStatementBlock-org.apache.sysds.parser.StatementBlock-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>rCreateDeepCopyStatementBlock</h4>
+<pre>public static&nbsp;<a href="../../../../../org/apache/sysds/parser/StatementBlock.html" title="class in org.apache.sysds.parser">StatementBlock</a>&nbsp;rCreateDeepCopyStatementBlock(<a href="../../../../../org/apache/sysds/parser/StatementBlock.html" title="class in org.apache.sysds.parser">StatementBlock</a>&nbsp;sb)</pre>
+</li>
+</ul>
 <a name="createStatementBlockCopy-org.apache.sysds.parser.StatementBlock-long-boolean-boolean-">
 <!--   -->
 </a>
@@ -1330,39 +1354,33 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
                                                       boolean&nbsp;forceDeepCopy)</pre>
 </li>
 </ul>
-<a name="createIfStatementBlockCopy-org.apache.sysds.parser.IfStatementBlock-long-boolean-boolean-">
+<a name="createIfStatementBlockCopy-org.apache.sysds.parser.IfStatementBlock-boolean-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>createIfStatementBlockCopy</h4>
 <pre>public static&nbsp;<a href="../../../../../org/apache/sysds/parser/IfStatementBlock.html" title="class in org.apache.sysds.parser">IfStatementBlock</a>&nbsp;createIfStatementBlockCopy(<a href="../../../../../org/apache/sysds/parser/IfStatementBlock.html" title="class in org.apache.sysds.parser">IfStatementBlock</a>&nbsp;sb,
-                                                          long&nbsp;pid,
-                                                          boolean&nbsp;plain,
                                                           boolean&nbsp;forceDeepCopy)</pre>
 </li>
 </ul>
-<a name="createWhileStatementBlockCopy-org.apache.sysds.parser.WhileStatementBlock-long-boolean-boolean-">
+<a name="createWhileStatementBlockCopy-org.apache.sysds.parser.WhileStatementBlock-boolean-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>createWhileStatementBlockCopy</h4>
 <pre>public static&nbsp;<a href="../../../../../org/apache/sysds/parser/WhileStatementBlock.html" title="class in org.apache.sysds.parser">WhileStatementBlock</a>&nbsp;createWhileStatementBlockCopy(<a href="../../../../../org/apache/sysds/parser/WhileStatementBlock.html" title="class in org.apache.sysds.parser">WhileStatementBlock</a>&nbsp;sb,
-                                                                long&nbsp;pid,
-                                                                boolean&nbsp;plain,
                                                                 boolean&nbsp;forceDeepCopy)</pre>
 </li>
 </ul>
-<a name="createForStatementBlockCopy-org.apache.sysds.parser.ForStatementBlock-long-boolean-boolean-">
+<a name="createForStatementBlockCopy-org.apache.sysds.parser.ForStatementBlock-boolean-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>createForStatementBlockCopy</h4>
 <pre>public static&nbsp;<a href="../../../../../org/apache/sysds/parser/ForStatementBlock.html" title="class in org.apache.sysds.parser">ForStatementBlock</a>&nbsp;createForStatementBlockCopy(<a href="../../../../../org/apache/sysds/parser/ForStatementBlock.html" title="class in org.apache.sysds.parser">ForStatementBlock</a>&nbsp;sb,
-                                                            long&nbsp;pid,
-                                                            boolean&nbsp;plain,
                                                             boolean&nbsp;forceDeepCopy)</pre>
 </li>
 </ul>
diff --git a/docs/api/java/org/apache/sysds/runtime/util/UtilFunctions.html b/docs/api/java/org/apache/sysds/runtime/util/UtilFunctions.html
index 2c43518..3a08ba3 100644
--- a/docs/api/java/org/apache/sysds/runtime/util/UtilFunctions.html
+++ b/docs/api/java/org/apache/sysds/runtime/util/UtilFunctions.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9,"i7":9,"i8":9,"i9":9,"i10":9,"i11":9,"i12":9,"i13":9,"i14":9,"i15":9,"i16":9,"i17":9,"i18":9,"i19":9,"i20":9,"i21":9,"i22":9,"i23":9,"i24":9,"i25":9,"i26":9,"i27":9,"i28":9,"i29":9,"i30":9,"i31":9,"i32":9,"i33":9,"i34":9,"i35":9,"i36":9,"i37":9,"i38":9,"i39":9,"i40":9,"i41":9,"i42":9,"i43":9,"i44":9,"i45":9,"i46":9,"i47":9,"i48":9,"i49":9,"i50":9,"i51":9,"i52":9,"i53":9,"i54":9,"i55":9,"i56":9,"i57":9,"i58":9,"i59":9,"i60":9 [...]
+var methods = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9,"i7":9,"i8":9,"i9":9,"i10":9,"i11":9,"i12":9,"i13":9,"i14":9,"i15":9,"i16":9,"i17":9,"i18":9,"i19":9,"i20":9,"i21":9,"i22":9,"i23":9,"i24":9,"i25":9,"i26":9,"i27":9,"i28":9,"i29":9,"i30":9,"i31":9,"i32":9,"i33":9,"i34":9,"i35":9,"i36":9,"i37":9,"i38":9,"i39":9,"i40":9,"i41":9,"i42":9,"i43":9,"i44":9,"i45":9,"i46":9,"i47":9,"i48":9,"i49":9,"i50":9,"i51":9,"i52":9,"i53":9,"i54":9,"i55":9,"i56":9,"i57":9,"i58":9,"i59":9,"i60":9 [...]
 var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -174,28 +174,12 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <th class="colLast" scope="col">Method and Description</th>
 </tr>
 <tr id="i0" class="altColor">
-<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;T&gt;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/UtilFunctions.html#asList-java.util.List...-">asList</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;T&gt;...&nbsp;inputs)</code>&nbsp;</td>
-</tr>
-<tr id="i1" class="rowColor">
-<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;T&gt;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/UtilFunctions.html#asSet-java.util.List...-">asSet</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;T&gt;...&nbsp;inputs)</code>&nbsp;</td>
-</tr>
-<tr id="i2" class="altColor">
-<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;T&gt;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/UtilFunctions.html#asSet-T...-">asSet</a></span>(T...&nbsp;inputs)</code>&nbsp;</td>
-</tr>
-<tr id="i3" class="rowColor">
-<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;T&gt;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/UtilFunctions.html#asSet-T:A...-">asSet</a></span>(T[]...&nbsp;inputs)</code>&nbsp;</td>
-</tr>
-<tr id="i4" class="altColor">
 <td class="colFirst"><code>static int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/UtilFunctions.html#compareTo-org.apache.sysds.common.Types.ValueType-java.lang.Object-java.lang.Object-">compareTo</a></span>(<a href="../../../../../org/apache/sysds/common/Types.ValueType.html" title="enum in org.apache.sysds.common">Types.ValueType</a>&nbsp;vt,
          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;in1,
          <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;in2)</code>&nbsp;</td>
 </tr>
-<tr id="i5" class="rowColor">
+<tr id="i1" class="rowColor">
 <td class="colFirst"><code>static int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/UtilFunctions.html#compareVersion-java.lang.String-java.lang.String-">compareVersion</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;version1,
               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;version2)</code>
@@ -203,7 +187,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
  y is minor, and z is maintenance release.</div>
 </td>
 </tr>
-<tr id="i6" class="altColor">
+<tr id="i2" class="altColor">
 <td class="colFirst"><code>static long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/UtilFunctions.html#computeBlockIndex-long-int-">computeBlockIndex</a></span>(long&nbsp;cellIndex,
                  int&nbsp;blockSize)</code>
@@ -211,7 +195,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
  data.</div>
 </td>
 </tr>
-<tr id="i7" class="rowColor">
+<tr id="i3" class="rowColor">
 <td class="colFirst"><code>static long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/UtilFunctions.html#computeBlockNumber-int:A-long:A-int-">computeBlockNumber</a></span>(int[]&nbsp;ix,
                   long[]&nbsp;dims,
@@ -219,7 +203,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <div class="block">Calculates the number of the block this index refers to (basically a linearisation).</div>
 </td>
 </tr>
-<tr id="i8" class="altColor">
+<tr id="i4" class="altColor">
 <td class="colFirst"><code>static int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/UtilFunctions.html#computeBlockSize-long-long-long-">computeBlockSize</a></span>(long&nbsp;len,
                 long&nbsp;blockIndex,
@@ -228,7 +212,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
  meta data.</div>
 </td>
 </tr>
-<tr id="i9" class="rowColor">
+<tr id="i5" class="rowColor">
 <td class="colFirst"><code>static int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/UtilFunctions.html#computeCellInBlock-long-int-">computeCellInBlock</a></span>(long&nbsp;cellIndex,
                   int&nbsp;blockSize)</code>
@@ -236,7 +220,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
  size meta data.</div>
 </td>
 </tr>
-<tr id="i10" class="altColor">
+<tr id="i6" class="altColor">
 <td class="colFirst"><code>static long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/UtilFunctions.html#computeCellIndex-long-int-int-">computeCellIndex</a></span>(long&nbsp;blockIndex,
                 int&nbsp;blockSize,
@@ -245,57 +229,57 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
  and specific 0-based in-block cell index.</div>
 </td>
 </tr>
-<tr id="i11" class="rowColor">
+<tr id="i7" class="rowColor">
 <td class="colFirst"><code>static long[]</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/UtilFunctions.html#computeNextTensorIndexes-org.apache.sysds.runtime.meta.TensorCharacteristics-long:A-">computeNextTensorIndexes</a></span>(<a href="../../../../../org/apache/sysds/runtime/meta/TensorCharacteristics.html" title="class in org.apache.sysds.runtime.meta">TensorCharacteristics</a>&nbsp;tc,
                         long[]&nbsp;ix)</code>
 <div class="block">Computes the next tensor indexes array.</div>
 </td>
 </tr>
-<tr id="i12" class="altColor">
+<tr id="i8" class="altColor">
 <td class="colFirst"><code>static int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/UtilFunctions.html#computeNnz-java.util.BitSet-int-int-">computeNnz</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/BitSet.html?is-external=true" title="class or interface in java.util">BitSet</a>&nbsp;a,
           int&nbsp;ai,
           int&nbsp;len)</code>&nbsp;</td>
 </tr>
-<tr id="i13" class="rowColor">
+<tr id="i9" class="rowColor">
 <td class="colFirst"><code>static int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/UtilFunctions.html#computeNnz-double:A-int-int-">computeNnz</a></span>(double[]&nbsp;a,
           int&nbsp;ai,
           int&nbsp;len)</code>&nbsp;</td>
 </tr>
-<tr id="i14" class="altColor">
+<tr id="i10" class="altColor">
 <td class="colFirst"><code>static int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/UtilFunctions.html#computeNnz-float:A-int-int-">computeNnz</a></span>(float[]&nbsp;a,
           int&nbsp;ai,
           int&nbsp;len)</code>&nbsp;</td>
 </tr>
-<tr id="i15" class="rowColor">
+<tr id="i11" class="rowColor">
 <td class="colFirst"><code>static int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/UtilFunctions.html#computeNnz-int:A-int-int-">computeNnz</a></span>(int[]&nbsp;a,
           int&nbsp;ai,
           int&nbsp;len)</code>&nbsp;</td>
 </tr>
-<tr id="i16" class="altColor">
+<tr id="i12" class="altColor">
 <td class="colFirst"><code>static int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/UtilFunctions.html#computeNnz-long:A-int-int-">computeNnz</a></span>(long[]&nbsp;a,
           int&nbsp;ai,
           int&nbsp;len)</code>&nbsp;</td>
 </tr>
-<tr id="i17" class="rowColor">
+<tr id="i13" class="rowColor">
 <td class="colFirst"><code>static long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/UtilFunctions.html#computeNnz-org.apache.sysds.runtime.data.SparseBlock-int:A-int-int-">computeNnz</a></span>(<a href="../../../../../org/apache/sysds/runtime/data/SparseBlock.html" title="class in org.apache.sysds.runtime.data">SparseBlock</a>&nbsp;a,
           int[]&nbsp;aix,
           int&nbsp;ai,
           int&nbsp;alen)</code>&nbsp;</td>
 </tr>
-<tr id="i18" class="altColor">
+<tr id="i14" class="altColor">
 <td class="colFirst"><code>static int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/UtilFunctions.html#computeNnz-java.lang.String:A-int-int-">computeNnz</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;a,
           int&nbsp;ai,
           int&nbsp;len)</code>&nbsp;</td>
 </tr>
-<tr id="i19" class="rowColor">
+<tr id="i15" class="rowColor">
 <td class="colFirst"><code>static void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/UtilFunctions.html#computeSliceInfo-org.apache.sysds.runtime.meta.TensorCharacteristics-long:A-int:A-int:A-">computeSliceInfo</a></span>(<a href="../../../../../org/apache/sysds/runtime/meta/TensorCharacteristics.html" title="class in org.apache.sysds.runtime.meta">TensorCharacteristics</a>&nbsp;tc,
                 long[]&nbsp;blockIx,
@@ -305,66 +289,66 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
  <code>TensorCharacteristics</code>.</div>
 </td>
 </tr>
-<tr id="i20" class="altColor">
+<tr id="i16" class="altColor">
 <td class="colFirst"><code>static long[]</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/UtilFunctions.html#computeTensorIndexes-org.apache.sysds.runtime.meta.TensorCharacteristics-long-">computeTensorIndexes</a></span>(<a href="../../../../../org/apache/sysds/runtime/meta/TensorCharacteristics.html" title="class in org.apache.sysds.runtime.meta">TensorCharacteristics</a>&nbsp;tc,
                     long&nbsp;blockIndex)</code>
 <div class="block">Computes the tensor indexes array given a blockIndex we ant to compute.</div>
 </td>
 </tr>
-<tr id="i21" class="rowColor">
+<tr id="i17" class="rowColor">
 <td class="colFirst"><code>static boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/UtilFunctions.html#containsZero-double:A-int-int-">containsZero</a></span>(double[]&nbsp;data,
             int&nbsp;pos,
             int&nbsp;len)</code>&nbsp;</td>
 </tr>
-<tr id="i22" class="altColor">
+<tr id="i18" class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/sysds/common/Types.ValueType.html" title="enum in org.apache.sysds.common">Types.ValueType</a>[]</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/UtilFunctions.html#copyOf-org.apache.sysds.common.Types.ValueType:A-org.apache.sysds.common.Types.ValueType:A-">copyOf</a></span>(<a href="../../../../../org/apache/sysds/common/Types.ValueType.html" title="enum in org.apache.sysds.common">Types.ValueType</a>[]&nbsp;schema1,
       <a href="../../../../../org/apache/sysds/common/Types.ValueType.html" title="enum in org.apache.sysds.common">Types.ValueType</a>[]&nbsp;schema2)</code>&nbsp;</td>
 </tr>
-<tr id="i23" class="rowColor">
+<tr id="i19" class="rowColor">
 <td class="colFirst"><code>static int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/UtilFunctions.html#countNonZeros-double:A-int-int-">countNonZeros</a></span>(double[]&nbsp;data,
              int&nbsp;pos,
              int&nbsp;len)</code>&nbsp;</td>
 </tr>
-<tr id="i24" class="altColor">
+<tr id="i20" class="altColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/UtilFunctions.html#doubleToObject-org.apache.sysds.common.Types.ValueType-double-">doubleToObject</a></span>(<a href="../../../../../org/apache/sysds/common/Types.ValueType.html" title="enum in org.apache.sysds.common">Types.ValueType</a>&nbsp;vt,
               double&nbsp;in)</code>&nbsp;</td>
 </tr>
-<tr id="i25" class="rowColor">
+<tr id="i21" class="rowColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/UtilFunctions.html#doubleToObject-org.apache.sysds.common.Types.ValueType-double-boolean-">doubleToObject</a></span>(<a href="../../../../../org/apache/sysds/common/Types.ValueType.html" title="enum in org.apache.sysds.common">Types.ValueType</a>&nbsp;vt,
               double&nbsp;in,
               boolean&nbsp;sparse)</code>&nbsp;</td>
 </tr>
-<tr id="i26" class="altColor">
+<tr id="i22" class="altColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/UtilFunctions.html#formatMemorySize-long-">formatMemorySize</a></span>(long&nbsp;arg)</code>
 <div class="block">Format a memory size with g/m/k quantifiers into its
  number representation.</div>
 </td>
 </tr>
-<tr id="i27" class="rowColor">
+<tr id="i23" class="rowColor">
 <td class="colFirst"><code>static int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/UtilFunctions.html#frequency-org.apache.sysds.common.Types.ValueType:A-org.apache.sysds.common.Types.ValueType-">frequency</a></span>(<a href="../../../../../org/apache/sysds/common/Types.ValueType.html" title="enum in org.apache.sysds.common">Types.ValueType</a>[]&nbsp;schema,
          <a href="../../../../../org/apache/sysds/common/Types.ValueType.html" title="enum in org.apache.sysds.common">Types.ValueType</a>&nbsp;vt)</code>&nbsp;</td>
 </tr>
-<tr id="i28" class="altColor">
+<tr id="i24" class="altColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/UtilFunctions.html#getAlignedBlockSizes-int-int-int-">getAlignedBlockSizes</a></span>(int&nbsp;len,
                     int&nbsp;k,
                     int&nbsp;align)</code>&nbsp;</td>
 </tr>
-<tr id="i29" class="rowColor">
+<tr id="i25" class="rowColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/UtilFunctions.html#getBalancedBlockSizesDefault-int-int-boolean-">getBalancedBlockSizesDefault</a></span>(int&nbsp;len,
                             int&nbsp;k,
                             boolean&nbsp;constK)</code>&nbsp;</td>
 </tr>
-<tr id="i30" class="altColor">
+<tr id="i26" class="altColor">
 <td class="colFirst"><code>static void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/UtilFunctions.html#getBlockBounds-org.apache.sysds.runtime.data.TensorIndexes-long:A-int-int:A-int:A-">getBlockBounds</a></span>(<a href="../../../../../org/apache/sysds/runtime/data/TensorIndexes.html" title="class in org.apache.sysds.runtime.data">TensorIndexes</a>&nbsp;ix,
               long[]&nbsp;dims,
@@ -372,17 +356,17 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
               int[]&nbsp;lower,
               int[]&nbsp;upper)</code>&nbsp;</td>
 </tr>
-<tr id="i31" class="rowColor">
+<tr id="i27" class="rowColor">
 <td class="colFirst"><code>static double</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/UtilFunctions.html#getDouble-java.lang.Object-">getDouble</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>&nbsp;</td>
 </tr>
-<tr id="i32" class="altColor">
+<tr id="i28" class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/sysds/runtime/util/IndexRange.html" title="class in org.apache.sysds.runtime.util">IndexRange</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/UtilFunctions.html#getSelectedRangeForZeroOut-org.apache.sysds.runtime.instructions.spark.data.IndexedMatrixValue-int-org.apache.sysds.runtime.util.IndexRange-">getSelectedRangeForZeroOut</a></span>(<a href="../../../../../org/apache/sysds/runtime/instructions/spark/data/IndexedMatrixValue.html" title="class in org.apache.sysds.runtime.instructions.spark.data">IndexedMatrixValue</ [...]
                           int&nbsp;blen,
                           <a href="../../../../../org/apache/sysds/runtime/util/IndexRange.html" title="class in org.apache.sysds.runtime.util">IndexRange</a>&nbsp;indexRange)</code>&nbsp;</td>
 </tr>
-<tr id="i33" class="rowColor">
+<tr id="i29" class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/sysds/runtime/util/IndexRange.html" title="class in org.apache.sysds.runtime.util">IndexRange</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/UtilFunctions.html#getSelectedRangeForZeroOut-org.apache.sysds.runtime.matrix.data.Pair-int-org.apache.sysds.runtime.util.IndexRange-long-long-">getSelectedRangeForZeroOut</a></span>(<a href="../../../../../org/apache/sysds/runtime/matrix/data/Pair.html" title="class in org.apache.sysds.runtime.matrix.data">Pair</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/L [...]
                           int&nbsp;blen,
@@ -390,7 +374,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
                           long&nbsp;lSrcRowIndex,
                           long&nbsp;lDestRowIndex)</code>&nbsp;</td>
 </tr>
-<tr id="i34" class="altColor">
+<tr id="i30" class="altColor">
 <td class="colFirst"><code>static int[]</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/UtilFunctions.html#getSeqArray-int-int-int-">getSeqArray</a></span>(int&nbsp;low,
            int&nbsp;up,
@@ -398,20 +382,20 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <div class="block">Obtain sequence array</div>
 </td>
 </tr>
-<tr id="i35" class="rowColor">
+<tr id="i31" class="rowColor">
 <td class="colFirst"><code>static long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/UtilFunctions.html#getSeqLength-double-double-double-">getSeqLength</a></span>(double&nbsp;from,
             double&nbsp;to,
             double&nbsp;incr)</code>&nbsp;</td>
 </tr>
-<tr id="i36" class="altColor">
+<tr id="i32" class="altColor">
 <td class="colFirst"><code>static long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/UtilFunctions.html#getSeqLength-double-double-double-boolean-">getSeqLength</a></span>(double&nbsp;from,
             double&nbsp;to,
             double&nbsp;incr,
             boolean&nbsp;check)</code>&nbsp;</td>
 </tr>
-<tr id="i37" class="rowColor">
+<tr id="i33" class="rowColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/UtilFunctions.html#getSeqList-int-int-int-">getSeqList</a></span>(int&nbsp;low,
           int&nbsp;up,
@@ -419,38 +403,34 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <div class="block">Obtain sequence list</div>
 </td>
 </tr>
-<tr id="i38" class="altColor">
+<tr id="i34" class="altColor">
 <td class="colFirst"><code>static int[]</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/UtilFunctions.html#getSortedSampleIndexes-int-int-">getSortedSampleIndexes</a></span>(int&nbsp;range,
                       int&nbsp;sampleSize)</code>&nbsp;</td>
 </tr>
-<tr id="i39" class="rowColor">
+<tr id="i35" class="rowColor">
 <td class="colFirst"><code>static int[]</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/UtilFunctions.html#getSortedSampleIndexes-int-int-long-">getSortedSampleIndexes</a></span>(int&nbsp;range,
                       int&nbsp;sampleSize,
                       long&nbsp;seed)</code>&nbsp;</td>
 </tr>
-<tr id="i40" class="altColor">
-<td class="colFirst"><code>static &lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/stream/Stream.html?is-external=true" title="class or interface in java.util.stream">Stream</a>&lt;T&gt;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/UtilFunctions.html#getStream-java.util.Iterator-">getStream</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a>&lt;T&gt;&nbsp;iter)</code>&nbsp;</td>
-</tr>
-<tr id="i41" class="rowColor">
+<tr id="i36" class="altColor">
 <td class="colFirst"><code>static int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/UtilFunctions.html#intHashCode-int-int-">intHashCode</a></span>(int&nbsp;key1,
            int&nbsp;key2)</code>&nbsp;</td>
 </tr>
-<tr id="i42" class="altColor">
+<tr id="i37" class="rowColor">
 <td class="colFirst"><code>static int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/UtilFunctions.html#intHashCodeRobust-int-int-">intHashCodeRobust</a></span>(int&nbsp;key1,
                  int&nbsp;key2)</code>&nbsp;</td>
 </tr>
-<tr id="i43" class="rowColor">
+<tr id="i38" class="altColor">
 <td class="colFirst"><code>static boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/UtilFunctions.html#isInBlockRange-org.apache.sysds.runtime.matrix.data.MatrixIndexes-int-org.apache.sysds.runtime.util.IndexRange-">isInBlockRange</a></span>(<a href="../../../../../org/apache/sysds/runtime/matrix/data/MatrixIndexes.html" title="class in org.apache.sysds.runtime.matrix.data">MatrixIndexes</a>&nbsp;ix,
               int&nbsp;blen,
               <a href="../../../../../org/apache/sysds/runtime/util/IndexRange.html" title="class in org.apache.sysds.runtime.util">IndexRange</a>&nbsp;ixrange)</code>&nbsp;</td>
 </tr>
-<tr id="i44" class="altColor">
+<tr id="i39" class="rowColor">
 <td class="colFirst"><code>static boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/UtilFunctions.html#isInBlockRange-org.apache.sysds.runtime.matrix.data.MatrixIndexes-int-long-long-long-long-">isInBlockRange</a></span>(<a href="../../../../../org/apache/sysds/runtime/matrix/data/MatrixIndexes.html" title="class in org.apache.sysds.runtime.matrix.data">MatrixIndexes</a>&nbsp;ix,
               int&nbsp;blen,
@@ -459,39 +439,39 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
               long&nbsp;cl,
               long&nbsp;cu)</code>&nbsp;</td>
 </tr>
-<tr id="i45" class="rowColor">
+<tr id="i40" class="altColor">
 <td class="colFirst"><code>static boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/UtilFunctions.html#isInFrameBlockRange-java.lang.Long-int-org.apache.sysds.runtime.util.IndexRange-">isInFrameBlockRange</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&nbsp;ix,
                    int&nbsp;blen,
                    <a href="../../../../../org/apache/sysds/runtime/util/IndexRange.html" title="class in org.apache.sysds.runtime.util">IndexRange</a>&nbsp;ixrange)</code>&nbsp;</td>
 </tr>
-<tr id="i46" class="altColor">
+<tr id="i41" class="rowColor">
 <td class="colFirst"><code>static boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/UtilFunctions.html#isInFrameBlockRange-java.lang.Long-int-long-long-">isInFrameBlockRange</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&nbsp;ix,
                    int&nbsp;blen,
                    long&nbsp;rl,
                    long&nbsp;ru)</code>&nbsp;</td>
 </tr>
-<tr id="i47" class="rowColor">
+<tr id="i42" class="altColor">
 <td class="colFirst"><code>static boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/UtilFunctions.html#isIntegerNumber-java.lang.String-">isIntegerNumber</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;str)</code>&nbsp;</td>
 </tr>
-<tr id="i48" class="altColor">
+<tr id="i43" class="rowColor">
 <td class="colFirst"><code>static boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/UtilFunctions.html#isNonZero-java.lang.Object-">isNonZero</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>&nbsp;</td>
 </tr>
-<tr id="i49" class="rowColor">
+<tr id="i44" class="altColor">
 <td class="colFirst"><code>static int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/UtilFunctions.html#longHashCode-long-">longHashCode</a></span>(long&nbsp;key1)</code>&nbsp;</td>
 </tr>
-<tr id="i50" class="altColor">
+<tr id="i45" class="rowColor">
 <td class="colFirst"><code>static int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/UtilFunctions.html#longHashCode-long-long-">longHashCode</a></span>(long&nbsp;key1,
             long&nbsp;key2)</code>
 <div class="block">Returns the hash code for a long-long pair.</div>
 </td>
 </tr>
-<tr id="i51" class="rowColor">
+<tr id="i46" class="altColor">
 <td class="colFirst"><code>static int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/UtilFunctions.html#longHashCode-long-long-long-">longHashCode</a></span>(long&nbsp;key1,
             long&nbsp;key2,
@@ -499,116 +479,116 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <div class="block">Returns the hash code for a long-long-long triple.</div>
 </td>
 </tr>
-<tr id="i52" class="altColor">
+<tr id="i47" class="rowColor">
 <td class="colFirst"><code>static byte</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/UtilFunctions.html#max-byte:A-">max</a></span>(byte[]&nbsp;array)</code>&nbsp;</td>
 </tr>
-<tr id="i53" class="rowColor">
+<tr id="i48" class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/sysds/common/Types.ValueType.html" title="enum in org.apache.sysds.common">Types.ValueType</a>[]</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/UtilFunctions.html#nCopies-int-org.apache.sysds.common.Types.ValueType-">nCopies</a></span>(int&nbsp;n,
        <a href="../../../../../org/apache/sysds/common/Types.ValueType.html" title="enum in org.apache.sysds.common">Types.ValueType</a>&nbsp;vt)</code>&nbsp;</td>
 </tr>
-<tr id="i54" class="altColor">
+<tr id="i49" class="rowColor">
 <td class="colFirst"><code>static int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/UtilFunctions.html#nextIntPow2-int-">nextIntPow2</a></span>(int&nbsp;in)</code>&nbsp;</td>
 </tr>
-<tr id="i55" class="rowColor">
+<tr id="i50" class="altColor">
 <td class="colFirst"><code>static double</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/UtilFunctions.html#objectToDouble-org.apache.sysds.common.Types.ValueType-java.lang.Object-">objectToDouble</a></span>(<a href="../../../../../org/apache/sysds/common/Types.ValueType.html" title="enum in org.apache.sysds.common">Types.ValueType</a>&nbsp;vt,
               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;in)</code>&nbsp;</td>
 </tr>
-<tr id="i56" class="altColor">
+<tr id="i51" class="rowColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/UtilFunctions.html#objectToObject-org.apache.sysds.common.Types.ValueType-java.lang.Object-">objectToObject</a></span>(<a href="../../../../../org/apache/sysds/common/Types.ValueType.html" title="enum in org.apache.sysds.common">Types.ValueType</a>&nbsp;vt,
               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;in)</code>&nbsp;</td>
 </tr>
-<tr id="i57" class="rowColor">
+<tr id="i52" class="altColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/UtilFunctions.html#objectToObject-org.apache.sysds.common.Types.ValueType-java.lang.Object-boolean-">objectToObject</a></span>(<a href="../../../../../org/apache/sysds/common/Types.ValueType.html" title="enum in org.apache.sysds.common">Types.ValueType</a>&nbsp;vt,
               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;in,
               boolean&nbsp;ignoreNull)</code>&nbsp;</td>
 </tr>
-<tr id="i58" class="altColor">
+<tr id="i53" class="rowColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/UtilFunctions.html#objectToString-java.lang.Object-">objectToString</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;in)</code>&nbsp;</td>
 </tr>
-<tr id="i59" class="rowColor">
+<tr id="i54" class="altColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/UtilFunctions.html#objectToString-java.lang.Object-boolean-">objectToString</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;in,
               boolean&nbsp;ignoreNull)</code>
 <div class="block">Convert object to string</div>
 </td>
 </tr>
-<tr id="i60" class="altColor">
+<tr id="i55" class="rowColor">
 <td class="colFirst"><code>static long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/UtilFunctions.html#parseMemorySize-java.lang.String-">parseMemorySize</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;arg)</code>
 <div class="block">Parses a memory size with optional g/m/k quantifiers into its
  number representation.</div>
 </td>
 </tr>
-<tr id="i61" class="rowColor">
+<tr id="i56" class="altColor">
 <td class="colFirst"><code>static double</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/UtilFunctions.html#parseToDouble-java.lang.String-">parseToDouble</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;str)</code>
 <div class="block">Safe double parsing including handling of NAs.</div>
 </td>
 </tr>
-<tr id="i62" class="altColor">
+<tr id="i57" class="rowColor">
 <td class="colFirst"><code>static int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/UtilFunctions.html#parseToInt-java.lang.String-">parseToInt</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;str)</code>&nbsp;</td>
 </tr>
-<tr id="i63" class="rowColor">
+<tr id="i58" class="altColor">
 <td class="colFirst"><code>static long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/UtilFunctions.html#parseToLong-java.lang.String-">parseToLong</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;str)</code>&nbsp;</td>
 </tr>
-<tr id="i64" class="altColor">
+<tr id="i59" class="rowColor">
 <td class="colFirst"><code>static long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/UtilFunctions.html#pow-int-int-">pow</a></span>(int&nbsp;base,
    int&nbsp;exp)</code>&nbsp;</td>
 </tr>
-<tr id="i65" class="rowColor">
+<tr id="i60" class="altColor">
 <td class="colFirst"><code>static long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/UtilFunctions.html#prod-int:A-">prod</a></span>(int[]&nbsp;arr)</code>&nbsp;</td>
 </tr>
-<tr id="i66" class="altColor">
+<tr id="i61" class="rowColor">
 <td class="colFirst"><code>static long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/UtilFunctions.html#prod-int:A-int-">prod</a></span>(int[]&nbsp;arr,
     int&nbsp;off)</code>&nbsp;</td>
 </tr>
-<tr id="i67" class="rowColor">
+<tr id="i62" class="altColor">
 <td class="colFirst"><code>static long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/UtilFunctions.html#prod-long:A-">prod</a></span>(long[]&nbsp;arr)</code>&nbsp;</td>
 </tr>
-<tr id="i68" class="altColor">
+<tr id="i63" class="rowColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/UtilFunctions.html#quote-java.lang.String-">quote</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;s)</code>&nbsp;</td>
 </tr>
-<tr id="i69" class="rowColor">
+<tr id="i64" class="altColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.commons.lang3.tuple.Pair&lt;<a href="../../../../../org/apache/sysds/runtime/controlprogram/federated/FederatedRange.html" title="class in org.apache.sysds.runtime.controlprogram.federated">FederatedRange</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=t [...]
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/UtilFunctions.html#requestFederatedData-java.util.Map-">requestFederatedData</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/sysds/runtime/controlprogram/federated/FederatedRange.html" title="class in org.apache.sysds.runtime.controlprogram.feder [...]
 </tr>
-<tr id="i70" class="altColor">
+<tr id="i65" class="rowColor">
 <td class="colFirst"><code>static int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/UtilFunctions.html#roundToNext-int-int-">roundToNext</a></span>(int&nbsp;val,
            int&nbsp;factor)</code>&nbsp;</td>
 </tr>
-<tr id="i71" class="rowColor">
+<tr id="i66" class="altColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/UtilFunctions.html#stringToObject-org.apache.sysds.common.Types.ValueType-java.lang.String-">stringToObject</a></span>(<a href="../../../../../org/apache/sysds/common/Types.ValueType.html" title="enum in org.apache.sysds.common">Types.ValueType</a>&nbsp;vt,
               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;in)</code>&nbsp;</td>
 </tr>
-<tr id="i72" class="altColor">
+<tr id="i67" class="rowColor">
 <td class="colFirst"><code>static int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/UtilFunctions.html#toInt-double-">toInt</a></span>(double&nbsp;val)</code>&nbsp;</td>
 </tr>
-<tr id="i73" class="rowColor">
+<tr id="i68" class="altColor">
 <td class="colFirst"><code>static int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/UtilFunctions.html#toInt-java.lang.Object-">toInt</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>&nbsp;</td>
 </tr>
-<tr id="i74" class="altColor">
+<tr id="i69" class="rowColor">
 <td class="colFirst"><code>static long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/UtilFunctions.html#toLong-double-">toLong</a></span>(double&nbsp;val)</code>&nbsp;</td>
 </tr>
-<tr id="i75" class="rowColor">
+<tr id="i70" class="altColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/sysds/runtime/util/UtilFunctions.html#unquote-java.lang.String-">unquote</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;s)</code>&nbsp;</td>
 </tr>
@@ -1533,59 +1513,6 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
                                    int&nbsp;len)</pre>
 </li>
 </ul>
-<a name="asList-java.util.List...-">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>asList</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/SafeVarargs.html?is-external=true" title="class or interface in java.lang">@SafeVarargs</a>
-public static&nbsp;&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;T&gt;&nbsp;asList(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;T&gt;...&nbsp;inputs)</pre>
-</li>
-</ul>
-<a name="asSet-java.util.List...-">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>asSet</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/SafeVarargs.html?is-external=true" title="class or interface in java.lang">@SafeVarargs</a>
-public static&nbsp;&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;T&gt;&nbsp;asSet(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;T&gt;...&nbsp;inputs)</pre>
-</li>
-</ul>
-<a name="asSet-java.lang.Object:A:A-">
-<!--   -->
-</a><a name="asSet-T:A...-">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>asSet</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/SafeVarargs.html?is-external=true" title="class or interface in java.lang">@SafeVarargs</a>
-public static&nbsp;&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;T&gt;&nbsp;asSet(T[]...&nbsp;inputs)</pre>
-</li>
-</ul>
-<a name="asSet-java.lang.Object:A-">
-<!--   -->
-</a><a name="asSet-T...-">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>asSet</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/SafeVarargs.html?is-external=true" title="class or interface in java.lang">@SafeVarargs</a>
-public static&nbsp;&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;T&gt;&nbsp;asSet(T...&nbsp;inputs)</pre>
-</li>
-</ul>
-<a name="getStream-java.util.Iterator-">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>getStream</h4>
-<pre>public static&nbsp;&lt;T&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/stream/Stream.html?is-external=true" title="class or interface in java.util.stream">Stream</a>&lt;T&gt;&nbsp;getStream(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a>&lt;T&gt;&nbsp;iter)</pre>
-</li>
-</ul>
 <a name="prod-long:A-">
 <!--   -->
 </a>
diff --git a/docs/api/java/org/apache/sysds/runtime/class-use/DMLScriptException.html b/docs/api/java/org/apache/sysds/runtime/util/class-use/CollectionUtils.html
similarity index 59%
copy from docs/api/java/org/apache/sysds/runtime/class-use/DMLScriptException.html
copy to docs/api/java/org/apache/sysds/runtime/util/class-use/CollectionUtils.html
index 806bd02..11c9c58 100644
--- a/docs/api/java/org/apache/sysds/runtime/class-use/DMLScriptException.html
+++ b/docs/api/java/org/apache/sysds/runtime/util/class-use/CollectionUtils.html
@@ -4,15 +4,15 @@
 <head>
 <!-- Generated by javadoc -->
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Uses of Class org.apache.sysds.runtime.DMLScriptException (SystemDS 2.0.0-SNAPSHOT API)</title>
-<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
-<script type="text/javascript" src="../../../../../script.js"></script>
+<title>Uses of Class org.apache.sysds.runtime.util.CollectionUtils (SystemDS 2.0.0-SNAPSHOT API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
 </head>
 <body>
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.apache.sysds.runtime.DMLScriptException (SystemDS 2.0.0-SNAPSHOT API)";
+            parent.document.title="Uses of Class org.apache.sysds.runtime.util.CollectionUtils (SystemDS 2.0.0-SNAPSHOT API)";
         }
     }
     catch(err) {
@@ -31,14 +31,14 @@
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../org/apache/sysds/runtime/DMLScriptException.html" title="class in org.apache.sysds.runtime">Class</a></li>
+<li><a href="../../../../../../org/apache/sysds/runtime/util/CollectionUtils.html" title="class in org.apache.sysds.runtime.util">Class</a></li>
 <li class="navBarCell1Rev">Use</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>
+<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">
@@ -47,11 +47,11 @@
 <li>Next</li>
 </ul>
 <ul class="navList">
-<li><a href="../../../../../index.html?org/apache/sysds/runtime/class-use/DMLScriptException.html" target="_top">Frames</a></li>
-<li><a href="DMLScriptException.html" target="_top">No&nbsp;Frames</a></li>
+<li><a href="../../../../../../index.html?org/apache/sysds/runtime/util/class-use/CollectionUtils.html" target="_top">Frames</a></li>
+<li><a href="CollectionUtils.html" target="_top">No&nbsp;Frames</a></li>
 </ul>
 <ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
@@ -70,9 +70,9 @@
 </a></div>
 <!-- ========= END OF TOP NAVBAR ========= -->
 <div class="header">
-<h2 title="Uses of Class org.apache.sysds.runtime.DMLScriptException" class="title">Uses of Class<br>org.apache.sysds.runtime.DMLScriptException</h2>
+<h2 title="Uses of Class org.apache.sysds.runtime.util.CollectionUtils" class="title">Uses of Class<br>org.apache.sysds.runtime.util.CollectionUtils</h2>
 </div>
-<div class="classUseContainer">No usage of org.apache.sysds.runtime.DMLScriptException</div>
+<div class="classUseContainer">No usage of org.apache.sysds.runtime.util.CollectionUtils</div>
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
 <div class="bottomNav"><a name="navbar.bottom">
 <!--   -->
@@ -82,14 +82,14 @@
 <!--   -->
 </a>
 <ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
 <li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../org/apache/sysds/runtime/DMLScriptException.html" title="class in org.apache.sysds.runtime">Class</a></li>
+<li><a href="../../../../../../org/apache/sysds/runtime/util/CollectionUtils.html" title="class in org.apache.sysds.runtime.util">Class</a></li>
 <li class="navBarCell1Rev">Use</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>
+<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">
@@ -98,11 +98,11 @@
 <li>Next</li>
 </ul>
 <ul class="navList">
-<li><a href="../../../../../index.html?org/apache/sysds/runtime/class-use/DMLScriptException.html" target="_top">Frames</a></li>
-<li><a href="DMLScriptException.html" target="_top">No&nbsp;Frames</a></li>
+<li><a href="../../../../../../index.html?org/apache/sysds/runtime/util/class-use/CollectionUtils.html" target="_top">Frames</a></li>
+<li><a href="CollectionUtils.html" target="_top">No&nbsp;Frames</a></li>
 </ul>
 <ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
 </ul>
 <div>
 <script type="text/javascript"><!--
diff --git a/docs/api/java/org/apache/sysds/runtime/util/package-frame.html b/docs/api/java/org/apache/sysds/runtime/util/package-frame.html
index bd4e08d..b602edd 100644
--- a/docs/api/java/org/apache/sysds/runtime/util/package-frame.html
+++ b/docs/api/java/org/apache/sysds/runtime/util/package-frame.html
@@ -16,6 +16,7 @@
 <li><a href="BinaryBlockInputFormat.html" title="class in org.apache.sysds.runtime.util" target="classFrame">BinaryBlockInputFormat</a></li>
 <li><a href="BinaryBlockRecordReader.html" title="class in org.apache.sysds.runtime.util" target="classFrame">BinaryBlockRecordReader</a></li>
 <li><a href="ByteBufferDataInput.html" title="class in org.apache.sysds.runtime.util" target="classFrame">ByteBufferDataInput</a></li>
+<li><a href="CollectionUtils.html" title="class in org.apache.sysds.runtime.util" target="classFrame">CollectionUtils</a></li>
 <li><a href="CommonThreadPool.html" title="class in org.apache.sysds.runtime.util" target="classFrame">CommonThreadPool</a></li>
 <li><a href="DataConverter.html" title="class in org.apache.sysds.runtime.util" target="classFrame">DataConverter</a></li>
 <li><a href="DnnUtils.html" title="class in org.apache.sysds.runtime.util" target="classFrame">DnnUtils</a></li>
diff --git a/docs/api/java/org/apache/sysds/runtime/util/package-summary.html b/docs/api/java/org/apache/sysds/runtime/util/package-summary.html
index 6fd0fe2..6e0fbdc 100644
--- a/docs/api/java/org/apache/sysds/runtime/util/package-summary.html
+++ b/docs/api/java/org/apache/sysds/runtime/util/package-summary.html
@@ -99,6 +99,10 @@
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/sysds/runtime/util/CollectionUtils.html" title="class in org.apache.sysds.runtime.util">CollectionUtils</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/sysds/runtime/util/CommonThreadPool.html" title="class in org.apache.sysds.runtime.util">CommonThreadPool</a></td>
 <td class="colLast">
 <div class="block">This common thread pool provides an abstraction to obtain a shared
@@ -106,82 +110,82 @@
  of the maximum degree of parallelism.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/sysds/runtime/util/DataConverter.html" title="class in org.apache.sysds.runtime.util">DataConverter</a></td>
 <td class="colLast">
 <div class="block">This class provides methods to read and write matrix blocks from to HDFS using different data formats.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/sysds/runtime/util/DnnUtils.html" title="class in org.apache.sysds.runtime.util">DnnUtils</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/sysds/runtime/util/FastBufferedDataInputStream.html" title="class in org.apache.sysds.runtime.util">FastBufferedDataInputStream</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/sysds/runtime/util/FastBufferedDataOutputStream.html" title="class in org.apache.sysds.runtime.util">FastBufferedDataOutputStream</a></td>
 <td class="colLast">
 <div class="block">This buffered output stream is essentially a merged version of
  BufferedOutputStream and DataOutputStream, wrt SystemDS requirements.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/sysds/runtime/util/FastStringTokenizer.html" title="class in org.apache.sysds.runtime.util">FastStringTokenizer</a></td>
 <td class="colLast">
 <div class="block">This string tokenizer is essentially a simplified StringTokenizer.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/sysds/runtime/util/HDFSTool.html" title="class in org.apache.sysds.runtime.util">HDFSTool</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/sysds/runtime/util/IndexRange.html" title="class in org.apache.sysds.runtime.util">IndexRange</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/sysds/runtime/util/InputStreamInputFormat.html" title="class in org.apache.sysds.runtime.util">InputStreamInputFormat</a></td>
 <td class="colLast">
 <div class="block">Custom input format and record reader to redirect common implementation of csv read 
  over record readers (which are required for the parallel readers) to an input stream.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/sysds/runtime/util/LocalFileUtils.html" title="class in org.apache.sysds.runtime.util">LocalFileUtils</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/sysds/runtime/util/LongLongDoubleHashMap.html" title="class in org.apache.sysds.runtime.util">LongLongDoubleHashMap</a></td>
 <td class="colLast">
 <div class="block">This native long long - double hashmap is specifically designed for
  ctable operations which only require addvalue - extract semantics.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/sysds/runtime/util/LongLongDoubleHashMap.ADoubleEntry.html" title="class in org.apache.sysds.runtime.util">LongLongDoubleHashMap.ADoubleEntry</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/sysds/runtime/util/NormalPRNGenerator.html" title="class in org.apache.sysds.runtime.util">NormalPRNGenerator</a></td>
 <td class="colLast">
 <div class="block">Class that can generate a stream of random numbers from standard 
  normal distribution N(0,1).</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/sysds/runtime/util/PoissonPRNGenerator.html" title="class in org.apache.sysds.runtime.util">PoissonPRNGenerator</a></td>
 <td class="colLast">
 <div class="block">Class that can generate a stream of random numbers from Poisson
  distribution with specified mean.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/sysds/runtime/util/PRNGenerator.html" title="class in org.apache.sysds.runtime.util">PRNGenerator</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/sysds/runtime/util/ProgramConverter.html" title="class in org.apache.sysds.runtime.util">ProgramConverter</a></td>
 <td class="colLast">
 <div class="block">Program converter functionalities for 
@@ -189,30 +193,30 @@
    (2) serializing and parsing of programs, program blocks, functions program blocks.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/sysds/runtime/util/Py4jConverterUtils.html" title="class in org.apache.sysds.runtime.util">Py4jConverterUtils</a></td>
 <td class="colLast">
 <div class="block">Utils for converting python data to java.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/sysds/runtime/util/RandNPair.html" title="class in org.apache.sysds.runtime.util">RandNPair</a></td>
 <td class="colLast">
 <div class="block">Class that generates a pair of random numbers from standard normal 
  distribution N(0,1).</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/sysds/runtime/util/SortUtils.html" title="class in org.apache.sysds.runtime.util">SortUtils</a></td>
 <td class="colLast">
 <div class="block">Utilities for sorting, primarily used for SparseRows.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/sysds/runtime/util/UniformPRNGenerator.html" title="class in org.apache.sysds.runtime.util">UniformPRNGenerator</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/sysds/runtime/util/UtilFunctions.html" title="class in org.apache.sysds.runtime.util">UtilFunctions</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
diff --git a/docs/api/java/org/apache/sysds/runtime/util/package-tree.html b/docs/api/java/org/apache/sysds/runtime/util/package-tree.html
index 3e7dc55..5f16823 100644
--- a/docs/api/java/org/apache/sysds/runtime/util/package-tree.html
+++ b/docs/api/java/org/apache/sysds/runtime/util/package-tree.html
@@ -82,6 +82,7 @@
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
 <ul>
 <li type="circle">org.apache.sysds.runtime.util.<a href="../../../../../org/apache/sysds/runtime/util/ByteBufferDataInput.html" title="class in org.apache.sysds.runtime.util"><span class="typeNameLink">ByteBufferDataInput</span></a> (implements java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/DataInput.html?is-external=true" title="class or interface in java.io">DataInput</a>, org.apache.sysds.runtime.matrix.data.<a href="../../../../../org/apache/sysds/runtime/matrix/d [...]
+<li type="circle">org.apache.sysds.runtime.util.<a href="../../../../../org/apache/sysds/runtime/util/CollectionUtils.html" title="class in org.apache.sysds.runtime.util"><span class="typeNameLink">CollectionUtils</span></a></li>
 <li type="circle">org.apache.sysds.runtime.util.<a href="../../../../../org/apache/sysds/runtime/util/CommonThreadPool.html" title="class in org.apache.sysds.runtime.util"><span class="typeNameLink">CommonThreadPool</span></a> (implements java.util.concurrent.<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a>)</li>
 <li type="circle">org.apache.sysds.runtime.util.<a href="../../../../../org/apache/sysds/runtime/util/DataConverter.html" title="class in org.apache.sysds.runtime.util"><span class="typeNameLink">DataConverter</span></a></li>
 <li type="circle">org.apache.sysds.runtime.util.<a href="../../../../../org/apache/sysds/runtime/util/DnnUtils.html" title="class in org.apache.sysds.runtime.util"><span class="typeNameLink">DnnUtils</span></a></li>
diff --git a/docs/api/java/overview-tree.html b/docs/api/java/overview-tree.html
index 7a35200..7a1fcc7 100644
--- a/docs/api/java/overview-tree.html
+++ b/docs/api/java/overview-tree.html
@@ -244,6 +244,7 @@
 <li type="circle">org.apache.sysds.runtime.compress.colgroup.<a href="org/apache/sysds/runtime/compress/colgroup/ColGroupFactory.html" title="class in org.apache.sysds.runtime.compress.colgroup"><span class="typeNameLink">ColGroupFactory</span></a></li>
 <li type="circle">org.apache.sysds.runtime.compress.colgroup.<a href="org/apache/sysds/runtime/compress/colgroup/ColGroupIO.html" title="class in org.apache.sysds.runtime.compress.colgroup"><span class="typeNameLink">ColGroupIO</span></a></li>
 <li type="circle">org.apache.sysds.runtime.compress.colgroup.<a href="org/apache/sysds/runtime/compress/colgroup/ColGroupSizes.html" title="class in org.apache.sysds.runtime.compress.colgroup"><span class="typeNameLink">ColGroupSizes</span></a></li>
+<li type="circle">org.apache.sysds.runtime.util.<a href="org/apache/sysds/runtime/util/CollectionUtils.html" title="class in org.apache.sysds.runtime.util"><span class="typeNameLink">CollectionUtils</span></a></li>
 <li type="circle">org.apache.sysds.runtime.compress.utils.<a href="org/apache/sysds/runtime/compress/utils/ColumnGroupIterator.html" title="class in org.apache.sysds.runtime.compress.utils"><span class="typeNameLink">ColumnGroupIterator</span></a> (implements java.util.<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a>&lt;E&gt;)</li>
 <li type="circle">org.apache.sysds.runtime.compress.cocode.<a href="org/apache/sysds/runtime/compress/cocode/ColumnGroupPartitioner.html" title="class in org.apache.sysds.runtime.compress.cocode"><span class="typeNameLink">ColumnGroupPartitioner</span></a>
 <ul>
@@ -593,6 +594,7 @@
 <li type="circle">org.apache.sysds.runtime.compress.estim.sample.<a href="org/apache/sysds/runtime/compress/estim/sample/FrequencyCount.html" title="class in org.apache.sysds.runtime.compress.estim.sample"><span class="typeNameLink">FrequencyCount</span></a></li>
 <li type="circle">org.apache.sysds.hops.ipa.<a href="org/apache/sysds/hops/ipa/FunctionCallGraph.html" title="class in org.apache.sysds.hops.ipa"><span class="typeNameLink">FunctionCallGraph</span></a></li>
 <li type="circle">org.apache.sysds.hops.ipa.<a href="org/apache/sysds/hops/ipa/FunctionCallSizeInfo.html" title="class in org.apache.sysds.hops.ipa"><span class="typeNameLink">FunctionCallSizeInfo</span></a></li>
+<li type="circle">org.apache.sysds.parser.<a href="org/apache/sysds/parser/FunctionDictionary.html" title="class in org.apache.sysds.parser"><span class="typeNameLink">FunctionDictionary</span></a>&lt;T&gt;</li>
 <li type="circle">org.apache.sysds.runtime.functionobjects.<a href="org/apache/sysds/runtime/functionobjects/FunctionObject.html" title="class in org.apache.sysds.runtime.functionobjects"><span class="typeNameLink">FunctionObject</span></a>
 <ul>
 <li type="circle">org.apache.sysds.runtime.functionobjects.<a href="org/apache/sysds/runtime/functionobjects/FileFunction.html" title="class in org.apache.sysds.runtime.functionobjects"><span class="typeNameLink">FileFunction</span></a></li>
@@ -1079,7 +1081,7 @@
 <li type="circle">org.apache.sysds.parser.<a href="org/apache/sysds/parser/ParForStatementBlock.html" title="class in org.apache.sysds.parser"><span class="typeNameLink">ParForStatementBlock</span></a></li>
 </ul>
 </li>
-<li type="circle">org.apache.sysds.parser.<a href="org/apache/sysds/parser/FunctionStatementBlock.html" title="class in org.apache.sysds.parser"><span class="typeNameLink">FunctionStatementBlock</span></a></li>
+<li type="circle">org.apache.sysds.parser.<a href="org/apache/sysds/parser/FunctionStatementBlock.html" title="class in org.apache.sysds.parser"><span class="typeNameLink">FunctionStatementBlock</span></a> (implements org.apache.sysds.common.<a href="org/apache/sysds/common/Types.FunctionBlock.html" title="interface in org.apache.sysds.common">Types.FunctionBlock</a>)</li>
 <li type="circle">org.apache.sysds.parser.<a href="org/apache/sysds/parser/IfStatementBlock.html" title="class in org.apache.sysds.parser"><span class="typeNameLink">IfStatementBlock</span></a></li>
 <li type="circle">org.apache.sysds.parser.<a href="org/apache/sysds/parser/WhileStatementBlock.html" title="class in org.apache.sysds.parser"><span class="typeNameLink">WhileStatementBlock</span></a></li>
 </ul>
@@ -1413,7 +1415,7 @@
 <li type="circle">org.apache.sysds.runtime.controlprogram.<a href="org/apache/sysds/runtime/controlprogram/ParForProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram"><span class="typeNameLink">ParForProgramBlock</span></a></li>
 </ul>
 </li>
-<li type="circle">org.apache.sysds.runtime.controlprogram.<a href="org/apache/sysds/runtime/controlprogram/FunctionProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram"><span class="typeNameLink">FunctionProgramBlock</span></a></li>
+<li type="circle">org.apache.sysds.runtime.controlprogram.<a href="org/apache/sysds/runtime/controlprogram/FunctionProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram"><span class="typeNameLink">FunctionProgramBlock</span></a> (implements org.apache.sysds.common.<a href="org/apache/sysds/common/Types.FunctionBlock.html" title="interface in org.apache.sysds.common">Types.FunctionBlock</a>)</li>
 <li type="circle">org.apache.sysds.runtime.controlprogram.<a href="org/apache/sysds/runtime/controlprogram/IfProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram"><span class="typeNameLink">IfProgramBlock</span></a></li>
 <li type="circle">org.apache.sysds.runtime.controlprogram.<a href="org/apache/sysds/runtime/controlprogram/WhileProgramBlock.html" title="class in org.apache.sysds.runtime.controlprogram"><span class="typeNameLink">WhileProgramBlock</span></a></li>
 </ul>
@@ -1824,6 +1826,7 @@
 </ul>
 </li>
 <li type="circle">org.apache.sysds.runtime.functionobjects.<a href="org/apache/sysds/runtime/functionobjects/TernaryValueFunction.ValueFunctionWithConstant.html" title="interface in org.apache.sysds.runtime.functionobjects"><span class="typeNameLink">TernaryValueFunction.ValueFunctionWithConstant</span></a></li>
+<li type="circle">org.apache.sysds.common.<a href="org/apache/sysds/common/Types.FunctionBlock.html" title="interface in org.apache.sysds.common"><span class="typeNameLink">Types.FunctionBlock</span></a></li>
 <li type="circle">org.apache.hadoop.io.Writable
 <ul>
 <li type="circle">org.apache.sysds.runtime.controlprogram.caching.<a href="org/apache/sysds/runtime/controlprogram/caching/CacheBlock.html" title="interface in org.apache.sysds.runtime.controlprogram.caching"><span class="typeNameLink">CacheBlock</span></a></li>