blob: 0891d439ded145e7f57f12146ae4907bc709afef [file] [log] [blame]
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (19) -->
<title>MatrixSIS (Apache SIS 1.3 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: package: org.apache.sis.referencing.operation.matrix, class: MatrixSIS">
<meta name="generator" content="javadoc/ClassWriterImpl">
<meta name="keywords" content="org.apache.sis.referencing.operation.matrix.MatrixSIS class">
<meta name="keywords" content="castOrCopy()">
<meta name="keywords" content="getInteger()">
<meta name="keywords" content="getNumber()">
<meta name="keywords" content="setNumber()">
<meta name="keywords" content="getElement()">
<meta name="keywords" content="getElements()">
<meta name="keywords" content="setElements()">
<meta name="keywords" content="setMatrix()">
<meta name="keywords" content="isAffine()">
<meta name="keywords" content="isIdentity()">
<meta name="keywords" content="transpose()">
<meta name="keywords" content="normalizeColumns()">
<meta name="keywords" content="convertBefore()">
<meta name="keywords" content="convertAfter()">
<meta name="keywords" content="multiply()">
<meta name="keywords" content="translate()">
<meta name="keywords" content="solve()">
<meta name="keywords" content="inverse()">
<meta name="keywords" content="removeRows()">
<meta name="keywords" content="removeColumns()">
<meta name="keywords" content="hashCode()">
<meta name="keywords" content="equals()">
<meta name="keywords" content="clone()">
<meta name="keywords" content="toString()">
<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="../../../../../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../../script-dir/jquery-3.6.0.min.js"></script>
<script type="text/javascript" src="../../../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">var pathtoroot = "../../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top"><button id="navbar-toggle-button" aria-controls="navbar-top" aria-expanded="false" aria-label="Toggle navigation links"><span class="nav-bar-toggle-icon">&nbsp;</span><span class="nav-bar-toggle-icon">&nbsp;</span><span class="nav-bar-toggle-icon">&nbsp;</span></button>
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="class-use/MatrixSIS.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#class">Help</a></li>
</ul>
<ul class="sub-nav-list-small">
<li>
<p>Summary:</p>
<ul>
<li>Nested</li>
<li>Field</li>
<li><a href="#constructor-summary">Constr</a></li>
<li><a href="#method-summary">Method</a></li>
</ul>
</li>
<li>
<p>Detail:</p>
<ul>
<li>Field</li>
<li><a href="#constructor-detail">Constr</a></li>
<li><a href="#method-detail">Method</a></li>
</ul>
</li>
</ul>
</div>
<div class="sub-nav">
<div id="navbar-sub-list">
<ul class="sub-nav-list">
<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="sub-nav-list">
<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>
<div class="nav-list-search"><a href="../../../../../../search.html">SEARCH</a>
<input type="text" id="search-input" disabled placeholder="Search">
<input type="reset" id="reset-button" disabled value="reset">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">org.apache.sis.referencing.operation.matrix</a></div>
<h1 title="Class MatrixSIS" class="title">Class MatrixSIS</h1>
</div>
<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>
<div class="inheritance">MatrixSIS</div>
</div>
<section class="class-description" id="class-description">
<dl class="notes">
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/Serializable.html" title="class or interface in java.io" class="external-link">Serializable</a></code>, <code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Cloneable.html" title="class or interface in java.lang" class="external-link">Cloneable</a></code>, <code><a href="../../../util/LenientComparable.html" title="interface in org.apache.sis.util">Lenient­Comparable</a></code>, <code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/Matrix.html" title="class or interface in org.opengis.referencing.operation" class="external-link">Matrix</a></code></dd>
</dl>
<dl class="notes">
<dt>Direct Known Subclasses:</dt>
<dd><code><a href="Matrix1.html" title="class in org.apache.sis.referencing.operation.matrix">Matrix1</a></code>, <code><a href="Matrix2.html" title="class in org.apache.sis.referencing.operation.matrix">Matrix2</a></code>, <code><a href="Matrix3.html" title="class in org.apache.sis.referencing.operation.matrix">Matrix3</a></code>, <code><a href="Matrix4.html" title="class in org.apache.sis.referencing.operation.matrix">Matrix4</a></code></dd>
</dl>
<hr>
<div class="type-signature"><span class="modifiers">public abstract class </span><span class="element-name type-name-label">MatrixSIS</span>
<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>
implements <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/Matrix.html" title="class or interface in org.opengis.referencing.operation" class="external-link">Matrix</a>, <a href="../../../util/LenientComparable.html" title="interface in org.apache.sis.util">LenientComparable</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Cloneable.html" title="class or interface in java.lang" class="external-link">Cloneable</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/Serializable.html" title="class or interface in java.io" class="external-link">Serializable</a></span></div>
<div class="block">A <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/Matrix.html" title="class or interface in org.opengis.referencing.operation" class="external-link"><code>Matrix</code></a> able to perform some operations of interest to Spatial Information Systems (SIS).
This class completes the GeoAPI <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/Matrix.html" title="class or interface in org.opengis.referencing.operation" class="external-link"><code>Matrix</code></a> interface with some operations used by <code>sis-referencing</code>.
It is not a <code>Matrix­SIS</code> goal to provide all possible Matrix operations, as there is too many of them.
This class focuses on:
<ul>
<li>Only the basic matrix operations needed for <cite>referencing by coordinates</cite>:
<ul>
<li><a href="#isIdentity()"><code>is­Identity()</code></a></li>
<li><a href="#multiply(org.opengis.referencing.operation.Matrix)"><code>multiply(Matrix)</code></a></li>
<li><a href="#inverse()"><code>inverse()</code></a></li>
<li><a href="#transpose()"><code>transpose()</code></a></li>
</ul>
</li><li>Other operations which are not general-purpose matrix operations,
but are needed in the context of referencing by coordinates:
<ul>
<li><a href="#isAffine()"><code>is­Affine()</code></a></li>
<li><a href="#normalizeColumns()"><code>normalize­Columns()</code></a></li>
<li><a href="#convertBefore(int,java.lang.Number,java.lang.Number)"><code>convert­Before(int, Number, Number)</code></a></li>
<li><a href="#convertAfter(int,java.lang.Number,java.lang.Number)"><code>convert­After(int, Number, Number)</code></a></li>
</ul>
</li>
</ul></div>
<dl class="notes">
<dt>Since:</dt>
<dd>0.4</dd>
<dt>See Also:</dt>
<dd>
<ul class="see-list">
<li><a href="Matrices.html" title="class in org.apache.sis.referencing.operation.matrix"><code>Matrices</code></a></li>
<li><a href="../../../../../../serialized-form.html#org.apache.sis.referencing.operation.matrix.MatrixSIS">Serialized Form</a></li>
</ul>
</dd>
<p><font size="-1">Defined in the <code>sis-referencing</code> module</font></p>
</dl>
</section>
<section class="summary">
<ul class="summary-list">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<li>
<section class="constructor-summary" id="constructor-summary">
<h2>Constructor Summary</h2>
<div class="caption"><span>Constructors</span></div>
<div class="summary-table three-column-summary">
<div class="table-header col-first">Modifier</div>
<div class="table-header col-second">Constructor</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><code>protected </code></div>
<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E()" class="member-name-link">Matrix­SIS</a>()</code></div>
<div class="col-last even-row-color">
<div class="block">For sub-class constructors.</div>
</div>
</div>
</section>
</li>
<!-- ========== METHOD SUMMARY =========== -->
<li>
<section class="method-summary" id="method-summary">
<h2>Method Summary</h2>
<div id="method-summary-table">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab1" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab1', 3)" class="table-tab">Static Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab3" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab3', 3)" class="table-tab">Abstract Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
<div id="method-summary-table.tabpanel" role="tabpanel">
<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static <a href="MatrixSIS.html" title="class in org.apache.sis.referencing.operation.matrix">Matrix­SIS</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#castOrCopy(org.opengis.referencing.operation.Matrix)" class="member-name-link">cast­Or­Copy</a><wbr>(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/Matrix.html" title="class or interface in org.opengis.referencing.operation" class="external-link">Matrix</a>&nbsp;matrix)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Casts or copies the given matrix to a SIS implementation.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="MatrixSIS.html" title="class in org.apache.sis.referencing.operation.matrix">Matrix­SIS</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#clone()" class="member-name-link">clone</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns a clone of this matrix.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#convertAfter(int,java.lang.Number,java.lang.Number)" class="member-name-link">convert­After</a><wbr>(int&nbsp;tgt­Dim,
<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Number.html" title="class or interface in java.lang" class="external-link">Number</a>&nbsp;scale,
<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Number.html" title="class or interface in java.lang" class="external-link">Number</a>&nbsp;offset)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Assuming that this matrix represents an affine transform, pre-concatenates a scale and a translation on the
given dimension.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#convertBefore(int,java.lang.Number,java.lang.Number)" class="member-name-link">convert­Before</a><wbr>(int&nbsp;src­Dim,
<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Number.html" title="class or interface in java.lang" class="external-link">Number</a>&nbsp;scale,
<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Number.html" title="class or interface in java.lang" class="external-link">Number</a>&nbsp;offset)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Assuming that this matrix represents an affine transform, concatenates a scale and a translation on the
given dimension.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#equals(java.lang.Object)" class="member-name-link">equals</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>&nbsp;object)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns <code>true</code> if the specified object is of the same class than this matrix and
all of the data members are equal to the corresponding data members in this matrix.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#equals(java.lang.Object,org.apache.sis.util.ComparisonMode)" class="member-name-link">equals</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>&nbsp;object,
<a href="../../../util/ComparisonMode.html" title="enum class in org.apache.sis.util">Comparison­Mode</a>&nbsp;mode)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Compares this matrix with the given object for equality.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#equals(org.opengis.referencing.operation.Matrix,double)" class="member-name-link">equals</a><wbr>(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/Matrix.html" title="class or interface in org.opengis.referencing.operation" class="external-link">Matrix</a>&nbsp;matrix,
double&nbsp;tolerance)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Compares the given matrices for equality, using the given absolute tolerance threshold.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>abstract double</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#getElement(int,int)" class="member-name-link">get­Element</a><wbr>(int&nbsp;row,
int&nbsp;column)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Retrieves the value at the specified row and column of this matrix.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>double[]</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getElements()" class="member-name-link">get­Elements</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns a copy of all matrix elements in a flat, row-major (column indices vary fastest) array.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>long</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getInteger(int,int)" class="member-name-link">get­Integer</a><wbr>(int&nbsp;row,
int&nbsp;column)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Retrieves the value at the specified row and column of this matrix, rounded to nearest integer.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Number.html" title="class or interface in java.lang" class="external-link">Number</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getNumber(int,int)" class="member-name-link">get­Number</a><wbr>(int&nbsp;row,
int&nbsp;column)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Retrieves the value at the specified row and column of this matrix, wrapped in a <code>Number</code>.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>int</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#hashCode()" class="member-name-link">hash­Code</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns a hash code value based on the data values in this matrix.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="MatrixSIS.html" title="class in org.apache.sis.referencing.operation.matrix">Matrix­SIS</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#inverse()" class="member-name-link">inverse</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns the inverse of this matrix.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#isAffine()" class="member-name-link">is­Affine</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns <code>true</code> if this matrix represents an affine transform.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>abstract boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#isIdentity()" class="member-name-link">is­Identity</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Returns <code>true</code> if this matrix is an identity matrix.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>double[]</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#multiply(double%5B%5D)" class="member-name-link">multiply</a><wbr>(double[]&nbsp;vector)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns a new vector which is the result of multiplying this matrix with the specified vector.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="MatrixSIS.html" title="class in org.apache.sis.referencing.operation.matrix">Matrix­SIS</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#multiply(org.opengis.referencing.operation.Matrix)" class="member-name-link">multiply</a><wbr>(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/Matrix.html" title="class or interface in org.opengis.referencing.operation" class="external-link">Matrix</a>&nbsp;matrix)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns a new matrix which is the result of multiplying this matrix with the specified one.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="MatrixSIS.html" title="class in org.apache.sis.referencing.operation.matrix">Matrix­SIS</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#normalizeColumns()" class="member-name-link">normalize­Columns</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Normalizes all columns in-place and returns their magnitudes as a row vector.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="MatrixSIS.html" title="class in org.apache.sis.referencing.operation.matrix">Matrix­SIS</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#removeColumns(int,int)" class="member-name-link">remove­Columns</a><wbr>(int&nbsp;lower,
int&nbsp;upper)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns a new matrix with the same elements than this matrix except for the specified columns.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="MatrixSIS.html" title="class in org.apache.sis.referencing.operation.matrix">Matrix­SIS</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#removeRows(int,int)" class="member-name-link">remove­Rows</a><wbr>(int&nbsp;lower,
int&nbsp;upper)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns a new matrix with the same elements than this matrix except for the specified rows.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>abstract void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#setElements(double%5B%5D)" class="member-name-link">set­Elements</a><wbr>(double[]&nbsp;elements)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Sets all matrix elements from a flat, row-major (column indices vary fastest) array.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#setMatrix(org.opengis.referencing.operation.Matrix)" class="member-name-link">set­Matrix</a><wbr>(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/Matrix.html" title="class or interface in org.opengis.referencing.operation" class="external-link">Matrix</a>&nbsp;matrix)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Sets this matrix to the values of another matrix.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#setNumber(int,int,java.lang.Number)" class="member-name-link">set­Number</a><wbr>(int&nbsp;row,
int&nbsp;column,
<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Number.html" title="class or interface in java.lang" class="external-link">Number</a>&nbsp;value)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Modifies the value at the specified row and column of this matrix.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="MatrixSIS.html" title="class in org.apache.sis.referencing.operation.matrix">Matrix­SIS</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#solve(org.opengis.referencing.operation.Matrix)" class="member-name-link">solve</a><wbr>(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/Matrix.html" title="class or interface in org.opengis.referencing.operation" class="external-link">Matrix</a>&nbsp;matrix)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns the value of <var>U</var> which solves <code>this</code> × <var>U</var> = <code>matrix</code>.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#toString()" class="member-name-link">to­String</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns a unlocalized string representation of this matrix.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#translate(double%5B%5D)" class="member-name-link">translate</a><wbr>(double[]&nbsp;vector)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Multiplies this matrix by a translation matrix.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>abstract void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#transpose()" class="member-name-link">transpose</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Sets the value of this matrix to its transpose.</div>
</div>
</div>
</div>
</div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-Object">Methods inherited from class&nbsp;<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">get­Class</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notify­All</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-Matrix">Methods inherited from interface&nbsp;<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/Matrix.html" title="class or interface in org.opengis.referencing.operation" class="external-link">Matrix</a></h3>
<code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/Matrix.html#getNumCol()" title="class or interface in org.opengis.referencing.operation" class="external-link">get­Num­Col</a>, <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/Matrix.html#getNumRow()" title="class or interface in org.opengis.referencing.operation" class="external-link">get­Num­Row</a>, <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/Matrix.html#setElement(int,int,double)" title="class or interface in org.opengis.referencing.operation" class="external-link">set­Element</a></code></div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<li>
<section class="constructor-details" id="constructor-detail">
<h2>Constructor Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="&lt;init&gt;()">
<h3>MatrixSIS</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="element-name">MatrixSIS</span>()</div>
<div class="block">For sub-class constructors.</div>
</section>
</li>
</ul>
</section>
</li>
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method-detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="castOrCopy(org.opengis.referencing.operation.Matrix)">
<h3>castOrCopy</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="MatrixSIS.html" title="class in org.apache.sis.referencing.operation.matrix">MatrixSIS</a></span>&nbsp;<span class="element-name">castOrCopy</span><wbr><span class="parameters">(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/Matrix.html" title="class or interface in org.opengis.referencing.operation" class="external-link">Matrix</a>&nbsp;matrix)</span></div>
<div class="block">Casts or copies the given matrix to a SIS implementation. If <code>matrix</code> is already
an instance of <code>Matrix­SIS</code>, then it is returned unchanged. Otherwise all elements
are copied in a new <code>Matrix­SIS</code> object.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>matrix</code> - the matrix to cast or copy, or <code>null</code>.</dd>
<dt>Returns:</dt>
<dd>the matrix argument if it can be safely casted (including <code>null</code> argument),
or a copy of the given matrix otherwise.</dd>
<dt>See Also:</dt>
<dd>
<ul class="see-list">
<li><a href="Matrices.html#copy(org.opengis.referencing.operation.Matrix)"><code>Matrices​.copy(Matrix)</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getInteger(int,int)">
<h3>getInteger</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">long</span>&nbsp;<span class="element-name">getInteger</span><wbr><span class="parameters">(int&nbsp;row,
int&nbsp;column)</span></div>
<div class="block">Retrieves the value at the specified row and column of this matrix, rounded to nearest integer.
This method may be more accurate than <a href="#getElement(int,int)"><code>get­Element(int, int)</code></a> in some implementations
when the value is expected to be an integer (for example in conversions of pixel coordinates).</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>row</code> - the row index, from 0 inclusive to <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/Matrix.html#getNumRow()" title="class or interface in org.opengis.referencing.operation" class="external-link"><code>Matrix​.get­Num­Row()</code></a> exclusive.</dd>
<dd><code>column</code> - the column index, from 0 inclusive to <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/Matrix.html#getNumCol()" title="class or interface in org.opengis.referencing.operation" class="external-link"><code>Matrix​.get­Num­Col()</code></a> exclusive.</dd>
<dt>Returns:</dt>
<dd>the current value at the given row and column, rounded to nearest integer.</dd>
<dt>Since:</dt>
<dd>1.3</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getNumber(int,int)">
<h3>getNumber</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Number.html" title="class or interface in java.lang" class="external-link">Number</a></span>&nbsp;<span class="element-name">getNumber</span><wbr><span class="parameters">(int&nbsp;row,
int&nbsp;column)</span></div>
<div class="block">Retrieves the value at the specified row and column of this matrix, wrapped in a <code>Number</code>.
The <code>Number</code> type depends on the matrix accuracy.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>row</code> - the row index, from 0 inclusive to <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/Matrix.html#getNumRow()" title="class or interface in org.opengis.referencing.operation" class="external-link"><code>Matrix​.get­Num­Row()</code></a> exclusive.</dd>
<dd><code>column</code> - the column index, from 0 inclusive to <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/Matrix.html#getNumCol()" title="class or interface in org.opengis.referencing.operation" class="external-link"><code>Matrix​.get­Num­Col()</code></a> exclusive.</dd>
<dt>Returns:</dt>
<dd>the current value at the given row and column.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setNumber(int,int,java.lang.Number)">
<h3>setNumber</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">setNumber</span><wbr><span class="parameters">(int&nbsp;row,
int&nbsp;column,
<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Number.html" title="class or interface in java.lang" class="external-link">Number</a>&nbsp;value)</span></div>
<div class="block">Modifies the value at the specified row and column of this matrix.
This method is the converses of <a href="#getNumber(int,int)"><code>get­Number(int, int)</code></a>.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>row</code> - the row index, from 0 inclusive to <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/Matrix.html#getNumRow()" title="class or interface in org.opengis.referencing.operation" class="external-link"><code>Matrix​.get­Num­Row()</code></a> exclusive.</dd>
<dd><code>column</code> - the column index, from 0 inclusive to <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/Matrix.html#getNumCol()" title="class or interface in org.opengis.referencing.operation" class="external-link"><code>Matrix​.get­Num­Col()</code></a> exclusive.</dd>
<dd><code>value</code> - the new matrix element value.</dd>
<dt>Since:</dt>
<dd>0.8</dd>
<dt>See Also:</dt>
<dd>
<ul class="see-list-long">
<li><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/Matrix.html#setElement(int,int,double)" title="class or interface in org.opengis.referencing.operation" class="external-link"><code>Matrix​.set­Element(int, int, double)</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getElement(int,int)">
<h3>getElement</h3>
<div class="member-signature"><span class="modifiers">public abstract</span>&nbsp;<span class="return-type">double</span>&nbsp;<span class="element-name">getElement</span><wbr><span class="parameters">(int&nbsp;row,
int&nbsp;column)</span></div>
<div class="block">Retrieves the value at the specified row and column of this matrix.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/Matrix.html#getElement(int,int)" title="class or interface in org.opengis.referencing.operation" class="external-link">get­Element</a></code>&nbsp;in interface&nbsp;<code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/Matrix.html" title="class or interface in org.opengis.referencing.operation" class="external-link">Matrix</a></code></dd>
<dt>Parameters:</dt>
<dd><code>row</code> - the row index, from 0 inclusive to <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/Matrix.html#getNumRow()" title="class or interface in org.opengis.referencing.operation" class="external-link"><code>Matrix​.get­Num­Row()</code></a> exclusive.</dd>
<dd><code>column</code> - the column index, from 0 inclusive to <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/Matrix.html#getNumCol()" title="class or interface in org.opengis.referencing.operation" class="external-link"><code>Matrix​.get­Num­Col()</code></a> exclusive.</dd>
<dt>Returns:</dt>
<dd>the current value at the given row and column.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getElements()">
<h3>getElements</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">double[]</span>&nbsp;<span class="element-name">getElements</span>()</div>
<div class="block">Returns a copy of all matrix elements in a flat, row-major (column indices vary fastest) array.
The array length is <code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/Matrix.html#getNumRow()" title="class or interface in org.opengis.referencing.operation" class="external-link">Matrix​.get­Num­Row()</a> * <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/Matrix.html#getNumCol()" title="class or interface in org.opengis.referencing.operation" class="external-link">Matrix​.get­Num­Col()</a></code>.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>a copy of all current matrix elements in a row-major array.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setElements(double[])">
<h3>setElements</h3>
<div class="member-signature"><span class="modifiers">public abstract</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">setElements</span><wbr><span class="parameters">(double[]&nbsp;elements)</span></div>
<div class="block">Sets all matrix elements from a flat, row-major (column indices vary fastest) array.
The array length shall be <code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/Matrix.html#getNumRow()" title="class or interface in org.opengis.referencing.operation" class="external-link">Matrix​.get­Num­Row()</a> * <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/Matrix.html#getNumCol()" title="class or interface in org.opengis.referencing.operation" class="external-link">Matrix​.get­Num­Col()</a></code>.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>elements</code> - The new matrix elements in a row-major array.</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">Illegal­Argument­Exception</a></code> - if the given array does not have the expected length.</dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/UnsupportedOperationException.html" title="class or interface in java.lang" class="external-link">Unsupported­Operation­Exception</a></code> - if this matrix is unmodifiable.</dd>
<dt>See Also:</dt>
<dd>
<ul class="see-list-long">
<li><a href="Matrices.html#create(int,int,double%5B%5D)"><code>Matrices​.create(int, int, double[])</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setMatrix(org.opengis.referencing.operation.Matrix)">
<h3>setMatrix</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">setMatrix</span><wbr><span class="parameters">(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/Matrix.html" title="class or interface in org.opengis.referencing.operation" class="external-link">Matrix</a>&nbsp;matrix)</span>
throws <span class="exceptions"><a href="MismatchedMatrixSizeException.html" title="class in org.apache.sis.referencing.operation.matrix">MismatchedMatrixSizeException</a></span></div>
<div class="block">Sets this matrix to the values of another matrix.
The given matrix must have the same size.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>matrix</code> - the matrix to copy.</dd>
<dt>Throws:</dt>
<dd><code><a href="MismatchedMatrixSizeException.html" title="class in org.apache.sis.referencing.operation.matrix">Mismatched­Matrix­Size­Exception</a></code> - if the given matrix has a different size than this matrix.</dd>
<dt>Since:</dt>
<dd>0.7</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="isAffine()">
<h3>isAffine</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">isAffine</span>()</div>
<div class="block">Returns <code>true</code> if this matrix represents an affine transform.
A transform is affine if the matrix is square and its last row contains
only zeros, except in the last column which contains 1.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd><code>true</code> if this matrix represents an affine transform.</dd>
<dt>See Also:</dt>
<dd>
<ul class="see-list">
<li><a href="Matrices.html#isAffine(org.opengis.referencing.operation.Matrix)"><code>Matrices​.is­Affine(Matrix)</code></a></li>
<li><a href="../transform/LinearTransform.html#isAffine()"><code>Linear­Transform​.is­Affine()</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="isIdentity()">
<h3>isIdentity</h3>
<div class="member-signature"><span class="modifiers">public abstract</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">isIdentity</span>()</div>
<div class="block">Returns <code>true</code> if this matrix is an identity matrix.
This method is equivalent to the following code, except that it is potentially more efficient:
<blockquote><pre><font color="green">return</font> Matrices.<b>isIdentity</b>(<font color="green">this</font>, 0.0);</pre></blockquote></div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/Matrix.html#isIdentity()" title="class or interface in org.opengis.referencing.operation" class="external-link">is­Identity</a></code>&nbsp;in interface&nbsp;<code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/Matrix.html" title="class or interface in org.opengis.referencing.operation" class="external-link">Matrix</a></code></dd>
<dt>Returns:</dt>
<dd><code>true</code> if this matrix is an identity matrix.</dd>
<dt>See Also:</dt>
<dd>
<ul class="see-list-long">
<li><a href="Matrices.html#isIdentity(org.opengis.referencing.operation.Matrix,double)"><code>Matrices​.is­Identity(Matrix, double)</code></a></li>
<li><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/geom/AffineTransform.html#isIdentity()" title="class or interface in java.awt.geom" class="external-link"><code>Affine­Transform​.is­Identity()</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="transpose()">
<h3>transpose</h3>
<div class="member-signature"><span class="modifiers">public abstract</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">transpose</span>()</div>
<div class="block">Sets the value of this matrix to its transpose.</div>
<dl class="notes">
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/UnsupportedOperationException.html" title="class or interface in java.lang" class="external-link">Unsupported­Operation­Exception</a></code> - if this matrix is unmodifiable.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="normalizeColumns()">
<h3>normalizeColumns</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="MatrixSIS.html" title="class in org.apache.sis.referencing.operation.matrix">MatrixSIS</a></span>&nbsp;<span class="element-name">normalizeColumns</span>()</div>
<div class="block">Normalizes all columns in-place and returns their magnitudes as a row vector.
Each columns in this matrix is considered as a vector. For each column (vector),
this method computes the magnitude (vector length) as the square root of the sum of all squared values.
Then, all values in the column are divided by that magnitude.
<p>This method is useful when the matrix is a
<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/MathTransform.html#derivative(org.opengis.geometry.DirectPosition)" title="class or interface in org.opengis.referencing.operation" class="external-link">transform derivative</a>.
In such matrix, each column is a vector representing the displacement in target space when an
coordinate in the source space is increased by one. Invoking this method turns those vectors
into unitary vectors, which is useful for forming the basis of a new coordinate system.</p></div>
<dl class="notes">
<dt>Returns:</dt>
<dd>the magnitude for each column in a matrix having only one row.</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/UnsupportedOperationException.html" title="class or interface in java.lang" class="external-link">Unsupported­Operation­Exception</a></code> - if this matrix is unmodifiable.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="convertBefore(int,java.lang.Number,java.lang.Number)">
<h3>convertBefore</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">convertBefore</span><wbr><span class="parameters">(int&nbsp;srcDim,
<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Number.html" title="class or interface in java.lang" class="external-link">Number</a>&nbsp;scale,
<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Number.html" title="class or interface in java.lang" class="external-link">Number</a>&nbsp;offset)</span></div>
<div class="block">Assuming that this matrix represents an affine transform, concatenates a scale and a translation on the
given dimension. Converting a point with the resulting matrix is equivalent to first convert the point
with <code>coordinates[src­Dim] = coordinates[src­Dim] * scale + offset</code>, then apply the original matrix.
<h4>Equivalence between this method and Java2D <code>Affine­Transform</code> methods</h4>
If this matrix was an instance of Java2D <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/geom/AffineTransform.html" title="class or interface in java.awt.geom" class="external-link"><code>Affine­Transform</code></a>, then invoking this method would
be equivalent to invoking the following <code>Affine­Transform</code> methods in the order shown below:
<table class="sis">
<caption>Equivalence between this method and AffineTransform methods</caption>
<tr>
<th><code>MatrixSIS</code> method</th>
<th class="sep"><code>AffineTransform</code> methods</th>
</tr><tr>
<td><code>convertBefore(0, scale, offset)</code></td>
<td class="sep"><code>at.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/geom/AffineTransform.html#translate(double,double)" title="class or interface in java.awt.geom" class="external-link">translate</a>(offset, 0);
at.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/geom/AffineTransform.html#scale(double,double)" title="class or interface in java.awt.geom" class="external-link">scale</a>(scale, 1);</code></td>
</tr><tr>
<td class="hsep"><code>convertBefore(1, scale, offset)</code></td>
<td class="hsep sep"><code>at.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/geom/AffineTransform.html#translate(double,double)" title="class or interface in java.awt.geom" class="external-link">translate</a>(0, offset);
at.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/geom/AffineTransform.html#scale(double,double)" title="class or interface in java.awt.geom" class="external-link">scale</a>(1, scale);</code></td>
</tr>
</table></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>src­Dim</code> - the dimension of the coordinate to rescale in the source coordinates.</dd>
<dd><code>scale</code> - the amount by which to multiply the source coordinate value before to apply the transform, or <code>null</code> if none.</dd>
<dd><code>offset</code> - the amount by which to translate the source coordinate value before to apply the transform, or <code>null</code> if none.</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/UnsupportedOperationException.html" title="class or interface in java.lang" class="external-link">Unsupported­Operation­Exception</a></code> - if this matrix is unmodifiable.</dd>
<dt>Since:</dt>
<dd>0.6</dd>
<dt>See Also:</dt>
<dd>
<ul class="see-list-long">
<li><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/geom/AffineTransform.html#concatenate(java.awt.geom.AffineTransform)" title="class or interface in java.awt.geom" class="external-link"><code>Affine­Transform​.concatenate(Affine­Transform)</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="convertAfter(int,java.lang.Number,java.lang.Number)">
<h3>convertAfter</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">convertAfter</span><wbr><span class="parameters">(int&nbsp;tgtDim,
<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Number.html" title="class or interface in java.lang" class="external-link">Number</a>&nbsp;scale,
<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Number.html" title="class or interface in java.lang" class="external-link">Number</a>&nbsp;offset)</span></div>
<div class="block">Assuming that this matrix represents an affine transform, pre-concatenates a scale and a translation on the
given dimension. Converting a point with the resulting matrix is equivalent to first convert the point with
the original matrix, then convert the result with <code>coordinates[tgt­Dim] = coordinates[tgt­Dim] * scale + offset</code>.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>tgt­Dim</code> - the dimension of the coordinate to rescale in the target coordinates.</dd>
<dd><code>scale</code> - the amount by which to multiply the target coordinate value after this transform, or <code>null</code> if none.</dd>
<dd><code>offset</code> - the amount by which to translate the target coordinate value after this transform, or <code>null</code> if none.</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/UnsupportedOperationException.html" title="class or interface in java.lang" class="external-link">Unsupported­Operation­Exception</a></code> - if this matrix is unmodifiable.</dd>
<dt>Since:</dt>
<dd>0.6</dd>
<dt>See Also:</dt>
<dd>
<ul class="see-list-long">
<li><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/geom/AffineTransform.html#preConcatenate(java.awt.geom.AffineTransform)" title="class or interface in java.awt.geom" class="external-link"><code>Affine­Transform​.pre­Concatenate(Affine­Transform)</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="multiply(org.opengis.referencing.operation.Matrix)">
<h3>multiply</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="MatrixSIS.html" title="class in org.apache.sis.referencing.operation.matrix">MatrixSIS</a></span>&nbsp;<span class="element-name">multiply</span><wbr><span class="parameters">(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/Matrix.html" title="class or interface in org.opengis.referencing.operation" class="external-link">Matrix</a>&nbsp;matrix)</span>
throws <span class="exceptions"><a href="MismatchedMatrixSizeException.html" title="class in org.apache.sis.referencing.operation.matrix">MismatchedMatrixSizeException</a></span></div>
<div class="block">Returns a new matrix which is the result of multiplying this matrix with the specified one.
In other words, returns <code>this</code> × <code>matrix</code>.
<h4>Relationship with coordinate operations</h4>
In the context of coordinate operations, <code>Matrix​.multiply(other)</code> is equivalent to
<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/geom/AffineTransform.html#concatenate(java.awt.geom.AffineTransform)" title="class or interface in java.awt.geom" class="external-link">Affine­Transform​.concatenate</a>(other)</code>:
first transforms by the <code>other</code> transform and then transform the result by <code>this</code> transform.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>matrix</code> - the matrix to multiply to this matrix.</dd>
<dt>Returns:</dt>
<dd>the result of <code>this</code> × <code>matrix</code>.</dd>
<dt>Throws:</dt>
<dd><code><a href="MismatchedMatrixSizeException.html" title="class in org.apache.sis.referencing.operation.matrix">Mismatched­Matrix­Size­Exception</a></code> - if the number of rows in the given matrix is not equals to the
number of columns in this matrix.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="multiply(double[])">
<h3>multiply</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">double[]</span>&nbsp;<span class="element-name">multiply</span><wbr><span class="parameters">(double[]&nbsp;vector)</span></div>
<div class="block">Returns a new vector which is the result of multiplying this matrix with the specified vector.
In other words, returns <code>this</code> × <code>vector</code>. The length of the given vector must be
equal to the number of columns in this matrix, and the length of the returned vector will be
equal to the number of rows in this matrix.
<h4>Relationship with coordinate operations</h4>
In the context of coordinate operations, <code>Matrix​.multiply(vector)</code> is related to
<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/geom/AffineTransform.html#transform(double%5B%5D,int,double%5B%5D,int,int)" title="class or interface in java.awt.geom" class="external-link">Affine­Transform​.transform</a>(…)</code>
except that the last <code>vector</code> number is implicitly 1 in <code>Affine­Transform</code> operations.
While this <code>multiply(double[])</code> method could be used for coordinate transformation, it is not its purpose.
This method is designed for occasional uses when accuracy is more important than performance.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>vector</code> - the vector to multiply to this matrix.</dd>
<dt>Returns:</dt>
<dd>the result of <code>this</code> × <code>vector</code>.</dd>
<dt>Throws:</dt>
<dd><code><a href="MismatchedMatrixSizeException.html" title="class in org.apache.sis.referencing.operation.matrix">Mismatched­Matrix­Size­Exception</a></code> - if the length of the given vector is not equals to the
number of columns in this matrix.</dd>
<dt>Since:</dt>
<dd>0.8</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="translate(double[])">
<h3>translate</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">translate</span><wbr><span class="parameters">(double[]&nbsp;vector)</span></div>
<div class="block">Multiplies this matrix by a translation matrix. Invoking this method is equivalent to invoking
<code><a href="#multiply(org.opengis.referencing.operation.Matrix)">multiply</a>(T)</code> where <var>T</var> is a matrix like
below (size varies):
<blockquote><pre> ┌ ┐
│ 1 0 0 vector[0] │
<var>T</var> = │ 0 1 0 vector[1] │
│ 0 0 1 vector[2] │
│ 0 0 0 vector[3] │
└ ┘</pre></blockquote>
The length of the given vector must be equal to the number of columns in this matrix.
The last vector element is 1 for an affine transform, but other values are allowed.
This matrix will be modified in-place.
<p>If this matrix is used for coordinate conversions, then converting a position with
the resulting matrix is equivalent to first translating the point by the given vector,
then applying the conversion represented by the original matrix.</p></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>vector</code> - a vector representing a translation to be applied before this matrix.</dd>
<dt>Since:</dt>
<dd>1.0</dd>
<dt>See Also:</dt>
<dd>
<ul class="see-list-long">
<li><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/geom/AffineTransform.html#translate(double,double)" title="class or interface in java.awt.geom" class="external-link"><code>Affine­Transform​.translate(double, double)</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="solve(org.opengis.referencing.operation.Matrix)">
<h3>solve</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="MatrixSIS.html" title="class in org.apache.sis.referencing.operation.matrix">MatrixSIS</a></span>&nbsp;<span class="element-name">solve</span><wbr><span class="parameters">(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/Matrix.html" title="class or interface in org.opengis.referencing.operation" class="external-link">Matrix</a>&nbsp;matrix)</span>
throws <span class="exceptions"><a href="MismatchedMatrixSizeException.html" title="class in org.apache.sis.referencing.operation.matrix">MismatchedMatrixSizeException</a>,
<a href="NoninvertibleMatrixException.html" title="class in org.apache.sis.referencing.operation.matrix">NoninvertibleMatrixException</a></span></div>
<div class="block">Returns the value of <var>U</var> which solves <code>this</code> × <var>U</var> = <code>matrix</code>.
This is equivalent to first computing the inverse of <code>this</code>, then multiplying the result
by the given matrix.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>matrix</code> - the matrix to solve.</dd>
<dt>Returns:</dt>
<dd>the <var>U</var> matrix that satisfies <code>this</code> × <var>U</var> = <code>matrix</code>.</dd>
<dt>Throws:</dt>
<dd><code><a href="MismatchedMatrixSizeException.html" title="class in org.apache.sis.referencing.operation.matrix">Mismatched­Matrix­Size­Exception</a></code> - if the number of rows in the given matrix is not equals
to the number of columns in this matrix.</dd>
<dd><code><a href="NoninvertibleMatrixException.html" title="class in org.apache.sis.referencing.operation.matrix">Noninvertible­Matrix­Exception</a></code> - if this matrix is not invertible.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="inverse()">
<h3>inverse</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="MatrixSIS.html" title="class in org.apache.sis.referencing.operation.matrix">MatrixSIS</a></span>&nbsp;<span class="element-name">inverse</span>()
throws <span class="exceptions"><a href="NoninvertibleMatrixException.html" title="class in org.apache.sis.referencing.operation.matrix">NoninvertibleMatrixException</a></span></div>
<div class="block">Returns the inverse of this matrix.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>the inverse of this matrix.</dd>
<dt>Throws:</dt>
<dd><code><a href="NoninvertibleMatrixException.html" title="class in org.apache.sis.referencing.operation.matrix">Noninvertible­Matrix­Exception</a></code> - if this matrix is not invertible.</dd>
<dt>See Also:</dt>
<dd>
<ul class="see-list-long">
<li><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/java/awt/geom/AffineTransform.html#createInverse()" title="class or interface in java.awt.geom" class="external-link"><code>Affine­Transform​.create­Inverse()</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="removeRows(int,int)">
<h3>removeRows</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="MatrixSIS.html" title="class in org.apache.sis.referencing.operation.matrix">MatrixSIS</a></span>&nbsp;<span class="element-name">removeRows</span><wbr><span class="parameters">(int&nbsp;lower,
int&nbsp;upper)</span></div>
<div class="block">Returns a new matrix with the same elements than this matrix except for the specified rows.
This method is useful for removing a range of <em>target</em> dimensions in an affine transform.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>lower</code> - index of the first row to remove (inclusive).</dd>
<dd><code>upper</code> - index after the last row to remove (exclusive).</dd>
<dt>Returns:</dt>
<dd>a copy of this matrix with the specified rows removed.</dd>
<dt>Since:</dt>
<dd>0.7</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="removeColumns(int,int)">
<h3>removeColumns</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="MatrixSIS.html" title="class in org.apache.sis.referencing.operation.matrix">MatrixSIS</a></span>&nbsp;<span class="element-name">removeColumns</span><wbr><span class="parameters">(int&nbsp;lower,
int&nbsp;upper)</span></div>
<div class="block">Returns a new matrix with the same elements than this matrix except for the specified columns.
This method is useful for removing a range of <em>source</em> dimensions in an affine transform.
Coordinates will be converted as if the values in the removed dimensions were zeros.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>lower</code> - index of the first column to remove (inclusive).</dd>
<dd><code>upper</code> - index after the last column to remove (exclusive).</dd>
<dt>Returns:</dt>
<dd>a copy of this matrix with the specified columns removed.</dd>
<dt>Since:</dt>
<dd>0.7</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="hashCode()">
<h3>hashCode</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name">hashCode</span>()</div>
<div class="block">Returns a hash code value based on the data values in this matrix.</div>
<dl class="notes">
<dt>Overrides:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hash­Code</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></code></dd>
<dt>Returns:</dt>
<dd>a hash code value for this matrix.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="equals(java.lang.Object)">
<h3>equals</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">equals</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>&nbsp;object)</span></div>
<div class="block">Returns <code>true</code> if the specified object is of the same class than this matrix and
all of the data members are equal to the corresponding data members in this matrix.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="../../../util/LenientComparable.html#equals(java.lang.Object)">equals</a></code>&nbsp;in interface&nbsp;<code><a href="../../../util/LenientComparable.html" title="interface in org.apache.sis.util">Lenient­Comparable</a></code></dd>
<dt>Overrides:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></code></dd>
<dt>Parameters:</dt>
<dd><code>object</code> - the object to compare with this matrix for equality.</dd>
<dt>Returns:</dt>
<dd><code>true</code> if the given object is equal to this matrix.</dd>
<dt>See Also:</dt>
<dd>
<ul class="see-list">
<li><a href="../../../util/ComparisonMode.html#STRICT"><code>Comparison­Mode​.STRICT</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="equals(org.opengis.referencing.operation.Matrix,double)">
<h3>equals</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">equals</span><wbr><span class="parameters">(<a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/Matrix.html" title="class or interface in org.opengis.referencing.operation" class="external-link">Matrix</a>&nbsp;matrix,
double&nbsp;tolerance)</span></div>
<div class="block">Compares the given matrices for equality, using the given absolute tolerance threshold.
The given matrix does not need to be the same implementation class than this matrix.
<p>The matrix elements are compared as below:</p>
<ul>
<li><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Double.html#NaN" title="class or interface in java.lang" class="external-link"><code>Double​.Na­N</code></a> values are considered equals to all other NaN values.</li>
<li>Infinite values are considered equal to other infinite values of the same sign.</li>
<li>All other values are considered equal if the absolute value of their difference is
smaller than or equals to the given threshold.</li>
</ul></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>matrix</code> - the matrix to compare.</dd>
<dd><code>tolerance</code> - the tolerance value.</dd>
<dt>Returns:</dt>
<dd><code>true</code> if this matrix is close enough to the given matrix given the tolerance value.</dd>
<dt>See Also:</dt>
<dd>
<ul class="see-list-long">
<li><a href="Matrices.html#equals(org.opengis.referencing.operation.Matrix,org.opengis.referencing.operation.Matrix,double,boolean)"><code>Matrices​.equals(Matrix, Matrix, double, boolean)</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="equals(java.lang.Object,org.apache.sis.util.ComparisonMode)">
<h3>equals</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">equals</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>&nbsp;object,
<a href="../../../util/ComparisonMode.html" title="enum class in org.apache.sis.util">ComparisonMode</a>&nbsp;mode)</span></div>
<div class="block">Compares this matrix with the given object for equality. To be considered equal, the two
objects must met the following conditions, which depend on the <code>mode</code> argument:
<ul>
<li><a href="../../../util/ComparisonMode.html#STRICT"><code>STRICT</code></a>:
the two matrices must be of the same class, have the same size and the same element values.</li>
<li><a href="../../../util/ComparisonMode.html#BY_CONTRACT"><code>BY_CONTRACT</code></a>:
the two matrices must have the same size and the same element values,
but are not required to be the same implementation class (any <a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/Matrix.html" title="class or interface in org.opengis.referencing.operation" class="external-link"><code>Matrix</code></a> is okay).</li>
<li><a href="../../../util/ComparisonMode.html#IGNORE_METADATA"><code>IGNORE_METADATA</code></a>: same as <code>BY_CONTRACT</code>.
<li><a href="../../../util/ComparisonMode.html#APPROXIMATE"><code>APPROXIMATE</code></a>:
the two matrices must have the same size, but the element values can differ up to some threshold.
The threshold value is determined empirically and may change in any future SIS versions.</li>
</ul></div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="../../../util/LenientComparable.html#equals(java.lang.Object,org.apache.sis.util.ComparisonMode)">equals</a></code>&nbsp;in interface&nbsp;<code><a href="../../../util/LenientComparable.html" title="interface in org.apache.sis.util">Lenient­Comparable</a></code></dd>
<dt>Parameters:</dt>
<dd><code>object</code> - the object to compare to <code>this</code>.</dd>
<dd><code>mode</code> - the strictness level of the comparison.</dd>
<dt>Returns:</dt>
<dd><code>true</code> if both objects are equal.</dd>
<dt>See Also:</dt>
<dd>
<ul class="see-list-long">
<li><a href="Matrices.html#equals(org.opengis.referencing.operation.Matrix,org.opengis.referencing.operation.Matrix,org.apache.sis.util.ComparisonMode)"><code>Matrices​.equals(Matrix, Matrix, Comparison­Mode)</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="clone()">
<h3>clone</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="MatrixSIS.html" title="class in org.apache.sis.referencing.operation.matrix">MatrixSIS</a></span>&nbsp;<span class="element-name">clone</span>()</div>
<div class="block">Returns a clone of this matrix.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/Matrix.html#clone()" title="class or interface in org.opengis.referencing.operation" class="external-link">clone</a></code>&nbsp;in interface&nbsp;<code><a href="http://www.geoapi.org/3.0/javadoc/org.opengis.geoapi/org/opengis/referencing/operation/Matrix.html" title="class or interface in org.opengis.referencing.operation" class="external-link">Matrix</a></code></dd>
<dt>Overrides:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></code></dd>
<dt>Returns:</dt>
<dd>a new matrix of the same class and with the same values than this matrix.</dd>
<dt>See Also:</dt>
<dd>
<ul class="see-list">
<li><a href="Matrices.html#copy(org.opengis.referencing.operation.Matrix)"><code>Matrices​.copy(Matrix)</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="toString()">
<h3>toString</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">toString</span>()</div>
<div class="block">Returns a unlocalized string representation of this matrix.
For each column, the numbers are aligned on the decimal separator.</div>
<dl class="notes">
<dt>Overrides:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">to­String</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></code></dd>
<dt>See Also:</dt>
<dd>
<ul class="see-list">
<li><a href="Matrices.html#toString(org.opengis.referencing.operation.Matrix)"><code>Matrices​.to­String(Matrix)</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small>Copyright &#169; 2010&#x2013;2022 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>