halo2/rustdoc/latest/halo2_gadgets/utilities/index.html

47 lines
10 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="Utility gadgets."><meta name="keywords" content="rust, rustlang, rust-lang, utilities"><title>halo2_gadgets::utilities - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../SourceSerif4-Regular.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../FiraSans-Regular.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../FiraSans-Medium.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../SourceCodePro-Regular.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../SourceSerif4-Bold.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../SourceCodePro-Semibold.ttf.woff2"><link rel="stylesheet" type="text/css" href="../../normalize.css"><link rel="stylesheet" type="text/css" href="../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../../ayu.css" disabled><link rel="stylesheet" type="text/css" href="../../dark.css" disabled><link rel="stylesheet" type="text/css" href="../../light.css" id="themeStyle"><script id="default-settings" ></script><script src="../../storage.js"></script><script src="../../crates.js"></script><script defer src="../../main.js"></script>
<noscript><link rel="stylesheet" href="../../noscript.css"></noscript><link rel="alternate icon" type="image/png" href="../../favicon-16x16.png"><link rel="alternate icon" type="image/png" href="../../favicon-32x32.png"><link rel="icon" type="image/svg+xml" href="../../favicon.svg"><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 mod"><!--[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_gadgets/index.html"><div class="logo-container"><img class="rust-logo" src="../../rust-logo.svg" alt="logo"></div>
</a><h2 class="location"></h2>
</nav>
<nav class="sidebar"><a class="sidebar-logo" href="../../halo2_gadgets/index.html"><div class="logo-container"><img class="rust-logo" src="../../rust-logo.svg" alt="logo"></div>
</a><h2 class="location"><a href="#">Module utilities</a></h2><div class="sidebar-elems"><section><div class="block"><ul><li><a href="#modules">Modules</a></li><li><a href="#traits">Traits</a></li><li><a href="#functions">Functions</a></li></ul></div></section><div id="sidebar-vars" data-name="utilities" data-ty="mod" data-relpath="./"></div><script defer src="./sidebar-items.js"></script></div></nav><main><div class="width-limiter"><div class="sub-container"><a class="sub-logo-container" href="../../halo2_gadgets/index.html"><img class="rust-logo" src="../../rust-logo.svg" alt="logo"></a><nav class="sub"><div class="theme-picker hidden"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu" title="themes"><img width="22" height="22" alt="Pick another theme!" src="../../brush.svg"></button><div id="theme-choices" role="menu"></div></div><form class="search-form"><div class="search-container"><span></span><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"><button type="button" id="help-button" title="help">?</button><a id="settings-menu" href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../wheel.svg"></a></div></form></nav></div><section id="main-content" class="content"><div class="main-heading">
<h1 class="fqn"><span class="in-band">Module <a href="../index.html">halo2_gadgets</a>::<wbr><a class="mod" href="#">utilities</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../clipboard.svg" width="19" height="18" alt="Copy item path"></button></span></h1><span class="out-of-band"><a class="srclink" href="../../src/halo2_gadgets/utilities.rs.html#1-436">source</a> · <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Utility gadgets.</p>
</div></details><h2 id="modules" class="small-section-header"><a href="#modules">Modules</a></h2>
<div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="mod" href="cond_swap/index.html" title="halo2_gadgets::utilities::cond_swap mod">cond_swap</a></div><div class="item-right docblock-short"><p>Gadget and chip for a conditional swap utility.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="mod" href="decompose_running_sum/index.html" title="halo2_gadgets::utilities::decompose_running_sum mod">decompose_running_sum</a></div><div class="item-right docblock-short"><p>Decomposes an $n$-bit field element $\alpha$ into $W$ windows, each window
being a $K$-bit word, using a running sum $z$.
We constrain $K \leq 3$ for this helper.
$$\alpha = k_0 + (2^K) k_1 + (2^{2K}) k_2 + … + (2^{(W-1)K}) k_{W-1}$$</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="mod" href="lookup_range_check/index.html" title="halo2_gadgets::utilities::lookup_range_check mod">lookup_range_check</a></div><div class="item-right docblock-short"><p>Make use of a K-bit lookup table to decompose a field element into K-bit
words.</p>
</div></div></div><h2 id="traits" class="small-section-header"><a href="#traits">Traits</a></h2>
<div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="trait" href="trait.UtilitiesInstructions.html" title="halo2_gadgets::utilities::UtilitiesInstructions trait">UtilitiesInstructions</a></div><div class="item-right docblock-short"><p>Trait for utilities used across circuits.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="trait" href="trait.Var.html" title="halo2_gadgets::utilities::Var trait">Var</a></div><div class="item-right docblock-short"><p>Trait for a variable in the circuit.</p>
</div></div></div><h2 id="functions" class="small-section-header"><a href="#functions">Functions</a></h2>
<div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.bitrange_subset.html" title="halo2_gadgets::utilities::bitrange_subset fn">bitrange_subset</a></div><div class="item-right docblock-short"><p>Takes a specified subsequence of the little-endian bit representation of a field element.
The bits are numbered from 0 for the LSB.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.bool_check.html" title="halo2_gadgets::utilities::bool_check fn">bool_check</a></div><div class="item-right docblock-short"><p>Checks that an expression is either 1 or 0.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.decompose_word.html" title="halo2_gadgets::utilities::decompose_word fn">decompose_word</a></div><div class="item-right docblock-short"><p>Decompose a word <code>alpha</code> into <code>window_num_bits</code> bits (little-endian)
For a window size of <code>w</code>, this returns [k_0, …, k_n] where each <code>k_i</code>
is a <code>w</code>-bit value, and <code>scalar = k_0 + k_1 * w + k_n * w^n</code>.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.i2lebsp.html" title="halo2_gadgets::utilities::i2lebsp fn">i2lebsp</a></div><div class="item-right docblock-short"><p>The sequence of bits representing a u64 in little-endian order.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.lebs2ip.html" title="halo2_gadgets::utilities::lebs2ip fn">lebs2ip</a></div><div class="item-right docblock-short"><p>The u64 integer represented by an L-bit little-endian bitstring.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.range_check.html" title="halo2_gadgets::utilities::range_check fn">range_check</a></div><div class="item-right docblock-short"><p>Check that an expression is in the small range [0..range),
i.e. 0 ≤ word &lt; range.</p>
</div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.ternary.html" title="halo2_gadgets::utilities::ternary fn">ternary</a></div><div class="item-right docblock-short"><p>If <code>a</code> then <code>b</code>, else <code>c</code>. Returns (a * b) + (1 - a) * c.</p>
</div></div></div></section><section id="search" class="content hidden"></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-current-crate="halo2_gadgets" data-themes="ayu,dark,light" data-resource-suffix="" data-rustdoc-version="1.62.0-nightly (69a5d2481 2022-04-27)" ></div>
</body></html>