blob: bfd7e8c8c36dd3c6b0e7c4d650ccd8b8165277b1 [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (11.0.4) on Fri Sep 20 12:10:30 CEST 2019 -->
<title>FunctionProperty (Apache SIS 1.0 API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2019-09-20">
<meta name="keywords" content="org.apache.sis.math.FunctionProperty class">
<meta name="keywords" content="values()">
<meta name="keywords" content="valueOf()">
<meta name="keywords" content="isBijective()">
<meta name="keywords" content="isMonotonic()">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../sis.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="FunctionProperty (Apache SIS 1.0 API)";
}
}
catch(err) {
}
//-->
var data = {"i0":9,"i1":9,"i2":9,"i3":9};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../";
var useModuleDirectories = false;
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/FunctionProperty.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="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
<li>Field&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.sis.math</a></div>
<h2 title="Enum FunctionProperty" class="title">Enum FunctionProperty</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" class="externalLink">Object</a></li>
<li>
<ul class="inheritance">
<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang" class="externalLink">Enum</a>&lt;<a href="FunctionProperty.html" title="enum in org.apache.sis.math">FunctionProperty</a>&gt;</li>
<li>
<ul class="inheritance">
<li>FunctionProperty</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></code>, <code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Comparable</a>&lt;<a href="FunctionProperty.html" title="enum in org.apache.sis.math">Function­Property</a>&gt;</code></dd>
</dl>
<hr>
<pre>public enum <span class="typeNameLabel">FunctionProperty</span>
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang" class="externalLink">Enum</a>&lt;<a href="FunctionProperty.html" title="enum in org.apache.sis.math">FunctionProperty</a>&gt;</pre>
<div class="block">The manners in which the inputs of a function are mapped to the outputs.
The function doesn't need to be mathematical. For example this enumeration
can be used with <a href="../util/ObjectConverter.html" title="interface in org.apache.sis.util"><code>Object­Converter</code></a>.
<p>Any given function can have zero, one or more properties from this enumeration.
Some properties not included in this enumeration can be expressed by a combination of
other properties:</p>
<table class="sis">
<caption>Inferred function properties</caption>
<tr><th>Property</th> <th>How to build</th></tr>
<tr><td><a href="#isBijective(java.util.Set)">Bijective</a></td>
<td><code>EnumSet.of(<a href="#INJECTIVE">INJECTIVE</a>, <a href="#SURJECTIVE">SURJECTIVE</a>)</code></td>
<tr><td><a href="#isMonotonic(java.util.Set)">Monotonic</a></td>
<td><code>EnumSet.of(<a href="#INJECTIVE">INJECTIVE</a>)</code>
or <code>Enum­Set​.of(<a href="#SURJECTIVE">SURJECTIVE</a>)</code></td>
<tr><td>Strictly increasing</td>
<td><code>EnumSet.of(<a href="#ORDER_PRESERVING">ORDER_PRESERVING</a>, <a href="#INJECTIVE">INJECTIVE</a>)</code></td>
<tr><td>Strictly decreasing</td>
<td><code>EnumSet.of(<a href="#ORDER_REVERSING">ORDER_REVERSING</a>, <a href="#INJECTIVE">INJECTIVE</a>)</code></td>
</table>
The Javadoc in this class uses the following terms:
<ul>
<li><var>S</var> (as in <cite>source</cite>) is the set of all possible input values (the <cite>domain</cite>).
<li><var>T</var> (as in <cite>target</cite>) is a set containing all possible output values,
and potentially more elements (the <cite>codomain</cite>). For example the set of output
values of the <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink"><code>Integer​.to­String()</code></a> function is included in a larger set, which is
the set of all possible <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>String</code></a> values. In this Javadoc, <var>T</var> stands for
the later set.</li>
</ul></div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>0.3</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../util/ObjectConverter.html#properties()"><code>Object­Converter​.properties()</code></a></dd>
<p><font size="-1">Defined in the <code>sis-utility</code> module</font></p>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== ENUM CONSTANT SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="enum.constant.summary">
<!-- -->
</a>
<h3>Enum Constant Summary</h3>
<table class="memberSummary">
<caption><span>Enum Constants</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Enum Constant</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#INJECTIVE">INJECTIVE</a></span></code></th>
<td class="colLast">
<div class="block">A function is <cite>injective</cite> if each value of <var>T</var> is either unrelated
to <var>S</var>, or is the output of exactly one value of <var>S</var>.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#INVERTIBLE">INVERTIBLE</a></span></code></th>
<td class="colLast">
<div class="block">A function is <cite>invertible</cite> if it can provide an other function mapping
<var>T</var> values to <var>S</var> values.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#ORDER_PRESERVING">ORDER_PRESERVING</a></span></code></th>
<td class="colLast">
<div class="block">A function preserves order if any sequence of increasing <var>S</var> values is mapped
to a sequence of increasing <var>T</var> values.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#ORDER_REVERSING">ORDER_REVERSING</a></span></code></th>
<td class="colLast">
<div class="block">A function reverses order if any sequence of increasing <var>S</var> values is mapped
to a sequence of decreasing <var>T</var> values.</div>
</td>
</tr>
<tr class="altColor">
<th class="colFirst" scope="row"><code><span class="memberNameLink"><a href="#SURJECTIVE">SURJECTIVE</a></span></code></th>
<td class="colLast">
<div class="block">A function is <cite>surjective</cite> if any value of <var>T</var> can be created
from one or many values of <var>S</var>.</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="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isBijective(java.util.Set)">isBijective</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="FunctionProperty.html" title="enum in org.apache.sis.math">FunctionProperty</a>&gt;&nbsp;properties)</code></th>
<td class="colLast">
<div class="block">Returns <code>true</code> if a function having the given set of properties is <cite>bijective</cite>.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isMonotonic(java.util.Set)">isMonotonic</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="FunctionProperty.html" title="enum in org.apache.sis.math">FunctionProperty</a>&gt;&nbsp;properties)</code></th>
<td class="colLast">
<div class="block">Returns <code>true</code> if a function having the given set of properties is <cite>monotonic</cite>.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>static <a href="FunctionProperty.html" title="enum in org.apache.sis.math">FunctionProperty</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#valueOf(java.lang.String)">valueOf</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</code></th>
<td class="colLast">
<div class="block">Returns the enum constant of this type with the specified name.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>static <a href="FunctionProperty.html" title="enum in org.apache.sis.math">FunctionProperty</a>[]</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#values()">values</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns an array containing the constants of this enum type, in
the order they are declared.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.Enum">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang" class="externalLink">Enum</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#compareTo(E)" title="class or interface in java.lang" class="externalLink">compare­To</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#getDeclaringClass()" title="class or interface in java.lang" class="externalLink">get­Declaring­Class</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hash­Code</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#name()" title="class or interface in java.lang" class="externalLink">name</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#ordinal()" title="class or interface in java.lang" class="externalLink">ordinal</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">to­String</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#valueOf(java.lang.Class,java.lang.String)" title="class or interface in java.lang" class="externalLink">value­Of</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.Object">
<!-- -->
</a>
<h3>Methods inherited from class&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" class="externalLink">Object</a></h3>
<code><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" class="externalLink">get­Class</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notify­All</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ ENUM CONSTANT DETAIL =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="enum.constant.detail">
<!-- -->
</a>
<h3>Enum Constant Detail</h3>
<a id="INVERTIBLE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>INVERTIBLE</h4>
<pre>public static final&nbsp;<a href="FunctionProperty.html" title="enum in org.apache.sis.math">FunctionProperty</a> INVERTIBLE</pre>
<div class="block">A function is <cite>invertible</cite> if it can provide an other function mapping
<var>T</var> values to <var>S</var> values.
<p>While other values defined in this enumeration are more about the mathematical aspects
of functions, this particular value is more about the programmatical aspect. A function
may be conceptually invertible (all <a href="#isBijective(java.util.Set)">bijective</a> functions
should be), but the inverse operation may not be implemented. In such case, the function
properties shall not include this <code>INVERTIBLE</code> value.</p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../util/ObjectConverter.html#inverse()"><code>Object­Converter​.inverse()</code></a></dd>
</dl>
</li>
</ul>
<a id="INJECTIVE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>INJECTIVE</h4>
<pre>public static final&nbsp;<a href="FunctionProperty.html" title="enum in org.apache.sis.math">FunctionProperty</a> INJECTIVE</pre>
<div class="block">A function is <cite>injective</cite> if each value of <var>T</var> is either unrelated
to <var>S</var>, or is the output of exactly one value of <var>S</var>.
<div class="note"><b>Example:</b>
An <a href="../util/ObjectConverter.html" title="interface in org.apache.sis.util"><code>Object­Converter</code></a> doing conversions from <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Integer</code></a> to <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>String</code></a>
is an injective function, because no pair of integers can produce the same string.</div>
A function which is both injective and <a href="#SURJECTIVE">surjective</a> is a
<cite>bijective</cite> function. In such functions, there is a one-to-one relationship
between all input and output values.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="#SURJECTIVE"><code>SURJECTIVE</code></a>,
<a href="#isBijective(java.util.Set)"><code>is­Bijective(Set)</code></a></dd>
</dl>
</li>
</ul>
<a id="SURJECTIVE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>SURJECTIVE</h4>
<pre>public static final&nbsp;<a href="FunctionProperty.html" title="enum in org.apache.sis.math">FunctionProperty</a> SURJECTIVE</pre>
<div class="block">A function is <cite>surjective</cite> if any value of <var>T</var> can be created
from one or many values of <var>S</var>.
<div class="note"><b>Example:</b>
An <a href="../util/ObjectConverter.html" title="interface in org.apache.sis.util"><code>Object­Converter</code></a> doing conversions from <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>String</code></a> to <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Integer</code></a>
is a surjective function, since there is always at least one string for each integer value. Note that such
function can not be injective since many different strings can represent the same integer value.</div>
A function which is both <a href="#INJECTIVE">injective</a> and surjective is a
<cite>bijective</cite> function. In such functions, there is a one-to-one relationship
between all input and output values.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="#INJECTIVE"><code>INJECTIVE</code></a>,
<a href="#isBijective(java.util.Set)"><code>is­Bijective(Set)</code></a></dd>
</dl>
</li>
</ul>
<a id="ORDER_PRESERVING">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ORDER_PRESERVING</h4>
<pre>public static final&nbsp;<a href="FunctionProperty.html" title="enum in org.apache.sis.math">FunctionProperty</a> ORDER_PRESERVING</pre>
<div class="block">A function preserves order if any sequence of increasing <var>S</var> values is mapped
to a sequence of increasing <var>T</var> values. This enumeration constant can be used
only with <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Comparable</code></a> types or primitive types having a comparable wrapper.
<p>Strictly ordered input values are not necessarily mapped to strictly ordered output values.
Strictness is preserved only if the function is also <a href="#INJECTIVE">injective</a>.</p>
<p>A function may be both order preserving and <a href="#ORDER_REVERSING">order reversing</a>
if all input values are mapped to a constant output value.</p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="#ORDER_REVERSING"><code>ORDER_REVERSING</code></a>,
<a href="#isMonotonic(java.util.Set)"><code>is­Monotonic(Set)</code></a></dd>
</dl>
</li>
</ul>
<a id="ORDER_REVERSING">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>ORDER_REVERSING</h4>
<pre>public static final&nbsp;<a href="FunctionProperty.html" title="enum in org.apache.sis.math">FunctionProperty</a> ORDER_REVERSING</pre>
<div class="block">A function reverses order if any sequence of increasing <var>S</var> values is mapped
to a sequence of decreasing <var>T</var> values. This enumeration constant can be used
only with <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Comparable</code></a> types or primitive types having a comparable wrapper.
<p>Strictly ordered input values are not necessarily mapped to strictly ordered output values.
Strictness is preserved only if the function is also <a href="#INJECTIVE">injective</a>.</p>
<p>A function may be both <a href="#ORDER_PRESERVING">order preserving</a> and order reversing
if all input values are mapped to a constant output value.</p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="#ORDER_PRESERVING"><code>ORDER_PRESERVING</code></a>,
<a href="#isMonotonic(java.util.Set)"><code>is­Monotonic(Set)</code></a></dd>
</dl>
</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="values()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>values</h4>
<pre class="methodSignature">public static&nbsp;<a href="FunctionProperty.html" title="enum in org.apache.sis.math">FunctionProperty</a>[]&nbsp;values()</pre>
<div class="block">Returns an array containing the constants of this enum type, in
the order they are declared. This method may be used to iterate
over the constants as follows:
<pre>
for (FunctionProperty c : FunctionProperty.values())
&nbsp; System.out.println(c);
</pre></div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>an array containing the constants of this enum type, in the order they are declared</dd>
</dl>
</li>
</ul>
<a id="valueOf(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>valueOf</h4>
<pre class="methodSignature">public static&nbsp;<a href="FunctionProperty.html" title="enum in org.apache.sis.math">FunctionProperty</a>&nbsp;valueOf&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;name)</pre>
<div class="block">Returns the enum constant of this type with the specified name.
The string must match <i>exactly</i> an identifier used to declare an
enum constant in this type. (Extraneous whitespace characters are
not permitted.)</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - the name of the enum constant to be returned.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the enum constant with the specified name</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">Illegal­Argument­Exception</a></code> - if this enum type has no constant with the specified name</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">Null­Pointer­Exception</a></code> - if the argument is null</dd>
</dl>
</li>
</ul>
<a id="isBijective(java.util.Set)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isBijective</h4>
<pre class="methodSignature">public static&nbsp;boolean&nbsp;isBijective&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="FunctionProperty.html" title="enum in org.apache.sis.math">FunctionProperty</a>&gt;&nbsp;properties)</pre>
<div class="block">Returns <code>true</code> if a function having the given set of properties is <cite>bijective</cite>.
Bijective functions have a one-to-one relationship between all input and output values.
This convenience method tests if the given set contains <em>all</em> following properties:
<ul>
<li><a href="#INJECTIVE"><code>INJECTIVE</code></a></li>
<li><a href="#SURJECTIVE"><code>SURJECTIVE</code></a></li>
</ul></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>properties</code> - the properties of the function to test for bijectivity.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if a function having the given set of properties is bijective.</dd>
</dl>
</li>
</ul>
<a id="isMonotonic(java.util.Set)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>isMonotonic</h4>
<pre class="methodSignature">public static&nbsp;boolean&nbsp;isMonotonic&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="FunctionProperty.html" title="enum in org.apache.sis.math">FunctionProperty</a>&gt;&nbsp;properties)</pre>
<div class="block">Returns <code>true</code> if a function having the given set of properties is <cite>monotonic</cite>.
This convenience method tests if the given set contains <em>at least one</em> of the following
properties:
<ul>
<li><a href="#ORDER_PRESERVING"><code>ORDER_PRESERVING</code></a></li>
<li><a href="#ORDER_REVERSING"><code>ORDER_REVERSING</code></a></li>
</ul></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>properties</code> - the properties of the function to test for monotonicity.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if a function having the given set of properties is monotonic.</dd>
</dl>
</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/FunctionProperty.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="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
<li>Field&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; 2010&#x2013;2019 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</footer>
</body>
</html>