2022-02-03 17:33:56 -08:00
<!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 = "A floor planning strategy for a circuit." > < meta name = "keywords" content = "rust, rustlang, rust-lang, FloorPlanner" > < title > FloorPlanner in halo2_proofs::plonk - 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 >
2022-04-24 16:22:22 -07:00
< / head > < body class = "rustdoc trait" > <!-- [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" > ☰ < / button > < a class = "sidebar-logo" href = "../../halo2_proofs/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_proofs/index.html" > < div class = "logo-container" > < img class = "rust-logo" src = "../../rust-logo.svg" alt = "logo" > < / div >
2022-05-24 21:57:35 -07:00
< / a > < h2 class = "location" > < a href = "#" > FloorPlanner< / a > < / h2 > < div class = "sidebar-elems" > < section > < div class = "block" > < h3 class = "sidebar-title" > < a href = "#required-methods" > Required Methods< / a > < / h3 > < ul > < li > < a href = "#tymethod.synthesize" > synthesize< / a > < / li > < / ul > < / div > < div class = "block" > < h3 class = "sidebar-title" > < a href = "#implementors" > Implementors< / a > < / h3 > < / div > < / section > < h2 class = "location" > < a href = "index.html" > In halo2_proofs::plonk< / a > < / h2 > < div id = "sidebar-vars" data-name = "FloorPlanner" data-ty = "trait" 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_proofs/index.html" > < img class = "rust-logo" src = "../../rust-logo.svg" alt = "logo" > < / a > < nav class = "sub" > < form class = "search-form" > < div class = "search-container" > < span > < / span > < input class = "search-input" name = "search" autocomplete = "off" spellcheck = "false" placeholder = "Click or press ‘ S’ to search, ‘ ?’ for more options…" type = "search" > < button type = "button" id = "help-button" title = "help" > ?< / button > < div id = "settings-menu" tabindex = "-1" >
< a href = "../../settings.html" title = "settings" > < img width = "22" height = "22" alt = "Change settings" src = "../../wheel.svg" > < / a > < / div >
< / div > < / form > < / nav > < / div > < section id = "main-content" class = "content" > < div class = "main-heading" >
2022-06-13 08:47:25 -07:00
< h1 class = "fqn" > < span class = "in-band" > Trait < a href = "../index.html" > halo2_proofs< / a > ::< wbr > < a href = "index.html" > plonk< / a > ::< wbr > < a class = "trait" href = "#" > FloorPlanner< / 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_proofs/plonk/circuit.rs.html#407-424" > source< / a > · < a id = "toggle-all-docs" href = "javascript:void(0)" title = "collapse all docs" > [< span class = "inner" > − < / span > ]< / a > < / span > < / div > < div class = "docblock item-decl" > < pre class = "rust trait" > < code > pub trait FloorPlanner {
2022-02-03 17:33:56 -08:00
fn < a href = "#tymethod.synthesize" class = "fnname" > synthesize< / a > < F: < a class = "trait" href = "../arithmetic/trait.Field.html" title = "trait halo2_proofs::arithmetic::Field" > Field< / a > , CS: < a class = "trait" href = "trait.Assignment.html" title = "trait halo2_proofs::plonk::Assignment" > Assignment< / a > < F> , C: < a class = "trait" href = "trait.Circuit.html" title = "trait halo2_proofs::plonk::Circuit" > Circuit< / a > < F> > (< br > cs: < a class = "primitive" href = "https://doc.rust-lang.org/nightly/std/primitive.reference.html" > & mut < / a > CS, < br > circuit: < a class = "primitive" href = "https://doc.rust-lang.org/nightly/std/primitive.reference.html" > & < / a > C, < br > config: C::< a class = "associatedtype" href = "trait.Circuit.html#associatedtype.Config" title = "type halo2_proofs::plonk::Circuit::Config" > Config< / a > , < br > constants: < a class = "struct" href = "https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title = "struct alloc::vec::Vec" > Vec< / a > < < a class = "struct" href = "struct.Column.html" title = "struct halo2_proofs::plonk::Column" > Column< / a > < < a class = "struct" href = "struct.Fixed.html" title = "struct halo2_proofs::plonk::Fixed" > Fixed< / a > > > < br > ) -> < a class = "enum" href = "https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title = "enum core::result::Result" > Result< / a > < < a class = "primitive" href = "https://doc.rust-lang.org/nightly/std/primitive.unit.html" > ()< / a > , < a class = "enum" href = "enum.Error.html" title = "enum halo2_proofs::plonk::Error" > Error< / a > > ;
}< / code > < / pre > < / div > < details class = "rustdoc-toggle top-doc" open > < summary class = "hideme" > < span > Expand description< / span > < / summary > < div class = "docblock" > < p > A floor planning strategy for a circuit.< / p >
< p > The floor planner is chip-agnostic and applies its strategy to the circuit it is used
within.< / p >
2022-06-13 08:47:25 -07:00
< / div > < / details > < h2 id = "required-methods" class = "small-section-header" > Required Methods< a href = "#required-methods" class = "anchor" > < / a > < / h2 > < div class = "methods" > < details class = "rustdoc-toggle" open > < summary > < div id = "tymethod.synthesize" class = "method has-srclink" > < div class = "rightside" > < a class = "srclink" href = "../../src/halo2_proofs/plonk/circuit.rs.html#418-423" > source< / a > < / div > < h4 class = "code-header" > fn < a href = "#tymethod.synthesize" class = "fnname" > synthesize< / a > < F: < a class = "trait" href = "../arithmetic/trait.Field.html" title = "trait halo2_proofs::arithmetic::Field" > Field< / a > , CS: < a class = "trait" href = "trait.Assignment.html" title = "trait halo2_proofs::plonk::Assignment" > Assignment< / a > < F> , C: < a class = "trait" href = "trait.Circuit.html" title = "trait halo2_proofs::plonk::Circuit" > Circuit< / a > < F> > (< br > cs: < a class = "primitive" href = "https://doc.rust-lang.org/nightly/std/primitive.reference.html" > & mut < / a > CS, < br > circuit: < a class = "primitive" href = "https://doc.rust-lang.org/nightly/std/primitive.reference.html" > & < / a > C, < br > config: C::< a class = "associatedtype" href = "trait.Circuit.html#associatedtype.Config" title = "type halo2_proofs::plonk::Circuit::Config" > Config< / a > , < br > constants: < a class = "struct" href = "https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title = "struct alloc::vec::Vec" > Vec< / a > < < a class = "struct" href = "struct.Column.html" title = "struct halo2_proofs::plonk::Column" > Column< / a > < < a class = "struct" href = "struct.Fixed.html" title = "struct halo2_proofs::plonk::Fixed" > Fixed< / a > > > < br > ) -> < a class = "enum" href = "https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title = "enum core::result::Result" > Result< / a > < < a class = "primitive" href = "https://doc.rust-lang.org/nightly/std/primitive.unit.html" > ()< / a > , < a class = "enum" href = "enum.Error.html" title = "enum halo2_proofs::plonk::Error" > Error< / a > > < / h4 > < / div > < / summary > < div class = "docblock" > < p > Given the provided < code > cs< / code > , synthesize the given circuit.< / p >
2022-02-03 17:33:56 -08:00
< p > < code > constants< / code > is the list of fixed columns that the layouter may use to assign
global constant values. These columns will all have been equality-enabled.< / p >
< p > Internally, a floor planner will perform the following operations:< / p >
< ul >
< li > Instantiate a < a href = "../circuit/trait.Layouter.html" title = "Layouter" > < code > Layouter< / code > < / a > for this floor planner.< / li >
< li > Perform any necessary setup or measurement tasks, which may involve one or more
calls to < code > Circuit::default().synthesize(config, & mut layouter)< / code > .< / li >
< li > Call < code > circuit.synthesize(config, & mut layouter)< / code > exactly once.< / li >
< / ul >
2022-06-13 08:47:25 -07:00
< / div > < / details > < / div > < h2 id = "implementors" class = "small-section-header" > Implementors< a href = "#implementors" class = "anchor" > < / a > < / h2 > < div class = "item-list" id = "implementors-list" > < section id = "impl-FloorPlanner" class = "impl has-srclink" > < span class = "rightside" > < a class = "srclink" href = "../../src/halo2_proofs/circuit/floor_planner/v1.rs.html#59-141" > source< / a > < / span > < a href = "#impl-FloorPlanner" class = "anchor" > < / a > < h3 class = "code-header in-band" > impl < a class = "trait" href = "trait.FloorPlanner.html" title = "trait halo2_proofs::plonk::FloorPlanner" > FloorPlanner< / a > for < a class = "struct" href = "../circuit/floor_planner/struct.V1.html" title = "struct halo2_proofs::circuit::floor_planner::V1" > V1< / a > < / h3 > < / section > < section id = "impl-FloorPlanner-1" class = "impl has-srclink" > < span class = "rightside" > < a class = "srclink" href = "../../src/halo2_proofs/circuit/floor_planner/single_pass.rs.html#27-37" > source< / a > < / span > < a href = "#impl-FloorPlanner-1" class = "anchor" > < / a > < h3 class = "code-header in-band" > impl < a class = "trait" href = "trait.FloorPlanner.html" title = "trait halo2_proofs::plonk::FloorPlanner" > FloorPlanner< / a > for < a class = "struct" href = "../circuit/struct.SimpleFloorPlanner.html" title = "struct halo2_proofs::circuit::SimpleFloorPlanner" > SimpleFloorPlanner< / a > < / h3 > < / section > < / div > < script type = "text/javascript" src = "../../implementors/halo2_proofs/plonk/circuit/trait.FloorPlanner.js" data-ignore-extern-crates = "" async > < / script > < / section > < / div > < / main > < div id = "rustdoc-vars" data-root-path = "../../" data-current-crate = "halo2_proofs" data-themes = "ayu,dark,light" data-resource-suffix = "" data-rustdoc-version = "1.63.0-nightly (546c826f0 2022-06-12)" > < / div >
2022-02-03 17:33:56 -08:00
< / body > < / html >