blob: 76fab4339bd8505f2b9579e527f26cf4da1acfae [file] [log] [blame]
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="An efficient implementation of a permutation matrix."><meta name="keywords" content="rust, rustlang, rust-lang, PermutationMatrix"><title>PermutationMatrix in rulinalg::matrix - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../SourceSerif4-Regular.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../FiraSans-Regular.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../FiraSans-Medium.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../SourceCodePro-Regular.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../SourceSerif4-Bold.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../SourceCodePro-Semibold.ttf.woff2"><link rel="stylesheet" href="../../normalize.css"><link rel="stylesheet" href="../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" href="../../ayu.css" disabled><link rel="stylesheet" href="../../dark.css" disabled><link rel="stylesheet" href="../../light.css" id="themeStyle"><script id="default-settings" ></script><script src="../../storage.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../main.js"></script><noscript><link rel="stylesheet" href="../../noscript.css"></noscript><link rel="alternate icon" type="image/png" href="../../favicon-16x16.png"><link rel="alternate icon" type="image/png" href="../../favicon-32x32.png"><link rel="icon" type="image/svg+xml" href="../../favicon.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">&#9776;</button><a class="sidebar-logo" href="../../rulinalg/index.html"><div class="logo-container"><img class="rust-logo" src="../../rust-logo.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../rulinalg/index.html"><div class="logo-container"><img class="rust-logo" src="../../rust-logo.svg" alt="logo"></div></a><h2 class="location"><a href="#">PermutationMatrix</a></h2><div class="sidebar-elems"><section><h3><a href="#implementations">Methods</a></h3><ul class="block"><li><a href="#method.as_matrix">as_matrix</a></li><li><a href="#method.compose_into_buffer">compose_into_buffer</a></li><li><a href="#method.det">det</a></li><li><a href="#method.from_array">from_array</a></li><li><a href="#method.from_array_unchecked">from_array_unchecked</a></li><li><a href="#method.identity">identity</a></li><li><a href="#method.inverse">inverse</a></li><li><a href="#method.map_row">map_row</a></li><li><a href="#method.parity">parity</a></li><li><a href="#method.permute_cols_in_place">permute_cols_in_place</a></li><li><a href="#method.permute_cols_into_buffer">permute_cols_into_buffer</a></li><li><a href="#method.permute_rows_in_place">permute_rows_in_place</a></li><li><a href="#method.permute_rows_into_buffer">permute_rows_into_buffer</a></li><li><a href="#method.permute_vector_in_place">permute_vector_in_place</a></li><li><a href="#method.permute_vector_into_buffer">permute_vector_into_buffer</a></li><li><a href="#method.size">size</a></li><li><a href="#method.swap_rows">swap_rows</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-PermutationMatrix%3CT%3E">Clone</a></li><li><a href="#impl-Debug-for-PermutationMatrix%3CT%3E">Debug</a></li><li><a href="#impl-Eq-for-PermutationMatrix%3CT%3E">Eq</a></li><li><a href="#impl-From%3CPermutationMatrix%3CT%3E%3E-for-Vec%3Cusize%3E">From&lt;PermutationMatrix&lt;T&gt;&gt;</a></li><li><a href="#impl-Into%3C%26%27a%20%5Busize%5D%3E-for-%26%27a%20PermutationMatrix%3CT%3E">Into&lt;&amp;&#39;a [usize]&gt;</a></li><li><a href="#impl-Mul%3C%26%27a%20Matrix%3CT%3E%3E-for-%26%27b%20PermutationMatrix%3CT%3E">Mul&lt;&amp;&#39;a Matrix&lt;T&gt;&gt;</a></li><li><a href="#impl-Mul%3C%26%27a%20Matrix%3CT%3E%3E-for-PermutationMatrix%3CT%3E">Mul&lt;&amp;&#39;a Matrix&lt;T&gt;&gt;</a></li><li><a href="#impl-Mul%3C%26%27a%20MatrixSlice%3C%27m%2C%20T%3E%3E-for-%26%27b%20PermutationMatrix%3CT%3E">Mul&lt;&amp;&#39;a MatrixSlice&lt;&#39;m, T&gt;&gt;</a></li><li><a href="#impl-Mul%3C%26%27a%20MatrixSlice%3C%27m%2C%20T%3E%3E-for-PermutationMatrix%3CT%3E">Mul&lt;&amp;&#39;a MatrixSlice&lt;&#39;m, T&gt;&gt;</a></li><li><a href="#impl-Mul%3C%26%27a%20MatrixSliceMut%3C%27m%2C%20T%3E%3E-for-%26%27b%20PermutationMatrix%3CT%3E">Mul&lt;&amp;&#39;a MatrixSliceMut&lt;&#39;m, T&gt;&gt;</a></li><li><a href="#impl-Mul%3C%26%27a%20MatrixSliceMut%3C%27m%2C%20T%3E%3E-for-PermutationMatrix%3CT%3E">Mul&lt;&amp;&#39;a MatrixSliceMut&lt;&#39;m, T&gt;&gt;</a></li><li><a href="#impl-Mul%3C%26%27a%20PermutationMatrix%3CT%3E%3E-for-%26%27b%20PermutationMatrix%3CT%3E">Mul&lt;&amp;&#39;a PermutationMatrix&lt;T&gt;&gt;</a></li><li><a href="#impl-Mul%3C%26%27a%20PermutationMatrix%3CT%3E%3E-for-Matrix%3CT%3E">Mul&lt;&amp;&#39;a PermutationMatrix&lt;T&gt;&gt;</a></li><li><a href="#impl-Mul%3C%26%27a%20PermutationMatrix%3CT%3E%3E-for-PermutationMatrix%3CT%3E">Mul&lt;&amp;&#39;a PermutationMatrix&lt;T&gt;&gt;</a></li><li><a href="#impl-Mul%3C%26%27a%20Vector%3CT%3E%3E-for-%26%27b%20PermutationMatrix%3CT%3E">Mul&lt;&amp;&#39;a Vector&lt;T&gt;&gt;</a></li><li><a href="#impl-Mul%3C%26%27a%20Vector%3CT%3E%3E-for-PermutationMatrix%3CT%3E">Mul&lt;&amp;&#39;a Vector&lt;T&gt;&gt;</a></li><li><a href="#impl-Mul%3C%26%27b%20PermutationMatrix%3CT%3E%3E-for-%26%27a%20Matrix%3CT%3E">Mul&lt;&amp;&#39;b PermutationMatrix&lt;T&gt;&gt;</a></li><li><a href="#impl-Mul%3C%26%27b%20PermutationMatrix%3CT%3E%3E-for-%26%27a%20MatrixSlice%3C%27m%2C%20T%3E">Mul&lt;&amp;&#39;b PermutationMatrix&lt;T&gt;&gt;</a></li><li><a href="#impl-Mul%3C%26%27b%20PermutationMatrix%3CT%3E%3E-for-%26%27a%20MatrixSliceMut%3C%27m%2C%20T%3E">Mul&lt;&amp;&#39;b PermutationMatrix&lt;T&gt;&gt;</a></li><li><a href="#impl-Mul%3C%26%27b%20PermutationMatrix%3CT%3E%3E-for-MatrixSlice%3C%27m%2C%20T%3E">Mul&lt;&amp;&#39;b PermutationMatrix&lt;T&gt;&gt;</a></li><li><a href="#impl-Mul%3C%26%27b%20PermutationMatrix%3CT%3E%3E-for-MatrixSliceMut%3C%27m%2C%20T%3E">Mul&lt;&amp;&#39;b PermutationMatrix&lt;T&gt;&gt;</a></li><li><a href="#impl-Mul%3CMatrix%3CT%3E%3E-for-%26%27b%20PermutationMatrix%3CT%3E">Mul&lt;Matrix&lt;T&gt;&gt;</a></li><li><a href="#impl-Mul%3CMatrix%3CT%3E%3E-for-PermutationMatrix%3CT%3E">Mul&lt;Matrix&lt;T&gt;&gt;</a></li><li><a href="#impl-Mul%3CMatrixSlice%3C%27m%2C%20T%3E%3E-for-%26%27b%20PermutationMatrix%3CT%3E">Mul&lt;MatrixSlice&lt;&#39;m, T&gt;&gt;</a></li><li><a href="#impl-Mul%3CMatrixSlice%3C%27m%2C%20T%3E%3E-for-PermutationMatrix%3CT%3E">Mul&lt;MatrixSlice&lt;&#39;m, T&gt;&gt;</a></li><li><a href="#impl-Mul%3CMatrixSliceMut%3C%27m%2C%20T%3E%3E-for-%26%27b%20PermutationMatrix%3CT%3E">Mul&lt;MatrixSliceMut&lt;&#39;m, T&gt;&gt;</a></li><li><a href="#impl-Mul%3CMatrixSliceMut%3C%27m%2C%20T%3E%3E-for-PermutationMatrix%3CT%3E">Mul&lt;MatrixSliceMut&lt;&#39;m, T&gt;&gt;</a></li><li><a href="#impl-Mul%3CPermutationMatrix%3CT%3E%3E-for-%26%27a%20Matrix%3CT%3E">Mul&lt;PermutationMatrix&lt;T&gt;&gt;</a></li><li><a href="#impl-Mul%3CPermutationMatrix%3CT%3E%3E-for-%26%27a%20MatrixSlice%3C%27m%2C%20T%3E">Mul&lt;PermutationMatrix&lt;T&gt;&gt;</a></li><li><a href="#impl-Mul%3CPermutationMatrix%3CT%3E%3E-for-%26%27a%20MatrixSliceMut%3C%27m%2C%20T%3E">Mul&lt;PermutationMatrix&lt;T&gt;&gt;</a></li><li><a href="#impl-Mul%3CPermutationMatrix%3CT%3E%3E-for-%26%27a%20PermutationMatrix%3CT%3E">Mul&lt;PermutationMatrix&lt;T&gt;&gt;</a></li><li><a href="#impl-Mul%3CPermutationMatrix%3CT%3E%3E-for-Matrix%3CT%3E">Mul&lt;PermutationMatrix&lt;T&gt;&gt;</a></li><li><a href="#impl-Mul%3CPermutationMatrix%3CT%3E%3E-for-MatrixSlice%3C%27m%2C%20T%3E">Mul&lt;PermutationMatrix&lt;T&gt;&gt;</a></li><li><a href="#impl-Mul%3CPermutationMatrix%3CT%3E%3E-for-MatrixSliceMut%3C%27m%2C%20T%3E">Mul&lt;PermutationMatrix&lt;T&gt;&gt;</a></li><li><a href="#impl-Mul%3CPermutationMatrix%3CT%3E%3E-for-PermutationMatrix%3CT%3E">Mul&lt;PermutationMatrix&lt;T&gt;&gt;</a></li><li><a href="#impl-Mul%3CVector%3CT%3E%3E-for-%26%27a%20PermutationMatrix%3CT%3E">Mul&lt;Vector&lt;T&gt;&gt;</a></li><li><a href="#impl-Mul%3CVector%3CT%3E%3E-for-PermutationMatrix%3CT%3E">Mul&lt;Vector&lt;T&gt;&gt;</a></li><li><a href="#impl-PartialEq%3CPermutationMatrix%3CT%3E%3E-for-PermutationMatrix%3CT%3E">PartialEq&lt;PermutationMatrix&lt;T&gt;&gt;</a></li><li><a href="#impl-StructuralEq-for-PermutationMatrix%3CT%3E">StructuralEq</a></li><li><a href="#impl-StructuralPartialEq-for-PermutationMatrix%3CT%3E">StructuralPartialEq</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-PermutationMatrix%3CT%3E">RefUnwindSafe</a></li><li><a href="#impl-Send-for-PermutationMatrix%3CT%3E">Send</a></li><li><a href="#impl-Sync-for-PermutationMatrix%3CT%3E">Sync</a></li><li><a href="#impl-Unpin-for-PermutationMatrix%3CT%3E">Unpin</a></li><li><a href="#impl-UnwindSafe-for-PermutationMatrix%3CT%3E">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-PermutationMatrix%3CT%3E">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-PermutationMatrix%3CT%3E">Borrow&lt;T&gt;</a></li><li><a href="#impl-BorrowMut%3CT%3E-for-PermutationMatrix%3CT%3E">BorrowMut&lt;T&gt;</a></li><li><a href="#impl-From%3CT%3E-for-PermutationMatrix%3CT%3E">From&lt;T&gt;</a></li><li><a href="#impl-Into%3CU%3E-for-PermutationMatrix%3CT%3E">Into&lt;U&gt;</a></li><li><a href="#impl-ToOwned-for-PermutationMatrix%3CT%3E">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-PermutationMatrix%3CT%3E">TryFrom&lt;U&gt;</a></li><li><a href="#impl-TryInto%3CU%3E-for-PermutationMatrix%3CT%3E">TryInto&lt;U&gt;</a></li></ul></section><h2><a href="index.html">In rulinalg::matrix</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><div class="search-container"><span></span><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../wheel.svg"></a></div></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../index.html">rulinalg</a>::<wbr><a href="index.html">matrix</a>::<wbr><a class="struct" href="#">PermutationMatrix</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../clipboard.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/rulinalg/matrix/permutation_matrix.rs.html#103-111">source</a> · <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct PermutationMatrix&lt;T&gt; { /* private fields */ }</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>An efficient implementation of a permutation matrix.</p>
<h2 id="examples"><a href="#examples">Examples</a></h2>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>rulinalg::matrix::PermutationMatrix;
<span class="kw">let </span><span class="kw-2">ref </span>x = <span class="macro">matrix!</span>[<span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>;
<span class="number">4</span>, <span class="number">5</span>, <span class="number">6</span>;
<span class="number">7</span>, <span class="number">8</span>, <span class="number">9</span>];
<span class="comment">// Swap the two first rows of x by left-multiplying a permutation matrix
</span><span class="kw">let </span>expected = <span class="macro">matrix!</span>[<span class="number">4</span>, <span class="number">5</span>, <span class="number">6</span>;
<span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>;
<span class="number">7</span>, <span class="number">8</span>, <span class="number">9</span>];
<span class="kw">let </span><span class="kw-2">mut </span>p = PermutationMatrix::identity(<span class="number">3</span>);
p.swap_rows(<span class="number">0</span>, <span class="number">1</span>);
<span class="macro">assert_eq!</span>(expected, p * x);
<span class="comment">// Swap the two last columns of x by right-multiplying a permutation matrix
</span><span class="kw">let </span>expected = <span class="macro">matrix!</span>[<span class="number">1</span>, <span class="number">3</span>, <span class="number">2</span>;
<span class="number">4</span>, <span class="number">6</span>, <span class="number">5</span>;
<span class="number">7</span>, <span class="number">9</span>, <span class="number">8</span>];
<span class="kw">let </span><span class="kw-2">mut </span>p = PermutationMatrix::identity(<span class="number">3</span>);
p.swap_rows(<span class="number">1</span>, <span class="number">2</span>);
<span class="macro">assert_eq!</span>(expected, x * p);
<span class="comment">// One can also construct the same permutation matrix directly
// from an array representation.
</span><span class="kw">let </span><span class="kw-2">ref </span>p = PermutationMatrix::from_array(<span class="macro">vec!</span>[<span class="number">0</span>, <span class="number">2</span>, <span class="number">1</span>]).unwrap();
<span class="macro">assert_eq!</span>(expected, x * p);
<span class="comment">// One may also obtain a full matrix representation of the permutation
</span><span class="macro">assert_eq!</span>(p.as_matrix(), <span class="macro">matrix!</span>[<span class="number">1</span>, <span class="number">0</span>, <span class="number">0</span>;
<span class="number">0</span>, <span class="number">0</span>, <span class="number">1</span>;
<span class="number">0</span>, <span class="number">1</span>, <span class="number">0</span>]);
<span class="comment">// The inverse of a permutation matrix can efficiently be obtained
</span><span class="kw">let </span>p_inv = p.inverse();
<span class="comment">// And permutations can be composed through multiplication
</span><span class="macro">assert_eq!</span>(p * p_inv, PermutationMatrix::identity(<span class="number">3</span>));</code></pre></div>
<h2 id="rationale-and-complexity"><a href="#rationale-and-complexity">Rationale and complexity</a></h2>
<p>A <a href="https://en.wikipedia.org/wiki/Permutation_matrix">permutation matrix</a>
is a very special kind of matrix. It is essentially a matrix representation
of the more general concept of a permutation. That is, an <code>n</code> x <code>n</code> permutation
matrix corresponds to a permutation of ordered sets whose cardinality is <code>n</code>.
In particular, given an <code>m</code> x <code>n</code> matrix <code>A</code> and an <code>m</code> x <code>m</code> permutation
matrix <code>P</code>, the action of left-multiplying <code>A</code> by <code>P</code>, <code>PA</code>, corresponds
to permuting the rows of <code>A</code> by the given permutation represented by <code>P</code>.
Conversely, right-multiplication corresponds to column permutation.
More precisely, given another permutation matrix <code>Q</code> of size <code>n</code> x <code>n</code>,
then <code>AQ</code> is the corresponding permutation of the columns of <code>A</code>.</p>
<p>Due to their unique structure, permutation matrices can be much more
efficiently represented and applied than general matrices. Recall that
for general matrices <code>X</code> and <code>Y</code> of size <code>m</code> x <code>m</code> and <code>n</code> x <code>n</code> respectively,
the storage of <code>X</code> requires O(<code>m</code><sup>2</sup>) memory and the storage of
<code>Y</code> requires O(<code>n</code><sup>2</sup>) memory. Ignoring for the moment the existence
of Strassen’s matrix multiplication algorithm and more theoretical alternatives,
the multiplication <code>XA</code> requires O(<code>m</code><sup>2</sup><code>n</code>) operations, and
the multiplication <code>AY</code> requires O(<code>m``n</code><sup>2</sup>) operations.</p>
<p>By contrast, the storage of <code>P</code> requires only O(<code>m</code>) memory, and
the storage of <code>K</code> requires O(<code>n</code>) memory. Moreover, the products
<code>PA</code> and <code>AK</code> both require merely O(<code>mn</code>) operations.</p>
<h2 id="representation"><a href="#representation">Representation</a></h2>
<p>A permutation of an ordered set of cardinality <em>n</em> is a map of the form</p>
<div class="example-wrap"><pre class="language-text"><code>p: { 1, ..., n } -&gt; { 1, ..., n }.</code></pre></div>
<p>That is, for any index <code>i</code>, the permutation <code>p</code> sends <code>i</code> to some
index <code>j = p(i)</code>, and hence the map may be represented as an array of integers
of length <em>n</em>.</p>
<p>By convention, an instance of <code>PermutationMatrix</code> represents row permutations.
That is, the indices referred to above correspond to <em>row indices</em>,
and the internal representation of a <code>PermutationMatrix</code> is an array
describing how the permutation sends a row index <code>i</code> to a new row index
<code>j</code> in the permuted matrix. Because of this internal representation, one can only
efficiently swap <em>rows</em> of a <code>PermutationMatrix</code>.
However, keep in mind that while this API only lets one swap individual rows
of the permutation matrix itself, the right-multiplication of a general
matrix with a permutation matrix will permute the columns of the general matrix,
and so in practice this restriction is insignificant.</p>
</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor"></a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PermutationMatrix%3CT%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/permutation_matrix.rs.html#122-235">source</a><a href="#impl-PermutationMatrix%3CT%3E" class="anchor"></a><h3 class="code-header">impl&lt;T&gt; <a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.identity" class="method has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/permutation_matrix.rs.html#124-129">source</a><h4 class="code-header">pub fn <a href="#method.identity" class="fnname">identity</a>(n: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>The identity permutation.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.swap_rows" class="method has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/permutation_matrix.rs.html#132-134">source</a><h4 class="code-header">pub fn <a href="#method.swap_rows" class="fnname">swap_rows</a>(&amp;mut self, i: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, j: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>)</h4></section></summary><div class="docblock"><p>Swaps rows i and j in the permutation matrix.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.inverse" class="method has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/permutation_matrix.rs.html#137-148">source</a><h4 class="code-header">pub fn <a href="#method.inverse" class="fnname">inverse</a>(&amp;self) -&gt; <a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;</h4></section></summary><div class="docblock"><p>The inverse of the permutation matrix.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.size" class="method has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/permutation_matrix.rs.html#154-156">source</a><h4 class="code-header">pub fn <a href="#method.size" class="fnname">size</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></h4></section></summary><div class="docblock"><p>The size of the permutation matrix.</p>
<p>A permutation matrix is a square matrix, so <code>size()</code> is equal
to both the number of rows, as well as the number of columns.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from_array" class="method has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/permutation_matrix.rs.html#165-171">source</a><h4 class="code-header">pub fn <a href="#method.from_array" class="fnname">from_array</a>&lt;A:&nbsp;<a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>&gt;&gt;&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;array: A<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;, <a class="struct" href="../error/struct.Error.html" title="struct rulinalg::error::Error">Error</a>&gt;</h4></section></summary><div class="docblock"><p>Constructs a <code>PermutationMatrix</code> from an array.</p>
<h5 id="errors"><a href="#errors">Errors</a></h5>
<p>The supplied N-length array must satisfy the following:</p>
<ul>
<li>Each element must be in the half-open range [0, N).</li>
<li>Each element must be unique.</li>
</ul>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from_array_unchecked" class="method has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/permutation_matrix.rs.html#190-196">source</a><h4 class="code-header">pub unsafe fn <a href="#method.from_array_unchecked" class="fnname">from_array_unchecked</a>&lt;A:&nbsp;<a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>&gt;&gt;&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;array: A<br>) -&gt; <a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;</h4></section></summary><div class="docblock"><p>Constructs a <code>PermutationMatrix</code> from an array, without checking the validity of
the supplied permutation.</p>
<h5 id="safety"><a href="#safety">Safety</a></h5>
<p>The supplied N-length array must satisfy the following:</p>
<ul>
<li>Each element must be in the half-open range [0, N).</li>
<li>Each element must be unique.</li>
</ul>
<p>Note that while this function <em>itself</em> is technically safe
regardless of the input array, passing an incorrect permutation matrix
may cause undefined behavior in other methods of <code>PermutationMatrix</code>.
As such, it may be difficult to debug. The user is strongly
encouraged to use the safe function <code>from_array</code>, which for
most real world applications only incurs a minor
or even insignificant performance hit as a result of the
extra validation.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.map_row" class="method has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/permutation_matrix.rs.html#211-213">source</a><h4 class="code-header">pub fn <a href="#method.map_row" class="fnname">map_row</a>(&amp;self, row_index: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></h4></section></summary><div class="docblock"><p>Maps the given row index into the resulting row index in the permuted matrix.</p>
<p>More specifically, if the permutation sends row <code>i</code> to <code>j</code>, then
<code>map_row(i)</code> returns <code>j</code>.</p>
<h5 id="examples-1"><a href="#examples-1">Examples</a></h5>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>rulinalg::matrix::PermutationMatrix;
<span class="kw">let </span><span class="kw-2">mut </span>p = PermutationMatrix::&lt;u32&gt;::identity(<span class="number">3</span>);
p.swap_rows(<span class="number">1</span>, <span class="number">2</span>);
<span class="macro">assert_eq!</span>(p.map_row(<span class="number">1</span>), <span class="number">2</span>);</code></pre></div>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.parity" class="method has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/permutation_matrix.rs.html#216-234">source</a><h4 class="code-header">pub fn <a href="#method.parity" class="fnname">parity</a>(self) -&gt; <a class="enum" href="enum.Parity.html" title="enum rulinalg::matrix::Parity">Parity</a></h4></section></summary><div class="docblock"><p>Computes the parity of the permutation (even- or oddness).</p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PermutationMatrix%3CT%3E-1" class="impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/permutation_matrix.rs.html#237-261">source</a><a href="#impl-PermutationMatrix%3CT%3E-1" class="anchor"></a><h3 class="code-header">impl&lt;T:&nbsp;<a class="trait" href="../../num_traits/trait.Num.html" title="trait num_traits::Num">Num</a>&gt; <a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.as_matrix" class="method has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/permutation_matrix.rs.html#239-247">source</a><h4 class="code-header">pub fn <a href="#method.as_matrix" class="fnname">as_matrix</a>(&amp;self) -&gt; <a class="struct" href="struct.Matrix.html" title="struct rulinalg::matrix::Matrix">Matrix</a>&lt;T&gt;</h4></section></summary><div class="docblock"><p>The permutation matrix in an equivalent full matrix representation.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.det" class="method has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/permutation_matrix.rs.html#254-260">source</a><h4 class="code-header">pub fn <a href="#method.det" class="fnname">det</a>(self) -&gt; T</h4></section></summary><div class="docblock"><p>Computes the determinant of the permutation matrix.</p>
<p>The determinant of a permutation matrix is always
+1 (if the permutation is even) or
-1 (if the permutation is odd).</p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PermutationMatrix%3CT%3E-2" class="impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/permutation_matrix.rs.html#263-306">source</a><a href="#impl-PermutationMatrix%3CT%3E-2" class="anchor"></a><h3 class="code-header">impl&lt;T&gt; <a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.permute_rows_in_place" class="method has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/permutation_matrix.rs.html#270-273">source</a><h4 class="code-header">pub fn <a href="#method.permute_rows_in_place" class="fnname">permute_rows_in_place</a>&lt;M&gt;(self, matrix: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut </a>M)<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;M: <a class="trait" href="trait.BaseMatrixMut.html" title="trait rulinalg::matrix::BaseMatrixMut">BaseMatrixMut</a>&lt;T&gt;,</span></h4></section></summary><div class="docblock"><p>Permutes the rows of the given matrix in-place.</p>
<h5 id="panics"><a href="#panics">Panics</a></h5>
<ul>
<li>The number of rows in the matrix is not equal to
the size of the permutation matrix.</li>
</ul>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.permute_cols_in_place" class="method has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/permutation_matrix.rs.html#281-294">source</a><h4 class="code-header">pub fn <a href="#method.permute_cols_in_place" class="fnname">permute_cols_in_place</a>&lt;M&gt;(self, matrix: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut </a>M)<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;M: <a class="trait" href="trait.BaseMatrixMut.html" title="trait rulinalg::matrix::BaseMatrixMut">BaseMatrixMut</a>&lt;T&gt;,</span></h4></section></summary><div class="docblock"><p>Permutes the columns of the given matrix in-place.</p>
<h5 id="panics-1"><a href="#panics-1">Panics</a></h5>
<ul>
<li>The number of columns in the matrix is not equal to
the size of the permutation matrix.</li>
</ul>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.permute_vector_in_place" class="method has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/permutation_matrix.rs.html#302-305">source</a><h4 class="code-header">pub fn <a href="#method.permute_vector_in_place" class="fnname">permute_vector_in_place</a>(self, vector: &amp;mut <a class="struct" href="../vector/struct.Vector.html" title="struct rulinalg::vector::Vector">Vector</a>&lt;T&gt;)</h4></section></summary><div class="docblock"><p>Permutes the elements of the given vector in-place.</p>
<h5 id="panics-2"><a href="#panics-2">Panics</a></h5>
<ul>
<li>The size of the vector is not equal to the size of
the permutation matrix.</li>
</ul>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PermutationMatrix%3CT%3E-3" class="impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/permutation_matrix.rs.html#308-404">source</a><a href="#impl-PermutationMatrix%3CT%3E-3" class="anchor"></a><h3 class="code-header">impl&lt;T:&nbsp;<a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>&gt; <a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.permute_rows_into_buffer" class="method has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/permutation_matrix.rs.html#318-331">source</a><h4 class="code-header">pub fn <a href="#method.permute_rows_into_buffer" class="fnname">permute_rows_into_buffer</a>&lt;X, Y&gt;(&amp;self, source_matrix: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;</a>X, buffer: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut </a>Y)<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;X: <a class="trait" href="trait.BaseMatrix.html" title="trait rulinalg::matrix::BaseMatrix">BaseMatrix</a>&lt;T&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;Y: <a class="trait" href="trait.BaseMatrixMut.html" title="trait rulinalg::matrix::BaseMatrixMut">BaseMatrixMut</a>&lt;T&gt;,</span></h4></section></summary><div class="docblock"><p>Permutes the rows of the given <code>source_matrix</code> and stores the
result in <code>buffer</code>.</p>
<h5 id="panics-3"><a href="#panics-3">Panics</a></h5>
<ul>
<li>The number of rows in the source matrix is not equal to
the size of the permutation matrix.</li>
<li>The dimensions of the source matrix and the buffer
are not identical.</li>
</ul>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.permute_cols_into_buffer" class="method has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/permutation_matrix.rs.html#342-358">source</a><h4 class="code-header">pub fn <a href="#method.permute_cols_into_buffer" class="fnname">permute_cols_into_buffer</a>&lt;X, Y&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;source_matrix: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;</a>X,<br>&nbsp;&nbsp;&nbsp;&nbsp;target_matrix: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut </a>Y<br>)<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;X: <a class="trait" href="trait.BaseMatrix.html" title="trait rulinalg::matrix::BaseMatrix">BaseMatrix</a>&lt;T&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;Y: <a class="trait" href="trait.BaseMatrixMut.html" title="trait rulinalg::matrix::BaseMatrixMut">BaseMatrixMut</a>&lt;T&gt;,</span></h4></section></summary><div class="docblock"><p>Permutes the columns of the given <code>source_matrix</code> and stores the
result in <code>buffer</code>.</p>
<h5 id="panics-4"><a href="#panics-4">Panics</a></h5>
<ul>
<li>The number of columns in the source matrix is not equal to
the size of the permutation matrix.</li>
<li>The dimensions of the source matrix and the buffer
are not identical.</li>
</ul>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.permute_vector_into_buffer" class="method has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/permutation_matrix.rs.html#369-382">source</a><h4 class="code-header">pub fn <a href="#method.permute_vector_into_buffer" class="fnname">permute_vector_into_buffer</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;source_vector: &amp;<a class="struct" href="../vector/struct.Vector.html" title="struct rulinalg::vector::Vector">Vector</a>&lt;T&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;buffer: &amp;mut <a class="struct" href="../vector/struct.Vector.html" title="struct rulinalg::vector::Vector">Vector</a>&lt;T&gt;<br>)</h4></section></summary><div class="docblock"><p>Permutes the elements of the given <code>source_vector</code> and stores the
result in <code>buffer</code>.</p>
<h5 id="panics-5"><a href="#panics-5">Panics</a></h5>
<ul>
<li>The size of the source vector is not equal to the
size of the permutation matrix.</li>
<li>The dimensions of the source vector and the buffer
are not identical.</li>
</ul>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.compose_into_buffer" class="method has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/permutation_matrix.rs.html#391-403">source</a><h4 class="code-header">pub fn <a href="#method.compose_into_buffer" class="fnname">compose_into_buffer</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;source_perm: &amp;<a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;buffer: &amp;mut <a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;<br>)</h4></section></summary><div class="docblock"><p>Computes the composition of <code>self</code> with the given <code>source_perm</code>
and stores the result in <code>buffer</code>.</p>
<h5 id="panics-6"><a href="#panics-6">Panics</a></h5>
<ul>
<li>The size of the permutation matrix (self) is not equal to the
size of the source permutation matrix.</li>
</ul>
</div></details></div></details></div><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor"></a></h2><div id="trait-implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Clone-for-PermutationMatrix%3CT%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/permutation_matrix.rs.html#102">source</a><a href="#impl-Clone-for-PermutationMatrix%3CT%3E" class="anchor"></a><h3 class="code-header">impl&lt;T:&nbsp;<a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/permutation_matrix.rs.html#102">source</a><a href="#method.clone" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fnname">clone</a>(&amp;self) -&gt; <a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;</h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor"></a><h4 class="code-header">const fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fnname">clone_from</a>(&amp;mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-PermutationMatrix%3CT%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/permutation_matrix.rs.html#102">source</a><a href="#impl-Debug-for-PermutationMatrix%3CT%3E" class="anchor"></a><h3 class="code-header">impl&lt;T:&nbsp;<a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a>&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/permutation_matrix.rs.html#102">source</a><a href="#method.fmt" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fnname">fmt</a>(&amp;self, f: &amp;mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a>&lt;'_&gt;) -&gt; <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-From%3CPermutationMatrix%3CT%3E%3E-for-Vec%3Cusize%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/permutation_matrix.rs.html#406-410">source</a><a href="#impl-From%3CPermutationMatrix%3CT%3E%3E-for-Vec%3Cusize%3E" class="anchor"></a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;<a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;&gt; for <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>&gt;</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/permutation_matrix.rs.html#407-409">source</a><a href="#method.from" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fnname">from</a>(p: <a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>&gt;</h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Into%3C%26%27a%20%5Busize%5D%3E-for-%26%27a%20PermutationMatrix%3CT%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/permutation_matrix.rs.html#412-416">source</a><a href="#impl-Into%3C%26%27a%20%5Busize%5D%3E-for-%26%27a%20PermutationMatrix%3CT%3E" class="anchor"></a><h3 class="code-header">impl&lt;'a, T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;&amp;'a [<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>]&gt; for &amp;'a <a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/permutation_matrix.rs.html#413-415">source</a><a href="#method.into" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fnname">into</a>(self) -&gt; &amp;'a [<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>]</h4></section></summary><div class='docblock'>Converts this type into the (usually inferred) input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Mul%3C%26%27a%20Matrix%3CT%3E%3E-for-%26%27b%20PermutationMatrix%3CT%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/impl_permutation_mul.rs.html#122">source</a><a href="#impl-Mul%3C%26%27a%20Matrix%3CT%3E%3E-for-%26%27b%20PermutationMatrix%3CT%3E" class="anchor"></a><h3 class="code-header">impl&lt;'a, 'b, 'm, T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html" title="trait core::ops::arith::Mul">Mul</a>&lt;&amp;'a <a class="struct" href="struct.Matrix.html" title="struct rulinalg::matrix::Matrix">Matrix</a>&lt;T&gt;&gt; for &amp;'b <a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="../../num_traits/identities/trait.Zero.html" title="trait num_traits::identities::Zero">Zero</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="docblock"><p>Left-multiply a matrix by a permutation matrix.</p>
</div><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Output-7" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Output-7" class="anchor"></a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#associatedtype.Output" class="associatedtype">Output</a> = <a class="struct" href="struct.Matrix.html" title="struct rulinalg::matrix::Matrix">Matrix</a>&lt;T&gt;</h4></section></summary><div class='docblock'>The resulting type after applying the <code>*</code> operator.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.mul-7" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/impl_permutation_mul.rs.html#122">source</a><a href="#method.mul-7" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul" class="fnname">mul</a>(self, rhs: &amp;'a <a class="struct" href="struct.Matrix.html" title="struct rulinalg::matrix::Matrix">Matrix</a>&lt;T&gt;) -&gt; <a class="struct" href="struct.Matrix.html" title="struct rulinalg::matrix::Matrix">Matrix</a>&lt;T&gt;</h4></section></summary><div class='docblock'>Performs the <code>*</code> operation. <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Mul%3C%26%27a%20Matrix%3CT%3E%3E-for-PermutationMatrix%3CT%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/impl_permutation_mul.rs.html#122">source</a><a href="#impl-Mul%3C%26%27a%20Matrix%3CT%3E%3E-for-PermutationMatrix%3CT%3E" class="anchor"></a><h3 class="code-header">impl&lt;'a, 'm, T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html" title="trait core::ops::arith::Mul">Mul</a>&lt;&amp;'a <a class="struct" href="struct.Matrix.html" title="struct rulinalg::matrix::Matrix">Matrix</a>&lt;T&gt;&gt; for <a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="../../num_traits/identities/trait.Zero.html" title="trait num_traits::identities::Zero">Zero</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="docblock"><p>Left-multiply a matrix by a permutation matrix.</p>
</div><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Output-6" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Output-6" class="anchor"></a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#associatedtype.Output" class="associatedtype">Output</a> = <a class="struct" href="struct.Matrix.html" title="struct rulinalg::matrix::Matrix">Matrix</a>&lt;T&gt;</h4></section></summary><div class='docblock'>The resulting type after applying the <code>*</code> operator.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.mul-6" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/impl_permutation_mul.rs.html#122">source</a><a href="#method.mul-6" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul" class="fnname">mul</a>(self, rhs: &amp;'a <a class="struct" href="struct.Matrix.html" title="struct rulinalg::matrix::Matrix">Matrix</a>&lt;T&gt;) -&gt; <a class="struct" href="struct.Matrix.html" title="struct rulinalg::matrix::Matrix">Matrix</a>&lt;T&gt;</h4></section></summary><div class='docblock'>Performs the <code>*</code> operation. <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Mul%3C%26%27a%20MatrixSlice%3C%27m%2C%20T%3E%3E-for-%26%27b%20PermutationMatrix%3CT%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/impl_permutation_mul.rs.html#123">source</a><a href="#impl-Mul%3C%26%27a%20MatrixSlice%3C%27m%2C%20T%3E%3E-for-%26%27b%20PermutationMatrix%3CT%3E" class="anchor"></a><h3 class="code-header">impl&lt;'a, 'b, 'm, T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html" title="trait core::ops::arith::Mul">Mul</a>&lt;&amp;'a <a class="struct" href="struct.MatrixSlice.html" title="struct rulinalg::matrix::MatrixSlice">MatrixSlice</a>&lt;'m, T&gt;&gt; for &amp;'b <a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="../../num_traits/identities/trait.Zero.html" title="trait num_traits::identities::Zero">Zero</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="docblock"><p>Left-multiply a matrix by a permutation matrix.</p>
</div><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Output-9" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Output-9" class="anchor"></a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#associatedtype.Output" class="associatedtype">Output</a> = <a class="struct" href="struct.Matrix.html" title="struct rulinalg::matrix::Matrix">Matrix</a>&lt;T&gt;</h4></section></summary><div class='docblock'>The resulting type after applying the <code>*</code> operator.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.mul-9" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/impl_permutation_mul.rs.html#123">source</a><a href="#method.mul-9" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul" class="fnname">mul</a>(self, rhs: &amp;'a <a class="struct" href="struct.MatrixSlice.html" title="struct rulinalg::matrix::MatrixSlice">MatrixSlice</a>&lt;'m, T&gt;) -&gt; <a class="struct" href="struct.Matrix.html" title="struct rulinalg::matrix::Matrix">Matrix</a>&lt;T&gt;</h4></section></summary><div class='docblock'>Performs the <code>*</code> operation. <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Mul%3C%26%27a%20MatrixSlice%3C%27m%2C%20T%3E%3E-for-PermutationMatrix%3CT%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/impl_permutation_mul.rs.html#123">source</a><a href="#impl-Mul%3C%26%27a%20MatrixSlice%3C%27m%2C%20T%3E%3E-for-PermutationMatrix%3CT%3E" class="anchor"></a><h3 class="code-header">impl&lt;'a, 'm, T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html" title="trait core::ops::arith::Mul">Mul</a>&lt;&amp;'a <a class="struct" href="struct.MatrixSlice.html" title="struct rulinalg::matrix::MatrixSlice">MatrixSlice</a>&lt;'m, T&gt;&gt; for <a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="../../num_traits/identities/trait.Zero.html" title="trait num_traits::identities::Zero">Zero</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="docblock"><p>Left-multiply a matrix by a permutation matrix.</p>
</div><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Output-8" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Output-8" class="anchor"></a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#associatedtype.Output" class="associatedtype">Output</a> = <a class="struct" href="struct.Matrix.html" title="struct rulinalg::matrix::Matrix">Matrix</a>&lt;T&gt;</h4></section></summary><div class='docblock'>The resulting type after applying the <code>*</code> operator.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.mul-8" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/impl_permutation_mul.rs.html#123">source</a><a href="#method.mul-8" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul" class="fnname">mul</a>(self, rhs: &amp;'a <a class="struct" href="struct.MatrixSlice.html" title="struct rulinalg::matrix::MatrixSlice">MatrixSlice</a>&lt;'m, T&gt;) -&gt; <a class="struct" href="struct.Matrix.html" title="struct rulinalg::matrix::Matrix">Matrix</a>&lt;T&gt;</h4></section></summary><div class='docblock'>Performs the <code>*</code> operation. <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Mul%3C%26%27a%20MatrixSliceMut%3C%27m%2C%20T%3E%3E-for-%26%27b%20PermutationMatrix%3CT%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/impl_permutation_mul.rs.html#124">source</a><a href="#impl-Mul%3C%26%27a%20MatrixSliceMut%3C%27m%2C%20T%3E%3E-for-%26%27b%20PermutationMatrix%3CT%3E" class="anchor"></a><h3 class="code-header">impl&lt;'a, 'b, 'm, T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html" title="trait core::ops::arith::Mul">Mul</a>&lt;&amp;'a <a class="struct" href="struct.MatrixSliceMut.html" title="struct rulinalg::matrix::MatrixSliceMut">MatrixSliceMut</a>&lt;'m, T&gt;&gt; for &amp;'b <a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="../../num_traits/identities/trait.Zero.html" title="trait num_traits::identities::Zero">Zero</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="docblock"><p>Left-multiply a matrix by a permutation matrix.</p>
</div><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Output-11" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Output-11" class="anchor"></a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#associatedtype.Output" class="associatedtype">Output</a> = <a class="struct" href="struct.Matrix.html" title="struct rulinalg::matrix::Matrix">Matrix</a>&lt;T&gt;</h4></section></summary><div class='docblock'>The resulting type after applying the <code>*</code> operator.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.mul-11" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/impl_permutation_mul.rs.html#124">source</a><a href="#method.mul-11" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul" class="fnname">mul</a>(self, rhs: &amp;'a <a class="struct" href="struct.MatrixSliceMut.html" title="struct rulinalg::matrix::MatrixSliceMut">MatrixSliceMut</a>&lt;'m, T&gt;) -&gt; <a class="struct" href="struct.Matrix.html" title="struct rulinalg::matrix::Matrix">Matrix</a>&lt;T&gt;</h4></section></summary><div class='docblock'>Performs the <code>*</code> operation. <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Mul%3C%26%27a%20MatrixSliceMut%3C%27m%2C%20T%3E%3E-for-PermutationMatrix%3CT%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/impl_permutation_mul.rs.html#124">source</a><a href="#impl-Mul%3C%26%27a%20MatrixSliceMut%3C%27m%2C%20T%3E%3E-for-PermutationMatrix%3CT%3E" class="anchor"></a><h3 class="code-header">impl&lt;'a, 'm, T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html" title="trait core::ops::arith::Mul">Mul</a>&lt;&amp;'a <a class="struct" href="struct.MatrixSliceMut.html" title="struct rulinalg::matrix::MatrixSliceMut">MatrixSliceMut</a>&lt;'m, T&gt;&gt; for <a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="../../num_traits/identities/trait.Zero.html" title="trait num_traits::identities::Zero">Zero</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="docblock"><p>Left-multiply a matrix by a permutation matrix.</p>
</div><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Output-10" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Output-10" class="anchor"></a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#associatedtype.Output" class="associatedtype">Output</a> = <a class="struct" href="struct.Matrix.html" title="struct rulinalg::matrix::Matrix">Matrix</a>&lt;T&gt;</h4></section></summary><div class='docblock'>The resulting type after applying the <code>*</code> operator.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.mul-10" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/impl_permutation_mul.rs.html#124">source</a><a href="#method.mul-10" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul" class="fnname">mul</a>(self, rhs: &amp;'a <a class="struct" href="struct.MatrixSliceMut.html" title="struct rulinalg::matrix::MatrixSliceMut">MatrixSliceMut</a>&lt;'m, T&gt;) -&gt; <a class="struct" href="struct.Matrix.html" title="struct rulinalg::matrix::Matrix">Matrix</a>&lt;T&gt;</h4></section></summary><div class='docblock'>Performs the <code>*</code> operation. <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Mul%3C%26%27a%20PermutationMatrix%3CT%3E%3E-for-%26%27b%20PermutationMatrix%3CT%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/impl_permutation_mul.rs.html#240-248">source</a><a href="#impl-Mul%3C%26%27a%20PermutationMatrix%3CT%3E%3E-for-%26%27b%20PermutationMatrix%3CT%3E" class="anchor"></a><h3 class="code-header">impl&lt;'a, 'b, T:&nbsp;<a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html" title="trait core::ops::arith::Mul">Mul</a>&lt;&amp;'a <a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;&gt; for &amp;'b <a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;</h3></section></summary><div class="docblock"><p>Multiply a permutation matrix by a permutation matrix.</p>
</div><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Output-31" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Output-31" class="anchor"></a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#associatedtype.Output" class="associatedtype">Output</a> = <a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;</h4></section></summary><div class='docblock'>The resulting type after applying the <code>*</code> operator.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.mul-31" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/impl_permutation_mul.rs.html#243-247">source</a><a href="#method.mul-31" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul" class="fnname">mul</a>(self, rhs: &amp;'a <a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;) -&gt; <a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;</h4></section></summary><div class='docblock'>Performs the <code>*</code> operation. <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Mul%3C%26%27a%20PermutationMatrix%3CT%3E%3E-for-Matrix%3CT%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/impl_permutation_mul.rs.html#140-147">source</a><a href="#impl-Mul%3C%26%27a%20PermutationMatrix%3CT%3E%3E-for-Matrix%3CT%3E" class="anchor"></a><h3 class="code-header">impl&lt;'a, T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html" title="trait core::ops::arith::Mul">Mul</a>&lt;&amp;'a <a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;&gt; for <a class="struct" href="struct.Matrix.html" title="struct rulinalg::matrix::Matrix">Matrix</a>&lt;T&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="docblock"><p>Right-multiply a matrix by a permutation matrix.</p>
</div><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Output-17" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Output-17" class="anchor"></a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#associatedtype.Output" class="associatedtype">Output</a> = <a class="struct" href="struct.Matrix.html" title="struct rulinalg::matrix::Matrix">Matrix</a>&lt;T&gt;</h4></section></summary><div class='docblock'>The resulting type after applying the <code>*</code> operator.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.mul-17" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/impl_permutation_mul.rs.html#143-146">source</a><a href="#method.mul-17" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul" class="fnname">mul</a>(self, rhs: &amp;'a <a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;) -&gt; <a class="struct" href="struct.Matrix.html" title="struct rulinalg::matrix::Matrix">Matrix</a>&lt;T&gt;</h4></section></summary><div class='docblock'>Performs the <code>*</code> operation. <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Mul%3C%26%27a%20PermutationMatrix%3CT%3E%3E-for-PermutationMatrix%3CT%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/impl_permutation_mul.rs.html#218-226">source</a><a href="#impl-Mul%3C%26%27a%20PermutationMatrix%3CT%3E%3E-for-PermutationMatrix%3CT%3E" class="anchor"></a><h3 class="code-header">impl&lt;'a, T:&nbsp;<a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html" title="trait core::ops::arith::Mul">Mul</a>&lt;&amp;'a <a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;&gt; for <a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;</h3></section></summary><div class="docblock"><p>Multiply a permutation matrix by a permutation matrix.</p>
</div><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Output-29" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Output-29" class="anchor"></a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#associatedtype.Output" class="associatedtype">Output</a> = <a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;</h4></section></summary><div class='docblock'>The resulting type after applying the <code>*</code> operator.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.mul-29" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/impl_permutation_mul.rs.html#221-225">source</a><a href="#method.mul-29" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul" class="fnname">mul</a>(self, rhs: &amp;<a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;) -&gt; <a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;</h4></section></summary><div class='docblock'>Performs the <code>*</code> operation. <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Mul%3C%26%27a%20Vector%3CT%3E%3E-for-%26%27b%20PermutationMatrix%3CT%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/impl_permutation_mul.rs.html#33-41">source</a><a href="#impl-Mul%3C%26%27a%20Vector%3CT%3E%3E-for-%26%27b%20PermutationMatrix%3CT%3E" class="anchor"></a><h3 class="code-header">impl&lt;'a, 'b, T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html" title="trait core::ops::arith::Mul">Mul</a>&lt;&amp;'a <a class="struct" href="../vector/struct.Vector.html" title="struct rulinalg::vector::Vector">Vector</a>&lt;T&gt;&gt; for &amp;'b <a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> + <a class="trait" href="../../num_traits/identities/trait.Zero.html" title="trait num_traits::identities::Zero">Zero</a>,</span></h3></section></summary><div class="docblock"><p>Left-multiply a vector by a permutation matrix.</p>
</div><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Output-2" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Output-2" class="anchor"></a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#associatedtype.Output" class="associatedtype">Output</a> = <a class="struct" href="../vector/struct.Vector.html" title="struct rulinalg::vector::Vector">Vector</a>&lt;T&gt;</h4></section></summary><div class='docblock'>The resulting type after applying the <code>*</code> operator.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.mul-2" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/impl_permutation_mul.rs.html#36-40">source</a><a href="#method.mul-2" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul" class="fnname">mul</a>(self, rhs: &amp;'a <a class="struct" href="../vector/struct.Vector.html" title="struct rulinalg::vector::Vector">Vector</a>&lt;T&gt;) -&gt; <a class="struct" href="../vector/struct.Vector.html" title="struct rulinalg::vector::Vector">Vector</a>&lt;T&gt;</h4></section></summary><div class='docblock'>Performs the <code>*</code> operation. <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Mul%3C%26%27a%20Vector%3CT%3E%3E-for-PermutationMatrix%3CT%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/impl_permutation_mul.rs.html#44-50">source</a><a href="#impl-Mul%3C%26%27a%20Vector%3CT%3E%3E-for-PermutationMatrix%3CT%3E" class="anchor"></a><h3 class="code-header">impl&lt;'a, T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html" title="trait core::ops::arith::Mul">Mul</a>&lt;&amp;'a <a class="struct" href="../vector/struct.Vector.html" title="struct rulinalg::vector::Vector">Vector</a>&lt;T&gt;&gt; for <a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> + <a class="trait" href="../../num_traits/identities/trait.Zero.html" title="trait num_traits::identities::Zero">Zero</a>,</span></h3></section></summary><div class="docblock"><p>Left-multiply a vector by a permutation matrix.</p>
</div><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Output-3" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Output-3" class="anchor"></a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#associatedtype.Output" class="associatedtype">Output</a> = <a class="struct" href="../vector/struct.Vector.html" title="struct rulinalg::vector::Vector">Vector</a>&lt;T&gt;</h4></section></summary><div class='docblock'>The resulting type after applying the <code>*</code> operator.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.mul-3" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/impl_permutation_mul.rs.html#47-49">source</a><a href="#method.mul-3" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul" class="fnname">mul</a>(self, rhs: &amp;'a <a class="struct" href="../vector/struct.Vector.html" title="struct rulinalg::vector::Vector">Vector</a>&lt;T&gt;) -&gt; <a class="struct" href="../vector/struct.Vector.html" title="struct rulinalg::vector::Vector">Vector</a>&lt;T&gt;</h4></section></summary><div class='docblock'>Performs the <code>*</code> operation. <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Mul%3C%26%27b%20PermutationMatrix%3CT%3E%3E-for-%26%27a%20Matrix%3CT%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/impl_permutation_mul.rs.html#199">source</a><a href="#impl-Mul%3C%26%27b%20PermutationMatrix%3CT%3E%3E-for-%26%27a%20Matrix%3CT%3E" class="anchor"></a><h3 class="code-header">impl&lt;'a, 'b, 'm, T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html" title="trait core::ops::arith::Mul">Mul</a>&lt;&amp;'b <a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;&gt; for &amp;'a <a class="struct" href="struct.Matrix.html" title="struct rulinalg::matrix::Matrix">Matrix</a>&lt;T&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="../../num_traits/identities/trait.Zero.html" title="trait num_traits::identities::Zero">Zero</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="docblock"><p>Right-multiply a matrix by a permutation matrix.</p>
</div><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Output-19" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Output-19" class="anchor"></a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#associatedtype.Output" class="associatedtype">Output</a> = <a class="struct" href="struct.Matrix.html" title="struct rulinalg::matrix::Matrix">Matrix</a>&lt;T&gt;</h4></section></summary><div class='docblock'>The resulting type after applying the <code>*</code> operator.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.mul-19" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/impl_permutation_mul.rs.html#199">source</a><a href="#method.mul-19" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul" class="fnname">mul</a>(self, rhs: &amp;'b <a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;) -&gt; <a class="struct" href="struct.Matrix.html" title="struct rulinalg::matrix::Matrix">Matrix</a>&lt;T&gt;</h4></section></summary><div class='docblock'>Performs the <code>*</code> operation. <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Mul%3C%26%27b%20PermutationMatrix%3CT%3E%3E-for-%26%27a%20MatrixSlice%3C%27m%2C%20T%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/impl_permutation_mul.rs.html#200">source</a><a href="#impl-Mul%3C%26%27b%20PermutationMatrix%3CT%3E%3E-for-%26%27a%20MatrixSlice%3C%27m%2C%20T%3E" class="anchor"></a><h3 class="code-header">impl&lt;'a, 'b, 'm, T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html" title="trait core::ops::arith::Mul">Mul</a>&lt;&amp;'b <a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;&gt; for &amp;'a <a class="struct" href="struct.MatrixSlice.html" title="struct rulinalg::matrix::MatrixSlice">MatrixSlice</a>&lt;'m, T&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="../../num_traits/identities/trait.Zero.html" title="trait num_traits::identities::Zero">Zero</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="docblock"><p>Right-multiply a matrix by a permutation matrix.</p>
</div><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Output-21" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Output-21" class="anchor"></a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#associatedtype.Output" class="associatedtype">Output</a> = <a class="struct" href="struct.Matrix.html" title="struct rulinalg::matrix::Matrix">Matrix</a>&lt;T&gt;</h4></section></summary><div class='docblock'>The resulting type after applying the <code>*</code> operator.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.mul-21" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/impl_permutation_mul.rs.html#200">source</a><a href="#method.mul-21" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul" class="fnname">mul</a>(self, rhs: &amp;'b <a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;) -&gt; <a class="struct" href="struct.Matrix.html" title="struct rulinalg::matrix::Matrix">Matrix</a>&lt;T&gt;</h4></section></summary><div class='docblock'>Performs the <code>*</code> operation. <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Mul%3C%26%27b%20PermutationMatrix%3CT%3E%3E-for-%26%27a%20MatrixSliceMut%3C%27m%2C%20T%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/impl_permutation_mul.rs.html#201">source</a><a href="#impl-Mul%3C%26%27b%20PermutationMatrix%3CT%3E%3E-for-%26%27a%20MatrixSliceMut%3C%27m%2C%20T%3E" class="anchor"></a><h3 class="code-header">impl&lt;'a, 'b, 'm, T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html" title="trait core::ops::arith::Mul">Mul</a>&lt;&amp;'b <a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;&gt; for &amp;'a <a class="struct" href="struct.MatrixSliceMut.html" title="struct rulinalg::matrix::MatrixSliceMut">MatrixSliceMut</a>&lt;'m, T&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="../../num_traits/identities/trait.Zero.html" title="trait num_traits::identities::Zero">Zero</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="docblock"><p>Right-multiply a matrix by a permutation matrix.</p>
</div><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Output-23" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Output-23" class="anchor"></a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#associatedtype.Output" class="associatedtype">Output</a> = <a class="struct" href="struct.Matrix.html" title="struct rulinalg::matrix::Matrix">Matrix</a>&lt;T&gt;</h4></section></summary><div class='docblock'>The resulting type after applying the <code>*</code> operator.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.mul-23" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/impl_permutation_mul.rs.html#201">source</a><a href="#method.mul-23" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul" class="fnname">mul</a>(self, rhs: &amp;'b <a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;) -&gt; <a class="struct" href="struct.Matrix.html" title="struct rulinalg::matrix::Matrix">Matrix</a>&lt;T&gt;</h4></section></summary><div class='docblock'>Performs the <code>*</code> operation. <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Mul%3C%26%27b%20PermutationMatrix%3CT%3E%3E-for-MatrixSlice%3C%27m%2C%20T%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/impl_permutation_mul.rs.html#203">source</a><a href="#impl-Mul%3C%26%27b%20PermutationMatrix%3CT%3E%3E-for-MatrixSlice%3C%27m%2C%20T%3E" class="anchor"></a><h3 class="code-header">impl&lt;'a, 'b, 'm, T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html" title="trait core::ops::arith::Mul">Mul</a>&lt;&amp;'b <a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;&gt; for <a class="struct" href="struct.MatrixSlice.html" title="struct rulinalg::matrix::MatrixSlice">MatrixSlice</a>&lt;'m, T&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="../../num_traits/identities/trait.Zero.html" title="trait num_traits::identities::Zero">Zero</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="docblock"><p>Right-multiply a matrix by a permutation matrix.</p>
</div><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Output-25" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Output-25" class="anchor"></a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#associatedtype.Output" class="associatedtype">Output</a> = <a class="struct" href="struct.Matrix.html" title="struct rulinalg::matrix::Matrix">Matrix</a>&lt;T&gt;</h4></section></summary><div class='docblock'>The resulting type after applying the <code>*</code> operator.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.mul-25" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/impl_permutation_mul.rs.html#203">source</a><a href="#method.mul-25" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul" class="fnname">mul</a>(self, rhs: &amp;'b <a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;) -&gt; <a class="struct" href="struct.Matrix.html" title="struct rulinalg::matrix::Matrix">Matrix</a>&lt;T&gt;</h4></section></summary><div class='docblock'>Performs the <code>*</code> operation. <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Mul%3C%26%27b%20PermutationMatrix%3CT%3E%3E-for-MatrixSliceMut%3C%27m%2C%20T%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/impl_permutation_mul.rs.html#204">source</a><a href="#impl-Mul%3C%26%27b%20PermutationMatrix%3CT%3E%3E-for-MatrixSliceMut%3C%27m%2C%20T%3E" class="anchor"></a><h3 class="code-header">impl&lt;'a, 'b, 'm, T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html" title="trait core::ops::arith::Mul">Mul</a>&lt;&amp;'b <a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;&gt; for <a class="struct" href="struct.MatrixSliceMut.html" title="struct rulinalg::matrix::MatrixSliceMut">MatrixSliceMut</a>&lt;'m, T&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="../../num_traits/identities/trait.Zero.html" title="trait num_traits::identities::Zero">Zero</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="docblock"><p>Right-multiply a matrix by a permutation matrix.</p>
</div><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Output-27" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Output-27" class="anchor"></a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#associatedtype.Output" class="associatedtype">Output</a> = <a class="struct" href="struct.Matrix.html" title="struct rulinalg::matrix::Matrix">Matrix</a>&lt;T&gt;</h4></section></summary><div class='docblock'>The resulting type after applying the <code>*</code> operator.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.mul-27" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/impl_permutation_mul.rs.html#204">source</a><a href="#method.mul-27" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul" class="fnname">mul</a>(self, rhs: &amp;'b <a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;) -&gt; <a class="struct" href="struct.Matrix.html" title="struct rulinalg::matrix::Matrix">Matrix</a>&lt;T&gt;</h4></section></summary><div class='docblock'>Performs the <code>*</code> operation. <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Mul%3CMatrix%3CT%3E%3E-for-%26%27b%20PermutationMatrix%3CT%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/impl_permutation_mul.rs.html#63-70">source</a><a href="#impl-Mul%3CMatrix%3CT%3E%3E-for-%26%27b%20PermutationMatrix%3CT%3E" class="anchor"></a><h3 class="code-header">impl&lt;'b, T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html" title="trait core::ops::arith::Mul">Mul</a>&lt;<a class="struct" href="struct.Matrix.html" title="struct rulinalg::matrix::Matrix">Matrix</a>&lt;T&gt;&gt; for &amp;'b <a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="docblock"><p>Left-multiply a matrix by a permutation matrix.</p>
</div><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Output-5" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Output-5" class="anchor"></a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#associatedtype.Output" class="associatedtype">Output</a> = <a class="struct" href="struct.Matrix.html" title="struct rulinalg::matrix::Matrix">Matrix</a>&lt;T&gt;</h4></section></summary><div class='docblock'>The resulting type after applying the <code>*</code> operator.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.mul-5" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/impl_permutation_mul.rs.html#66-69">source</a><a href="#method.mul-5" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul" class="fnname">mul</a>(self, rhs: <a class="struct" href="struct.Matrix.html" title="struct rulinalg::matrix::Matrix">Matrix</a>&lt;T&gt;) -&gt; <a class="struct" href="struct.Matrix.html" title="struct rulinalg::matrix::Matrix">Matrix</a>&lt;T&gt;</h4></section></summary><div class='docblock'>Performs the <code>*</code> operation. <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Mul%3CMatrix%3CT%3E%3E-for-PermutationMatrix%3CT%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/impl_permutation_mul.rs.html#53-60">source</a><a href="#impl-Mul%3CMatrix%3CT%3E%3E-for-PermutationMatrix%3CT%3E" class="anchor"></a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html" title="trait core::ops::arith::Mul">Mul</a>&lt;<a class="struct" href="struct.Matrix.html" title="struct rulinalg::matrix::Matrix">Matrix</a>&lt;T&gt;&gt; for <a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;</h3></section></summary><div class="docblock"><p>Left-multiply a matrix by a permutation matrix.</p>
</div><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Output-4" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Output-4" class="anchor"></a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#associatedtype.Output" class="associatedtype">Output</a> = <a class="struct" href="struct.Matrix.html" title="struct rulinalg::matrix::Matrix">Matrix</a>&lt;T&gt;</h4></section></summary><div class='docblock'>The resulting type after applying the <code>*</code> operator.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.mul-4" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/impl_permutation_mul.rs.html#56-59">source</a><a href="#method.mul-4" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul" class="fnname">mul</a>(self, rhs: <a class="struct" href="struct.Matrix.html" title="struct rulinalg::matrix::Matrix">Matrix</a>&lt;T&gt;) -&gt; <a class="struct" href="struct.Matrix.html" title="struct rulinalg::matrix::Matrix">Matrix</a>&lt;T&gt;</h4></section></summary><div class='docblock'>Performs the <code>*</code> operation. <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Mul%3CMatrixSlice%3C%27m%2C%20T%3E%3E-for-%26%27b%20PermutationMatrix%3CT%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/impl_permutation_mul.rs.html#126">source</a><a href="#impl-Mul%3CMatrixSlice%3C%27m%2C%20T%3E%3E-for-%26%27b%20PermutationMatrix%3CT%3E" class="anchor"></a><h3 class="code-header">impl&lt;'a, 'b, 'm, T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html" title="trait core::ops::arith::Mul">Mul</a>&lt;<a class="struct" href="struct.MatrixSlice.html" title="struct rulinalg::matrix::MatrixSlice">MatrixSlice</a>&lt;'m, T&gt;&gt; for &amp;'b <a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="../../num_traits/identities/trait.Zero.html" title="trait num_traits::identities::Zero">Zero</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="docblock"><p>Left-multiply a matrix by a permutation matrix.</p>
</div><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Output-13" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Output-13" class="anchor"></a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#associatedtype.Output" class="associatedtype">Output</a> = <a class="struct" href="struct.Matrix.html" title="struct rulinalg::matrix::Matrix">Matrix</a>&lt;T&gt;</h4></section></summary><div class='docblock'>The resulting type after applying the <code>*</code> operator.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.mul-13" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/impl_permutation_mul.rs.html#126">source</a><a href="#method.mul-13" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul" class="fnname">mul</a>(self, rhs: <a class="struct" href="struct.MatrixSlice.html" title="struct rulinalg::matrix::MatrixSlice">MatrixSlice</a>&lt;'m, T&gt;) -&gt; <a class="struct" href="struct.Matrix.html" title="struct rulinalg::matrix::Matrix">Matrix</a>&lt;T&gt;</h4></section></summary><div class='docblock'>Performs the <code>*</code> operation. <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Mul%3CMatrixSlice%3C%27m%2C%20T%3E%3E-for-PermutationMatrix%3CT%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/impl_permutation_mul.rs.html#126">source</a><a href="#impl-Mul%3CMatrixSlice%3C%27m%2C%20T%3E%3E-for-PermutationMatrix%3CT%3E" class="anchor"></a><h3 class="code-header">impl&lt;'a, 'm, T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html" title="trait core::ops::arith::Mul">Mul</a>&lt;<a class="struct" href="struct.MatrixSlice.html" title="struct rulinalg::matrix::MatrixSlice">MatrixSlice</a>&lt;'m, T&gt;&gt; for <a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="../../num_traits/identities/trait.Zero.html" title="trait num_traits::identities::Zero">Zero</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="docblock"><p>Left-multiply a matrix by a permutation matrix.</p>
</div><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Output-12" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Output-12" class="anchor"></a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#associatedtype.Output" class="associatedtype">Output</a> = <a class="struct" href="struct.Matrix.html" title="struct rulinalg::matrix::Matrix">Matrix</a>&lt;T&gt;</h4></section></summary><div class='docblock'>The resulting type after applying the <code>*</code> operator.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.mul-12" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/impl_permutation_mul.rs.html#126">source</a><a href="#method.mul-12" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul" class="fnname">mul</a>(self, rhs: <a class="struct" href="struct.MatrixSlice.html" title="struct rulinalg::matrix::MatrixSlice">MatrixSlice</a>&lt;'m, T&gt;) -&gt; <a class="struct" href="struct.Matrix.html" title="struct rulinalg::matrix::Matrix">Matrix</a>&lt;T&gt;</h4></section></summary><div class='docblock'>Performs the <code>*</code> operation. <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Mul%3CMatrixSliceMut%3C%27m%2C%20T%3E%3E-for-%26%27b%20PermutationMatrix%3CT%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/impl_permutation_mul.rs.html#127">source</a><a href="#impl-Mul%3CMatrixSliceMut%3C%27m%2C%20T%3E%3E-for-%26%27b%20PermutationMatrix%3CT%3E" class="anchor"></a><h3 class="code-header">impl&lt;'a, 'b, 'm, T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html" title="trait core::ops::arith::Mul">Mul</a>&lt;<a class="struct" href="struct.MatrixSliceMut.html" title="struct rulinalg::matrix::MatrixSliceMut">MatrixSliceMut</a>&lt;'m, T&gt;&gt; for &amp;'b <a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="../../num_traits/identities/trait.Zero.html" title="trait num_traits::identities::Zero">Zero</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="docblock"><p>Left-multiply a matrix by a permutation matrix.</p>
</div><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Output-15" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Output-15" class="anchor"></a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#associatedtype.Output" class="associatedtype">Output</a> = <a class="struct" href="struct.Matrix.html" title="struct rulinalg::matrix::Matrix">Matrix</a>&lt;T&gt;</h4></section></summary><div class='docblock'>The resulting type after applying the <code>*</code> operator.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.mul-15" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/impl_permutation_mul.rs.html#127">source</a><a href="#method.mul-15" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul" class="fnname">mul</a>(self, rhs: <a class="struct" href="struct.MatrixSliceMut.html" title="struct rulinalg::matrix::MatrixSliceMut">MatrixSliceMut</a>&lt;'m, T&gt;) -&gt; <a class="struct" href="struct.Matrix.html" title="struct rulinalg::matrix::Matrix">Matrix</a>&lt;T&gt;</h4></section></summary><div class='docblock'>Performs the <code>*</code> operation. <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Mul%3CMatrixSliceMut%3C%27m%2C%20T%3E%3E-for-PermutationMatrix%3CT%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/impl_permutation_mul.rs.html#127">source</a><a href="#impl-Mul%3CMatrixSliceMut%3C%27m%2C%20T%3E%3E-for-PermutationMatrix%3CT%3E" class="anchor"></a><h3 class="code-header">impl&lt;'a, 'm, T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html" title="trait core::ops::arith::Mul">Mul</a>&lt;<a class="struct" href="struct.MatrixSliceMut.html" title="struct rulinalg::matrix::MatrixSliceMut">MatrixSliceMut</a>&lt;'m, T&gt;&gt; for <a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="../../num_traits/identities/trait.Zero.html" title="trait num_traits::identities::Zero">Zero</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="docblock"><p>Left-multiply a matrix by a permutation matrix.</p>
</div><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Output-14" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Output-14" class="anchor"></a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#associatedtype.Output" class="associatedtype">Output</a> = <a class="struct" href="struct.Matrix.html" title="struct rulinalg::matrix::Matrix">Matrix</a>&lt;T&gt;</h4></section></summary><div class='docblock'>The resulting type after applying the <code>*</code> operator.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.mul-14" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/impl_permutation_mul.rs.html#127">source</a><a href="#method.mul-14" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul" class="fnname">mul</a>(self, rhs: <a class="struct" href="struct.MatrixSliceMut.html" title="struct rulinalg::matrix::MatrixSliceMut">MatrixSliceMut</a>&lt;'m, T&gt;) -&gt; <a class="struct" href="struct.Matrix.html" title="struct rulinalg::matrix::Matrix">Matrix</a>&lt;T&gt;</h4></section></summary><div class='docblock'>Performs the <code>*</code> operation. <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Mul%3CPermutationMatrix%3CT%3E%3E-for-%26%27a%20Matrix%3CT%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/impl_permutation_mul.rs.html#199">source</a><a href="#impl-Mul%3CPermutationMatrix%3CT%3E%3E-for-%26%27a%20Matrix%3CT%3E" class="anchor"></a><h3 class="code-header">impl&lt;'a, 'm, T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html" title="trait core::ops::arith::Mul">Mul</a>&lt;<a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;&gt; for &amp;'a <a class="struct" href="struct.Matrix.html" title="struct rulinalg::matrix::Matrix">Matrix</a>&lt;T&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="../../num_traits/identities/trait.Zero.html" title="trait num_traits::identities::Zero">Zero</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="docblock"><p>Right-multiply a matrix by a permutation matrix.</p>
</div><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Output-18" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Output-18" class="anchor"></a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#associatedtype.Output" class="associatedtype">Output</a> = <a class="struct" href="struct.Matrix.html" title="struct rulinalg::matrix::Matrix">Matrix</a>&lt;T&gt;</h4></section></summary><div class='docblock'>The resulting type after applying the <code>*</code> operator.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.mul-18" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/impl_permutation_mul.rs.html#199">source</a><a href="#method.mul-18" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul" class="fnname">mul</a>(self, rhs: <a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;) -&gt; <a class="struct" href="struct.Matrix.html" title="struct rulinalg::matrix::Matrix">Matrix</a>&lt;T&gt;</h4></section></summary><div class='docblock'>Performs the <code>*</code> operation. <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Mul%3CPermutationMatrix%3CT%3E%3E-for-%26%27a%20MatrixSlice%3C%27m%2C%20T%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/impl_permutation_mul.rs.html#200">source</a><a href="#impl-Mul%3CPermutationMatrix%3CT%3E%3E-for-%26%27a%20MatrixSlice%3C%27m%2C%20T%3E" class="anchor"></a><h3 class="code-header">impl&lt;'a, 'm, T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html" title="trait core::ops::arith::Mul">Mul</a>&lt;<a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;&gt; for &amp;'a <a class="struct" href="struct.MatrixSlice.html" title="struct rulinalg::matrix::MatrixSlice">MatrixSlice</a>&lt;'m, T&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="../../num_traits/identities/trait.Zero.html" title="trait num_traits::identities::Zero">Zero</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="docblock"><p>Right-multiply a matrix by a permutation matrix.</p>
</div><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Output-20" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Output-20" class="anchor"></a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#associatedtype.Output" class="associatedtype">Output</a> = <a class="struct" href="struct.Matrix.html" title="struct rulinalg::matrix::Matrix">Matrix</a>&lt;T&gt;</h4></section></summary><div class='docblock'>The resulting type after applying the <code>*</code> operator.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.mul-20" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/impl_permutation_mul.rs.html#200">source</a><a href="#method.mul-20" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul" class="fnname">mul</a>(self, rhs: <a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;) -&gt; <a class="struct" href="struct.Matrix.html" title="struct rulinalg::matrix::Matrix">Matrix</a>&lt;T&gt;</h4></section></summary><div class='docblock'>Performs the <code>*</code> operation. <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Mul%3CPermutationMatrix%3CT%3E%3E-for-%26%27a%20MatrixSliceMut%3C%27m%2C%20T%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/impl_permutation_mul.rs.html#201">source</a><a href="#impl-Mul%3CPermutationMatrix%3CT%3E%3E-for-%26%27a%20MatrixSliceMut%3C%27m%2C%20T%3E" class="anchor"></a><h3 class="code-header">impl&lt;'a, 'm, T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html" title="trait core::ops::arith::Mul">Mul</a>&lt;<a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;&gt; for &amp;'a <a class="struct" href="struct.MatrixSliceMut.html" title="struct rulinalg::matrix::MatrixSliceMut">MatrixSliceMut</a>&lt;'m, T&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="../../num_traits/identities/trait.Zero.html" title="trait num_traits::identities::Zero">Zero</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="docblock"><p>Right-multiply a matrix by a permutation matrix.</p>
</div><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Output-22" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Output-22" class="anchor"></a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#associatedtype.Output" class="associatedtype">Output</a> = <a class="struct" href="struct.Matrix.html" title="struct rulinalg::matrix::Matrix">Matrix</a>&lt;T&gt;</h4></section></summary><div class='docblock'>The resulting type after applying the <code>*</code> operator.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.mul-22" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/impl_permutation_mul.rs.html#201">source</a><a href="#method.mul-22" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul" class="fnname">mul</a>(self, rhs: <a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;) -&gt; <a class="struct" href="struct.Matrix.html" title="struct rulinalg::matrix::Matrix">Matrix</a>&lt;T&gt;</h4></section></summary><div class='docblock'>Performs the <code>*</code> operation. <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Mul%3CPermutationMatrix%3CT%3E%3E-for-%26%27a%20PermutationMatrix%3CT%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/impl_permutation_mul.rs.html#229-237">source</a><a href="#impl-Mul%3CPermutationMatrix%3CT%3E%3E-for-%26%27a%20PermutationMatrix%3CT%3E" class="anchor"></a><h3 class="code-header">impl&lt;'a, T:&nbsp;<a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html" title="trait core::ops::arith::Mul">Mul</a>&lt;<a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;&gt; for &amp;'a <a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;</h3></section></summary><div class="docblock"><p>Multiply a permutation matrix by a permutation matrix.</p>
</div><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Output-30" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Output-30" class="anchor"></a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#associatedtype.Output" class="associatedtype">Output</a> = <a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;</h4></section></summary><div class='docblock'>The resulting type after applying the <code>*</code> operator.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.mul-30" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/impl_permutation_mul.rs.html#232-236">source</a><a href="#method.mul-30" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul" class="fnname">mul</a>(self, rhs: <a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;) -&gt; <a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;</h4></section></summary><div class='docblock'>Performs the <code>*</code> operation. <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Mul%3CPermutationMatrix%3CT%3E%3E-for-Matrix%3CT%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/impl_permutation_mul.rs.html#130-137">source</a><a href="#impl-Mul%3CPermutationMatrix%3CT%3E%3E-for-Matrix%3CT%3E" class="anchor"></a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html" title="trait core::ops::arith::Mul">Mul</a>&lt;<a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;&gt; for <a class="struct" href="struct.Matrix.html" title="struct rulinalg::matrix::Matrix">Matrix</a>&lt;T&gt;</h3></section></summary><div class="docblock"><p>Right-multiply a matrix by a permutation matrix.</p>
</div><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Output-16" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Output-16" class="anchor"></a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#associatedtype.Output" class="associatedtype">Output</a> = <a class="struct" href="struct.Matrix.html" title="struct rulinalg::matrix::Matrix">Matrix</a>&lt;T&gt;</h4></section></summary><div class='docblock'>The resulting type after applying the <code>*</code> operator.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.mul-16" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/impl_permutation_mul.rs.html#133-136">source</a><a href="#method.mul-16" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul" class="fnname">mul</a>(self, rhs: <a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;) -&gt; <a class="struct" href="struct.Matrix.html" title="struct rulinalg::matrix::Matrix">Matrix</a>&lt;T&gt;</h4></section></summary><div class='docblock'>Performs the <code>*</code> operation. <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Mul%3CPermutationMatrix%3CT%3E%3E-for-MatrixSlice%3C%27m%2C%20T%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/impl_permutation_mul.rs.html#203">source</a><a href="#impl-Mul%3CPermutationMatrix%3CT%3E%3E-for-MatrixSlice%3C%27m%2C%20T%3E" class="anchor"></a><h3 class="code-header">impl&lt;'a, 'm, T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html" title="trait core::ops::arith::Mul">Mul</a>&lt;<a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;&gt; for <a class="struct" href="struct.MatrixSlice.html" title="struct rulinalg::matrix::MatrixSlice">MatrixSlice</a>&lt;'m, T&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="../../num_traits/identities/trait.Zero.html" title="trait num_traits::identities::Zero">Zero</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="docblock"><p>Right-multiply a matrix by a permutation matrix.</p>
</div><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Output-24" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Output-24" class="anchor"></a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#associatedtype.Output" class="associatedtype">Output</a> = <a class="struct" href="struct.Matrix.html" title="struct rulinalg::matrix::Matrix">Matrix</a>&lt;T&gt;</h4></section></summary><div class='docblock'>The resulting type after applying the <code>*</code> operator.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.mul-24" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/impl_permutation_mul.rs.html#203">source</a><a href="#method.mul-24" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul" class="fnname">mul</a>(self, rhs: <a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;) -&gt; <a class="struct" href="struct.Matrix.html" title="struct rulinalg::matrix::Matrix">Matrix</a>&lt;T&gt;</h4></section></summary><div class='docblock'>Performs the <code>*</code> operation. <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Mul%3CPermutationMatrix%3CT%3E%3E-for-MatrixSliceMut%3C%27m%2C%20T%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/impl_permutation_mul.rs.html#204">source</a><a href="#impl-Mul%3CPermutationMatrix%3CT%3E%3E-for-MatrixSliceMut%3C%27m%2C%20T%3E" class="anchor"></a><h3 class="code-header">impl&lt;'a, 'm, T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html" title="trait core::ops::arith::Mul">Mul</a>&lt;<a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;&gt; for <a class="struct" href="struct.MatrixSliceMut.html" title="struct rulinalg::matrix::MatrixSliceMut">MatrixSliceMut</a>&lt;'m, T&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="../../num_traits/identities/trait.Zero.html" title="trait num_traits::identities::Zero">Zero</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="docblock"><p>Right-multiply a matrix by a permutation matrix.</p>
</div><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Output-26" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Output-26" class="anchor"></a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#associatedtype.Output" class="associatedtype">Output</a> = <a class="struct" href="struct.Matrix.html" title="struct rulinalg::matrix::Matrix">Matrix</a>&lt;T&gt;</h4></section></summary><div class='docblock'>The resulting type after applying the <code>*</code> operator.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.mul-26" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/impl_permutation_mul.rs.html#204">source</a><a href="#method.mul-26" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul" class="fnname">mul</a>(self, rhs: <a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;) -&gt; <a class="struct" href="struct.Matrix.html" title="struct rulinalg::matrix::Matrix">Matrix</a>&lt;T&gt;</h4></section></summary><div class='docblock'>Performs the <code>*</code> operation. <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Mul%3CPermutationMatrix%3CT%3E%3E-for-PermutationMatrix%3CT%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/impl_permutation_mul.rs.html#207-215">source</a><a href="#impl-Mul%3CPermutationMatrix%3CT%3E%3E-for-PermutationMatrix%3CT%3E" class="anchor"></a><h3 class="code-header">impl&lt;T:&nbsp;<a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html" title="trait core::ops::arith::Mul">Mul</a>&lt;<a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;&gt; for <a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;</h3></section></summary><div class="docblock"><p>Multiply a permutation matrix by a permutation matrix.</p>
</div><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Output-28" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Output-28" class="anchor"></a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#associatedtype.Output" class="associatedtype">Output</a> = <a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;</h4></section></summary><div class='docblock'>The resulting type after applying the <code>*</code> operator.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.mul-28" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/impl_permutation_mul.rs.html#210-214">source</a><a href="#method.mul-28" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul" class="fnname">mul</a>(self, rhs: <a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;) -&gt; <a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;</h4></section></summary><div class='docblock'>Performs the <code>*</code> operation. <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Mul%3CVector%3CT%3E%3E-for-%26%27a%20PermutationMatrix%3CT%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/impl_permutation_mul.rs.html#21-30">source</a><a href="#impl-Mul%3CVector%3CT%3E%3E-for-%26%27a%20PermutationMatrix%3CT%3E" class="anchor"></a><h3 class="code-header">impl&lt;'a, T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html" title="trait core::ops::arith::Mul">Mul</a>&lt;<a class="struct" href="../vector/struct.Vector.html" title="struct rulinalg::vector::Vector">Vector</a>&lt;T&gt;&gt; for &amp;'a <a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> + <a class="trait" href="../../num_traits/identities/trait.Zero.html" title="trait num_traits::identities::Zero">Zero</a>,</span></h3></section></summary><div class="docblock"><p>Left-multiply a vector by a permutation matrix.</p>
</div><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Output-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Output-1" class="anchor"></a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#associatedtype.Output" class="associatedtype">Output</a> = <a class="struct" href="../vector/struct.Vector.html" title="struct rulinalg::vector::Vector">Vector</a>&lt;T&gt;</h4></section></summary><div class='docblock'>The resulting type after applying the <code>*</code> operator.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.mul-1" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/impl_permutation_mul.rs.html#24-29">source</a><a href="#method.mul-1" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul" class="fnname">mul</a>(self, rhs: <a class="struct" href="../vector/struct.Vector.html" title="struct rulinalg::vector::Vector">Vector</a>&lt;T&gt;) -&gt; <a class="struct" href="../vector/struct.Vector.html" title="struct rulinalg::vector::Vector">Vector</a>&lt;T&gt;</h4></section></summary><div class='docblock'>Performs the <code>*</code> operation. <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Mul%3CVector%3CT%3E%3E-for-PermutationMatrix%3CT%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/impl_permutation_mul.rs.html#11-18">source</a><a href="#impl-Mul%3CVector%3CT%3E%3E-for-PermutationMatrix%3CT%3E" class="anchor"></a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html" title="trait core::ops::arith::Mul">Mul</a>&lt;<a class="struct" href="../vector/struct.Vector.html" title="struct rulinalg::vector::Vector">Vector</a>&lt;T&gt;&gt; for <a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;</h3></section></summary><div class="docblock"><p>Left-multiply a vector by a permutation matrix.</p>
</div><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Output" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Output" class="anchor"></a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#associatedtype.Output" class="associatedtype">Output</a> = <a class="struct" href="../vector/struct.Vector.html" title="struct rulinalg::vector::Vector">Vector</a>&lt;T&gt;</h4></section></summary><div class='docblock'>The resulting type after applying the <code>*</code> operator.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.mul" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/impl_permutation_mul.rs.html#14-17">source</a><a href="#method.mul" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul" class="fnname">mul</a>(self, rhs: <a class="struct" href="../vector/struct.Vector.html" title="struct rulinalg::vector::Vector">Vector</a>&lt;T&gt;) -&gt; <a class="struct" href="../vector/struct.Vector.html" title="struct rulinalg::vector::Vector">Vector</a>&lt;T&gt;</h4></section></summary><div class='docblock'>Performs the <code>*</code> operation. <a href="https://doc.rust-lang.org/nightly/core/ops/arith/trait.Mul.html#tymethod.mul">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-PartialEq%3CPermutationMatrix%3CT%3E%3E-for-PermutationMatrix%3CT%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/permutation_matrix.rs.html#102">source</a><a href="#impl-PartialEq%3CPermutationMatrix%3CT%3E%3E-for-PermutationMatrix%3CT%3E" class="anchor"></a><h3 class="code-header">impl&lt;T:&nbsp;<a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a>&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a>&lt;<a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;&gt; for <a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/permutation_matrix.rs.html#102">source</a><a href="#method.eq" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq" class="fnname">eq</a>(&amp;self, other: &amp;<a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used
by <code>==</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/cmp.rs.html#227">source</a></span><a href="#method.ne" class="anchor"></a><h4 class="code-header">const fn <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne" class="fnname">ne</a>(&amp;self, other: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;</a>Rhs) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>!=</code>. The default implementation is almost always
sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne">Read more</a></div></details></div></details><section id="impl-Eq-for-PermutationMatrix%3CT%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/permutation_matrix.rs.html#102">source</a><a href="#impl-Eq-for-PermutationMatrix%3CT%3E" class="anchor"></a><h3 class="code-header">impl&lt;T:&nbsp;<a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a>&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;</h3></section><section id="impl-StructuralEq-for-PermutationMatrix%3CT%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/permutation_matrix.rs.html#102">source</a><a href="#impl-StructuralEq-for-PermutationMatrix%3CT%3E" class="anchor"></a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html" title="trait core::marker::StructuralEq">StructuralEq</a> for <a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;</h3></section><section id="impl-StructuralPartialEq-for-PermutationMatrix%3CT%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/rulinalg/matrix/permutation_matrix.rs.html#102">source</a><a href="#impl-StructuralPartialEq-for-PermutationMatrix%3CT%3E" class="anchor"></a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html" title="trait core::marker::StructuralPartialEq">StructuralPartialEq</a> for <a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;</h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor"></a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-PermutationMatrix%3CT%3E" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-PermutationMatrix%3CT%3E" class="anchor"></a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,</span></h3></section><section id="impl-Send-for-PermutationMatrix%3CT%3E" class="impl has-srclink"><a href="#impl-Send-for-PermutationMatrix%3CT%3E" class="anchor"></a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</span></h3></section><section id="impl-Sync-for-PermutationMatrix%3CT%3E" class="impl has-srclink"><a href="#impl-Sync-for-PermutationMatrix%3CT%3E" class="anchor"></a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,</span></h3></section><section id="impl-Unpin-for-PermutationMatrix%3CT%3E" class="impl has-srclink"><a href="#impl-Unpin-for-PermutationMatrix%3CT%3E" class="anchor"></a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,</span></h3></section><section id="impl-UnwindSafe-for-PermutationMatrix%3CT%3E" class="impl has-srclink"><a href="#impl-UnwindSafe-for-PermutationMatrix%3CT%3E" class="anchor"></a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.PermutationMatrix.html" title="struct rulinalg::matrix::PermutationMatrix">PermutationMatrix</a>&lt;T&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a>,</span></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor"></a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-PermutationMatrix%3CT%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-PermutationMatrix%3CT%3E" class="anchor"></a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fnname">type_id</a>(&amp;self) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-PermutationMatrix%3CT%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-PermutationMatrix%3CT%3E" class="anchor"></a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a>&lt;T&gt; for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fnname">borrow</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-PermutationMatrix%3CT%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-PermutationMatrix%3CT%3E" class="anchor"></a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a>&lt;T&gt; for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fnname">borrow_mut</a>(&amp;mut self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-PermutationMatrix%3CT%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-PermutationMatrix%3CT%3E" class="anchor"></a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;T&gt; for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from-1" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from-1" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fnname">from</a>(t: T) -&gt; T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-PermutationMatrix%3CT%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-PermutationMatrix%3CT%3E" class="anchor"></a><h3 class="code-header">impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;U&gt; for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;T&gt;,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into-1" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into-1" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fnname">into</a>(self) -&gt; U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
<p>That is, this conversion is whatever the implementation of
<code><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-PermutationMatrix%3CT%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#83">source</a><a href="#impl-ToOwned-for-PermutationMatrix%3CT%3E" class="anchor"></a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor"></a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#88">source</a><a href="#method.to_owned" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fnname">to_owned</a>(&amp;self) -&gt; T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#92">source</a><a href="#method.clone_into" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fnname">clone_into</a>(&amp;self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-PermutationMatrix%3CT%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-PermutationMatrix%3CT%3E" class="anchor"></a><h3 class="code-header">impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;U&gt; for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;T&gt;,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor"></a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fnname">try_from</a>(value: U) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;T, &lt;T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;U&gt;&gt;::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>&gt;</h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-PermutationMatrix%3CT%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-PermutationMatrix%3CT%3E" class="anchor"></a><h3 class="code-header">impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a>&lt;U&gt; for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;T&gt;,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor"></a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = &lt;U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;T&gt;&gt;::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fnname">try_into</a>(self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;U, &lt;U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;T&gt;&gt;::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>&gt;</h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-current-crate="rulinalg" data-themes="ayu,dark,light" data-resource-suffix="" data-rustdoc-version="1.66.0-nightly (5c8bff74b 2022-10-21)" ></div></body></html>