blob: 8a0409d33533cd8d6c131504229ff127fb6959a0 [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>Permutation (Apache Calcite API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../jquery/jquery-3.3.1.js"></script>
<script type="text/javascript" src="../../../../jquery/jquery-migrate-3.0.1.js"></script>
<script type="text/javascript" src="../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="Permutation (Apache Calcite API)";
}
}
catch(err) {
}
//-->
var data = {"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,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":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";
var pathtoroot = "../../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/Permutation.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.calcite.util</a></div>
<h2 title="Class Permutation" class="title">Class Permutation</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.apache.calcite.util.Permutation</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><code>java.lang.Iterable&lt;<a href="mapping/IntPair.html" title="class in org.apache.calcite.util.mapping">IntPair</a>&gt;</code>, <code><a href="mapping/Mapping.html" title="interface in org.apache.calcite.util.mapping">Mapping</a></code>, <code><a href="mapping/Mappings.CoreMapping.html" title="interface in org.apache.calcite.util.mapping">Mappings.CoreMapping</a></code>, <code><a href="mapping/Mappings.FunctionMapping.html" title="interface in org.apache.calcite.util.mapping">Mappings.FunctionMapping</a></code>, <code><a href="mapping/Mappings.SourceMapping.html" title="interface in org.apache.calcite.util.mapping">Mappings.SourceMapping</a></code>, <code><a href="mapping/Mappings.TargetMapping.html" title="interface in org.apache.calcite.util.mapping">Mappings.TargetMapping</a></code></dd>
</dl>
<hr>
<pre>public class <span class="typeNameLabel">Permutation</span>
extends java.lang.Object
implements <a href="mapping/Mapping.html" title="interface in org.apache.calcite.util.mapping">Mapping</a>, <a href="mapping/Mappings.TargetMapping.html" title="interface in org.apache.calcite.util.mapping">Mappings.TargetMapping</a></pre>
<div class="block">Represents a mapping which reorders elements in an array.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private int[]</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sources">sources</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private int[]</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#targets">targets</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier</th>
<th class="colSecond" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>&nbsp;</code></td>
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(int)">Permutation</a></span>&#8203;(int&nbsp;size)</code></th>
<td class="colLast">
<div class="block">Creates a permutation of a given size.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>&nbsp;</code></td>
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(int%5B%5D)">Permutation</a></span>&#8203;(int[]&nbsp;targets)</code></th>
<td class="colLast">
<div class="block">Creates a permutation from an array.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private </code></td>
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(int%5B%5D,int%5B%5D)">Permutation</a></span>&#8203;(int[]&nbsp;targets,
int[]&nbsp;sources)</code></th>
<td class="colLast">
<div class="block">Creates a permutation.</div>
</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="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="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#clear()">clear</a></span>()</code></th>
<td class="colLast">
<div class="block">Removes all elements in the mapping.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>java.lang.Object</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#clone()">clone</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(java.lang.Object&nbsp;obj)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="mapping/MappingType.html" title="enum in org.apache.calcite.util.mapping">MappingType</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMappingType()">getMappingType</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the mapping type.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getSource(int)">getSource</a></span>&#8203;(int&nbsp;target)</code></th>
<td class="colLast">
<div class="block">Returns the position which maps to <code>target</code>.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getSourceCount()">getSourceCount</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the number of sources.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getSourceOpt(int)">getSourceOpt</a></span>&#8203;(int&nbsp;target)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getTarget(int)">getTarget</a></span>&#8203;(int&nbsp;source)</code></th>
<td class="colLast">
<div class="block">Returns the position that <code>source</code> is mapped to.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getTargetCount()">getTargetCount</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the number of targets.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getTargetOpt(int)">getTargetOpt</a></span>&#8203;(int&nbsp;source)</code></th>
<td class="colLast">
<div class="block">Returns the target that a source maps to, or -1 if it is not mapped.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#identity()">identity</a></span>()</code></th>
<td class="colLast">
<div class="block">Initializes this permutation to the identity permutation.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>private void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#increment(int,int%5B%5D)">increment</a></span>&#8203;(int&nbsp;x,
int[]&nbsp;zzz)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#insertSource(int)">insertSource</a></span>&#8203;(int&nbsp;x)</code></th>
<td class="colLast">
<div class="block">Inserts into the sources.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#insertTarget(int)">insertTarget</a></span>&#8203;(int&nbsp;x)</code></th>
<td class="colLast">
<div class="block">Inserts into the targets.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code><a href="Permutation.html" title="class in org.apache.calcite.util">Permutation</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#inverse()">inverse</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the inverse permutation.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isIdentity()">isIdentity</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns whether this is the identity permutation.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>private boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isValid(boolean)">isValid</a></span>&#8203;(boolean&nbsp;fail)</code></th>
<td class="colLast">
<div class="block">Checks whether this permutation is valid.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>java.util.Iterator&lt;<a href="mapping/IntPair.html" title="class in org.apache.calcite.util.mapping">IntPair</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#iterator()">iterator</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns an iterator over the elements in this mapping.</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code><a href="Permutation.html" title="class in org.apache.calcite.util">Permutation</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#product(org.apache.calcite.util.Permutation)">product</a></span>&#8203;(<a href="Permutation.html" title="class in org.apache.calcite.util">Permutation</a>&nbsp;permutation)</code></th>
<td class="colLast">
<div class="block">Returns the product of this Permutation with a given Permutation.</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>private void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#resize(int)">resize</a></span>&#8203;(int&nbsp;newSize)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#set(int,int)">set</a></span>&#8203;(int&nbsp;source,
int&nbsp;target)</code></th>
<td class="colLast">
<div class="block">Maps source position to target position.</div>
</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#set(int,int,boolean)">set</a></span>&#8203;(int&nbsp;source,
int&nbsp;target,
boolean&nbsp;allowResize)</code></th>
<td class="colLast">
<div class="block">Maps source position to target position, automatically resizing if source
or target is out of bounds.</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setAll(org.apache.calcite.util.mapping.Mapping)">setAll</a></span>&#8203;(<a href="mapping/Mapping.html" title="interface in org.apache.calcite.util.mapping">Mapping</a>&nbsp;mapping)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code>private void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setInternal(int,int)">setInternal</a></span>&#8203;(int&nbsp;source,
int&nbsp;target)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code>private void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#shuffleUp(int%5B%5D,int)">shuffleUp</a></span>&#8203;(int[]&nbsp;zz,
int&nbsp;x)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#size()">size</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the number of elements in this permutation.</div>
</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns a string representation of this permutation.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>finalize, getClass, notify, notifyAll, wait, wait, wait</code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Iterable">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;java.lang.Iterable</h3>
<code>forEach, spliterator</code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a id="targets">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>targets</h4>
<pre>private&nbsp;int[] targets</pre>
</li>
</ul>
<a id="sources">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>sources</h4>
<pre>private&nbsp;int[] sources</pre>
</li>
</ul>
</li>
</ul>
</section>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a id="&lt;init&gt;(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>Permutation</h4>
<pre>public&nbsp;Permutation&#8203;(int&nbsp;size)</pre>
<div class="block">Creates a permutation of a given size.
<p>It is initialized to the identity permutation, such as "[0, 1, 2, 3]".</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>size</code> - Number of elements in the permutation</dd>
</dl>
</li>
</ul>
<a id="&lt;init&gt;(int[])">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>Permutation</h4>
<pre>public&nbsp;Permutation&#8203;(int[]&nbsp;targets)</pre>
<div class="block">Creates a permutation from an array.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>targets</code> - Array of targets</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if elements of array are not unique</dd>
<dd><code>java.lang.ArrayIndexOutOfBoundsException</code> - if elements of array are not
between 0 through targets.length - 1
inclusive</dd>
</dl>
</li>
</ul>
<a id="&lt;init&gt;(int[],int[])">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>Permutation</h4>
<pre>private&nbsp;Permutation&#8203;(int[]&nbsp;targets,
int[]&nbsp;sources)</pre>
<div class="block">Creates a permutation. Arrays are not copied, and are assumed to be valid
permutations.</div>
</li>
</ul>
</li>
</ul>
</section>
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="clone()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>clone</h4>
<pre class="methodSignature">public&nbsp;java.lang.Object&nbsp;clone()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>clone</code>&nbsp;in class&nbsp;<code>java.lang.Object</code></dd>
</dl>
</li>
</ul>
<a id="identity()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>identity</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;identity()</pre>
<div class="block">Initializes this permutation to the identity permutation.</div>
</li>
</ul>
<a id="size()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>size</h4>
<pre class="methodSignature">public final&nbsp;int&nbsp;size()</pre>
<div class="block">Returns the number of elements in this permutation.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="mapping/Mapping.html#size()">size</a></code>&nbsp;in interface&nbsp;<code><a href="mapping/Mapping.html" title="interface in org.apache.calcite.util.mapping">Mapping</a></code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="mapping/Mappings.CoreMapping.html#size()">size</a></code>&nbsp;in interface&nbsp;<code><a href="mapping/Mappings.CoreMapping.html" title="interface in org.apache.calcite.util.mapping">Mappings.CoreMapping</a></code></dd>
</dl>
</li>
</ul>
<a id="clear()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>clear</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;clear()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="mapping/Mapping.html#clear()">Mapping</a></code></span></div>
<div class="block">Removes all elements in the mapping.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="mapping/Mapping.html#clear()">clear</a></code>&nbsp;in interface&nbsp;<code><a href="mapping/Mapping.html" title="interface in org.apache.calcite.util.mapping">Mapping</a></code></dd>
</dl>
</li>
</ul>
<a id="toString()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toString</h4>
<pre class="methodSignature">public&nbsp;java.lang.String&nbsp;toString()</pre>
<div class="block">Returns a string representation of this permutation.
<p>For example, the mapping
<table>
<caption>Example mapping</caption>
<tr>
<th>source</th>
<th>target</th>
</tr>
<tr>
<td>0</td>
<td>2</td>
</tr>
<tr>
<td>1</td>
<td>0</td>
</tr>
<tr>
<td>2</td>
<td>1</td>
</tr>
<tr>
<td>3</td>
<td>3</td>
</tr>
</table>
<p>is represented by the string "[2, 0, 1, 3]".</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>toString</code>&nbsp;in class&nbsp;<code>java.lang.Object</code></dd>
</dl>
</li>
</ul>
<a id="set(int,int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>set</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;set&#8203;(int&nbsp;source,
int&nbsp;target)</pre>
<div class="block">Maps source position to target position.
<p>To preserve the 1:1 nature of the permutation, the previous target of
source becomes the new target of the previous source.
<p>For example, given the permutation
<blockquote><pre>[3, 2, 0, 1]</pre></blockquote>
<p>suppose we map position 2 to target 1. Position 2 currently has target
0, and the source of position 1 is position 3. We preserve the permutation
property by mapping the previous source 3 to the previous target 0. The new
permutation is
<blockquote><pre>[3, 2, 1, 0].</pre></blockquote>
<p>Another example. Again starting from
<blockquote><pre>[3, 2, 0, 1]</pre></blockquote>
<p>suppose we map position 2 to target 3. We map the previous source 0 to
the previous target 0, which gives
<blockquote><pre>[0, 2, 3, 1].</pre></blockquote></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="mapping/Mappings.TargetMapping.html#set(int,int)">set</a></code>&nbsp;in interface&nbsp;<code><a href="mapping/Mappings.TargetMapping.html" title="interface in org.apache.calcite.util.mapping">Mappings.TargetMapping</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>source</code> - Source position</dd>
<dd><code>target</code> - Target position</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.ArrayIndexOutOfBoundsException</code> - if source or target is negative or
greater than or equal to the size of
the permuation</dd>
</dl>
</li>
</ul>
<a id="set(int,int,boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>set</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;set&#8203;(int&nbsp;source,
int&nbsp;target,
boolean&nbsp;allowResize)</pre>
<div class="block">Maps source position to target position, automatically resizing if source
or target is out of bounds.
<p>To preserve the 1:1 nature of the permutation, the previous target of
source becomes the new target of the previous source.
<p>For example, given the permutation
<blockquote><pre>[3, 2, 0, 1]</pre></blockquote>
<p>suppose we map position 2 to target 1. Position 2 currently has target
0, and the source of position 1 is position 3. We preserve the permutation
property by mapping the previous source 3 to the previous target 0. The new
permutation is
<blockquote><pre>[3, 2, 1, 0].</pre></blockquote>
<p>Another example. Again starting from
<blockquote><pre>[3, 2, 0, 1]</pre></blockquote>
<p>suppose we map position 2 to target 3. We map the previous source 0 to
the previous target 0, which gives
<blockquote><pre>[0, 2, 3, 1].</pre></blockquote></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>source</code> - Source position</dd>
<dd><code>target</code> - Target position</dd>
<dd><code>allowResize</code> - Whether to resize the permutation if the source or
target is greater than the current capacity</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.ArrayIndexOutOfBoundsException</code> - if source or target is negative,
or greater than or equal to the size
of the permutation, and
<code>allowResize</code> is false</dd>
</dl>
</li>
</ul>
<a id="insertTarget(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>insertTarget</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;insertTarget&#8203;(int&nbsp;x)</pre>
<div class="block">Inserts into the targets.
<p>For example, consider the permutation</p>
<table border="1">
<caption>Example permutation</caption>
<tr>
<td>source</td>
<td>0</td>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
</tr>
<tr>
<td>target</td>
<td>3</td>
<td>0</td>
<td>4</td>
<td>2</td>
<td>1</td>
</tr>
</table>
<p>After applying <code>insertTarget(2)</code> every target 2 or higher is
shifted up one.</p>
<table border="1">
<caption>Mapping after applying insertTarget(2)</caption>
<tr>
<td>source</td>
<td>0</td>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
<td>5</td>
</tr>
<tr>
<td>target</td>
<td>4</td>
<td>0</td>
<td>5</td>
<td>3</td>
<td>1</td>
<td>2</td>
</tr>
</table>
<p>Note that the array has been extended to accommodate the new target, and
the previously unmapped source 5 is mapped to the unused target slot 2.</p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>x</code> - Ordinal of position to add to target</dd>
</dl>
</li>
</ul>
<a id="insertSource(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>insertSource</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;insertSource&#8203;(int&nbsp;x)</pre>
<div class="block">Inserts into the sources.
<p>Behavior is analogous to <a href="#insertTarget(int)"><code>insertTarget(int)</code></a>.</p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>x</code> - Ordinal of position to add to source</dd>
</dl>
</li>
</ul>
<a id="increment(int,int[])">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>increment</h4>
<pre class="methodSignature">private&nbsp;void&nbsp;increment&#8203;(int&nbsp;x,
int[]&nbsp;zzz)</pre>
</li>
</ul>
<a id="shuffleUp(int[],int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>shuffleUp</h4>
<pre class="methodSignature">private&nbsp;void&nbsp;shuffleUp&#8203;(int[]&nbsp;zz,
int&nbsp;x)</pre>
</li>
</ul>
<a id="resize(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>resize</h4>
<pre class="methodSignature">private&nbsp;void&nbsp;resize&#8203;(int&nbsp;newSize)</pre>
</li>
</ul>
<a id="setInternal(int,int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setInternal</h4>
<pre class="methodSignature">private&nbsp;void&nbsp;setInternal&#8203;(int&nbsp;source,
int&nbsp;target)</pre>
</li>
</ul>
<a id="inverse()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>inverse</h4>
<pre class="methodSignature">public&nbsp;<a href="Permutation.html" title="class in org.apache.calcite.util">Permutation</a>&nbsp;inverse()</pre>
<div class="block">Returns the inverse permutation.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="mapping/Mappings.SourceMapping.html#inverse()">inverse</a></code>&nbsp;in interface&nbsp;<code><a href="mapping/Mappings.SourceMapping.html" title="interface in org.apache.calcite.util.mapping">Mappings.SourceMapping</a></code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="mapping/Mappings.TargetMapping.html#inverse()">inverse</a></code>&nbsp;in interface&nbsp;<code><a href="mapping/Mappings.TargetMapping.html" title="interface in org.apache.calcite.util.mapping">Mappings.TargetMapping</a></code></dd>
</dl>
</li>
</ul>
<a id="isIdentity()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isIdentity</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isIdentity()</pre>
<div class="block">Returns whether this is the identity permutation.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="mapping/Mapping.html#isIdentity()">isIdentity</a></code>&nbsp;in interface&nbsp;<code><a href="mapping/Mapping.html" title="interface in org.apache.calcite.util.mapping">Mapping</a></code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="mapping/Mappings.SourceMapping.html#isIdentity()">isIdentity</a></code>&nbsp;in interface&nbsp;<code><a href="mapping/Mappings.SourceMapping.html" title="interface in org.apache.calcite.util.mapping">Mappings.SourceMapping</a></code></dd>
</dl>
</li>
</ul>
<a id="getTarget(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTarget</h4>
<pre class="methodSignature">public&nbsp;int&nbsp;getTarget&#8203;(int&nbsp;source)</pre>
<div class="block">Returns the position that <code>source</code> is mapped to.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="mapping/Mappings.FunctionMapping.html#getTarget(int)">getTarget</a></code>&nbsp;in interface&nbsp;<code><a href="mapping/Mappings.FunctionMapping.html" title="interface in org.apache.calcite.util.mapping">Mappings.FunctionMapping</a></code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="mapping/Mappings.TargetMapping.html#getTarget(int)">getTarget</a></code>&nbsp;in interface&nbsp;<code><a href="mapping/Mappings.TargetMapping.html" title="interface in org.apache.calcite.util.mapping">Mappings.TargetMapping</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>source</code> - source</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>target</dd>
</dl>
</li>
</ul>
<a id="getSource(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSource</h4>
<pre class="methodSignature">public&nbsp;int&nbsp;getSource&#8203;(int&nbsp;target)</pre>
<div class="block">Returns the position which maps to <code>target</code>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="mapping/Mappings.SourceMapping.html#getSource(int)">getSource</a></code>&nbsp;in interface&nbsp;<code><a href="mapping/Mappings.SourceMapping.html" title="interface in org.apache.calcite.util.mapping">Mappings.SourceMapping</a></code></dd>
</dl>
</li>
</ul>
<a id="isValid(boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isValid</h4>
<pre class="methodSignature">private&nbsp;boolean&nbsp;isValid&#8203;(boolean&nbsp;fail)</pre>
<div class="block">Checks whether this permutation is valid.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>fail</code> - Whether to assert if invalid</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Whether valid</dd>
</dl>
</li>
</ul>
<a id="hashCode()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hashCode</h4>
<pre class="methodSignature">public&nbsp;int&nbsp;hashCode()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>hashCode</code>&nbsp;in class&nbsp;<code>java.lang.Object</code></dd>
</dl>
</li>
</ul>
<a id="equals(java.lang.Object)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>equals</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;equals&#8203;(java.lang.Object&nbsp;obj)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>equals</code>&nbsp;in class&nbsp;<code>java.lang.Object</code></dd>
</dl>
</li>
</ul>
<a id="iterator()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>iterator</h4>
<pre class="methodSignature">public&nbsp;java.util.Iterator&lt;<a href="mapping/IntPair.html" title="class in org.apache.calcite.util.mapping">IntPair</a>&gt;&nbsp;iterator()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="mapping/Mapping.html#iterator()">Mapping</a></code></span></div>
<div class="block">Returns an iterator over the elements in this mapping.
<p>This method is optional; implementations may throw
<code>UnsupportedOperationException</code>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>iterator</code>&nbsp;in interface&nbsp;<code>java.lang.Iterable&lt;<a href="mapping/IntPair.html" title="class in org.apache.calcite.util.mapping">IntPair</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="mapping/Mapping.html#iterator()">iterator</a></code>&nbsp;in interface&nbsp;<code><a href="mapping/Mapping.html" title="interface in org.apache.calcite.util.mapping">Mapping</a></code></dd>
</dl>
</li>
</ul>
<a id="getSourceCount()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSourceCount</h4>
<pre class="methodSignature">public&nbsp;int&nbsp;getSourceCount()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="mapping/Mapping.html#getSourceCount()">Mapping</a></code></span></div>
<div class="block">Returns the number of sources. Valid sources will be in the range 0 ..
sourceCount.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="mapping/Mapping.html#getSourceCount()">getSourceCount</a></code>&nbsp;in interface&nbsp;<code><a href="mapping/Mapping.html" title="interface in org.apache.calcite.util.mapping">Mapping</a></code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="mapping/Mappings.FunctionMapping.html#getSourceCount()">getSourceCount</a></code>&nbsp;in interface&nbsp;<code><a href="mapping/Mappings.FunctionMapping.html" title="interface in org.apache.calcite.util.mapping">Mappings.FunctionMapping</a></code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="mapping/Mappings.SourceMapping.html#getSourceCount()">getSourceCount</a></code>&nbsp;in interface&nbsp;<code><a href="mapping/Mappings.SourceMapping.html" title="interface in org.apache.calcite.util.mapping">Mappings.SourceMapping</a></code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="mapping/Mappings.TargetMapping.html#getSourceCount()">getSourceCount</a></code>&nbsp;in interface&nbsp;<code><a href="mapping/Mappings.TargetMapping.html" title="interface in org.apache.calcite.util.mapping">Mappings.TargetMapping</a></code></dd>
</dl>
</li>
</ul>
<a id="getTargetCount()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTargetCount</h4>
<pre class="methodSignature">public&nbsp;int&nbsp;getTargetCount()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="mapping/Mapping.html#getTargetCount()">Mapping</a></code></span></div>
<div class="block">Returns the number of targets. Valid targets will be in the range 0 ..
targetCount.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="mapping/Mapping.html#getTargetCount()">getTargetCount</a></code>&nbsp;in interface&nbsp;<code><a href="mapping/Mapping.html" title="interface in org.apache.calcite.util.mapping">Mapping</a></code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="mapping/Mappings.SourceMapping.html#getTargetCount()">getTargetCount</a></code>&nbsp;in interface&nbsp;<code><a href="mapping/Mappings.SourceMapping.html" title="interface in org.apache.calcite.util.mapping">Mappings.SourceMapping</a></code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="mapping/Mappings.TargetMapping.html#getTargetCount()">getTargetCount</a></code>&nbsp;in interface&nbsp;<code><a href="mapping/Mappings.TargetMapping.html" title="interface in org.apache.calcite.util.mapping">Mappings.TargetMapping</a></code></dd>
</dl>
</li>
</ul>
<a id="getMappingType()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMappingType</h4>
<pre class="methodSignature">public&nbsp;<a href="mapping/MappingType.html" title="enum in org.apache.calcite.util.mapping">MappingType</a>&nbsp;getMappingType()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="mapping/Mappings.CoreMapping.html#getMappingType()">Mappings.CoreMapping</a></code></span></div>
<div class="block">Returns the mapping type.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="mapping/Mapping.html#getMappingType()">getMappingType</a></code>&nbsp;in interface&nbsp;<code><a href="mapping/Mapping.html" title="interface in org.apache.calcite.util.mapping">Mapping</a></code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="mapping/Mappings.CoreMapping.html#getMappingType()">getMappingType</a></code>&nbsp;in interface&nbsp;<code><a href="mapping/Mappings.CoreMapping.html" title="interface in org.apache.calcite.util.mapping">Mappings.CoreMapping</a></code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="mapping/Mappings.FunctionMapping.html#getMappingType()">getMappingType</a></code>&nbsp;in interface&nbsp;<code><a href="mapping/Mappings.FunctionMapping.html" title="interface in org.apache.calcite.util.mapping">Mappings.FunctionMapping</a></code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="mapping/Mappings.SourceMapping.html#getMappingType()">getMappingType</a></code>&nbsp;in interface&nbsp;<code><a href="mapping/Mappings.SourceMapping.html" title="interface in org.apache.calcite.util.mapping">Mappings.SourceMapping</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Mapping type</dd>
</dl>
</li>
</ul>
<a id="getTargetOpt(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTargetOpt</h4>
<pre class="methodSignature">public&nbsp;int&nbsp;getTargetOpt&#8203;(int&nbsp;source)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="mapping/Mappings.FunctionMapping.html#getTargetOpt(int)">Mappings.FunctionMapping</a></code></span></div>
<div class="block">Returns the target that a source maps to, or -1 if it is not mapped.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="mapping/Mappings.FunctionMapping.html#getTargetOpt(int)">getTargetOpt</a></code>&nbsp;in interface&nbsp;<code><a href="mapping/Mappings.FunctionMapping.html" title="interface in org.apache.calcite.util.mapping">Mappings.FunctionMapping</a></code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="mapping/Mappings.SourceMapping.html#getTargetOpt(int)">getTargetOpt</a></code>&nbsp;in interface&nbsp;<code><a href="mapping/Mappings.SourceMapping.html" title="interface in org.apache.calcite.util.mapping">Mappings.SourceMapping</a></code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="mapping/Mappings.TargetMapping.html#getTargetOpt(int)">getTargetOpt</a></code>&nbsp;in interface&nbsp;<code><a href="mapping/Mappings.TargetMapping.html" title="interface in org.apache.calcite.util.mapping">Mappings.TargetMapping</a></code></dd>
</dl>
</li>
</ul>
<a id="getSourceOpt(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSourceOpt</h4>
<pre class="methodSignature">public&nbsp;int&nbsp;getSourceOpt&#8203;(int&nbsp;target)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="mapping/Mappings.SourceMapping.html#getSourceOpt(int)">getSourceOpt</a></code>&nbsp;in interface&nbsp;<code><a href="mapping/Mappings.SourceMapping.html" title="interface in org.apache.calcite.util.mapping">Mappings.SourceMapping</a></code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="mapping/Mappings.TargetMapping.html#getSourceOpt(int)">getSourceOpt</a></code>&nbsp;in interface&nbsp;<code><a href="mapping/Mappings.TargetMapping.html" title="interface in org.apache.calcite.util.mapping">Mappings.TargetMapping</a></code></dd>
</dl>
</li>
</ul>
<a id="setAll(org.apache.calcite.util.mapping.Mapping)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setAll</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setAll&#8203;(<a href="mapping/Mapping.html" title="interface in org.apache.calcite.util.mapping">Mapping</a>&nbsp;mapping)</pre>
</li>
</ul>
<a id="product(org.apache.calcite.util.Permutation)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>product</h4>
<pre class="methodSignature">public&nbsp;<a href="Permutation.html" title="class in org.apache.calcite.util">Permutation</a>&nbsp;product&#8203;(<a href="Permutation.html" title="class in org.apache.calcite.util">Permutation</a>&nbsp;permutation)</pre>
<div class="block">Returns the product of this Permutation with a given Permutation. Does
not modify this Permutation or <code>permutation</code>.
<p>For example, perm.product(perm.inverse()) yields the identity.</div>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/Permutation.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small>Copyright &#169; 2012&#x2013;2019 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</footer>
</body>
</html>