halo2/rustdoc/latest/halo2_proofs/poly/struct.EvaluationDomain.html

104 lines
106 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!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="This structure contains precomputed constants and other details needed for performing operations on an evaluation domain of size $2^k$ and an extended domain of size $2^{k} * j$ with $j \neq 0$."><meta name="keywords" content="rust, rustlang, rust-lang, EvaluationDomain"><title>EvaluationDomain in halo2_proofs::poly - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Bold-124a1ca42af929b6.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-cd23e1e4557aa9dd.css" id="mainThemeStyle"><link rel="stylesheet" id="themeStyle" href="../../static.files/light-a21928845c7a186a.css"><link rel="stylesheet" disabled href="../../static.files/dark-90fc67ff25a42f29.css"><link rel="stylesheet" disabled href="../../static.files/ayu-d75a8bbde915b8ed.css"><script id="default-settings" ></script><script src="../../static.files/storage-d43fa987303ecbbb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-458bffc4c06ccf37.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-13285aec31fa243e.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.10.0/dist/katex.min.css" integrity="sha384-9eLZqc9ds8eNjO3TmqPeYcDj8n+Qfa4nuSiGYa6DjLNcv9BtN69ZIulL9+8CqC9Y" crossorigin="anonymous">
<script src="https://cdn.jsdelivr.net/npm/katex@0.10.0/dist/katex.min.js" integrity="sha384-K3vbOmF2BtaVai+Qk37uypf7VrgBubhQreNQe9aGsz9lB63dIFiQVlJbr92dw2Lx" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/katex@0.10.0/dist/contrib/auto-render.min.js" integrity="sha384-kmZOZB5ObwgQnS/DuDg6TScgOiWWBiVt0plIRkZCmE6rDZGrEOQeHM5PcHi+nyqe" crossorigin="anonymous"></script>
<script>
document.addEventListener("DOMContentLoaded", function() {
renderMathInElement(document.body, {
delimiters: [
{left: "$$", right: "$$", display: true},
{left: "\\(", right: "\\)", display: false},
{left: "$", right: "$", display: false},
{left: "\\[", right: "\\]", display: true}
]
});
});
</script>
</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="../../halo2_proofs/index.html"><div class="logo-container"><img class="rust-logo" src="../../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../halo2_proofs/index.html"><div class="logo-container"><img class="rust-logo" src="../../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></div></a><h2 class="location"><a href="#">EvaluationDomain</a></h2><div class="sidebar-elems"><section><h3><a href="#implementations">Methods</a></h3><ul class="block"><li><a href="#method.coeff_from_vec">coeff_from_vec</a></li><li><a href="#method.coeff_to_extended">coeff_to_extended</a></li><li><a href="#method.constant_extended">constant_extended</a></li><li><a href="#method.constant_lagrange">constant_lagrange</a></li><li><a href="#method.divide_by_vanishing_poly">divide_by_vanishing_poly</a></li><li><a href="#method.empty_coeff">empty_coeff</a></li><li><a href="#method.empty_extended">empty_extended</a></li><li><a href="#method.empty_lagrange">empty_lagrange</a></li><li><a href="#method.extended_len">extended_len</a></li><li><a href="#method.extended_to_coeff">extended_to_coeff</a></li><li><a href="#method.get_extended_omega">get_extended_omega</a></li><li><a href="#method.get_omega">get_omega</a></li><li><a href="#method.get_omega_inv">get_omega_inv</a></li><li><a href="#method.get_quotient_poly_degree">get_quotient_poly_degree</a></li><li><a href="#method.l_i_range">l_i_range</a></li><li><a href="#method.lagrange_from_vec">lagrange_from_vec</a></li><li><a href="#method.lagrange_to_coeff">lagrange_to_coeff</a></li><li><a href="#method.new">new</a></li><li><a href="#method.pinned">pinned</a></li><li><a href="#method.rotate_extended">rotate_extended</a></li><li><a href="#method.rotate_omega">rotate_omega</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Clone-for-EvaluationDomain%3CG%3E">Clone</a></li><li><a href="#impl-Debug-for-EvaluationDomain%3CG%3E">Debug</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-EvaluationDomain%3CG%3E">RefUnwindSafe</a></li><li><a href="#impl-Send-for-EvaluationDomain%3CG%3E">Send</a></li><li><a href="#impl-Sync-for-EvaluationDomain%3CG%3E">Sync</a></li><li><a href="#impl-Unpin-for-EvaluationDomain%3CG%3E">Unpin</a></li><li><a href="#impl-UnwindSafe-for-EvaluationDomain%3CG%3E">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-EvaluationDomain%3CG%3E">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-EvaluationDomain%3CG%3E">Borrow&lt;T&gt;</a></li><li><a href="#impl-BorrowMut%3CT%3E-for-EvaluationDomain%3CG%3E">BorrowMut&lt;T&gt;</a></li><li><a href="#impl-Conv-for-EvaluationDomain%3CG%3E">Conv</a></li><li><a href="#impl-FmtForward-for-EvaluationDomain%3CG%3E">FmtForward</a></li><li><a href="#impl-From%3CT%3E-for-EvaluationDomain%3CG%3E">From&lt;T&gt;</a></li><li><a href="#impl-Instrument-for-EvaluationDomain%3CG%3E">Instrument</a></li><li><a href="#impl-Into%3CU%3E-for-EvaluationDomain%3CG%3E">Into&lt;U&gt;</a></li><li><a href="#impl-Pipe-for-EvaluationDomain%3CG%3E">Pipe</a></li><li><a href="#impl-Pointable-for-EvaluationDomain%3CG%3E">Pointable</a></li><li><a href="#impl-Tap-for-EvaluationDomain%3CG%3E">Tap</a></li><li><a href="#impl-ToOwned-for-EvaluationDomain%3CG%3E">ToOwned</a></li><li><a href="#impl-TryConv-for-EvaluationDomain%3CG%3E">TryConv</a></li><li><a href="#impl-TryFrom%3CU%3E-for-EvaluationDomain%3CG%3E">TryFrom&lt;U&gt;</a></li><li><a href="#impl-TryInto%3CU%3E-for-EvaluationDomain%3CG%3E">TryInto&lt;U&gt;</a></li><li><a href="#impl-VZip%3CV%3E-for-EvaluationDomain%3CG%3E">VZip&lt;V&gt;</a></li><li><a href="#impl-WithSubscriber-for-EvaluationDomain%3CG%3E">WithSubscriber</a></li></ul></section><h2><a href="index.html">In halo2_proofs::poly</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><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="../../static.files/wheel-5ec35bf9ca753509.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../index.html">halo2_proofs</a>::<wbr><a href="index.html">poly</a>::<wbr><a class="struct" href="#">EvaluationDomain</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/halo2_proofs/poly/domain.rs.html#19-34">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>&#x2212;</span>]</button></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct EvaluationDomain&lt;G:&nbsp;<a class="trait" href="../arithmetic/trait.Group.html" title="trait halo2_proofs::arithmetic::Group">Group</a>&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>This structure contains precomputed constants and other details needed for
performing operations on an evaluation domain of size $2^k$ and an extended
domain of size $2^{k} * j$ with $j \neq 0$.</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-EvaluationDomain%3CG%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/halo2_proofs/poly/domain.rs.html#36-488">source</a><a href="#impl-EvaluationDomain%3CG%3E" class="anchor"></a><h3 class="code-header">impl&lt;G:&nbsp;<a class="trait" href="../arithmetic/trait.Group.html" title="trait halo2_proofs::arithmetic::Group">Group</a>&gt; <a class="struct" href="struct.EvaluationDomain.html" title="struct halo2_proofs::poly::EvaluationDomain">EvaluationDomain</a>&lt;G&gt;</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.new" class="method has-srclink"><a class="srclink rightside" href="../../src/halo2_proofs/poly/domain.rs.html#39-142">source</a><h4 class="code-header">pub fn <a href="#method.new" class="fnname">new</a>(j: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>, k: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>This constructs a new evaluation domain object based on the provided
values $j, k$.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.lagrange_from_vec" class="method has-srclink"><a class="srclink rightside" href="../../src/halo2_proofs/poly/domain.rs.html#147-154">source</a><h4 class="code-header">pub fn <a href="#method.lagrange_from_vec" class="fnname">lagrange_from_vec</a>(&amp;self, values: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;G&gt;) -&gt; <a class="struct" href="struct.Polynomial.html" title="struct halo2_proofs::poly::Polynomial">Polynomial</a>&lt;G, <a class="struct" href="struct.LagrangeCoeff.html" title="struct halo2_proofs::poly::LagrangeCoeff">LagrangeCoeff</a>&gt;</h4></section></summary><div class="docblock"><p>Obtains a polynomial in Lagrange form when given a vector of Lagrange
coefficients of size <code>n</code>; panics if the provided vector is the wrong
length.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.coeff_from_vec" class="method has-srclink"><a class="srclink rightside" href="../../src/halo2_proofs/poly/domain.rs.html#159-166">source</a><h4 class="code-header">pub fn <a href="#method.coeff_from_vec" class="fnname">coeff_from_vec</a>(&amp;self, values: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;G&gt;) -&gt; <a class="struct" href="struct.Polynomial.html" title="struct halo2_proofs::poly::Polynomial">Polynomial</a>&lt;G, <a class="struct" href="struct.Coeff.html" title="struct halo2_proofs::poly::Coeff">Coeff</a>&gt;</h4></section></summary><div class="docblock"><p>Obtains a polynomial in coefficient form when given a vector of
coefficients of size <code>n</code>; panics if the provided vector is the wrong
length.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.empty_coeff" class="method has-srclink"><a class="srclink rightside" href="../../src/halo2_proofs/poly/domain.rs.html#169-174">source</a><h4 class="code-header">pub fn <a href="#method.empty_coeff" class="fnname">empty_coeff</a>(&amp;self) -&gt; <a class="struct" href="struct.Polynomial.html" title="struct halo2_proofs::poly::Polynomial">Polynomial</a>&lt;G, <a class="struct" href="struct.Coeff.html" title="struct halo2_proofs::poly::Coeff">Coeff</a>&gt;</h4></section></summary><div class="docblock"><p>Returns an empty (zero) polynomial in the coefficient basis</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.empty_lagrange" class="method has-srclink"><a class="srclink rightside" href="../../src/halo2_proofs/poly/domain.rs.html#177-182">source</a><h4 class="code-header">pub fn <a href="#method.empty_lagrange" class="fnname">empty_lagrange</a>(&amp;self) -&gt; <a class="struct" href="struct.Polynomial.html" title="struct halo2_proofs::poly::Polynomial">Polynomial</a>&lt;G, <a class="struct" href="struct.LagrangeCoeff.html" title="struct halo2_proofs::poly::LagrangeCoeff">LagrangeCoeff</a>&gt;</h4></section></summary><div class="docblock"><p>Returns an empty (zero) polynomial in the Lagrange coefficient basis</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.constant_lagrange" class="method has-srclink"><a class="srclink rightside" href="../../src/halo2_proofs/poly/domain.rs.html#197-202">source</a><h4 class="code-header">pub fn <a href="#method.constant_lagrange" class="fnname">constant_lagrange</a>(&amp;self, scalar: G) -&gt; <a class="struct" href="struct.Polynomial.html" title="struct halo2_proofs::poly::Polynomial">Polynomial</a>&lt;G, <a class="struct" href="struct.LagrangeCoeff.html" title="struct halo2_proofs::poly::LagrangeCoeff">LagrangeCoeff</a>&gt;</h4></section></summary><div class="docblock"><p>Returns a constant polynomial in the Lagrange coefficient basis</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.empty_extended" class="method has-srclink"><a class="srclink rightside" href="../../src/halo2_proofs/poly/domain.rs.html#206-211">source</a><h4 class="code-header">pub fn <a href="#method.empty_extended" class="fnname">empty_extended</a>(&amp;self) -&gt; <a class="struct" href="struct.Polynomial.html" title="struct halo2_proofs::poly::Polynomial">Polynomial</a>&lt;G, <a class="struct" href="struct.ExtendedLagrangeCoeff.html" title="struct halo2_proofs::poly::ExtendedLagrangeCoeff">ExtendedLagrangeCoeff</a>&gt;</h4></section></summary><div class="docblock"><p>Returns an empty (zero) polynomial in the extended Lagrange coefficient
basis</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.constant_extended" class="method has-srclink"><a class="srclink rightside" href="../../src/halo2_proofs/poly/domain.rs.html#215-220">source</a><h4 class="code-header">pub fn <a href="#method.constant_extended" class="fnname">constant_extended</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;scalar: G<br>) -&gt; <a class="struct" href="struct.Polynomial.html" title="struct halo2_proofs::poly::Polynomial">Polynomial</a>&lt;G, <a class="struct" href="struct.ExtendedLagrangeCoeff.html" title="struct halo2_proofs::poly::ExtendedLagrangeCoeff">ExtendedLagrangeCoeff</a>&gt;</h4></section></summary><div class="docblock"><p>Returns a constant polynomial in the extended Lagrange coefficient
basis</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.lagrange_to_coeff" class="method has-srclink"><a class="srclink rightside" href="../../src/halo2_proofs/poly/domain.rs.html#226-236">source</a><h4 class="code-header">pub fn <a href="#method.lagrange_to_coeff" class="fnname">lagrange_to_coeff</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;a: <a class="struct" href="struct.Polynomial.html" title="struct halo2_proofs::poly::Polynomial">Polynomial</a>&lt;G, <a class="struct" href="struct.LagrangeCoeff.html" title="struct halo2_proofs::poly::LagrangeCoeff">LagrangeCoeff</a>&gt;<br>) -&gt; <a class="struct" href="struct.Polynomial.html" title="struct halo2_proofs::poly::Polynomial">Polynomial</a>&lt;G, <a class="struct" href="struct.Coeff.html" title="struct halo2_proofs::poly::Coeff">Coeff</a>&gt;</h4></section></summary><div class="docblock"><p>This takes us from an n-length vector into the coefficient form.</p>
<p>This function will panic if the provided vector is not the correct
length.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.coeff_to_extended" class="method has-srclink"><a class="srclink rightside" href="../../src/halo2_proofs/poly/domain.rs.html#240-254">source</a><h4 class="code-header">pub fn <a href="#method.coeff_to_extended" class="fnname">coeff_to_extended</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;a: <a class="struct" href="struct.Polynomial.html" title="struct halo2_proofs::poly::Polynomial">Polynomial</a>&lt;G, <a class="struct" href="struct.Coeff.html" title="struct halo2_proofs::poly::Coeff">Coeff</a>&gt;<br>) -&gt; <a class="struct" href="struct.Polynomial.html" title="struct halo2_proofs::poly::Polynomial">Polynomial</a>&lt;G, <a class="struct" href="struct.ExtendedLagrangeCoeff.html" title="struct halo2_proofs::poly::ExtendedLagrangeCoeff">ExtendedLagrangeCoeff</a>&gt;</h4></section></summary><div class="docblock"><p>This takes us from an n-length coefficient vector into a coset of the extended
evaluation domain, rotating by <code>rotation</code> if desired.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.rotate_extended" class="method has-srclink"><a class="srclink rightside" href="../../src/halo2_proofs/poly/domain.rs.html#257-273">source</a><h4 class="code-header">pub fn <a href="#method.rotate_extended" class="fnname">rotate_extended</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;poly: &amp;<a class="struct" href="struct.Polynomial.html" title="struct halo2_proofs::poly::Polynomial">Polynomial</a>&lt;G, <a class="struct" href="struct.ExtendedLagrangeCoeff.html" title="struct halo2_proofs::poly::ExtendedLagrangeCoeff">ExtendedLagrangeCoeff</a>&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;rotation: <a class="struct" href="struct.Rotation.html" title="struct halo2_proofs::poly::Rotation">Rotation</a><br>) -&gt; <a class="struct" href="struct.Polynomial.html" title="struct halo2_proofs::poly::Polynomial">Polynomial</a>&lt;G, <a class="struct" href="struct.ExtendedLagrangeCoeff.html" title="struct halo2_proofs::poly::ExtendedLagrangeCoeff">ExtendedLagrangeCoeff</a>&gt;</h4></section></summary><div class="docblock"><p>Rotate the extended domain polynomial over the original domain.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.extended_to_coeff" class="method has-srclink"><a class="srclink rightside" href="../../src/halo2_proofs/poly/domain.rs.html#302-324">source</a><h4 class="code-header">pub fn <a href="#method.extended_to_coeff" class="fnname">extended_to_coeff</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;a: <a class="struct" href="struct.Polynomial.html" title="struct halo2_proofs::poly::Polynomial">Polynomial</a>&lt;G, <a class="struct" href="struct.ExtendedLagrangeCoeff.html" title="struct halo2_proofs::poly::ExtendedLagrangeCoeff">ExtendedLagrangeCoeff</a>&gt;<br>) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;G&gt; <a href="#" class="notable-traits" data-ty="Vec&lt;G&gt;"></a></h4></section></summary><div class="docblock"><p>This takes us from the extended evaluation domain and gets us the
quotient polynomial coefficients.</p>
<p>This function will panic if the provided vector is not the correct
length.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.divide_by_vanishing_poly" class="method has-srclink"><a class="srclink rightside" href="../../src/halo2_proofs/poly/domain.rs.html#328-347">source</a><h4 class="code-header">pub fn <a href="#method.divide_by_vanishing_poly" class="fnname">divide_by_vanishing_poly</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;a: <a class="struct" href="struct.Polynomial.html" title="struct halo2_proofs::poly::Polynomial">Polynomial</a>&lt;G, <a class="struct" href="struct.ExtendedLagrangeCoeff.html" title="struct halo2_proofs::poly::ExtendedLagrangeCoeff">ExtendedLagrangeCoeff</a>&gt;<br>) -&gt; <a class="struct" href="struct.Polynomial.html" title="struct halo2_proofs::poly::Polynomial">Polynomial</a>&lt;G, <a class="struct" href="struct.ExtendedLagrangeCoeff.html" title="struct halo2_proofs::poly::ExtendedLagrangeCoeff">ExtendedLagrangeCoeff</a>&gt;</h4></section></summary><div class="docblock"><p>This divides the polynomial (in the extended domain) by the vanishing
polynomial of the $2^k$ size domain.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.extended_len" class="method has-srclink"><a class="srclink rightside" href="../../src/halo2_proofs/poly/domain.rs.html#385-387">source</a><h4 class="code-header">pub fn <a href="#method.extended_len" class="fnname">extended_len</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>Get the size of the extended domain</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.get_omega" class="method has-srclink"><a class="srclink rightside" href="../../src/halo2_proofs/poly/domain.rs.html#390-392">source</a><h4 class="code-header">pub fn <a href="#method.get_omega" class="fnname">get_omega</a>(&amp;self) -&gt; G::<a class="associatedtype" href="../arithmetic/trait.Group.html#associatedtype.Scalar" title="type halo2_proofs::arithmetic::Group::Scalar">Scalar</a></h4></section></summary><div class="docblock"><p>Get $\omega$, the generator of the $2^k$ order multiplicative subgroup.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.get_omega_inv" class="method has-srclink"><a class="srclink rightside" href="../../src/halo2_proofs/poly/domain.rs.html#396-398">source</a><h4 class="code-header">pub fn <a href="#method.get_omega_inv" class="fnname">get_omega_inv</a>(&amp;self) -&gt; G::<a class="associatedtype" href="../arithmetic/trait.Group.html#associatedtype.Scalar" title="type halo2_proofs::arithmetic::Group::Scalar">Scalar</a></h4></section></summary><div class="docblock"><p>Get $\omega^{-1}$, the inverse of the generator of the $2^k$ order
multiplicative subgroup.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.get_extended_omega" class="method has-srclink"><a class="srclink rightside" href="../../src/halo2_proofs/poly/domain.rs.html#401-403">source</a><h4 class="code-header">pub fn <a href="#method.get_extended_omega" class="fnname">get_extended_omega</a>(&amp;self) -&gt; G::<a class="associatedtype" href="../arithmetic/trait.Group.html#associatedtype.Scalar" title="type halo2_proofs::arithmetic::Group::Scalar">Scalar</a></h4></section></summary><div class="docblock"><p>Get the generator of the extended domains multiplicative subgroup.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.rotate_omega" class="method has-srclink"><a class="srclink rightside" href="../../src/halo2_proofs/poly/domain.rs.html#407-417">source</a><h4 class="code-header">pub fn <a href="#method.rotate_omega" class="fnname">rotate_omega</a>(&amp;self, value: G::<a class="associatedtype" href="../arithmetic/trait.Group.html#associatedtype.Scalar" title="type halo2_proofs::arithmetic::Group::Scalar">Scalar</a>, rotation: <a class="struct" href="struct.Rotation.html" title="struct halo2_proofs::poly::Rotation">Rotation</a>) -&gt; G::<a class="associatedtype" href="../arithmetic/trait.Group.html#associatedtype.Scalar" title="type halo2_proofs::arithmetic::Group::Scalar">Scalar</a></h4></section></summary><div class="docblock"><p>Multiplies a value by some power of $\omega$, essentially rotating over
the domain.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.l_i_range" class="method has-srclink"><a class="srclink rightside" href="../../src/halo2_proofs/poly/domain.rs.html#446-471">source</a><h4 class="code-header">pub fn <a href="#method.l_i_range" class="fnname">l_i_range</a>&lt;I:&nbsp;<a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html" title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a>&lt;Item = <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i32.html">i32</a>&gt; + <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;x: G::<a class="associatedtype" href="../arithmetic/trait.Group.html#associatedtype.Scalar" title="type halo2_proofs::arithmetic::Group::Scalar">Scalar</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;xn: G::<a class="associatedtype" href="../arithmetic/trait.Group.html#associatedtype.Scalar" title="type halo2_proofs::arithmetic::Group::Scalar">Scalar</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;rotations: I<br>) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;G::<a class="associatedtype" href="../arithmetic/trait.Group.html#associatedtype.Scalar" title="type halo2_proofs::arithmetic::Group::Scalar">Scalar</a>&gt; <a href="#" class="notable-traits" data-ty="Vec&lt;G::Scalar&gt;"></a></h4></section></summary><div class="docblock"><p>Computes evaluations (at the point <code>x</code>, where <code>xn = x^n</code>) of Lagrange
basis polynomials <code>l_i(X)</code> defined such that <code>l_i(omega^i) = 1</code> and
<code>l_i(omega^j) = 0</code> for all <code>j != i</code> at each provided rotation <code>i</code>.</p>
<h5 id="implementation"><a href="#implementation">Implementation</a></h5>
<p>The polynomial
$$\prod_{j=0,j \neq i}^{n - 1} (X - \omega^j)$$
has a root at all points in the domain except $\omega^i$, where it evaluates to
$$\prod_{j=0,j \neq i}^{n - 1} (\omega^i - \omega^j)$$
and so we divide that polynomial by this value to obtain $l_i(X)$. Since
$$\prod_{j=0,j \neq i}^{n - 1} (X - \omega^j)
= \frac{X^n - 1}{X - \omega^i}$$
then $l_i(x)$ for some $x$ is evaluated as
$$\left(\frac{x^n - 1}{x - \omega^i}\right)
\cdot \left(\frac{1}{\prod_{j=0,j \neq i}^{n - 1} (\omega^i - \omega^j)}\right).$$
We refer to
$$1 \over \prod_{j=0,j \neq i}^{n - 1} (\omega^i - \omega^j)$$
as the barycentric weight of $\omega^i$.</p>
<p>We know that for $i = 0$
$$\frac{1}{\prod_{j=0,j \neq i}^{n - 1} (\omega^i - \omega^j)} = \frac{1}{n}.$$</p>
<p>If we multiply $(1 / n)$ by $\omega^i$ then we obtain
$$\frac{1}{\prod_{j=0,j \neq 0}^{n - 1} (\omega^i - \omega^j)}
= \frac{1}{\prod_{j=0,j \neq i}^{n - 1} (\omega^i - \omega^j)}$$
which is the barycentric weight of $\omega^i$.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.get_quotient_poly_degree" class="method has-srclink"><a class="srclink rightside" href="../../src/halo2_proofs/poly/domain.rs.html#474-476">source</a><h4 class="code-header">pub fn <a href="#method.get_quotient_poly_degree" class="fnname">get_quotient_poly_degree</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>Gets the quotient polynomials degree (as a multiple of n)</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.pinned" class="method has-srclink"><a class="srclink rightside" href="../../src/halo2_proofs/poly/domain.rs.html#481-487">source</a><h4 class="code-header">pub fn <a href="#method.pinned" class="fnname">pinned</a>(&amp;self) -&gt; <a class="struct" href="struct.PinnedEvaluationDomain.html" title="struct halo2_proofs::poly::PinnedEvaluationDomain">PinnedEvaluationDomain</a>&lt;'_, G&gt;</h4></section></summary><div class="docblock"><p>Obtain a pinned version of this evaluation domain; a structure with the
minimal parameters needed to determine the rest of the evaluation
domain.</p>
</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-EvaluationDomain%3CG%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/halo2_proofs/poly/domain.rs.html#18">source</a><a href="#impl-Clone-for-EvaluationDomain%3CG%3E" class="anchor"></a><h3 class="code-header">impl&lt;G:&nbsp;<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="../arithmetic/trait.Group.html" title="trait halo2_proofs::arithmetic::Group">Group</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.EvaluationDomain.html" title="struct halo2_proofs::poly::EvaluationDomain">EvaluationDomain</a>&lt;G&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;G::<a class="associatedtype" href="../arithmetic/trait.Group.html#associatedtype.Scalar" title="type halo2_proofs::arithmetic::Group::Scalar">Scalar</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;G::<a class="associatedtype" href="../arithmetic/trait.Group.html#associatedtype.Scalar" title="type halo2_proofs::arithmetic::Group::Scalar">Scalar</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;G::<a class="associatedtype" href="../arithmetic/trait.Group.html#associatedtype.Scalar" title="type halo2_proofs::arithmetic::Group::Scalar">Scalar</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;G::<a class="associatedtype" href="../arithmetic/trait.Group.html#associatedtype.Scalar" title="type halo2_proofs::arithmetic::Group::Scalar">Scalar</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;G::<a class="associatedtype" href="../arithmetic/trait.Group.html#associatedtype.Scalar" title="type halo2_proofs::arithmetic::Group::Scalar">Scalar</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;G::<a class="associatedtype" href="../arithmetic/trait.Group.html#associatedtype.Scalar" title="type halo2_proofs::arithmetic::Group::Scalar">Scalar</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;G::<a class="associatedtype" href="../arithmetic/trait.Group.html#associatedtype.Scalar" title="type halo2_proofs::arithmetic::Group::Scalar">Scalar</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;G::<a class="associatedtype" href="../arithmetic/trait.Group.html#associatedtype.Scalar" title="type halo2_proofs::arithmetic::Group::Scalar">Scalar</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;G::<a class="associatedtype" href="../arithmetic/trait.Group.html#associatedtype.Scalar" title="type halo2_proofs::arithmetic::Group::Scalar">Scalar</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;G::<a class="associatedtype" href="../arithmetic/trait.Group.html#associatedtype.Scalar" title="type halo2_proofs::arithmetic::Group::Scalar">Scalar</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="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/halo2_proofs/poly/domain.rs.html#18">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.EvaluationDomain.html" title="struct halo2_proofs::poly::EvaluationDomain">EvaluationDomain</a>&lt;G&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">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-EvaluationDomain%3CG%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/halo2_proofs/poly/domain.rs.html#18">source</a><a href="#impl-Debug-for-EvaluationDomain%3CG%3E" class="anchor"></a><h3 class="code-header">impl&lt;G:&nbsp;<a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> + <a class="trait" href="../arithmetic/trait.Group.html" title="trait halo2_proofs::arithmetic::Group">Group</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.EvaluationDomain.html" title="struct halo2_proofs::poly::EvaluationDomain">EvaluationDomain</a>&lt;G&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;G::<a class="associatedtype" href="../arithmetic/trait.Group.html#associatedtype.Scalar" title="type halo2_proofs::arithmetic::Group::Scalar">Scalar</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;G::<a class="associatedtype" href="../arithmetic/trait.Group.html#associatedtype.Scalar" title="type halo2_proofs::arithmetic::Group::Scalar">Scalar</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;G::<a class="associatedtype" href="../arithmetic/trait.Group.html#associatedtype.Scalar" title="type halo2_proofs::arithmetic::Group::Scalar">Scalar</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;G::<a class="associatedtype" href="../arithmetic/trait.Group.html#associatedtype.Scalar" title="type halo2_proofs::arithmetic::Group::Scalar">Scalar</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;G::<a class="associatedtype" href="../arithmetic/trait.Group.html#associatedtype.Scalar" title="type halo2_proofs::arithmetic::Group::Scalar">Scalar</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;G::<a class="associatedtype" href="../arithmetic/trait.Group.html#associatedtype.Scalar" title="type halo2_proofs::arithmetic::Group::Scalar">Scalar</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;G::<a class="associatedtype" href="../arithmetic/trait.Group.html#associatedtype.Scalar" title="type halo2_proofs::arithmetic::Group::Scalar">Scalar</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;G::<a class="associatedtype" href="../arithmetic/trait.Group.html#associatedtype.Scalar" title="type halo2_proofs::arithmetic::Group::Scalar">Scalar</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;G::<a class="associatedtype" href="../arithmetic/trait.Group.html#associatedtype.Scalar" title="type halo2_proofs::arithmetic::Group::Scalar">Scalar</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;G::<a class="associatedtype" href="../arithmetic/trait.Group.html#associatedtype.Scalar" title="type halo2_proofs::arithmetic::Group::Scalar">Scalar</a>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a>,</span></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/halo2_proofs/poly/domain.rs.html#18">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></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-EvaluationDomain%3CG%3E" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-EvaluationDomain%3CG%3E" class="anchor"></a><h3 class="code-header">impl&lt;G&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.EvaluationDomain.html" title="struct halo2_proofs::poly::EvaluationDomain">EvaluationDomain</a>&lt;G&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;G as <a class="trait" href="../arithmetic/trait.Group.html" title="trait halo2_proofs::arithmetic::Group">Group</a>&gt;::<a class="associatedtype" href="../arithmetic/trait.Group.html#associatedtype.Scalar" title="type halo2_proofs::arithmetic::Group::Scalar">Scalar</a>: <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-EvaluationDomain%3CG%3E" class="impl has-srclink"><a href="#impl-Send-for-EvaluationDomain%3CG%3E" class="anchor"></a><h3 class="code-header">impl&lt;G&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.EvaluationDomain.html" title="struct halo2_proofs::poly::EvaluationDomain">EvaluationDomain</a>&lt;G&gt;</h3></section><section id="impl-Sync-for-EvaluationDomain%3CG%3E" class="impl has-srclink"><a href="#impl-Sync-for-EvaluationDomain%3CG%3E" class="anchor"></a><h3 class="code-header">impl&lt;G&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.EvaluationDomain.html" title="struct halo2_proofs::poly::EvaluationDomain">EvaluationDomain</a>&lt;G&gt;</h3></section><section id="impl-Unpin-for-EvaluationDomain%3CG%3E" class="impl has-srclink"><a href="#impl-Unpin-for-EvaluationDomain%3CG%3E" class="anchor"></a><h3 class="code-header">impl&lt;G&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.EvaluationDomain.html" title="struct halo2_proofs::poly::EvaluationDomain">EvaluationDomain</a>&lt;G&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;G as <a class="trait" href="../arithmetic/trait.Group.html" title="trait halo2_proofs::arithmetic::Group">Group</a>&gt;::<a class="associatedtype" href="../arithmetic/trait.Group.html#associatedtype.Scalar" title="type halo2_proofs::arithmetic::Group::Scalar">Scalar</a>: <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-EvaluationDomain%3CG%3E" class="impl has-srclink"><a href="#impl-UnwindSafe-for-EvaluationDomain%3CG%3E" class="anchor"></a><h3 class="code-header">impl&lt;G&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.EvaluationDomain.html" title="struct halo2_proofs::poly::EvaluationDomain">EvaluationDomain</a>&lt;G&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;G as <a class="trait" href="../arithmetic/trait.Group.html" title="trait halo2_proofs::arithmetic::Group">Group</a>&gt;::<a class="associatedtype" href="../arithmetic/trait.Group.html#associatedtype.Scalar" title="type halo2_proofs::arithmetic::Group::Scalar">Scalar</a>: <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-EvaluationDomain%3CG%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-EvaluationDomain%3CG%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-EvaluationDomain%3CG%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-EvaluationDomain%3CG%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-EvaluationDomain%3CG%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-EvaluationDomain%3CG%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-Conv-for-EvaluationDomain%3CG%3E" class="impl has-srclink"><a href="#impl-Conv-for-EvaluationDomain%3CG%3E" class="anchor"></a><h3 class="code-header">impl&lt;T&gt; Conv for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.conv" class="method trait-impl has-srclink"><a href="#method.conv" class="anchor"></a><h4 class="code-header">fn <a class="fnname">conv</a>&lt;T&gt;(self) -&gt; T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <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></h4></section></summary><div class='docblock'>Converts <code>self</code> into <code>T</code> using <code>Into&lt;T&gt;</code>. <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-FmtForward-for-EvaluationDomain%3CG%3E" class="impl has-srclink"><a href="#impl-FmtForward-for-EvaluationDomain%3CG%3E" class="anchor"></a><h3 class="code-header">impl&lt;T&gt; FmtForward for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt_binary" class="method trait-impl has-srclink"><a href="#method.fmt_binary" class="anchor"></a><h4 class="code-header">fn <a class="fnname">fmt_binary</a>(self) -&gt; FmtBinary&lt;Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Binary.html" title="trait core::fmt::Binary">Binary</a>,</span></h4></section></summary><div class='docblock'>Causes <code>self</code> to use its <code>Binary</code> implementation when <code>Debug</code>-formatted.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt_display" class="method trait-impl has-srclink"><a href="#method.fmt_display" class="anchor"></a><h4 class="code-header">fn <a class="fnname">fmt_display</a>(self) -&gt; FmtDisplay&lt;Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a>,</span></h4></section></summary><div class='docblock'>Causes <code>self</code> to use its <code>Display</code> implementation when
<code>Debug</code>-formatted. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt_lower_exp" class="method trait-impl has-srclink"><a href="#method.fmt_lower_exp" class="anchor"></a><h4 class="code-header">fn <a class="fnname">fmt_lower_exp</a>(self) -&gt; FmtLowerExp&lt;Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.LowerExp.html" title="trait core::fmt::LowerExp">LowerExp</a>,</span></h4></section></summary><div class='docblock'>Causes <code>self</code> to use its <code>LowerExp</code> implementation when
<code>Debug</code>-formatted. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt_lower_hex" class="method trait-impl has-srclink"><a href="#method.fmt_lower_hex" class="anchor"></a><h4 class="code-header">fn <a class="fnname">fmt_lower_hex</a>(self) -&gt; FmtLowerHex&lt;Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.LowerHex.html" title="trait core::fmt::LowerHex">LowerHex</a>,</span></h4></section></summary><div class='docblock'>Causes <code>self</code> to use its <code>LowerHex</code> implementation when
<code>Debug</code>-formatted. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt_octal" class="method trait-impl has-srclink"><a href="#method.fmt_octal" class="anchor"></a><h4 class="code-header">fn <a class="fnname">fmt_octal</a>(self) -&gt; FmtOctal&lt;Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Octal.html" title="trait core::fmt::Octal">Octal</a>,</span></h4></section></summary><div class='docblock'>Causes <code>self</code> to use its <code>Octal</code> implementation when <code>Debug</code>-formatted.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt_pointer" class="method trait-impl has-srclink"><a href="#method.fmt_pointer" class="anchor"></a><h4 class="code-header">fn <a class="fnname">fmt_pointer</a>(self) -&gt; FmtPointer&lt;Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Pointer.html" title="trait core::fmt::Pointer">Pointer</a>,</span></h4></section></summary><div class='docblock'>Causes <code>self</code> to use its <code>Pointer</code> implementation when
<code>Debug</code>-formatted. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt_upper_exp" class="method trait-impl has-srclink"><a href="#method.fmt_upper_exp" class="anchor"></a><h4 class="code-header">fn <a class="fnname">fmt_upper_exp</a>(self) -&gt; FmtUpperExp&lt;Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.UpperExp.html" title="trait core::fmt::UpperExp">UpperExp</a>,</span></h4></section></summary><div class='docblock'>Causes <code>self</code> to use its <code>UpperExp</code> implementation when
<code>Debug</code>-formatted. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt_upper_hex" class="method trait-impl has-srclink"><a href="#method.fmt_upper_hex" class="anchor"></a><h4 class="code-header">fn <a class="fnname">fmt_upper_hex</a>(self) -&gt; FmtUpperHex&lt;Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.UpperHex.html" title="trait core::fmt::UpperHex">UpperHex</a>,</span></h4></section></summary><div class='docblock'>Causes <code>self</code> to use its <code>UpperHex</code> implementation when
<code>Debug</code>-formatted. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt_list" class="method trait-impl has-srclink"><a href="#method.fmt_list" class="anchor"></a><h4 class="code-header">fn <a class="fnname">fmt_list</a>(self) -&gt; FmtList&lt;Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;'a </a>Self: for&lt;'a&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html" title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a>,</span></h4></section></summary><div class='docblock'>Formats each item in a sequence. <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-EvaluationDomain%3CG%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-EvaluationDomain%3CG%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" 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" 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-Instrument-for-EvaluationDomain%3CG%3E" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-EvaluationDomain%3CG%3E" class="anchor"></a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing::instrument::Instrument">Instrument</a> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.instrument" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#82">source</a><a href="#method.instrument" class="anchor"></a><h4 class="code-header">fn <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument" class="fnname">instrument</a>(self, span: <a class="struct" href="https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html" title="struct tracing::span::Span">Span</a>) -&gt; <a class="struct" href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html" title="struct tracing::instrument::Instrumented">Instrumented</a>&lt;Self&gt;</h4></section></summary><div class='docblock'>Instruments this type with the provided <a href="https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html" title="Span"><code>Span</code></a>, returning an
<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor"></a><h4 class="code-header">fn <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span" class="fnname">in_current_span</a>(self) -&gt; <a class="struct" href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.Instrumented.html" title="struct tracing::instrument::Instrumented">Instrumented</a>&lt;Self&gt;</h4></section></summary><div class='docblock'>Instruments this type with the <a href="https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html#method.current">current</a> <a href="https://docs.rs/tracing/0.1.37/tracing/span/struct.Span.html"><code>Span</code></a>, returning an
<code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-EvaluationDomain%3CG%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-EvaluationDomain%3CG%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" 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" 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-Pipe-for-EvaluationDomain%3CG%3E" class="impl has-srclink"><a href="#impl-Pipe-for-EvaluationDomain%3CG%3E" class="anchor"></a><h3 class="code-header">impl&lt;T&gt; Pipe 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.pipe" class="method trait-impl has-srclink"><a href="#method.pipe" class="anchor"></a><h4 class="code-header">fn <a class="fnname">pipe</a>&lt;R&gt;(self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(Self) -&gt; R) -&gt; R<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Pipes by value. This is generally the method you want to use. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.pipe_ref" class="method trait-impl has-srclink"><a href="#method.pipe_ref" class="anchor"></a><h4 class="code-header">fn <a class="fnname">pipe_ref</a>&lt;'a, R&gt;(&amp;'a self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;'a </a>Self) -&gt; R) -&gt; R<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;R: 'a,</span></h4></section></summary><div class='docblock'>Borrows <code>self</code> and passes that borrow into the pipe function. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.pipe_ref_mut" class="method trait-impl has-srclink"><a href="#method.pipe_ref_mut" class="anchor"></a><h4 class="code-header">fn <a class="fnname">pipe_ref_mut</a>&lt;'a, R&gt;(&amp;'a mut self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;'a mut </a>Self) -&gt; R) -&gt; R<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;R: 'a,</span></h4></section></summary><div class='docblock'>Mutably borrows <code>self</code> and passes that borrow into the pipe function. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.pipe_borrow" class="method trait-impl has-srclink"><a href="#method.pipe_borrow" class="anchor"></a><h4 class="code-header">fn <a class="fnname">pipe_borrow</a>&lt;'a, B, R&gt;(&amp;'a self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;'a </a>B) -&gt; R) -&gt; R<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a>&lt;B&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;B: 'a + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: 'a,</span></h4></section></summary><div class='docblock'>Borrows <code>self</code>, then passes <code>self.borrow()</code> into the pipe function. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.pipe_borrow_mut" class="method trait-impl has-srclink"><a href="#method.pipe_borrow_mut" class="anchor"></a><h4 class="code-header">fn <a class="fnname">pipe_borrow_mut</a>&lt;'a, B, R&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;'a mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;'a mut </a>B) -&gt; R<br>) -&gt; R<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a>&lt;B&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;B: 'a + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: 'a,</span></h4></section></summary><div class='docblock'>Mutably borrows <code>self</code>, then passes <code>self.borrow_mut()</code> into the pipe
function. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.pipe_as_ref" class="method trait-impl has-srclink"><a href="#method.pipe_as_ref" class="anchor"></a><h4 class="code-header">fn <a class="fnname">pipe_as_ref</a>&lt;'a, U, R&gt;(&amp;'a self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;'a </a>U) -&gt; R) -&gt; R<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html" title="trait core::convert::AsRef">AsRef</a>&lt;U&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;U: 'a + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: 'a,</span></h4></section></summary><div class='docblock'>Borrows <code>self</code>, then passes <code>self.as_ref()</code> into the pipe function.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.pipe_as_mut" class="method trait-impl has-srclink"><a href="#method.pipe_as_mut" class="anchor"></a><h4 class="code-header">fn <a class="fnname">pipe_as_mut</a>&lt;'a, U, R&gt;(&amp;'a mut self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;'a mut </a>U) -&gt; R) -&gt; R<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html" title="trait core::convert::AsMut">AsMut</a>&lt;U&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;U: 'a + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: 'a,</span></h4></section></summary><div class='docblock'>Mutably borrows <code>self</code>, then passes <code>self.as_mut()</code> into the pipe
function. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.pipe_deref" class="method trait-impl has-srclink"><a href="#method.pipe_deref" class="anchor"></a><h4 class="code-header">fn <a class="fnname">pipe_deref</a>&lt;'a, T, R&gt;(&amp;'a self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;'a </a>T) -&gt; R) -&gt; R<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html" title="trait core::ops::deref::Deref">Deref</a>&lt;Target = T&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;T: 'a + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: 'a,</span></h4></section></summary><div class='docblock'>Borrows <code>self</code>, then passes <code>self.deref()</code> into the pipe function.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.pipe_deref_mut" class="method trait-impl has-srclink"><a href="#method.pipe_deref_mut" class="anchor"></a><h4 class="code-header">fn <a class="fnname">pipe_deref_mut</a>&lt;'a, T, R&gt;(&amp;'a mut self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;'a mut </a>T) -&gt; R) -&gt; R<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html" title="trait core::ops::deref::DerefMut">DerefMut</a>&lt;Target = T&gt; + <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html" title="trait core::ops::deref::Deref">Deref</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;T: 'a + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: 'a,</span></h4></section></summary><div class='docblock'>Mutably borrows <code>self</code>, then passes <code>self.deref_mut()</code> into the pipe
function. <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Pointable-for-EvaluationDomain%3CG%3E" class="impl has-srclink"><a href="#impl-Pointable-for-EvaluationDomain%3CG%3E" class="anchor"></a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN" class="anchor"></a><h4 class="code-header">const <a class="constant">ALIGN</a>: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a> = mem::align_of::&lt;T&gt;()</h4></section></summary><div class='docblock'>The alignment of pointer.</div></details><details class="rustdoc-toggle" open><summary><section id="associatedtype.Init" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Init" class="anchor"></a><h4 class="code-header">type <a class="associatedtype">Init</a> = T</h4></section></summary><div class='docblock'>The type for initializers.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.init" class="method trait-impl has-srclink"><a href="#method.init" class="anchor"></a><h4 class="code-header">unsafe fn <a class="fnname">init</a>(init: &lt;T as Pointable&gt;::Init) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></h4></section></summary><div class='docblock'>Initializes a with the given initializer. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.deref" class="method trait-impl has-srclink"><a href="#method.deref" class="anchor"></a><h4 class="code-header">unsafe fn <a class="fnname">deref</a>&lt;'a&gt;(ptr: <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.reference.html">&amp;'a </a>T</h4></section></summary><div class='docblock'>Dereferences the given pointer. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.deref_mut" class="method trait-impl has-srclink"><a href="#method.deref_mut" class="anchor"></a><h4 class="code-header">unsafe fn <a class="fnname">deref_mut</a>&lt;'a&gt;(ptr: <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.reference.html">&amp;'a mut </a>T</h4></section></summary><div class='docblock'>Mutably dereferences the given pointer. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.drop" class="method trait-impl has-srclink"><a href="#method.drop" class="anchor"></a><h4 class="code-header">unsafe fn <a class="fnname">drop</a>(ptr: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>)</h4></section></summary><div class='docblock'>Drops the object pointed to by the given pointer. <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Tap-for-EvaluationDomain%3CG%3E" class="impl has-srclink"><a href="#impl-Tap-for-EvaluationDomain%3CG%3E" class="anchor"></a><h3 class="code-header">impl&lt;T&gt; Tap for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.tap" class="method trait-impl has-srclink"><a href="#method.tap" class="anchor"></a><h4 class="code-header">fn <a class="fnname">tap</a>(self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;</a>Self)) -&gt; Self</h4></section></summary><div class='docblock'>Immutable access to a value. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.tap_mut" class="method trait-impl has-srclink"><a href="#method.tap_mut" class="anchor"></a><h4 class="code-header">fn <a class="fnname">tap_mut</a>(self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut </a>Self)) -&gt; Self</h4></section></summary><div class='docblock'>Mutable access to a value. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.tap_borrow" class="method trait-impl has-srclink"><a href="#method.tap_borrow" class="anchor"></a><h4 class="code-header">fn <a class="fnname">tap_borrow</a>&lt;B&gt;(self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;</a>B)) -&gt; Self<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a>&lt;B&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;B: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Immutable access to the <code>Borrow&lt;B&gt;</code> of a value. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.tap_borrow_mut" class="method trait-impl has-srclink"><a href="#method.tap_borrow_mut" class="anchor"></a><h4 class="code-header">fn <a class="fnname">tap_borrow_mut</a>&lt;B&gt;(self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut </a>B)) -&gt; Self<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a>&lt;B&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;B: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Mutable access to the <code>BorrowMut&lt;B&gt;</code> of a value. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.tap_ref" class="method trait-impl has-srclink"><a href="#method.tap_ref" class="anchor"></a><h4 class="code-header">fn <a class="fnname">tap_ref</a>&lt;R&gt;(self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;</a>R)) -&gt; Self<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html" title="trait core::convert::AsRef">AsRef</a>&lt;R&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Immutable access to the <code>AsRef&lt;R&gt;</code> view of a value. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.tap_ref_mut" class="method trait-impl has-srclink"><a href="#method.tap_ref_mut" class="anchor"></a><h4 class="code-header">fn <a class="fnname">tap_ref_mut</a>&lt;R&gt;(self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut </a>R)) -&gt; Self<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html" title="trait core::convert::AsMut">AsMut</a>&lt;R&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Mutable access to the <code>AsMut&lt;R&gt;</code> view of a value. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.tap_deref" class="method trait-impl has-srclink"><a href="#method.tap_deref" class="anchor"></a><h4 class="code-header">fn <a class="fnname">tap_deref</a>&lt;T&gt;(self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;</a>T)) -&gt; Self<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html" title="trait core::ops::deref::Deref">Deref</a>&lt;Target = T&gt;,<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></h4></section></summary><div class='docblock'>Immutable access to the <code>Deref::Target</code> of a value. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.tap_deref_mut" class="method trait-impl has-srclink"><a href="#method.tap_deref_mut" class="anchor"></a><h4 class="code-header">fn <a class="fnname">tap_deref_mut</a>&lt;T&gt;(self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut </a>T)) -&gt; Self<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html" title="trait core::ops::deref::DerefMut">DerefMut</a>&lt;Target = T&gt; + <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html" title="trait core::ops::deref::Deref">Deref</a>,<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></h4></section></summary><div class='docblock'>Mutable access to the <code>Deref::Target</code> of a value. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.tap_dbg" class="method trait-impl has-srclink"><a href="#method.tap_dbg" class="anchor"></a><h4 class="code-header">fn <a class="fnname">tap_dbg</a>(self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;</a>Self)) -&gt; Self</h4></section></summary><div class='docblock'>Calls <code>.tap()</code> only in debug builds, and is erased in release builds.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.tap_mut_dbg" class="method trait-impl has-srclink"><a href="#method.tap_mut_dbg" class="anchor"></a><h4 class="code-header">fn <a class="fnname">tap_mut_dbg</a>(self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut </a>Self)) -&gt; Self</h4></section></summary><div class='docblock'>Calls <code>.tap_mut()</code> only in debug builds, and is erased in release
builds. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.tap_borrow_dbg" class="method trait-impl has-srclink"><a href="#method.tap_borrow_dbg" class="anchor"></a><h4 class="code-header">fn <a class="fnname">tap_borrow_dbg</a>&lt;B&gt;(self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;</a>B)) -&gt; Self<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a>&lt;B&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;B: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Calls <code>.tap_borrow()</code> only in debug builds, and is erased in release
builds. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.tap_borrow_mut_dbg" class="method trait-impl has-srclink"><a href="#method.tap_borrow_mut_dbg" class="anchor"></a><h4 class="code-header">fn <a class="fnname">tap_borrow_mut_dbg</a>&lt;B&gt;(self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut </a>B)) -&gt; Self<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a>&lt;B&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;B: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Calls <code>.tap_borrow_mut()</code> only in debug builds, and is erased in release
builds. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.tap_ref_dbg" class="method trait-impl has-srclink"><a href="#method.tap_ref_dbg" class="anchor"></a><h4 class="code-header">fn <a class="fnname">tap_ref_dbg</a>&lt;R&gt;(self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;</a>R)) -&gt; Self<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html" title="trait core::convert::AsRef">AsRef</a>&lt;R&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Calls <code>.tap_ref()</code> only in debug builds, and is erased in release
builds. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.tap_ref_mut_dbg" class="method trait-impl has-srclink"><a href="#method.tap_ref_mut_dbg" class="anchor"></a><h4 class="code-header">fn <a class="fnname">tap_ref_mut_dbg</a>&lt;R&gt;(self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut </a>R)) -&gt; Self<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.AsMut.html" title="trait core::convert::AsMut">AsMut</a>&lt;R&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Calls <code>.tap_ref_mut()</code> only in debug builds, and is erased in release
builds. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.tap_deref_dbg" class="method trait-impl has-srclink"><a href="#method.tap_deref_dbg" class="anchor"></a><h4 class="code-header">fn <a class="fnname">tap_deref_dbg</a>&lt;T&gt;(self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;</a>T)) -&gt; Self<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html" title="trait core::ops::deref::Deref">Deref</a>&lt;Target = T&gt;,<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></h4></section></summary><div class='docblock'>Calls <code>.tap_deref()</code> only in debug builds, and is erased in release
builds. <a>Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.tap_deref_mut_dbg" class="method trait-impl has-srclink"><a href="#method.tap_deref_mut_dbg" class="anchor"></a><h4 class="code-header">fn <a class="fnname">tap_deref_mut_dbg</a>&lt;T&gt;(self, func: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut </a>T)) -&gt; Self<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html" title="trait core::ops::deref::DerefMut">DerefMut</a>&lt;Target = T&gt; + <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html" title="trait core::ops::deref::Deref">Deref</a>,<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></h4></section></summary><div class='docblock'>Calls <code>.tap_deref_mut()</code> only in debug builds, and is erased in release
builds. <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-EvaluationDomain%3CG%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82">source</a><a href="#impl-ToOwned-for-EvaluationDomain%3CG%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#87">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#91">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-TryConv-for-EvaluationDomain%3CG%3E" class="impl has-srclink"><a href="#impl-TryConv-for-EvaluationDomain%3CG%3E" class="anchor"></a><h3 class="code-header">impl&lt;T&gt; TryConv for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_conv" class="method trait-impl has-srclink"><a href="#method.try_conv" class="anchor"></a><h4 class="code-header">fn <a class="fnname">try_conv</a>&lt;T&gt;(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;T, Self::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" title="type core::convert::TryInto::Error">Error</a>&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a>&lt;T&gt;,</span></h4></section></summary><div class='docblock'>Attempts to convert <code>self</code> into <code>T</code> using <code>TryInto&lt;T&gt;</code>. <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-EvaluationDomain%3CG%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-EvaluationDomain%3CG%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" 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.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-EvaluationDomain%3CG%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-EvaluationDomain%3CG%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-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.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><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-VZip%3CV%3E-for-EvaluationDomain%3CG%3E" class="impl has-srclink"><a href="#impl-VZip%3CV%3E-for-EvaluationDomain%3CG%3E" class="anchor"></a><h3 class="code-header">impl&lt;V, T&gt; VZip&lt;V&gt; for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;V: MultiLane&lt;T&gt;,</span></h3></section></summary><div class="impl-items"><section id="method.vzip" class="method trait-impl has-srclink"><a href="#method.vzip" class="anchor"></a><h4 class="code-header">fn <a class="fnname">vzip</a>(self) -&gt; V</h4></section></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-WithSubscriber-for-EvaluationDomain%3CG%3E" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#334">source</a><a href="#impl-WithSubscriber-for-EvaluationDomain%3CG%3E" class="anchor"></a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html" title="trait tracing::instrument::WithSubscriber">WithSubscriber</a> for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.with_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#169-171">source</a><a href="#method.with_subscriber" class="anchor"></a><h4 class="code-header">fn <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber" class="fnname">with_subscriber</a>&lt;S&gt;(self, subscriber: S) -&gt; <a class="struct" href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="struct tracing::instrument::WithDispatch">WithDispatch</a>&lt;Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;S: <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://docs.rs/tracing-core/0.1.22/tracing_core/dispatcher/struct.Dispatch.html" title="struct tracing_core::dispatcher::Dispatch">Dispatch</a>&gt;,</span></h4></section></summary><div class='docblock'>Attaches the provided <a href="https://docs.rs/tracing-core/0.1.22/tracing_core/subscriber/trait.Subscriber.html"><code>Subscriber</code></a> to this type, returning a
<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#221">source</a><a href="#method.with_current_subscriber" class="anchor"></a><h4 class="code-header">fn <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber" class="fnname">with_current_subscriber</a>(self) -&gt; <a class="struct" href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="struct tracing::instrument::WithDispatch">WithDispatch</a>&lt;Self&gt;</h4></section></summary><div class='docblock'>Attaches the current <a href="https://docs.rs/tracing/0.1.37/tracing/dispatcher/index.html#setting-the-default-subscriber">default</a> <a href="https://docs.rs/tracing-core/0.1.22/tracing_core/subscriber/trait.Subscriber.html"><code>Subscriber</code></a> to this type, returning a
<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details></div><script type="text/json" id="notable-traits-data">{"Vec<G::Scalar>":"<h3>Notable traits for <code><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.u8.html\">u8</a>, A&gt;</code></h3><pre class=\"content\"><code><span class=\"where fmt-newline\">impl&lt;A&gt; <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/std/io/trait.Write.html\" title=\"trait std::io::Write\">Write</a> 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.u8.html\">u8</a>, A&gt;<span class=\"where fmt-newline\">where<br>&nbsp;&nbsp;&nbsp;&nbsp;A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/alloc/trait.Allocator.html\" title=\"trait core::alloc::Allocator\">Allocator</a>,</span></span>","Vec<G>":"<h3>Notable traits for <code><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.u8.html\">u8</a>, A&gt;</code></h3><pre class=\"content\"><code><span class=\"where fmt-newline\">impl&lt;A&gt; <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/std/io/trait.Write.html\" title=\"trait std::io::Write\">Write</a> 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.u8.html\">u8</a>, A&gt;<span class=\"where fmt-newline\">where<br>&nbsp;&nbsp;&nbsp;&nbsp;A: <a class=\"trait\" href=\"https://doc.rust-lang.org/nightly/core/alloc/trait.Allocator.html\" title=\"trait core::alloc::Allocator\">Allocator</a>,</span></span>"}</script></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="halo2_proofs" data-themes="" data-resource-suffix="" data-rustdoc-version="1.67.0-nightly (70f8737b2 2022-11-23)" data-search-js="search-df80cc3cb87b6482.js" data-settings-js="settings-7e1cf5cc683233f7.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>