diff --git a/dev/bench/data.js b/dev/bench/data.js deleted file mode 100644 index f1638084..00000000 --- a/dev/bench/data.js +++ /dev/null @@ -1,452 +0,0 @@ -window.BENCHMARK_DATA = { - "lastUpdate": 1651808418599, - "repoUrl": "https://github.com/zcash/halo2", - "entries": { - "halo2 Benchmark": [ - { - "commit": { - "author": { - "email": "kris@nutty.land", - "name": "Kris Nuttycombe", - "username": "nuttycom" - }, - "committer": { - "email": "noreply@github.com", - "name": "GitHub", - "username": "web-flow" - }, - "distinct": true, - "id": "6e762bdde4b3d44dfe260c48dab592b8fd266463", - "message": "Merge pull request #380 from 3for/main\n\n[book] Fix errors and typos", - "timestamp": "2022-05-05T20:42:23-06:00", - "tree_id": "5fec2be1e93eadf09bce1fc97c6046994fd7c034", - "url": "https://github.com/zcash/halo2/commit/6e762bdde4b3d44dfe260c48dab592b8fd266463" - }, - "date": 1651808414238, - "tool": "cargo", - "benches": [ - { - "name": "WIDTH = 3, RATE = 2-prover", - "value": 75743460, - "range": "± 4965572", - "unit": "ns/iter" - }, - { - "name": "WIDTH = 3, RATE = 2-verifier", - "value": 3364864, - "range": "± 86864", - "unit": "ns/iter" - }, - { - "name": "WIDTH = 9, RATE = 8-prover", - "value": 174227508, - "range": "± 6589024", - "unit": "ns/iter" - }, - { - "name": "WIDTH = 9, RATE = 8-verifier", - "value": 4950982, - "range": "± 115905", - "unit": "ns/iter" - }, - { - "name": "WIDTH = 12, RATE = 11-prover", - "value": 237178717, - "range": "± 11266399", - "unit": "ns/iter" - }, - { - "name": "WIDTH = 12, RATE = 11-verifier", - "value": 5688518, - "range": "± 150507", - "unit": "ns/iter" - }, - { - "name": "Poseidon/2-to-1", - "value": 32641, - "range": "± 11", - "unit": "ns/iter" - }, - { - "name": "Sinsemilla/hash-to-point/510", - "value": 141237, - "range": "± 73", - "unit": "ns/iter" - }, - { - "name": "Sinsemilla/hash/510", - "value": 153409, - "range": "± 82", - "unit": "ns/iter" - }, - { - "name": "Sinsemilla/commit/510", - "value": 245750, - "range": "± 358", - "unit": "ns/iter" - }, - { - "name": "Sinsemilla/short-commit/510", - "value": 245630, - "range": "± 118", - "unit": "ns/iter" - }, - { - "name": "Sinsemilla/hash-to-point/520", - "value": 144187, - "range": "± 69", - "unit": "ns/iter" - }, - { - "name": "Sinsemilla/hash/520", - "value": 156418, - "range": "± 173", - "unit": "ns/iter" - }, - { - "name": "Sinsemilla/commit/520", - "value": 248562, - "range": "± 133", - "unit": "ns/iter" - }, - { - "name": "Sinsemilla/short-commit/520", - "value": 248637, - "range": "± 182", - "unit": "ns/iter" - }, - { - "name": "Sinsemilla/hash-to-point/1086", - "value": 301688, - "range": "± 219", - "unit": "ns/iter" - }, - { - "name": "Sinsemilla/hash/1086", - "value": 314005, - "range": "± 109", - "unit": "ns/iter" - }, - { - "name": "Sinsemilla/commit/1086", - "value": 406053, - "range": "± 168", - "unit": "ns/iter" - }, - { - "name": "Sinsemilla/short-commit/1086", - "value": 406137, - "range": "± 642", - "unit": "ns/iter" - }, - { - "name": "double-and-add", - "value": 2977225, - "range": "± 1986", - "unit": "ns/iter" - }, - { - "name": "dev-lookup/14", - "value": 5883739, - "range": "± 1841", - "unit": "ns/iter" - }, - { - "name": "dev-lookup/15", - "value": 8974059, - "range": "± 17918", - "unit": "ns/iter" - }, - { - "name": "dev-lookup/16", - "value": 19475020, - "range": "± 76102", - "unit": "ns/iter" - }, - { - "name": "dev-lookup/17", - "value": 36796969, - "range": "± 349424", - "unit": "ns/iter" - }, - { - "name": "dev-lookup/18", - "value": 74409987, - "range": "± 570745", - "unit": "ns/iter" - }, - { - "name": "fft/k/3", - "value": 7056, - "range": "± 537", - "unit": "ns/iter" - }, - { - "name": "fft/k/4", - "value": 8158, - "range": "± 1194", - "unit": "ns/iter" - }, - { - "name": "fft/k/5", - "value": 14794, - "range": "± 664", - "unit": "ns/iter" - }, - { - "name": "fft/k/6", - "value": 17335, - "range": "± 318", - "unit": "ns/iter" - }, - { - "name": "fft/k/7", - "value": 24753, - "range": "± 1110", - "unit": "ns/iter" - }, - { - "name": "fft/k/8", - "value": 45904, - "range": "± 1696", - "unit": "ns/iter" - }, - { - "name": "fft/k/9", - "value": 92980, - "range": "± 11799", - "unit": "ns/iter" - }, - { - "name": "fft/k/10", - "value": 166519, - "range": "± 8707", - "unit": "ns/iter" - }, - { - "name": "fft/k/11", - "value": 383293, - "range": "± 15329", - "unit": "ns/iter" - }, - { - "name": "fft/k/12", - "value": 814610, - "range": "± 48972", - "unit": "ns/iter" - }, - { - "name": "fft/k/13", - "value": 1664411, - "range": "± 79866", - "unit": "ns/iter" - }, - { - "name": "fft/k/14", - "value": 3569661, - "range": "± 88181", - "unit": "ns/iter" - }, - { - "name": "fft/k/15", - "value": 7859717, - "range": "± 185464", - "unit": "ns/iter" - }, - { - "name": "fft/k/16", - "value": 17420178, - "range": "± 1447687", - "unit": "ns/iter" - }, - { - "name": "fft/k/17", - "value": 38063939, - "range": "± 1029559", - "unit": "ns/iter" - }, - { - "name": "fft/k/18", - "value": 86977761, - "range": "± 3254752", - "unit": "ns/iter" - }, - { - "name": "hash-to-curve/Pallas", - "value": 28445, - "range": "± 17", - "unit": "ns/iter" - }, - { - "name": "hash-to-curve/Vesta", - "value": 28526, - "range": "± 14", - "unit": "ns/iter" - }, - { - "name": "plonk-keygen/8", - "value": 150976930, - "range": "± 3354582", - "unit": "ns/iter" - }, - { - "name": "plonk-keygen/9", - "value": 327362110, - "range": "± 1263830", - "unit": "ns/iter" - }, - { - "name": "plonk-keygen/10", - "value": 698242753, - "range": "± 5742422", - "unit": "ns/iter" - }, - { - "name": "plonk-keygen/11", - "value": 1508743882, - "range": "± 21281220", - "unit": "ns/iter" - }, - { - "name": "plonk-keygen/12", - "value": 3228362237, - "range": "± 90819459", - "unit": "ns/iter" - }, - { - "name": "plonk-keygen/13", - "value": 6760023034, - "range": "± 319024373", - "unit": "ns/iter" - }, - { - "name": "plonk-keygen/14", - "value": 14400223247, - "range": "± 748414621", - "unit": "ns/iter" - }, - { - "name": "plonk-keygen/15", - "value": 31408018856, - "range": "± 298412840", - "unit": "ns/iter" - }, - { - "name": "plonk-keygen/16", - "value": 65677272562, - "range": "± 5731752151", - "unit": "ns/iter" - }, - { - "name": "plonk-prover/8", - "value": 96073834, - "range": "± 2318394", - "unit": "ns/iter" - }, - { - "name": "plonk-prover/9", - "value": 165388652, - "range": "± 818923", - "unit": "ns/iter" - }, - { - "name": "plonk-prover/10", - "value": 293923928, - "range": "± 1883804", - "unit": "ns/iter" - }, - { - "name": "plonk-prover/11", - "value": 529230550, - "range": "± 6803956", - "unit": "ns/iter" - }, - { - "name": "plonk-prover/12", - "value": 1002725377, - "range": "± 3547093", - "unit": "ns/iter" - }, - { - "name": "plonk-prover/13", - "value": 1899544804, - "range": "± 14645481", - "unit": "ns/iter" - }, - { - "name": "plonk-prover/14", - "value": 3597341978, - "range": "± 14931790", - "unit": "ns/iter" - }, - { - "name": "plonk-prover/15", - "value": 6974080309, - "range": "± 38041036", - "unit": "ns/iter" - }, - { - "name": "plonk-prover/16", - "value": 13459145586, - "range": "± 48243426", - "unit": "ns/iter" - }, - { - "name": "plonk-verifier/8", - "value": 5173668, - "range": "± 63509", - "unit": "ns/iter" - }, - { - "name": "plonk-verifier/9", - "value": 7965982, - "range": "± 107826", - "unit": "ns/iter" - }, - { - "name": "plonk-verifier/10", - "value": 13046883, - "range": "± 461536", - "unit": "ns/iter" - }, - { - "name": "plonk-verifier/11", - "value": 21999117, - "range": "± 191579", - "unit": "ns/iter" - }, - { - "name": "plonk-verifier/12", - "value": 37833186, - "range": "± 439676", - "unit": "ns/iter" - }, - { - "name": "plonk-verifier/13", - "value": 67612874, - "range": "± 755388", - "unit": "ns/iter" - }, - { - "name": "plonk-verifier/14", - "value": 106724049, - "range": "± 480916", - "unit": "ns/iter" - }, - { - "name": "plonk-verifier/15", - "value": 221208236, - "range": "± 4141182", - "unit": "ns/iter" - }, - { - "name": "plonk-verifier/16", - "value": 401626334, - "range": "± 2264404", - "unit": "ns/iter" - } - ] - } - ] - } -} \ No newline at end of file diff --git a/dev/bench/index.html b/dev/bench/index.html deleted file mode 100644 index 3a653b2c..00000000 --- a/dev/bench/index.html +++ /dev/null @@ -1,279 +0,0 @@ - - - - - - - Benchmarks - - - - -
- - - - - - - diff --git a/rustdoc/latest/halo2_gadgets/all.html b/rustdoc/latest/halo2_gadgets/all.html index 0523181d..4b7501d6 100644 --- a/rustdoc/latest/halo2_gadgets/all.html +++ b/rustdoc/latest/halo2_gadgets/all.html @@ -18,5 +18,5 @@

List of all items

Structs

Enums

Traits

Functions

Constants

+

Crate halo2_gadgets

List of all items

Structs

Enums

Traits

Functions

Constants

\ No newline at end of file diff --git a/rustdoc/latest/halo2_gadgets/ecc/chip/enum.BaseFieldElem.html b/rustdoc/latest/halo2_gadgets/ecc/chip/enum.BaseFieldElem.html index 32d5457a..4da2c5f9 100644 --- a/rustdoc/latest/halo2_gadgets/ecc/chip/enum.BaseFieldElem.html +++ b/rustdoc/latest/halo2_gadgets/ecc/chip/enum.BaseFieldElem.html @@ -18,11 +18,11 @@

+

BaseFieldElem

pub enum BaseFieldElem {}
Expand description

Type marker representing a base field element being used as a scalar in fixed-base scalar multiplication.

Trait Implementations

Formats the value using the given formatter. Read more

-

The number of windows that this scalar kind requires.

+

The number of windows that this scalar kind requires.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

diff --git a/rustdoc/latest/halo2_gadgets/ecc/chip/enum.FullScalar.html b/rustdoc/latest/halo2_gadgets/ecc/chip/enum.FullScalar.html index 06e146ad..a5d81856 100644 --- a/rustdoc/latest/halo2_gadgets/ecc/chip/enum.FullScalar.html +++ b/rustdoc/latest/halo2_gadgets/ecc/chip/enum.FullScalar.html @@ -18,11 +18,11 @@

+

FullScalar

pub enum FullScalar {}
Expand description

Type marker representing a full-width scalar for use in fixed-base scalar multiplication.

Trait Implementations

Formats the value using the given formatter. Read more

-

The number of windows that this scalar kind requires.

+

The number of windows that this scalar kind requires.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

diff --git a/rustdoc/latest/halo2_gadgets/ecc/chip/enum.ScalarVar.html b/rustdoc/latest/halo2_gadgets/ecc/chip/enum.ScalarVar.html new file mode 100644 index 00000000..702f3208 --- /dev/null +++ b/rustdoc/latest/halo2_gadgets/ecc/chip/enum.ScalarVar.html @@ -0,0 +1,113 @@ +ScalarVar in halo2_gadgets::ecc::chip - Rust + + + + + +
pub enum ScalarVar {
+    BaseFieldElem(AssignedCell<Base, Base>),
+    FullWidth,
+}
Expand description

An enumeration of the possible types of scalars used in variable-base +multiplication.

+

Variants

BaseFieldElem(AssignedCell<Base, Base>)

An element of the elliptic curve’s base field, that is used as a scalar +in variable-base scalar mul.

+

It is not true in general that a scalar field element fits in a curve’s +base field, and in particular it is untrue for the Pallas curve, whose +scalar field Fq is larger than its base field Fp.

+

However, the only use of variable-base scalar mul in the Orchard protocol +is in deriving diversified addresses [ivk] g_d, and ivk is guaranteed +to be in the base field of the curve. (See non-normative notes in +https://zips.z.cash/protocol/nu5.pdf#orchardkeycomponents.)

+

FullWidth

A full-width scalar. This is unimplemented for halo2_gadgets v0.1.0.

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Converts self into T using Into<T>. Read more

+

Causes self to use its Binary implementation when Debug-formatted. Read more

+

Causes self to use its Display implementation when +Debug-formatted. Read more

+

Causes self to use its LowerExp implementation when +Debug-formatted. Read more

+

Causes self to use its LowerHex implementation when +Debug-formatted. Read more

+

Causes self to use its Octal implementation when Debug-formatted. Read more

+

Causes self to use its Pointer implementation when +Debug-formatted. Read more

+

Causes self to use its UpperExp implementation when +Debug-formatted. Read more

+

Causes self to use its UpperHex implementation when +Debug-formatted. Read more

+

Formats each item in a sequence. Read more

+

Returns the argument unchanged.

+

Calls U::from(self).

+

That is, this conversion is whatever the implementation of +From<T> for U chooses to do.

+

Pipes by value. This is generally the method you want to use. Read more

+

Borrows self and passes that borrow into the pipe function. Read more

+

Mutably borrows self and passes that borrow into the pipe function. Read more

+

Borrows self, then passes self.borrow() into the pipe function. Read more

+

Mutably borrows self, then passes self.borrow_mut() into the pipe +function. Read more

+

Borrows self, then passes self.as_ref() into the pipe function.

+

Mutably borrows self, then passes self.as_mut() into the pipe +function. Read more

+

Borrows self, then passes self.deref() into the pipe function.

+

Mutably borrows self, then passes self.deref_mut() into the pipe +function. Read more

+

The alignment of pointer.

+

The type for initializers.

+

Initializes a with the given initializer. Read more

+

Dereferences the given pointer. Read more

+

Mutably dereferences the given pointer. Read more

+

Drops the object pointed to by the given pointer. Read more

+

Immutable access to a value. Read more

+

Mutable access to a value. Read more

+

Immutable access to the Borrow<B> of a value. Read more

+

Mutable access to the BorrowMut<B> of a value. Read more

+

Immutable access to the AsRef<R> view of a value. Read more

+

Mutable access to the AsMut<R> view of a value. Read more

+

Immutable access to the Deref::Target of a value. Read more

+

Mutable access to the Deref::Target of a value. Read more

+

Calls .tap() only in debug builds, and is erased in release builds.

+

Calls .tap_mut() only in debug builds, and is erased in release +builds. Read more

+

Calls .tap_borrow() only in debug builds, and is erased in release +builds. Read more

+

Calls .tap_borrow_mut() only in debug builds, and is erased in release +builds. Read more

+

Calls .tap_ref() only in debug builds, and is erased in release +builds. Read more

+

Calls .tap_ref_mut() only in debug builds, and is erased in release +builds. Read more

+

Calls .tap_deref() only in debug builds, and is erased in release +builds. Read more

+

Calls .tap_deref_mut() only in debug builds, and is erased in release +builds. Read more

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

Attempts to convert self into T using TryInto<T>. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+
+ \ No newline at end of file diff --git a/rustdoc/latest/halo2_gadgets/ecc/chip/enum.ShortScalar.html b/rustdoc/latest/halo2_gadgets/ecc/chip/enum.ShortScalar.html index c02351ba..acbd6e69 100644 --- a/rustdoc/latest/halo2_gadgets/ecc/chip/enum.ShortScalar.html +++ b/rustdoc/latest/halo2_gadgets/ecc/chip/enum.ShortScalar.html @@ -18,11 +18,11 @@

+

ShortScalar

pub enum ShortScalar {}
Expand description

Type marker representing a signed 64-bit scalar for use in fixed-base scalar multiplication.

Trait Implementations

Formats the value using the given formatter. Read more

-

The number of windows that this scalar kind requires.

+

The number of windows that this scalar kind requires.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

diff --git a/rustdoc/latest/halo2_gadgets/ecc/chip/index.html b/rustdoc/latest/halo2_gadgets/ecc/chip/index.html index 4810033f..f7b613a8 100644 --- a/rustdoc/latest/halo2_gadgets/ecc/chip/index.html +++ b/rustdoc/latest/halo2_gadgets/ecc/chip/index.html @@ -19,7 +19,7 @@
Expand description

Chip implementations for the ECC gadgets.

+

Module halo2_gadgets::ecc::chip

source · []
Expand description

Chip implementations for the ECC gadgets.

Re-exports

pub use constants::*;

Modules

Constants required for the ECC chip.

@@ -48,10 +48,12 @@ Each coordinate is assigned to a cell.

scalar multiplication.

Type marker representing a full-width scalar for use in fixed-base scalar multiplication.

+

An enumeration of the possible types of scalars used in variable-base +multiplication.

Type marker representing a signed 64-bit scalar for use in fixed-base scalar multiplication.

Traits

Returns information about a fixed point that is required by EccChip.

-

A trait representing the kind of scalar used with a particular FixedPoint.

+

A trait representing the kind of scalar used with a particular FixedPoint.

\ No newline at end of file diff --git a/rustdoc/latest/halo2_gadgets/ecc/chip/sidebar-items.js b/rustdoc/latest/halo2_gadgets/ecc/chip/sidebar-items.js index 1f81d2a9..b44f9399 100644 --- a/rustdoc/latest/halo2_gadgets/ecc/chip/sidebar-items.js +++ b/rustdoc/latest/halo2_gadgets/ecc/chip/sidebar-items.js @@ -1 +1 @@ -initSidebarItems({"enum":[["BaseFieldElem","Type marker representing a base field element being used as a scalar in fixed-base scalar multiplication."],["FullScalar","Type marker representing a full-width scalar for use in fixed-base scalar multiplication."],["ShortScalar","Type marker representing a signed 64-bit scalar for use in fixed-base scalar multiplication."]],"mod":[["constants","Constants required for the ECC chip."]],"struct":[["EccChip","A chip implementing EccInstructions"],["EccConfig","Configuration for the ECC chip"],["EccPoint","A curve point represented in affine (x, y) coordinates, or the identity represented as (0, 0). Each coordinate is assigned to a cell."],["EccScalarFixed","A full-width scalar used for fixed-base scalar multiplication. This is decomposed into 85 3-bit windows in little-endian order, i.e. `windows` = [k_0, k_1, …, k_84] (for a 255-bit scalar) where `scalar = k_0 + k_1 * (2^3) + ... + k_84 * (2^3)^84` and each `k_i` is in the range [0..2^3)."],["EccScalarFixedShort","A signed short scalar used for fixed-base scalar multiplication. A short scalar must have magnitude in the range [0..2^64), with a sign of either 1 or -1. This is decomposed into 3-bit windows in little-endian order using a running sum `z`, where z_{i+1} = (z_i - a_i) / (2^3) for element α = a_0 + (2^3) a_1 + … + (2^{3(n-1)}) a_{n-1}. Each `a_i` is in the range [0..2^3)."],["NonIdentityEccPoint","A non-identity point represented in affine (x, y) coordinates. Each coordinate is assigned to a cell."]],"trait":[["FixedPoint","Returns information about a fixed point that is required by [`EccChip`]."],["ScalarKind","A trait representing the kind of scalar used with a particular `FixedPoint`."]]}); \ No newline at end of file +initSidebarItems({"enum":[["BaseFieldElem","Type marker representing a base field element being used as a scalar in fixed-base scalar multiplication."],["FullScalar","Type marker representing a full-width scalar for use in fixed-base scalar multiplication."],["ScalarVar","An enumeration of the possible types of scalars used in variable-base multiplication."],["ShortScalar","Type marker representing a signed 64-bit scalar for use in fixed-base scalar multiplication."]],"mod":[["constants","Constants required for the ECC chip."]],"struct":[["EccChip","A chip implementing EccInstructions"],["EccConfig","Configuration for the ECC chip"],["EccPoint","A curve point represented in affine (x, y) coordinates, or the identity represented as (0, 0). Each coordinate is assigned to a cell."],["EccScalarFixed","A full-width scalar used for fixed-base scalar multiplication. This is decomposed into 85 3-bit windows in little-endian order, i.e. `windows` = [k_0, k_1, …, k_84] (for a 255-bit scalar) where `scalar = k_0 + k_1 * (2^3) + ... + k_84 * (2^3)^84` and each `k_i` is in the range [0..2^3)."],["EccScalarFixedShort","A signed short scalar used for fixed-base scalar multiplication. A short scalar must have magnitude in the range [0..2^64), with a sign of either 1 or -1. This is decomposed into 3-bit windows in little-endian order using a running sum `z`, where z_{i+1} = (z_i - a_i) / (2^3) for element α = a_0 + (2^3) a_1 + … + (2^{3(n-1)}) a_{n-1}. Each `a_i` is in the range [0..2^3)."],["NonIdentityEccPoint","A non-identity point represented in affine (x, y) coordinates. Each coordinate is assigned to a cell."]],"trait":[["FixedPoint","Returns information about a fixed point that is required by [`EccChip`]."],["FixedScalarKind","A trait representing the kind of scalar used with a particular `FixedPoint`."]]}); \ No newline at end of file diff --git a/rustdoc/latest/halo2_gadgets/ecc/chip/struct.EccChip.html b/rustdoc/latest/halo2_gadgets/ecc/chip/struct.EccChip.html index 8a2d13f8..85b201c9 100644 --- a/rustdoc/latest/halo2_gadgets/ecc/chip/struct.EccChip.html +++ b/rustdoc/latest/halo2_gadgets/ecc/chip/struct.EccChip.html @@ -18,12 +18,14 @@

+

EccChip

pub struct EccChip<FixedPoints: FixedPoints<Affine>> { /* private fields */ }
Expand description

A chip implementing EccInstructions

Implementations

Reconstructs this chip from the given config.

Side effects

All columns in advices will be equality-enabled.

-

Trait Implementations

A type that holds the configuration for this chip, and any other state it may need +

Trait Implementations

Converts a base field element that exists as a variable in the circuit +into a scalar to be used in variable-base scalar multiplication. Read more

+

A type that holds the configuration for this chip, and any other state it may need during circuit synthesis, that can be derived during Circuit::configure. Read more

A type that holds any general chip state that needs to be loaded at the start of Circuit::synthesize. This might simply be () for some chips. Read more

@@ -33,12 +35,11 @@ synthesis.

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

-

Variable representing a full-width element of the elliptic curve’s +

Variable representing a full-width element of the elliptic curve’s scalar field, to be used for fixed-base scalar mul. Read more

Variable representing a signed short element of the elliptic curve’s scalar field, to be used for fixed-base scalar mul. Read more

-

Variable representing an element of the elliptic curve’s base field, that -is used as a scalar in variable-base scalar mul. Read more

+

Variable representing a scalar used in variable-base scalar mul. Read more

Variable representing an elliptic curve point.

Variable representing a non-identity elliptic curve point.

Constrains point a to be equal in value to point b.

-

Witnesses the given point as a private input to the circuit. +

Constrains point a to be equal in value to point b.

+

Witnesses the given point as a private input to the circuit. This allows the point to be the identity, mapped to (0, 0) in affine coordinates. Read more

-

Witnesses the given point as a private input to the circuit. +

Witnesses the given point as a private input to the circuit. This returns an error if the point is the identity. Read more

-

Extracts the x-coordinate of a point.

-

Performs incomplete point addition, returning a + b. Read more

-

Performs complete point addition, returning a + b.

-

Performs variable-base scalar multiplication, returning [scalar] base.

-

Performs fixed-base scalar multiplication using a full-width scalar, returning [scalar] base.

-

Performs fixed-base scalar multiplication using a short signed scalar, returning +

Witnesses a full-width scalar to be used in variable-base multiplication.

+

Extracts the x-coordinate of a point.

+

Performs incomplete point addition, returning a + b. Read more

+

Performs complete point addition, returning a + b.

+

Performs variable-base scalar multiplication, returning [scalar] base.

+

Performs fixed-base scalar multiplication using a full-width scalar, returning [scalar] base.

+

Performs fixed-base scalar multiplication using a short signed scalar, returning [magnitude * sign] base. Read more

-

Performs fixed-base scalar multiplication using a base field element as the scalar. +

Performs fixed-base scalar multiplication using a base field element as the scalar. In the current implementation, this base field element must be output from another instruction. Read more

This method tests for self and other values to be equal, and is used diff --git a/rustdoc/latest/halo2_gadgets/ecc/chip/trait.FixedPoint.html b/rustdoc/latest/halo2_gadgets/ecc/chip/trait.FixedPoint.html index 6c8e6112..2a812a52 100644 --- a/rustdoc/latest/halo2_gadgets/ecc/chip/trait.FixedPoint.html +++ b/rustdoc/latest/halo2_gadgets/ecc/chip/trait.FixedPoint.html @@ -18,9 +18,9 @@

+

FixedPoint

pub trait FixedPoint<C: CurveAffine>: Debug + Eq + Clone {
-    type ScalarKind: ScalarKind;
+    type FixedScalarKind: FixedScalarKind;
 
     fn generator(&self) -> C;
     fn u(&self) -> Vec<[[u8; 32]; 8]>Notable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
    A: Allocator
; @@ -28,7 +28,7 @@ fn lagrange_coeffs(&self) -> Vec<[C::Base; 8]>Notable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
    A: Allocator
{ ... } }
Expand description

Returns information about a fixed point that is required by EccChip.

-

For each window required by Self::ScalarKind, $z$ is a field element such that for +

For each window required by Self::FixedScalarKind, $z$ is a field element such that for each point $(x, y)$ in the window:

  • $z + y = u^2$ (some square in the field); and
  • @@ -37,7 +37,7 @@ each point $(x, y)$ in the window:

    TODO: When associated consts can be used as const generics, introduce a const NUM_WINDOWS: usize associated const, and return NUM_WINDOWS-sized arrays instead of Vecs.

    -

Required Associated Types

The kind of scalar that this fixed point can be multiplied by.

+

Required Associated Types

The kind of scalar that this fixed point can be multiplied by.

Required Methods

Returns the generator for this fixed point.

Returns the $u$ values for this fixed point.

Returns the $z$ value for this fixed point.

diff --git a/rustdoc/latest/halo2_gadgets/ecc/chip/trait.FixedScalarKind.html b/rustdoc/latest/halo2_gadgets/ecc/chip/trait.FixedScalarKind.html new file mode 100644 index 00000000..a949ef16 --- /dev/null +++ b/rustdoc/latest/halo2_gadgets/ecc/chip/trait.FixedScalarKind.html @@ -0,0 +1,28 @@ +FixedScalarKind in halo2_gadgets::ecc::chip - Rust + + + + + +
pub trait FixedScalarKind {
+    const NUM_WINDOWS: usize;
+}
Expand description

A trait representing the kind of scalar used with a particular FixedPoint.

+

This trait exists because of limitations around const generics.

+

Required Associated Constants

The number of windows that this scalar kind requires.

+

Implementors

+ \ No newline at end of file diff --git a/rustdoc/latest/halo2_gadgets/ecc/chip/trait.ScalarKind.html b/rustdoc/latest/halo2_gadgets/ecc/chip/trait.ScalarKind.html deleted file mode 100644 index 80f1b014..00000000 --- a/rustdoc/latest/halo2_gadgets/ecc/chip/trait.ScalarKind.html +++ /dev/null @@ -1,28 +0,0 @@ -ScalarKind in halo2_gadgets::ecc::chip - Rust - - - - - -
pub trait ScalarKind {
-    const NUM_WINDOWS: usize;
-}
Expand description

A trait representing the kind of scalar used with a particular FixedPoint.

-

This trait exists because of limitations around const generics.

-

Required Associated Constants

The number of windows that this scalar kind requires.

-

Implementors

- \ No newline at end of file diff --git a/rustdoc/latest/halo2_gadgets/ecc/index.html b/rustdoc/latest/halo2_gadgets/ecc/index.html index 7d261c0f..0f68b50c 100644 --- a/rustdoc/latest/halo2_gadgets/ecc/index.html +++ b/rustdoc/latest/halo2_gadgets/ecc/index.html @@ -19,7 +19,7 @@
Expand description

Gadgets for elliptic curve operations.

+

Module halo2_gadgets::ecc

source · []
Expand description

Gadgets for elliptic curve operations.

Modules

Chip implementations for the ECC gadgets.

Structs

@@ -38,7 +38,9 @@ in variable-base scalar mul.

The affine short Weierstrass x-coordinate of an elliptic curve point over the given curve.

Traits

-

The set of circuit instructions required to use the ECC gadgets.

+

Instructions that can be implemented for a curve whose base field fits into +its scalar field.

+

The set of circuit instructions required to use the ECC gadgets.

Defines the fixed points for a given instantiation of the ECC chip.

\ No newline at end of file diff --git a/rustdoc/latest/halo2_gadgets/ecc/sidebar-items.js b/rustdoc/latest/halo2_gadgets/ecc/sidebar-items.js index dd8d11f4..fd784794 100644 --- a/rustdoc/latest/halo2_gadgets/ecc/sidebar-items.js +++ b/rustdoc/latest/halo2_gadgets/ecc/sidebar-items.js @@ -1 +1 @@ -initSidebarItems({"mod":[["chip","Chip implementations for the ECC gadgets."]],"struct":[["FixedPoint","A constant elliptic curve point over the given curve, for which window tables have been provided to make scalar multiplication more efficient."],["FixedPointBaseField","A constant elliptic curve point over the given curve, used in scalar multiplication with a base field element"],["FixedPointShort","A constant elliptic curve point over the given curve, used in scalar multiplication with a short signed exponent"],["NonIdentityPoint","A non-identity elliptic curve point over the given curve."],["Point","An elliptic curve point over the given curve."],["ScalarFixed","A full-width element of the given elliptic curve’s scalar field, to be used for fixed-base scalar mul."],["ScalarFixedShort","A signed short element of the given elliptic curve’s scalar field, to be used for fixed-base scalar mul."],["ScalarVar","An element of the given elliptic curve’s base field, that is used as a scalar in variable-base scalar mul."],["X","The affine short Weierstrass x-coordinate of an elliptic curve point over the given curve."]],"trait":[["EccInstructions","The set of circuit instructions required to use the ECC gadgets."],["FixedPoints","Defines the fixed points for a given instantiation of the ECC chip."]]}); \ No newline at end of file +initSidebarItems({"mod":[["chip","Chip implementations for the ECC gadgets."]],"struct":[["FixedPoint","A constant elliptic curve point over the given curve, for which window tables have been provided to make scalar multiplication more efficient."],["FixedPointBaseField","A constant elliptic curve point over the given curve, used in scalar multiplication with a base field element"],["FixedPointShort","A constant elliptic curve point over the given curve, used in scalar multiplication with a short signed exponent"],["NonIdentityPoint","A non-identity elliptic curve point over the given curve."],["Point","An elliptic curve point over the given curve."],["ScalarFixed","A full-width element of the given elliptic curve’s scalar field, to be used for fixed-base scalar mul."],["ScalarFixedShort","A signed short element of the given elliptic curve’s scalar field, to be used for fixed-base scalar mul."],["ScalarVar","An element of the given elliptic curve’s base field, that is used as a scalar in variable-base scalar mul."],["X","The affine short Weierstrass x-coordinate of an elliptic curve point over the given curve."]],"trait":[["BaseFitsInScalarInstructions","Instructions that can be implemented for a curve whose base field fits into its scalar field."],["EccInstructions","The set of circuit instructions required to use the ECC gadgets."],["FixedPoints","Defines the fixed points for a given instantiation of the ECC chip."]]}); \ No newline at end of file diff --git a/rustdoc/latest/halo2_gadgets/ecc/struct.FixedPoint.html b/rustdoc/latest/halo2_gadgets/ecc/struct.FixedPoint.html index c7544001..1d7b6ba0 100644 --- a/rustdoc/latest/halo2_gadgets/ecc/struct.FixedPoint.html +++ b/rustdoc/latest/halo2_gadgets/ecc/struct.FixedPoint.html @@ -19,14 +19,14 @@
pub struct FixedPoint<C: CurveAffine, EccChip: EccInstructions<C>> { /* private fields */ }
Expand description

A constant elliptic curve point over the given curve, for which window tables have +

Struct halo2_gadgets::ecc::FixedPoint

source · []
pub struct FixedPoint<C: CurveAffine, EccChip: EccInstructions<C>> { /* private fields */ }
Expand description

A constant elliptic curve point over the given curve, for which window tables have been provided to make scalar multiplication more efficient.

Used in scalar multiplication with full-width scalars.

-

Implementations

Returns [by] self.

-

Wraps the given fixed base (obtained directly from an instruction) in a gadget.

-

Trait Implementations

Returns a copy of the value. Read more

+

Implementations

Returns [by] self.

+

Wraps the given fixed base (obtained directly from an instruction) in a gadget.

+

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

+

Formats the value using the given formatter. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

diff --git a/rustdoc/latest/halo2_gadgets/ecc/struct.FixedPointBaseField.html b/rustdoc/latest/halo2_gadgets/ecc/struct.FixedPointBaseField.html index 42b70244..fd979f4d 100644 --- a/rustdoc/latest/halo2_gadgets/ecc/struct.FixedPointBaseField.html +++ b/rustdoc/latest/halo2_gadgets/ecc/struct.FixedPointBaseField.html @@ -19,13 +19,13 @@
pub struct FixedPointBaseField<C: CurveAffine, EccChip: EccInstructions<C>> { /* private fields */ }
Expand description

A constant elliptic curve point over the given curve, used in scalar multiplication +

Struct halo2_gadgets::ecc::FixedPointBaseField

source · []
pub struct FixedPointBaseField<C: CurveAffine, EccChip: EccInstructions<C>> { /* private fields */ }
Expand description

A constant elliptic curve point over the given curve, used in scalar multiplication with a base field element

-

Implementations

Returns [by] self.

-

Wraps the given fixed base (obtained directly from an instruction) in a gadget.

-

Trait Implementations

Returns a copy of the value. Read more

+

Implementations

Returns [by] self.

+

Wraps the given fixed base (obtained directly from an instruction) in a gadget.

+

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

+

Formats the value using the given formatter. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

diff --git a/rustdoc/latest/halo2_gadgets/ecc/struct.FixedPointShort.html b/rustdoc/latest/halo2_gadgets/ecc/struct.FixedPointShort.html index 5ca636f8..a3a95e9d 100644 --- a/rustdoc/latest/halo2_gadgets/ecc/struct.FixedPointShort.html +++ b/rustdoc/latest/halo2_gadgets/ecc/struct.FixedPointShort.html @@ -19,13 +19,13 @@
pub struct FixedPointShort<C: CurveAffine, EccChip: EccInstructions<C>> { /* private fields */ }
Expand description

A constant elliptic curve point over the given curve, used in scalar multiplication +

Struct halo2_gadgets::ecc::FixedPointShort

source · []
pub struct FixedPointShort<C: CurveAffine, EccChip: EccInstructions<C>> { /* private fields */ }
Expand description

A constant elliptic curve point over the given curve, used in scalar multiplication with a short signed exponent

-

Implementations

Returns [by] self.

-

Wraps the given fixed base (obtained directly from an instruction) in a gadget.

-

Trait Implementations

Returns a copy of the value. Read more

+

Implementations

Returns [by] self.

+

Wraps the given fixed base (obtained directly from an instruction) in a gadget.

+

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

+

Formats the value using the given formatter. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

diff --git a/rustdoc/latest/halo2_gadgets/ecc/struct.NonIdentityPoint.html b/rustdoc/latest/halo2_gadgets/ecc/struct.NonIdentityPoint.html index 689b34e6..273c8734 100644 --- a/rustdoc/latest/halo2_gadgets/ecc/struct.NonIdentityPoint.html +++ b/rustdoc/latest/halo2_gadgets/ecc/struct.NonIdentityPoint.html @@ -19,23 +19,23 @@
pub struct NonIdentityPoint<C: CurveAffine, EccChip: EccInstructions<C>> { /* private fields */ }
Expand description

A non-identity elliptic curve point over the given curve.

-

Implementations

Constructs a new point with the given value.

-

Constrains this point to be equal in value to another point.

-

Returns the inner point.

-

Extracts the x-coordinate of a point.

-

Wraps the given point (obtained directly from an instruction) in a gadget.

-

Returns self + other using complete addition.

-

Returns self + other using incomplete addition. +

Struct halo2_gadgets::ecc::NonIdentityPoint

source · []
pub struct NonIdentityPoint<C: CurveAffine, EccChip: EccInstructions<C>> { /* private fields */ }
Expand description

A non-identity elliptic curve point over the given curve.

+

Implementations

Constructs a new point with the given value.

+

Constrains this point to be equal in value to another point.

+

Returns the inner point.

+

Extracts the x-coordinate of a point.

+

Wraps the given point (obtained directly from an instruction) in a gadget.

+

Returns self + other using complete addition.

+

Returns self + other using incomplete addition. The arguments are type-constrained not to be the identity point, and since exceptional cases return an Error, the result also cannot be the identity point.

-

Returns [by] self.

-

Trait Implementations

Returns a copy of the value. Read more

+

Returns [by] self.

+

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Converts to this type from the input type.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Formats the value using the given formatter. Read more

+

Converts to this type from the input type.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Converts self into T using Into<T>. Read more

diff --git a/rustdoc/latest/halo2_gadgets/ecc/struct.Point.html b/rustdoc/latest/halo2_gadgets/ecc/struct.Point.html index 23948708..b8d82d9d 100644 --- a/rustdoc/latest/halo2_gadgets/ecc/struct.Point.html +++ b/rustdoc/latest/halo2_gadgets/ecc/struct.Point.html @@ -19,18 +19,18 @@
pub struct Point<C: CurveAffine, EccChip: EccInstructions<C> + Clone + Debug + Eq> { /* private fields */ }
Expand description

An elliptic curve point over the given curve.

-

Implementations

Constructs a new point with the given value.

-

Constrains this point to be equal in value to another point.

-

Returns the inner point.

-

Extracts the x-coordinate of a point.

-

Wraps the given point (obtained directly from an instruction) in a gadget.

-

Returns self + other using complete addition.

-

Trait Implementations

Returns a copy of the value. Read more

+

Struct halo2_gadgets::ecc::Point

source · []
pub struct Point<C: CurveAffine, EccChip: EccInstructions<C> + Clone + Debug + Eq> { /* private fields */ }
Expand description

An elliptic curve point over the given curve.

+

Implementations

Constructs a new point with the given value.

+

Constrains this point to be equal in value to another point.

+

Returns the inner point.

+

Extracts the x-coordinate of a point.

+

Wraps the given point (obtained directly from an instruction) in a gadget.

+

Returns self + other using complete addition.

+

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Converts to this type from the input type.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Formats the value using the given formatter. Read more

+

Converts to this type from the input type.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Converts self into T using Into<T>. Read more

diff --git a/rustdoc/latest/halo2_gadgets/ecc/struct.ScalarFixed.html b/rustdoc/latest/halo2_gadgets/ecc/struct.ScalarFixed.html index cf250305..a1b7ca24 100644 --- a/rustdoc/latest/halo2_gadgets/ecc/struct.ScalarFixed.html +++ b/rustdoc/latest/halo2_gadgets/ecc/struct.ScalarFixed.html @@ -19,8 +19,8 @@
pub struct ScalarFixed<C: CurveAffine, EccChip: EccInstructions<C>> { /* private fields */ }
Expand description

A full-width element of the given elliptic curve’s scalar field, to be used for fixed-base scalar mul.

-

Trait Implementations

Formats the value using the given formatter. Read more

+

Struct halo2_gadgets::ecc::ScalarFixed

source · []
pub struct ScalarFixed<C: CurveAffine, EccChip: EccInstructions<C>> { /* private fields */ }
Expand description

A full-width element of the given elliptic curve’s scalar field, to be used for fixed-base scalar mul.

+

Trait Implementations

Formats the value using the given formatter. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

diff --git a/rustdoc/latest/halo2_gadgets/ecc/struct.ScalarFixedShort.html b/rustdoc/latest/halo2_gadgets/ecc/struct.ScalarFixedShort.html index 73fd46e3..d36a052a 100644 --- a/rustdoc/latest/halo2_gadgets/ecc/struct.ScalarFixedShort.html +++ b/rustdoc/latest/halo2_gadgets/ecc/struct.ScalarFixedShort.html @@ -19,8 +19,8 @@
pub struct ScalarFixedShort<C: CurveAffine, EccChip: EccInstructions<C>> { /* private fields */ }
Expand description

A signed short element of the given elliptic curve’s scalar field, to be used for fixed-base scalar mul.

-

Trait Implementations

Formats the value using the given formatter. Read more

+

Struct halo2_gadgets::ecc::ScalarFixedShort

source · []
pub struct ScalarFixedShort<C: CurveAffine, EccChip: EccInstructions<C>> { /* private fields */ }
Expand description

A signed short element of the given elliptic curve’s scalar field, to be used for fixed-base scalar mul.

+

Trait Implementations

Formats the value using the given formatter. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

diff --git a/rustdoc/latest/halo2_gadgets/ecc/struct.ScalarVar.html b/rustdoc/latest/halo2_gadgets/ecc/struct.ScalarVar.html index bf1c1711..e89c424d 100644 --- a/rustdoc/latest/halo2_gadgets/ecc/struct.ScalarVar.html +++ b/rustdoc/latest/halo2_gadgets/ecc/struct.ScalarVar.html @@ -18,8 +18,8 @@

pub struct ScalarVar<C: CurveAffine, EccChip: EccInstructions<C>> { /* private fields */ }
Expand description

An element of the given elliptic curve’s base field, that is used as a scalar +

ScalarVar

pub struct ScalarVar<C: CurveAffine, EccChip: EccInstructions<C>> { /* private fields */ }
Expand description

An element of the given elliptic curve’s base field, that is used as a scalar in variable-base scalar mul.

It is not true in general that a scalar field element fits in a curve’s base field, and in particular it is untrue for the Pallas curve, whose @@ -28,7 +28,11 @@ scalar field Fq is larger than its base field Fp.

is in deriving diversified addresses [ivk] g_d, and ivk is guaranteed to be in the base field of the curve. (See non-normative notes in https://zips.z.cash/protocol/nu5.pdf#orchardkeycomponents.)

-

Trait Implementations

Formats the value using the given formatter. Read more

+

Implementations

Witnesses the given full-width scalar.

+

Depending on the EccChip implementation, this may either witness the scalar +immediately, or delay witnessing until its first use in NonIdentityPoint::mul.

+

Constructs a scalar from an existing base-field element.

+

Trait Implementations

Formats the value using the given formatter. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

diff --git a/rustdoc/latest/halo2_gadgets/ecc/struct.X.html b/rustdoc/latest/halo2_gadgets/ecc/struct.X.html index 0aa87627..aaa0bb3e 100644 --- a/rustdoc/latest/halo2_gadgets/ecc/struct.X.html +++ b/rustdoc/latest/halo2_gadgets/ecc/struct.X.html @@ -19,11 +19,11 @@
pub struct X<C: CurveAffine, EccChip: EccInstructions<C>> { /* private fields */ }
Expand description

The affine short Weierstrass x-coordinate of an elliptic curve point over the +

Struct halo2_gadgets::ecc::X

source · []
pub struct X<C: CurveAffine, EccChip: EccInstructions<C>> { /* private fields */ }
Expand description

The affine short Weierstrass x-coordinate of an elliptic curve point over the given curve.

-

Implementations

Wraps the given x-coordinate (obtained directly from an instruction) in a gadget.

-

Returns the inner x-coordinate.

-

Trait Implementations

Formats the value using the given formatter. Read more

+

Implementations

Wraps the given x-coordinate (obtained directly from an instruction) in a gadget.

+

Returns the inner x-coordinate.

+

Trait Implementations

Formats the value using the given formatter. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

diff --git a/rustdoc/latest/halo2_gadgets/ecc/trait.BaseFitsInScalarInstructions.html b/rustdoc/latest/halo2_gadgets/ecc/trait.BaseFitsInScalarInstructions.html new file mode 100644 index 00000000..ee4a73be --- /dev/null +++ b/rustdoc/latest/halo2_gadgets/ecc/trait.BaseFitsInScalarInstructions.html @@ -0,0 +1,29 @@ +BaseFitsInScalarInstructions in halo2_gadgets::ecc - Rust + + + + + +
pub trait BaseFitsInScalarInstructions<C: CurveAffine>: EccInstructions<C> {
+    fn scalar_var_from_base(
        &self,
        layouter: &mut impl Layouter<C::Base>,
        base: &Self::Var
    ) -> Result<Self::ScalarVar, Error>; +}
Expand description

Instructions that can be implemented for a curve whose base field fits into +its scalar field.

+

Required Methods

Converts a base field element that exists as a variable in the circuit +into a scalar to be used in variable-base scalar multiplication.

+

Implementors

+ \ No newline at end of file diff --git a/rustdoc/latest/halo2_gadgets/ecc/trait.EccInstructions.html b/rustdoc/latest/halo2_gadgets/ecc/trait.EccInstructions.html index ff79f187..37093dd3 100644 --- a/rustdoc/latest/halo2_gadgets/ecc/trait.EccInstructions.html +++ b/rustdoc/latest/halo2_gadgets/ecc/trait.EccInstructions.html @@ -18,8 +18,8 @@

pub trait EccInstructions<C: CurveAffine>: Chip<C::Base> + UtilitiesInstructions<C::Base> + Clone + Debug + Eq {
+        

EccInstructions

pub trait EccInstructions<C: CurveAffine>: Chip<C::Base> + UtilitiesInstructions<C::Base> + Clone + Debug + Eq {
     type ScalarVar: Clone + Debug;
     type ScalarFixed: Clone + Debug;
     type ScalarFixedShort: Clone + Debug;
@@ -31,52 +31,49 @@
     fn constrain_equal(
        &self,
        layouter: &mut impl Layouter<C::Base>,
        a: &Self::Point,
        b: &Self::Point
    ) -> Result<(), Error>; fn witness_point(
        &self,
        layouter: &mut impl Layouter<C::Base>,
        value: Option<C>
    ) -> Result<Self::Point, Error>; fn witness_point_non_id(
        &self,
        layouter: &mut impl Layouter<C::Base>,
        value: Option<C>
    ) -> Result<Self::NonIdentityPoint, Error>; + fn witness_scalar_var(
        &self,
        layouter: &mut impl Layouter<C::Base>,
        value: Option<C::Scalar>
    ) -> Result<Self::ScalarVar, Error>; fn extract_p<Point: Into<Self::Point> + Clone>(point: &Point) -> Self::X; fn add_incomplete(
        &self,
        layouter: &mut impl Layouter<C::Base>,
        a: &Self::NonIdentityPoint,
        b: &Self::NonIdentityPoint
    ) -> Result<Self::NonIdentityPoint, Error>; fn add<A: Into<Self::Point> + Clone, B: Into<Self::Point> + Clone>(
        &self,
        layouter: &mut impl Layouter<C::Base>,
        a: &A,
        b: &B
    ) -> Result<Self::Point, Error>; - fn mul(
        &self,
        layouter: &mut impl Layouter<C::Base>,
        scalar: &Self::Var,
        base: &Self::NonIdentityPoint
    ) -> Result<(Self::Point, Self::ScalarVar), Error>; + fn mul(
        &self,
        layouter: &mut impl Layouter<C::Base>,
        scalar: &Self::ScalarVar,
        base: &Self::NonIdentityPoint
    ) -> Result<(Self::Point, Self::ScalarVar), Error>; fn mul_fixed(
        &self,
        layouter: &mut impl Layouter<C::Base>,
        scalar: Option<C::Scalar>,
        base: &<Self::FixedPoints as FixedPoints<C>>::FullScalar
    ) -> Result<(Self::Point, Self::ScalarFixed), Error>; fn mul_fixed_short(
        &self,
        layouter: &mut impl Layouter<C::Base>,
        magnitude_sign: (Self::Var, Self::Var),
        base: &<Self::FixedPoints as FixedPoints<C>>::ShortScalar
    ) -> Result<(Self::Point, Self::ScalarFixedShort), Error>; fn mul_fixed_base_field_elem(
        &self,
        layouter: &mut impl Layouter<C::Base>,
        base_field_elem: Self::Var,
        base: &<Self::FixedPoints as FixedPoints<C>>::Base
    ) -> Result<Self::Point, Error>; }
Expand description

The set of circuit instructions required to use the ECC gadgets.

-

Required Associated Types

Variable representing an element of the elliptic curve’s base field, that -is used as a scalar in variable-base scalar mul.

-

It is not true in general that a scalar field element fits in a curve’s -base field, and in particular it is untrue for the Pallas curve, whose -scalar field Fq is larger than its base field Fp.

-

However, the only use of variable-base scalar mul in the Orchard protocol -is in deriving diversified addresses [ivk] g_d, and ivk is guaranteed -to be in the base field of the curve. (See non-normative notes in -https://zips.z.cash/protocol/nu5.pdf#orchardkeycomponents.)

-

Variable representing a full-width element of the elliptic curve’s +

Required Associated Types

Variable representing a scalar used in variable-base scalar mul.

+

This type is treated as a full-width scalar. However, if Self implements +BaseFitsInScalarInstructions then this may also be constructed from an element +of the base field.

+

Variable representing a full-width element of the elliptic curve’s scalar field, to be used for fixed-base scalar mul.

-

Variable representing a signed short element of the elliptic curve’s +

Variable representing a signed short element of the elliptic curve’s scalar field, to be used for fixed-base scalar mul.

A ScalarFixedShort must be in the range [-(2^64 - 1), 2^64 - 1].

-

Variable representing an elliptic curve point.

-

Variable representing a non-identity elliptic curve point.

-

Variable representing the affine short Weierstrass x-coordinate of an +

Variable representing an elliptic curve point.

+

Variable representing a non-identity elliptic curve point.

+

Variable representing the affine short Weierstrass x-coordinate of an elliptic curve point.

-

Enumeration of the set of fixed bases to be used in scalar mul. +

Enumeration of the set of fixed bases to be used in scalar mul. TODO: When associated consts can be used as const generics, introduce Self::NUM_WINDOWS, Self::NUM_WINDOWS_BASE_FIELD, Self::NUM_WINDOWS_SHORT and use them to differentiate FixedPoints types.

-

Required Methods

Constrains point a to be equal in value to point b.

-

Witnesses the given point as a private input to the circuit. +

Required Methods

Constrains point a to be equal in value to point b.

+

Witnesses the given point as a private input to the circuit. This allows the point to be the identity, mapped to (0, 0) in affine coordinates.

-

Witnesses the given point as a private input to the circuit. +

Witnesses the given point as a private input to the circuit. This returns an error if the point is the identity.

-

Extracts the x-coordinate of a point.

-

Performs incomplete point addition, returning a + b.

+

Witnesses a full-width scalar to be used in variable-base multiplication.

+

Extracts the x-coordinate of a point.

+

Performs incomplete point addition, returning a + b.

This returns an error in exceptional cases.

-

Performs complete point addition, returning a + b.

-

Performs variable-base scalar multiplication, returning [scalar] base.

-

Performs fixed-base scalar multiplication using a full-width scalar, returning [scalar] base.

-

Performs fixed-base scalar multiplication using a short signed scalar, returning +

Performs complete point addition, returning a + b.

+

Performs variable-base scalar multiplication, returning [scalar] base.

+

Performs fixed-base scalar multiplication using a full-width scalar, returning [scalar] base.

+

Performs fixed-base scalar multiplication using a short signed scalar, returning [magnitude * sign] base.

-

Performs fixed-base scalar multiplication using a base field element as the scalar. +

Performs fixed-base scalar multiplication using a base field element as the scalar. In the current implementation, this base field element must be output from another instruction.

-

Implementors

+

Implementors

\ No newline at end of file diff --git a/rustdoc/latest/halo2_gadgets/ecc/trait.FixedPoints.html b/rustdoc/latest/halo2_gadgets/ecc/trait.FixedPoints.html index 93ddf9bb..125f8b7e 100644 --- a/rustdoc/latest/halo2_gadgets/ecc/trait.FixedPoints.html +++ b/rustdoc/latest/halo2_gadgets/ecc/trait.FixedPoints.html @@ -19,13 +19,13 @@
pub trait FixedPoints<C: CurveAffine>: Debug + Eq + Clone {
+    

Trait halo2_gadgets::ecc::FixedPoints

source · []
pub trait FixedPoints<C: CurveAffine>: Debug + Eq + Clone {
     type FullScalar: Debug + Eq + Clone;
     type ShortScalar: Debug + Eq + Clone;
     type Base: Debug + Eq + Clone;
 }
Expand description

Defines the fixed points for a given instantiation of the ECC chip.

-

Required Associated Types

Fixed points that can be used with full-width scalar multiplication.

-

Fixed points that can be used with short scalar multiplication.

-

Fixed points that can be multiplied by base field elements.

+

Required Associated Types

Fixed points that can be used with full-width scalar multiplication.

+

Fixed points that can be used with short scalar multiplication.

+

Fixed points that can be multiplied by base field elements.

Implementors

\ No newline at end of file diff --git a/rustdoc/latest/implementors/core/clone/trait.Clone.js b/rustdoc/latest/implementors/core/clone/trait.Clone.js index e2f82671..0e8e94d2 100644 --- a/rustdoc/latest/implementors/core/clone/trait.Clone.js +++ b/rustdoc/latest/implementors/core/clone/trait.Clone.js @@ -1,4 +1,4 @@ (function() {var implementors = {}; -implementors["halo2_gadgets"] = [{"text":"impl Clone for EccPoint","synthetic":false,"types":["halo2_gadgets::ecc::chip::EccPoint"]},{"text":"impl Clone for NonIdentityEccPoint","synthetic":false,"types":["halo2_gadgets::ecc::chip::NonIdentityEccPoint"]},{"text":"impl<FixedPoints: Clone + FixedPoints<Affine>> Clone for EccConfig<FixedPoints>","synthetic":false,"types":["halo2_gadgets::ecc::chip::EccConfig"]},{"text":"impl<FixedPoints: Clone + FixedPoints<Affine>> Clone for EccChip<FixedPoints>","synthetic":false,"types":["halo2_gadgets::ecc::chip::EccChip"]},{"text":"impl Clone for EccScalarFixed","synthetic":false,"types":["halo2_gadgets::ecc::chip::EccScalarFixed"]},{"text":"impl Clone for EccScalarFixedShort","synthetic":false,"types":["halo2_gadgets::ecc::chip::EccScalarFixedShort"]},{"text":"impl<C: Clone + CurveAffine, EccChip: Clone + EccInstructions<C>> Clone for NonIdentityPoint<C, EccChip> where
    EccChip::NonIdentityPoint: Clone
","synthetic":false,"types":["halo2_gadgets::ecc::NonIdentityPoint"]},{"text":"impl<C: Clone + CurveAffine, EccChip: Clone + EccInstructions<C> + Clone + Debug + Eq> Clone for Point<C, EccChip> where
    EccChip::Point: Clone
","synthetic":false,"types":["halo2_gadgets::ecc::Point"]},{"text":"impl<C: Clone + CurveAffine, EccChip: Clone + EccInstructions<C>> Clone for FixedPoint<C, EccChip> where
    EccChip::FixedPoints: Clone
","synthetic":false,"types":["halo2_gadgets::ecc::FixedPoint"]},{"text":"impl<C: Clone + CurveAffine, EccChip: Clone + EccInstructions<C>> Clone for FixedPointBaseField<C, EccChip> where
    EccChip::FixedPoints: Clone
","synthetic":false,"types":["halo2_gadgets::ecc::FixedPointBaseField"]},{"text":"impl<C: Clone + CurveAffine, EccChip: Clone + EccInstructions<C>> Clone for FixedPointShort<C, EccChip> where
    EccChip::FixedPoints: Clone
","synthetic":false,"types":["halo2_gadgets::ecc::FixedPointShort"]},{"text":"impl<F: Clone + FieldExt, const WIDTH: usize, const RATE: usize> Clone for Pow5Config<F, WIDTH, RATE>","synthetic":false,"types":["halo2_gadgets::poseidon::pow5::Pow5Config"]},{"text":"impl<F: Clone + FieldExt> Clone for StateWord<F>","synthetic":false,"types":["halo2_gadgets::poseidon::pow5::StateWord"]},{"text":"impl<F: Clone + Field> Clone for PaddedWord<F>","synthetic":false,"types":["halo2_gadgets::poseidon::PaddedWord"]},{"text":"impl Clone for BlockWord","synthetic":false,"types":["halo2_gadgets::sha256::table16::BlockWord"]},{"text":"impl Clone for Table16Config","synthetic":false,"types":["halo2_gadgets::sha256::table16::Table16Config"]},{"text":"impl Clone for Table16Chip","synthetic":false,"types":["halo2_gadgets::sha256::table16::Table16Chip"]},{"text":"impl<Hash: Clone, Commit: Clone, F: Clone> Clone for SinsemillaConfig<Hash, Commit, F> where
    Hash: HashDomains<Affine>,
    F: FixedPoints<Affine>,
    Commit: CommitDomains<Affine, F, Hash>, 
","synthetic":false,"types":["halo2_gadgets::sinsemilla::chip::SinsemillaConfig"]},{"text":"impl<Hash: Clone, Commit: Clone, Fixed: Clone> Clone for SinsemillaChip<Hash, Commit, Fixed> where
    Hash: HashDomains<Affine>,
    Fixed: FixedPoints<Affine>,
    Commit: CommitDomains<Affine, Fixed, Hash>, 
","synthetic":false,"types":["halo2_gadgets::sinsemilla::chip::SinsemillaChip"]},{"text":"impl<Hash: Clone, Commit: Clone, Fixed: Clone> Clone for MerkleConfig<Hash, Commit, Fixed> where
    Hash: HashDomains<Affine>,
    Fixed: FixedPoints<Affine>,
    Commit: CommitDomains<Affine, Fixed, Hash>, 
","synthetic":false,"types":["halo2_gadgets::sinsemilla::merkle::chip::MerkleConfig"]},{"text":"impl<Hash: Clone, Commit: Clone, Fixed: Clone> Clone for MerkleChip<Hash, Commit, Fixed> where
    Hash: HashDomains<Affine>,
    Fixed: FixedPoints<Affine>,
    Commit: CommitDomains<Affine, Fixed, Hash>, 
","synthetic":false,"types":["halo2_gadgets::sinsemilla::merkle::chip::MerkleChip"]},{"text":"impl<C: Clone + CurveAffine, MerkleChip: Clone, const PATH_LENGTH: usize, const K: usize, const MAX_WORDS: usize> Clone for MerklePath<C, MerkleChip, PATH_LENGTH, K, MAX_WORDS> where
    MerkleChip: MerkleInstructions<C, PATH_LENGTH, K, MAX_WORDS> + Clone,
    MerkleChip::HashDomains: Clone,
    C::Base: Clone
","synthetic":false,"types":["halo2_gadgets::sinsemilla::merkle::MerklePath"]},{"text":"impl<C: Clone + CurveAffine, SinsemillaChip: Clone, const K: usize, const MAX_WORDS: usize> Clone for Message<C, SinsemillaChip, K, MAX_WORDS> where
    SinsemillaChip: SinsemillaInstructions<C, K, MAX_WORDS> + Clone + Debug + Eq,
    SinsemillaChip::Message: Clone
","synthetic":false,"types":["halo2_gadgets::sinsemilla::Message"]},{"text":"impl<C: Clone + CurveAffine, SinsemillaChip: Clone, const K: usize, const MAX_WORDS: usize> Clone for MessagePiece<C, SinsemillaChip, K, MAX_WORDS> where
    SinsemillaChip: SinsemillaInstructions<C, K, MAX_WORDS> + Clone + Debug + Eq,
    SinsemillaChip::MessagePiece: Clone
","synthetic":false,"types":["halo2_gadgets::sinsemilla::MessagePiece"]},{"text":"impl<F: Clone> Clone for CondSwapChip<F>","synthetic":false,"types":["halo2_gadgets::utilities::cond_swap::CondSwapChip"]},{"text":"impl Clone for CondSwapConfig","synthetic":false,"types":["halo2_gadgets::utilities::cond_swap::CondSwapConfig"]},{"text":"impl<F: Clone + FieldExt + PrimeFieldBits, const WINDOW_NUM_BITS: usize> Clone for RunningSumConfig<F, WINDOW_NUM_BITS>","synthetic":false,"types":["halo2_gadgets::utilities::decompose_running_sum::RunningSumConfig"]},{"text":"impl<F: Clone + FieldExt + PrimeFieldBits, const K: usize> Clone for LookupRangeCheckConfig<F, K>","synthetic":false,"types":["halo2_gadgets::utilities::lookup_range_check::LookupRangeCheckConfig"]},{"text":"impl<F: Clone + Field, T: Clone + FieldValue<F>> Clone for RangeConstrained<F, T>","synthetic":false,"types":["halo2_gadgets::utilities::RangeConstrained"]},{"text":"impl<const L: usize> Clone for ConstantLength<L>","synthetic":false,"types":["halo2_gadgets::primitives::poseidon::ConstantLength"]},{"text":"impl Clone for HashDomain","synthetic":false,"types":["halo2_gadgets::primitives::sinsemilla::HashDomain"]}]; +implementors["halo2_gadgets"] = [{"text":"impl Clone for EccPoint","synthetic":false,"types":["halo2_gadgets::ecc::chip::EccPoint"]},{"text":"impl Clone for NonIdentityEccPoint","synthetic":false,"types":["halo2_gadgets::ecc::chip::NonIdentityEccPoint"]},{"text":"impl<FixedPoints: Clone + FixedPoints<Affine>> Clone for EccConfig<FixedPoints>","synthetic":false,"types":["halo2_gadgets::ecc::chip::EccConfig"]},{"text":"impl<FixedPoints: Clone + FixedPoints<Affine>> Clone for EccChip<FixedPoints>","synthetic":false,"types":["halo2_gadgets::ecc::chip::EccChip"]},{"text":"impl Clone for EccScalarFixed","synthetic":false,"types":["halo2_gadgets::ecc::chip::EccScalarFixed"]},{"text":"impl Clone for EccScalarFixedShort","synthetic":false,"types":["halo2_gadgets::ecc::chip::EccScalarFixedShort"]},{"text":"impl Clone for ScalarVar","synthetic":false,"types":["halo2_gadgets::ecc::chip::ScalarVar"]},{"text":"impl<C: Clone + CurveAffine, EccChip: Clone + EccInstructions<C>> Clone for NonIdentityPoint<C, EccChip> where
    EccChip::NonIdentityPoint: Clone
","synthetic":false,"types":["halo2_gadgets::ecc::NonIdentityPoint"]},{"text":"impl<C: Clone + CurveAffine, EccChip: Clone + EccInstructions<C> + Clone + Debug + Eq> Clone for Point<C, EccChip> where
    EccChip::Point: Clone
","synthetic":false,"types":["halo2_gadgets::ecc::Point"]},{"text":"impl<C: Clone + CurveAffine, EccChip: Clone + EccInstructions<C>> Clone for FixedPoint<C, EccChip> where
    EccChip::FixedPoints: Clone
","synthetic":false,"types":["halo2_gadgets::ecc::FixedPoint"]},{"text":"impl<C: Clone + CurveAffine, EccChip: Clone + EccInstructions<C>> Clone for FixedPointBaseField<C, EccChip> where
    EccChip::FixedPoints: Clone
","synthetic":false,"types":["halo2_gadgets::ecc::FixedPointBaseField"]},{"text":"impl<C: Clone + CurveAffine, EccChip: Clone + EccInstructions<C>> Clone for FixedPointShort<C, EccChip> where
    EccChip::FixedPoints: Clone
","synthetic":false,"types":["halo2_gadgets::ecc::FixedPointShort"]},{"text":"impl<F: Clone + FieldExt, const WIDTH: usize, const RATE: usize> Clone for Pow5Config<F, WIDTH, RATE>","synthetic":false,"types":["halo2_gadgets::poseidon::pow5::Pow5Config"]},{"text":"impl<F: Clone + FieldExt> Clone for StateWord<F>","synthetic":false,"types":["halo2_gadgets::poseidon::pow5::StateWord"]},{"text":"impl<F: Clone + Field> Clone for PaddedWord<F>","synthetic":false,"types":["halo2_gadgets::poseidon::PaddedWord"]},{"text":"impl Clone for BlockWord","synthetic":false,"types":["halo2_gadgets::sha256::table16::BlockWord"]},{"text":"impl Clone for Table16Config","synthetic":false,"types":["halo2_gadgets::sha256::table16::Table16Config"]},{"text":"impl Clone for Table16Chip","synthetic":false,"types":["halo2_gadgets::sha256::table16::Table16Chip"]},{"text":"impl<Hash: Clone, Commit: Clone, F: Clone> Clone for SinsemillaConfig<Hash, Commit, F> where
    Hash: HashDomains<Affine>,
    F: FixedPoints<Affine>,
    Commit: CommitDomains<Affine, F, Hash>, 
","synthetic":false,"types":["halo2_gadgets::sinsemilla::chip::SinsemillaConfig"]},{"text":"impl<Hash: Clone, Commit: Clone, Fixed: Clone> Clone for SinsemillaChip<Hash, Commit, Fixed> where
    Hash: HashDomains<Affine>,
    Fixed: FixedPoints<Affine>,
    Commit: CommitDomains<Affine, Fixed, Hash>, 
","synthetic":false,"types":["halo2_gadgets::sinsemilla::chip::SinsemillaChip"]},{"text":"impl<Hash: Clone, Commit: Clone, Fixed: Clone> Clone for MerkleConfig<Hash, Commit, Fixed> where
    Hash: HashDomains<Affine>,
    Fixed: FixedPoints<Affine>,
    Commit: CommitDomains<Affine, Fixed, Hash>, 
","synthetic":false,"types":["halo2_gadgets::sinsemilla::merkle::chip::MerkleConfig"]},{"text":"impl<Hash: Clone, Commit: Clone, Fixed: Clone> Clone for MerkleChip<Hash, Commit, Fixed> where
    Hash: HashDomains<Affine>,
    Fixed: FixedPoints<Affine>,
    Commit: CommitDomains<Affine, Fixed, Hash>, 
","synthetic":false,"types":["halo2_gadgets::sinsemilla::merkle::chip::MerkleChip"]},{"text":"impl<C: Clone + CurveAffine, MerkleChip: Clone, const PATH_LENGTH: usize, const K: usize, const MAX_WORDS: usize> Clone for MerklePath<C, MerkleChip, PATH_LENGTH, K, MAX_WORDS> where
    MerkleChip: MerkleInstructions<C, PATH_LENGTH, K, MAX_WORDS> + Clone,
    MerkleChip::HashDomains: Clone,
    C::Base: Clone
","synthetic":false,"types":["halo2_gadgets::sinsemilla::merkle::MerklePath"]},{"text":"impl<C: Clone + CurveAffine, SinsemillaChip: Clone, const K: usize, const MAX_WORDS: usize> Clone for Message<C, SinsemillaChip, K, MAX_WORDS> where
    SinsemillaChip: SinsemillaInstructions<C, K, MAX_WORDS> + Clone + Debug + Eq,
    SinsemillaChip::Message: Clone
","synthetic":false,"types":["halo2_gadgets::sinsemilla::Message"]},{"text":"impl<C: Clone + CurveAffine, SinsemillaChip: Clone, const K: usize, const MAX_WORDS: usize> Clone for MessagePiece<C, SinsemillaChip, K, MAX_WORDS> where
    SinsemillaChip: SinsemillaInstructions<C, K, MAX_WORDS> + Clone + Debug + Eq,
    SinsemillaChip::MessagePiece: Clone
","synthetic":false,"types":["halo2_gadgets::sinsemilla::MessagePiece"]},{"text":"impl<F: Clone> Clone for CondSwapChip<F>","synthetic":false,"types":["halo2_gadgets::utilities::cond_swap::CondSwapChip"]},{"text":"impl Clone for CondSwapConfig","synthetic":false,"types":["halo2_gadgets::utilities::cond_swap::CondSwapConfig"]},{"text":"impl<F: Clone + FieldExt + PrimeFieldBits, const WINDOW_NUM_BITS: usize> Clone for RunningSumConfig<F, WINDOW_NUM_BITS>","synthetic":false,"types":["halo2_gadgets::utilities::decompose_running_sum::RunningSumConfig"]},{"text":"impl<F: Clone + FieldExt + PrimeFieldBits, const K: usize> Clone for LookupRangeCheckConfig<F, K>","synthetic":false,"types":["halo2_gadgets::utilities::lookup_range_check::LookupRangeCheckConfig"]},{"text":"impl<F: Clone + Field, T: Clone + FieldValue<F>> Clone for RangeConstrained<F, T>","synthetic":false,"types":["halo2_gadgets::utilities::RangeConstrained"]},{"text":"impl<const L: usize> Clone for ConstantLength<L>","synthetic":false,"types":["halo2_gadgets::primitives::poseidon::ConstantLength"]},{"text":"impl Clone for HashDomain","synthetic":false,"types":["halo2_gadgets::primitives::sinsemilla::HashDomain"]}]; implementors["halo2_proofs"] = [{"text":"impl Clone for RegionShape","synthetic":false,"types":["halo2_proofs::circuit::layouter::RegionShape"]},{"text":"impl Clone for RegionColumn","synthetic":false,"types":["halo2_proofs::circuit::layouter::RegionColumn"]},{"text":"impl Clone for RegionIndex","synthetic":false,"types":["halo2_proofs::circuit::RegionIndex"]},{"text":"impl Clone for RegionStart","synthetic":false,"types":["halo2_proofs::circuit::RegionStart"]},{"text":"impl Clone for Cell","synthetic":false,"types":["halo2_proofs::circuit::Cell"]},{"text":"impl<V: Clone, F: Clone + Field> Clone for AssignedCell<V, F>","synthetic":false,"types":["halo2_proofs::circuit::AssignedCell"]},{"text":"impl<F: Clone> Clone for Assigned<F>","synthetic":false,"types":["halo2_proofs::plonk::assigned::Assigned"]},{"text":"impl<C: Clone + ColumnType> Clone for Column<C>","synthetic":false,"types":["halo2_proofs::plonk::circuit::Column"]},{"text":"impl Clone for Advice","synthetic":false,"types":["halo2_proofs::plonk::circuit::Advice"]},{"text":"impl Clone for Fixed","synthetic":false,"types":["halo2_proofs::plonk::circuit::Fixed"]},{"text":"impl Clone for Instance","synthetic":false,"types":["halo2_proofs::plonk::circuit::Instance"]},{"text":"impl Clone for Any","synthetic":false,"types":["halo2_proofs::plonk::circuit::Any"]},{"text":"impl Clone for Selector","synthetic":false,"types":["halo2_proofs::plonk::circuit::Selector"]},{"text":"impl Clone for TableColumn","synthetic":false,"types":["halo2_proofs::plonk::circuit::TableColumn"]},{"text":"impl<F: Clone> Clone for Expression<F>","synthetic":false,"types":["halo2_proofs::plonk::circuit::Expression"]},{"text":"impl<F: Clone + Field> Clone for ConstraintSystem<F>","synthetic":false,"types":["halo2_proofs::plonk::circuit::ConstraintSystem"]},{"text":"impl<C: Clone + CurveAffine> Clone for VerifyingKey<C> where
    C::Scalar: Clone,
    C::Scalar: Clone
","synthetic":false,"types":["halo2_proofs::plonk::VerifyingKey"]},{"text":"impl<C: Clone + CurveAffine> Clone for ProvingKey<C> where
    C::Scalar: Clone,
    C::Scalar: Clone,
    C::Scalar: Clone,
    C::Scalar: Clone,
    C::Scalar: Clone,
    C::Scalar: Clone
","synthetic":false,"types":["halo2_proofs::plonk::ProvingKey"]},{"text":"impl<'a, C: Clone + CurveAffine> Clone for MSM<'a, C> where
    C::Scalar: Clone,
    C::Scalar: Clone,
    C::Scalar: Clone,
    C::Scalar: Clone
","synthetic":false,"types":["halo2_proofs::poly::commitment::msm::MSM"]},{"text":"impl<'a, C: Clone + CurveAffine, E: Clone + EncodedChallenge<C>> Clone for Guard<'a, C, E> where
    C::Scalar: Clone,
    C::Scalar: Clone
","synthetic":false,"types":["halo2_proofs::poly::commitment::verifier::Guard"]},{"text":"impl<C: Clone + CurveAffine, E: Clone + EncodedChallenge<C>> Clone for Accumulator<C, E>","synthetic":false,"types":["halo2_proofs::poly::commitment::verifier::Accumulator"]},{"text":"impl<C: Clone + CurveAffine> Clone for Params<C>","synthetic":false,"types":["halo2_proofs::poly::commitment::Params"]},{"text":"impl<F: Clone> Clone for Blind<F>","synthetic":false,"types":["halo2_proofs::poly::commitment::Blind"]},{"text":"impl<G: Clone + Group> Clone for EvaluationDomain<G> where
    G::Scalar: Clone,
    G::Scalar: Clone,
    G::Scalar: Clone,
    G::Scalar: Clone,
    G::Scalar: Clone,
    G::Scalar: Clone,
    G::Scalar: Clone,
    G::Scalar: Clone,
    G::Scalar: Clone,
    G::Scalar: Clone
","synthetic":false,"types":["halo2_proofs::poly::domain::EvaluationDomain"]},{"text":"impl<'a, C: Clone + CurveAffine> Clone for ProverQuery<'a, C> where
    C::Scalar: Clone,
    C::Scalar: Clone,
    C::Scalar: Clone
","synthetic":false,"types":["halo2_proofs::poly::multiopen::ProverQuery"]},{"text":"impl<'r, 'params: 'r, C: Clone + CurveAffine> Clone for VerifierQuery<'r, 'params, C> where
    C::Scalar: Clone,
    C::Scalar: Clone
","synthetic":false,"types":["halo2_proofs::poly::multiopen::VerifierQuery"]},{"text":"impl Clone for Coeff","synthetic":false,"types":["halo2_proofs::poly::Coeff"]},{"text":"impl Clone for LagrangeCoeff","synthetic":false,"types":["halo2_proofs::poly::LagrangeCoeff"]},{"text":"impl Clone for ExtendedLagrangeCoeff","synthetic":false,"types":["halo2_proofs::poly::ExtendedLagrangeCoeff"]},{"text":"impl<F: Clone, B: Clone> Clone for Polynomial<F, B>","synthetic":false,"types":["halo2_proofs::poly::Polynomial"]},{"text":"impl Clone for Rotation","synthetic":false,"types":["halo2_proofs::poly::Rotation"]},{"text":"impl<R: Clone + Read, C: Clone + CurveAffine, E: Clone + EncodedChallenge<C>> Clone for Blake2bRead<R, C, E>","synthetic":false,"types":["halo2_proofs::transcript::Blake2bRead"]},{"text":"impl<W: Clone + Write, C: Clone + CurveAffine, E: Clone + EncodedChallenge<C>> Clone for Blake2bWrite<W, C, E>","synthetic":false,"types":["halo2_proofs::transcript::Blake2bWrite"]},{"text":"impl<C: Clone + CurveAffine, T: Clone> Clone for ChallengeScalar<C, T> where
    C::Scalar: Clone
","synthetic":false,"types":["halo2_proofs::transcript::ChallengeScalar"]},{"text":"impl<C: Clone + CurveAffine> Clone for Challenge255<C>","synthetic":false,"types":["halo2_proofs::transcript::Challenge255"]},{"text":"impl Clone for Column","synthetic":false,"types":["halo2_proofs::dev::metadata::Column"]},{"text":"impl Clone for Region","synthetic":false,"types":["halo2_proofs::dev::metadata::Region"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/rustdoc/latest/implementors/core/fmt/trait.Debug.js b/rustdoc/latest/implementors/core/fmt/trait.Debug.js index 547a4e5f..c83d8a65 100644 --- a/rustdoc/latest/implementors/core/fmt/trait.Debug.js +++ b/rustdoc/latest/implementors/core/fmt/trait.Debug.js @@ -1,4 +1,4 @@ (function() {var implementors = {}; -implementors["halo2_gadgets"] = [{"text":"impl Debug for EccPoint","synthetic":false,"types":["halo2_gadgets::ecc::chip::EccPoint"]},{"text":"impl Debug for NonIdentityEccPoint","synthetic":false,"types":["halo2_gadgets::ecc::chip::NonIdentityEccPoint"]},{"text":"impl<FixedPoints: Debug + FixedPoints<Affine>> Debug for EccConfig<FixedPoints>","synthetic":false,"types":["halo2_gadgets::ecc::chip::EccConfig"]},{"text":"impl Debug for FullScalar","synthetic":false,"types":["halo2_gadgets::ecc::chip::FullScalar"]},{"text":"impl Debug for ShortScalar","synthetic":false,"types":["halo2_gadgets::ecc::chip::ShortScalar"]},{"text":"impl Debug for BaseFieldElem","synthetic":false,"types":["halo2_gadgets::ecc::chip::BaseFieldElem"]},{"text":"impl<FixedPoints: Debug + FixedPoints<Affine>> Debug for EccChip<FixedPoints>","synthetic":false,"types":["halo2_gadgets::ecc::chip::EccChip"]},{"text":"impl Debug for EccScalarFixed","synthetic":false,"types":["halo2_gadgets::ecc::chip::EccScalarFixed"]},{"text":"impl Debug for EccScalarFixedShort","synthetic":false,"types":["halo2_gadgets::ecc::chip::EccScalarFixedShort"]},{"text":"impl<C: Debug + CurveAffine, EccChip: Debug + EccInstructions<C>> Debug for ScalarVar<C, EccChip> where
    EccChip::ScalarVar: Debug
","synthetic":false,"types":["halo2_gadgets::ecc::ScalarVar"]},{"text":"impl<C: Debug + CurveAffine, EccChip: Debug + EccInstructions<C>> Debug for ScalarFixed<C, EccChip> where
    EccChip::ScalarFixed: Debug
","synthetic":false,"types":["halo2_gadgets::ecc::ScalarFixed"]},{"text":"impl<C: Debug + CurveAffine, EccChip: Debug + EccInstructions<C>> Debug for ScalarFixedShort<C, EccChip> where
    EccChip::ScalarFixedShort: Debug
","synthetic":false,"types":["halo2_gadgets::ecc::ScalarFixedShort"]},{"text":"impl<C: Debug + CurveAffine, EccChip: Debug + EccInstructions<C>> Debug for NonIdentityPoint<C, EccChip> where
    EccChip::NonIdentityPoint: Debug
","synthetic":false,"types":["halo2_gadgets::ecc::NonIdentityPoint"]},{"text":"impl<C: Debug + CurveAffine, EccChip: Debug + EccInstructions<C> + Clone + Debug + Eq> Debug for Point<C, EccChip> where
    EccChip::Point: Debug
","synthetic":false,"types":["halo2_gadgets::ecc::Point"]},{"text":"impl<C: Debug + CurveAffine, EccChip: Debug + EccInstructions<C>> Debug for X<C, EccChip> where
    EccChip::X: Debug
","synthetic":false,"types":["halo2_gadgets::ecc::X"]},{"text":"impl<C: Debug + CurveAffine, EccChip: Debug + EccInstructions<C>> Debug for FixedPoint<C, EccChip> where
    EccChip::FixedPoints: Debug
","synthetic":false,"types":["halo2_gadgets::ecc::FixedPoint"]},{"text":"impl<C: Debug + CurveAffine, EccChip: Debug + EccInstructions<C>> Debug for FixedPointBaseField<C, EccChip> where
    EccChip::FixedPoints: Debug
","synthetic":false,"types":["halo2_gadgets::ecc::FixedPointBaseField"]},{"text":"impl<C: Debug + CurveAffine, EccChip: Debug + EccInstructions<C>> Debug for FixedPointShort<C, EccChip> where
    EccChip::FixedPoints: Debug
","synthetic":false,"types":["halo2_gadgets::ecc::FixedPointShort"]},{"text":"impl<F: Debug + FieldExt, const WIDTH: usize, const RATE: usize> Debug for Pow5Config<F, WIDTH, RATE>","synthetic":false,"types":["halo2_gadgets::poseidon::pow5::Pow5Config"]},{"text":"impl<F: Debug + FieldExt, const WIDTH: usize, const RATE: usize> Debug for Pow5Chip<F, WIDTH, RATE>","synthetic":false,"types":["halo2_gadgets::poseidon::pow5::Pow5Chip"]},{"text":"impl<F: Debug + FieldExt> Debug for StateWord<F>","synthetic":false,"types":["halo2_gadgets::poseidon::pow5::StateWord"]},{"text":"impl<F: Debug + Field> Debug for PaddedWord<F>","synthetic":false,"types":["halo2_gadgets::poseidon::PaddedWord"]},{"text":"impl<F: Debug + FieldExt, PoseidonChip: Debug + PoseidonInstructions<F, S, T, RATE>, S: Debug + Spec<F, T, RATE>, const T: usize, const RATE: usize> Debug for Word<F, PoseidonChip, S, T, RATE> where
    PoseidonChip::Word: Debug
","synthetic":false,"types":["halo2_gadgets::poseidon::Word"]},{"text":"impl<F: Debug + FieldExt, PoseidonChip: Debug + PoseidonSpongeInstructions<F, S, D, T, RATE>, S: Debug + Spec<F, T, RATE>, M: Debug + SpongeMode, D: Debug + Domain<F, RATE>, const T: usize, const RATE: usize> Debug for Sponge<F, PoseidonChip, S, M, D, T, RATE> where
    PoseidonChip::Word: Debug
","synthetic":false,"types":["halo2_gadgets::poseidon::Sponge"]},{"text":"impl<F: Debug + FieldExt, PoseidonChip: Debug + PoseidonSpongeInstructions<F, S, D, T, RATE>, S: Debug + Spec<F, T, RATE>, D: Debug + Domain<F, RATE>, const T: usize, const RATE: usize> Debug for Hash<F, PoseidonChip, S, D, T, RATE>","synthetic":false,"types":["halo2_gadgets::poseidon::Hash"]},{"text":"impl Debug for BlockWord","synthetic":false,"types":["halo2_gadgets::sha256::table16::BlockWord"]},{"text":"impl Debug for Table16Config","synthetic":false,"types":["halo2_gadgets::sha256::table16::Table16Config"]},{"text":"impl Debug for Table16Chip","synthetic":false,"types":["halo2_gadgets::sha256::table16::Table16Chip"]},{"text":"impl<BlockWord: Debug> Debug for Sha256Digest<BlockWord>","synthetic":false,"types":["halo2_gadgets::sha256::Sha256Digest"]},{"text":"impl<F: Debug + FieldExt, CS: Debug + Sha256Instructions<F>> Debug for Sha256<F, CS> where
    CS::State: Debug,
    CS::BlockWord: Debug
","synthetic":false,"types":["halo2_gadgets::sha256::Sha256"]},{"text":"impl<Hash: Debug, Commit: Debug, F: Debug> Debug for SinsemillaConfig<Hash, Commit, F> where
    Hash: HashDomains<Affine>,
    F: FixedPoints<Affine>,
    Commit: CommitDomains<Affine, F, Hash>, 
","synthetic":false,"types":["halo2_gadgets::sinsemilla::chip::SinsemillaConfig"]},{"text":"impl<Hash: Debug, Commit: Debug, Fixed: Debug> Debug for SinsemillaChip<Hash, Commit, Fixed> where
    Hash: HashDomains<Affine>,
    Fixed: FixedPoints<Affine>,
    Commit: CommitDomains<Affine, Fixed, Hash>, 
","synthetic":false,"types":["halo2_gadgets::sinsemilla::chip::SinsemillaChip"]},{"text":"impl<Hash: Debug, Commit: Debug, Fixed: Debug> Debug for MerkleConfig<Hash, Commit, Fixed> where
    Hash: HashDomains<Affine>,
    Fixed: FixedPoints<Affine>,
    Commit: CommitDomains<Affine, Fixed, Hash>, 
","synthetic":false,"types":["halo2_gadgets::sinsemilla::merkle::chip::MerkleConfig"]},{"text":"impl<Hash: Debug, Commit: Debug, Fixed: Debug> Debug for MerkleChip<Hash, Commit, Fixed> where
    Hash: HashDomains<Affine>,
    Fixed: FixedPoints<Affine>,
    Commit: CommitDomains<Affine, Fixed, Hash>, 
","synthetic":false,"types":["halo2_gadgets::sinsemilla::merkle::chip::MerkleChip"]},{"text":"impl<C: Debug + CurveAffine, MerkleChip: Debug, const PATH_LENGTH: usize, const K: usize, const MAX_WORDS: usize> Debug for MerklePath<C, MerkleChip, PATH_LENGTH, K, MAX_WORDS> where
    MerkleChip: MerkleInstructions<C, PATH_LENGTH, K, MAX_WORDS> + Clone,
    MerkleChip::HashDomains: Debug,
    C::Base: Debug
","synthetic":false,"types":["halo2_gadgets::sinsemilla::merkle::MerklePath"]},{"text":"impl<C: Debug + CurveAffine, SinsemillaChip: Debug, const K: usize, const MAX_WORDS: usize> Debug for Message<C, SinsemillaChip, K, MAX_WORDS> where
    SinsemillaChip: SinsemillaInstructions<C, K, MAX_WORDS> + Clone + Debug + Eq,
    SinsemillaChip::Message: Debug
","synthetic":false,"types":["halo2_gadgets::sinsemilla::Message"]},{"text":"impl<C: Debug + CurveAffine, SinsemillaChip: Debug, const K: usize, const MAX_WORDS: usize> Debug for MessagePiece<C, SinsemillaChip, K, MAX_WORDS> where
    SinsemillaChip: SinsemillaInstructions<C, K, MAX_WORDS> + Clone + Debug + Eq,
    SinsemillaChip::MessagePiece: Debug
","synthetic":false,"types":["halo2_gadgets::sinsemilla::MessagePiece"]},{"text":"impl<C: Debug + CurveAffine, SinsemillaChip: Debug, EccChip: Debug, const K: usize, const MAX_WORDS: usize> Debug for HashDomain<C, SinsemillaChip, EccChip, K, MAX_WORDS> where
    SinsemillaChip: SinsemillaInstructions<C, K, MAX_WORDS> + Clone + Debug + Eq,
    EccChip: EccInstructions<C, NonIdentityPoint = <SinsemillaChip as SinsemillaInstructions<C, K, MAX_WORDS>>::NonIdentityPoint, FixedPoints = <SinsemillaChip as SinsemillaInstructions<C, K, MAX_WORDS>>::FixedPoints> + Clone + Debug + Eq
","synthetic":false,"types":["halo2_gadgets::sinsemilla::HashDomain"]},{"text":"impl<C: Debug + CurveAffine, SinsemillaChip: Debug, EccChip: Debug, const K: usize, const MAX_WORDS: usize> Debug for CommitDomain<C, SinsemillaChip, EccChip, K, MAX_WORDS> where
    SinsemillaChip: SinsemillaInstructions<C, K, MAX_WORDS> + Clone + Debug + Eq,
    EccChip: EccInstructions<C, NonIdentityPoint = <SinsemillaChip as SinsemillaInstructions<C, K, MAX_WORDS>>::NonIdentityPoint, FixedPoints = <SinsemillaChip as SinsemillaInstructions<C, K, MAX_WORDS>>::FixedPoints> + Clone + Debug + Eq
","synthetic":false,"types":["halo2_gadgets::sinsemilla::CommitDomain"]},{"text":"impl<F: Debug> Debug for CondSwapChip<F>","synthetic":false,"types":["halo2_gadgets::utilities::cond_swap::CondSwapChip"]},{"text":"impl Debug for CondSwapConfig","synthetic":false,"types":["halo2_gadgets::utilities::cond_swap::CondSwapConfig"]},{"text":"impl<F: Debug + FieldExt + PrimeFieldBits> Debug for RunningSum<F>","synthetic":false,"types":["halo2_gadgets::utilities::decompose_running_sum::RunningSum"]},{"text":"impl<F: Debug + FieldExt + PrimeFieldBits, const WINDOW_NUM_BITS: usize> Debug for RunningSumConfig<F, WINDOW_NUM_BITS>","synthetic":false,"types":["halo2_gadgets::utilities::decompose_running_sum::RunningSumConfig"]},{"text":"impl<F: Debug + FieldExt + PrimeFieldBits> Debug for RunningSum<F>","synthetic":false,"types":["halo2_gadgets::utilities::lookup_range_check::RunningSum"]},{"text":"impl<F: Debug + FieldExt + PrimeFieldBits, const K: usize> Debug for LookupRangeCheckConfig<F, K>","synthetic":false,"types":["halo2_gadgets::utilities::lookup_range_check::LookupRangeCheckConfig"]},{"text":"impl<F: Debug + Field, T: Debug + FieldValue<F>> Debug for RangeConstrained<F, T>","synthetic":false,"types":["halo2_gadgets::utilities::RangeConstrained"]},{"text":"impl Debug for P128Pow5T3","synthetic":false,"types":["halo2_gadgets::primitives::poseidon::p128pow5t3::P128Pow5T3"]},{"text":"impl<F: Debug, const RATE: usize> Debug for Absorbing<F, RATE>","synthetic":false,"types":["halo2_gadgets::primitives::poseidon::Absorbing"]},{"text":"impl<F: Debug, const RATE: usize> Debug for Squeezing<F, RATE>","synthetic":false,"types":["halo2_gadgets::primitives::poseidon::Squeezing"]},{"text":"impl<const L: usize> Debug for ConstantLength<L>","synthetic":false,"types":["halo2_gadgets::primitives::poseidon::ConstantLength"]},{"text":"impl<F: FieldExt, S: Spec<F, T, RATE>, D: Domain<F, RATE>, const T: usize, const RATE: usize> Debug for Hash<F, S, D, T, RATE>","synthetic":false,"types":["halo2_gadgets::primitives::poseidon::Hash"]},{"text":"impl Debug for HashDomain","synthetic":false,"types":["halo2_gadgets::primitives::sinsemilla::HashDomain"]},{"text":"impl Debug for CommitDomain","synthetic":false,"types":["halo2_gadgets::primitives::sinsemilla::CommitDomain"]}]; +implementors["halo2_gadgets"] = [{"text":"impl Debug for EccPoint","synthetic":false,"types":["halo2_gadgets::ecc::chip::EccPoint"]},{"text":"impl Debug for NonIdentityEccPoint","synthetic":false,"types":["halo2_gadgets::ecc::chip::NonIdentityEccPoint"]},{"text":"impl<FixedPoints: Debug + FixedPoints<Affine>> Debug for EccConfig<FixedPoints>","synthetic":false,"types":["halo2_gadgets::ecc::chip::EccConfig"]},{"text":"impl Debug for FullScalar","synthetic":false,"types":["halo2_gadgets::ecc::chip::FullScalar"]},{"text":"impl Debug for ShortScalar","synthetic":false,"types":["halo2_gadgets::ecc::chip::ShortScalar"]},{"text":"impl Debug for BaseFieldElem","synthetic":false,"types":["halo2_gadgets::ecc::chip::BaseFieldElem"]},{"text":"impl<FixedPoints: Debug + FixedPoints<Affine>> Debug for EccChip<FixedPoints>","synthetic":false,"types":["halo2_gadgets::ecc::chip::EccChip"]},{"text":"impl Debug for EccScalarFixed","synthetic":false,"types":["halo2_gadgets::ecc::chip::EccScalarFixed"]},{"text":"impl Debug for EccScalarFixedShort","synthetic":false,"types":["halo2_gadgets::ecc::chip::EccScalarFixedShort"]},{"text":"impl Debug for ScalarVar","synthetic":false,"types":["halo2_gadgets::ecc::chip::ScalarVar"]},{"text":"impl<C: Debug + CurveAffine, EccChip: Debug + EccInstructions<C>> Debug for ScalarVar<C, EccChip> where
    EccChip::ScalarVar: Debug
","synthetic":false,"types":["halo2_gadgets::ecc::ScalarVar"]},{"text":"impl<C: Debug + CurveAffine, EccChip: Debug + EccInstructions<C>> Debug for ScalarFixed<C, EccChip> where
    EccChip::ScalarFixed: Debug
","synthetic":false,"types":["halo2_gadgets::ecc::ScalarFixed"]},{"text":"impl<C: Debug + CurveAffine, EccChip: Debug + EccInstructions<C>> Debug for ScalarFixedShort<C, EccChip> where
    EccChip::ScalarFixedShort: Debug
","synthetic":false,"types":["halo2_gadgets::ecc::ScalarFixedShort"]},{"text":"impl<C: Debug + CurveAffine, EccChip: Debug + EccInstructions<C>> Debug for NonIdentityPoint<C, EccChip> where
    EccChip::NonIdentityPoint: Debug
","synthetic":false,"types":["halo2_gadgets::ecc::NonIdentityPoint"]},{"text":"impl<C: Debug + CurveAffine, EccChip: Debug + EccInstructions<C> + Clone + Debug + Eq> Debug for Point<C, EccChip> where
    EccChip::Point: Debug
","synthetic":false,"types":["halo2_gadgets::ecc::Point"]},{"text":"impl<C: Debug + CurveAffine, EccChip: Debug + EccInstructions<C>> Debug for X<C, EccChip> where
    EccChip::X: Debug
","synthetic":false,"types":["halo2_gadgets::ecc::X"]},{"text":"impl<C: Debug + CurveAffine, EccChip: Debug + EccInstructions<C>> Debug for FixedPoint<C, EccChip> where
    EccChip::FixedPoints: Debug
","synthetic":false,"types":["halo2_gadgets::ecc::FixedPoint"]},{"text":"impl<C: Debug + CurveAffine, EccChip: Debug + EccInstructions<C>> Debug for FixedPointBaseField<C, EccChip> where
    EccChip::FixedPoints: Debug
","synthetic":false,"types":["halo2_gadgets::ecc::FixedPointBaseField"]},{"text":"impl<C: Debug + CurveAffine, EccChip: Debug + EccInstructions<C>> Debug for FixedPointShort<C, EccChip> where
    EccChip::FixedPoints: Debug
","synthetic":false,"types":["halo2_gadgets::ecc::FixedPointShort"]},{"text":"impl<F: Debug + FieldExt, const WIDTH: usize, const RATE: usize> Debug for Pow5Config<F, WIDTH, RATE>","synthetic":false,"types":["halo2_gadgets::poseidon::pow5::Pow5Config"]},{"text":"impl<F: Debug + FieldExt, const WIDTH: usize, const RATE: usize> Debug for Pow5Chip<F, WIDTH, RATE>","synthetic":false,"types":["halo2_gadgets::poseidon::pow5::Pow5Chip"]},{"text":"impl<F: Debug + FieldExt> Debug for StateWord<F>","synthetic":false,"types":["halo2_gadgets::poseidon::pow5::StateWord"]},{"text":"impl<F: Debug + Field> Debug for PaddedWord<F>","synthetic":false,"types":["halo2_gadgets::poseidon::PaddedWord"]},{"text":"impl<F: Debug + FieldExt, PoseidonChip: Debug + PoseidonInstructions<F, S, T, RATE>, S: Debug + Spec<F, T, RATE>, const T: usize, const RATE: usize> Debug for Word<F, PoseidonChip, S, T, RATE> where
    PoseidonChip::Word: Debug
","synthetic":false,"types":["halo2_gadgets::poseidon::Word"]},{"text":"impl<F: Debug + FieldExt, PoseidonChip: Debug + PoseidonSpongeInstructions<F, S, D, T, RATE>, S: Debug + Spec<F, T, RATE>, M: Debug + SpongeMode, D: Debug + Domain<F, RATE>, const T: usize, const RATE: usize> Debug for Sponge<F, PoseidonChip, S, M, D, T, RATE> where
    PoseidonChip::Word: Debug
","synthetic":false,"types":["halo2_gadgets::poseidon::Sponge"]},{"text":"impl<F: Debug + FieldExt, PoseidonChip: Debug + PoseidonSpongeInstructions<F, S, D, T, RATE>, S: Debug + Spec<F, T, RATE>, D: Debug + Domain<F, RATE>, const T: usize, const RATE: usize> Debug for Hash<F, PoseidonChip, S, D, T, RATE>","synthetic":false,"types":["halo2_gadgets::poseidon::Hash"]},{"text":"impl Debug for BlockWord","synthetic":false,"types":["halo2_gadgets::sha256::table16::BlockWord"]},{"text":"impl Debug for Table16Config","synthetic":false,"types":["halo2_gadgets::sha256::table16::Table16Config"]},{"text":"impl Debug for Table16Chip","synthetic":false,"types":["halo2_gadgets::sha256::table16::Table16Chip"]},{"text":"impl<BlockWord: Debug> Debug for Sha256Digest<BlockWord>","synthetic":false,"types":["halo2_gadgets::sha256::Sha256Digest"]},{"text":"impl<F: Debug + FieldExt, CS: Debug + Sha256Instructions<F>> Debug for Sha256<F, CS> where
    CS::State: Debug,
    CS::BlockWord: Debug
","synthetic":false,"types":["halo2_gadgets::sha256::Sha256"]},{"text":"impl<Hash: Debug, Commit: Debug, F: Debug> Debug for SinsemillaConfig<Hash, Commit, F> where
    Hash: HashDomains<Affine>,
    F: FixedPoints<Affine>,
    Commit: CommitDomains<Affine, F, Hash>, 
","synthetic":false,"types":["halo2_gadgets::sinsemilla::chip::SinsemillaConfig"]},{"text":"impl<Hash: Debug, Commit: Debug, Fixed: Debug> Debug for SinsemillaChip<Hash, Commit, Fixed> where
    Hash: HashDomains<Affine>,
    Fixed: FixedPoints<Affine>,
    Commit: CommitDomains<Affine, Fixed, Hash>, 
","synthetic":false,"types":["halo2_gadgets::sinsemilla::chip::SinsemillaChip"]},{"text":"impl<Hash: Debug, Commit: Debug, Fixed: Debug> Debug for MerkleConfig<Hash, Commit, Fixed> where
    Hash: HashDomains<Affine>,
    Fixed: FixedPoints<Affine>,
    Commit: CommitDomains<Affine, Fixed, Hash>, 
","synthetic":false,"types":["halo2_gadgets::sinsemilla::merkle::chip::MerkleConfig"]},{"text":"impl<Hash: Debug, Commit: Debug, Fixed: Debug> Debug for MerkleChip<Hash, Commit, Fixed> where
    Hash: HashDomains<Affine>,
    Fixed: FixedPoints<Affine>,
    Commit: CommitDomains<Affine, Fixed, Hash>, 
","synthetic":false,"types":["halo2_gadgets::sinsemilla::merkle::chip::MerkleChip"]},{"text":"impl<C: Debug + CurveAffine, MerkleChip: Debug, const PATH_LENGTH: usize, const K: usize, const MAX_WORDS: usize> Debug for MerklePath<C, MerkleChip, PATH_LENGTH, K, MAX_WORDS> where
    MerkleChip: MerkleInstructions<C, PATH_LENGTH, K, MAX_WORDS> + Clone,
    MerkleChip::HashDomains: Debug,
    C::Base: Debug
","synthetic":false,"types":["halo2_gadgets::sinsemilla::merkle::MerklePath"]},{"text":"impl<C: Debug + CurveAffine, SinsemillaChip: Debug, const K: usize, const MAX_WORDS: usize> Debug for Message<C, SinsemillaChip, K, MAX_WORDS> where
    SinsemillaChip: SinsemillaInstructions<C, K, MAX_WORDS> + Clone + Debug + Eq,
    SinsemillaChip::Message: Debug
","synthetic":false,"types":["halo2_gadgets::sinsemilla::Message"]},{"text":"impl<C: Debug + CurveAffine, SinsemillaChip: Debug, const K: usize, const MAX_WORDS: usize> Debug for MessagePiece<C, SinsemillaChip, K, MAX_WORDS> where
    SinsemillaChip: SinsemillaInstructions<C, K, MAX_WORDS> + Clone + Debug + Eq,
    SinsemillaChip::MessagePiece: Debug
","synthetic":false,"types":["halo2_gadgets::sinsemilla::MessagePiece"]},{"text":"impl<C: Debug + CurveAffine, SinsemillaChip: Debug, EccChip: Debug, const K: usize, const MAX_WORDS: usize> Debug for HashDomain<C, SinsemillaChip, EccChip, K, MAX_WORDS> where
    SinsemillaChip: SinsemillaInstructions<C, K, MAX_WORDS> + Clone + Debug + Eq,
    EccChip: EccInstructions<C, NonIdentityPoint = <SinsemillaChip as SinsemillaInstructions<C, K, MAX_WORDS>>::NonIdentityPoint, FixedPoints = <SinsemillaChip as SinsemillaInstructions<C, K, MAX_WORDS>>::FixedPoints> + Clone + Debug + Eq
","synthetic":false,"types":["halo2_gadgets::sinsemilla::HashDomain"]},{"text":"impl<C: Debug + CurveAffine, SinsemillaChip: Debug, EccChip: Debug, const K: usize, const MAX_WORDS: usize> Debug for CommitDomain<C, SinsemillaChip, EccChip, K, MAX_WORDS> where
    SinsemillaChip: SinsemillaInstructions<C, K, MAX_WORDS> + Clone + Debug + Eq,
    EccChip: EccInstructions<C, NonIdentityPoint = <SinsemillaChip as SinsemillaInstructions<C, K, MAX_WORDS>>::NonIdentityPoint, FixedPoints = <SinsemillaChip as SinsemillaInstructions<C, K, MAX_WORDS>>::FixedPoints> + Clone + Debug + Eq
","synthetic":false,"types":["halo2_gadgets::sinsemilla::CommitDomain"]},{"text":"impl<F: Debug> Debug for CondSwapChip<F>","synthetic":false,"types":["halo2_gadgets::utilities::cond_swap::CondSwapChip"]},{"text":"impl Debug for CondSwapConfig","synthetic":false,"types":["halo2_gadgets::utilities::cond_swap::CondSwapConfig"]},{"text":"impl<F: Debug + FieldExt + PrimeFieldBits> Debug for RunningSum<F>","synthetic":false,"types":["halo2_gadgets::utilities::decompose_running_sum::RunningSum"]},{"text":"impl<F: Debug + FieldExt + PrimeFieldBits, const WINDOW_NUM_BITS: usize> Debug for RunningSumConfig<F, WINDOW_NUM_BITS>","synthetic":false,"types":["halo2_gadgets::utilities::decompose_running_sum::RunningSumConfig"]},{"text":"impl<F: Debug + FieldExt + PrimeFieldBits> Debug for RunningSum<F>","synthetic":false,"types":["halo2_gadgets::utilities::lookup_range_check::RunningSum"]},{"text":"impl<F: Debug + FieldExt + PrimeFieldBits, const K: usize> Debug for LookupRangeCheckConfig<F, K>","synthetic":false,"types":["halo2_gadgets::utilities::lookup_range_check::LookupRangeCheckConfig"]},{"text":"impl<F: Debug + Field, T: Debug + FieldValue<F>> Debug for RangeConstrained<F, T>","synthetic":false,"types":["halo2_gadgets::utilities::RangeConstrained"]},{"text":"impl Debug for P128Pow5T3","synthetic":false,"types":["halo2_gadgets::primitives::poseidon::p128pow5t3::P128Pow5T3"]},{"text":"impl<F: Debug, const RATE: usize> Debug for Absorbing<F, RATE>","synthetic":false,"types":["halo2_gadgets::primitives::poseidon::Absorbing"]},{"text":"impl<F: Debug, const RATE: usize> Debug for Squeezing<F, RATE>","synthetic":false,"types":["halo2_gadgets::primitives::poseidon::Squeezing"]},{"text":"impl<const L: usize> Debug for ConstantLength<L>","synthetic":false,"types":["halo2_gadgets::primitives::poseidon::ConstantLength"]},{"text":"impl<F: FieldExt, S: Spec<F, T, RATE>, D: Domain<F, RATE>, const T: usize, const RATE: usize> Debug for Hash<F, S, D, T, RATE>","synthetic":false,"types":["halo2_gadgets::primitives::poseidon::Hash"]},{"text":"impl Debug for HashDomain","synthetic":false,"types":["halo2_gadgets::primitives::sinsemilla::HashDomain"]},{"text":"impl Debug for CommitDomain","synthetic":false,"types":["halo2_gadgets::primitives::sinsemilla::CommitDomain"]}]; implementors["halo2_proofs"] = [{"text":"impl Debug for SimpleFloorPlanner","synthetic":false,"types":["halo2_proofs::circuit::floor_planner::single_pass::SimpleFloorPlanner"]},{"text":"impl Debug for V1","synthetic":false,"types":["halo2_proofs::circuit::floor_planner::v1::V1"]},{"text":"impl<'p, 'a, F: Debug + Field, CS: Debug + Assignment<F> + 'a> Debug for V1Pass<'p, 'a, F, CS>","synthetic":false,"types":["halo2_proofs::circuit::floor_planner::v1::V1Pass"]},{"text":"impl Debug for RegionShape","synthetic":false,"types":["halo2_proofs::circuit::layouter::RegionShape"]},{"text":"impl Debug for RegionColumn","synthetic":false,"types":["halo2_proofs::circuit::layouter::RegionColumn"]},{"text":"impl Debug for RegionIndex","synthetic":false,"types":["halo2_proofs::circuit::RegionIndex"]},{"text":"impl Debug for RegionStart","synthetic":false,"types":["halo2_proofs::circuit::RegionStart"]},{"text":"impl Debug for Cell","synthetic":false,"types":["halo2_proofs::circuit::Cell"]},{"text":"impl<V: Debug, F: Debug + Field> Debug for AssignedCell<V, F>","synthetic":false,"types":["halo2_proofs::circuit::AssignedCell"]},{"text":"impl<'r, F: Debug + Field> Debug for Region<'r, F>","synthetic":false,"types":["halo2_proofs::circuit::Region"]},{"text":"impl<'r, F: Debug + Field> Debug for Table<'r, F>","synthetic":false,"types":["halo2_proofs::circuit::Table"]},{"text":"impl<'a, F: Debug + Field, L: Debug + Layouter<F> + 'a> Debug for NamespacedLayouter<'a, F, L>","synthetic":false,"types":["halo2_proofs::circuit::NamespacedLayouter"]},{"text":"impl<F: Debug> Debug for Assigned<F>","synthetic":false,"types":["halo2_proofs::plonk::assigned::Assigned"]},{"text":"impl<C: Debug + ColumnType> Debug for Column<C>","synthetic":false,"types":["halo2_proofs::plonk::circuit::Column"]},{"text":"impl Debug for Advice","synthetic":false,"types":["halo2_proofs::plonk::circuit::Advice"]},{"text":"impl Debug for Fixed","synthetic":false,"types":["halo2_proofs::plonk::circuit::Fixed"]},{"text":"impl Debug for Instance","synthetic":false,"types":["halo2_proofs::plonk::circuit::Instance"]},{"text":"impl Debug for Any","synthetic":false,"types":["halo2_proofs::plonk::circuit::Any"]},{"text":"impl Debug for Selector","synthetic":false,"types":["halo2_proofs::plonk::circuit::Selector"]},{"text":"impl Debug for TableColumn","synthetic":false,"types":["halo2_proofs::plonk::circuit::TableColumn"]},{"text":"impl<F: Debug> Debug for Expression<F>","synthetic":false,"types":["halo2_proofs::plonk::circuit::Expression"]},{"text":"impl<F: Debug + Field> Debug for Constraint<F>","synthetic":false,"types":["halo2_proofs::plonk::circuit::Constraint"]},{"text":"impl<F: Debug + Field, C: Debug + Into<Constraint<F>>, Iter: Debug + IntoIterator<Item = C>> Debug for Constraints<F, C, Iter>","synthetic":false,"types":["halo2_proofs::plonk::circuit::Constraints"]},{"text":"impl<F: Debug + Field> Debug for ConstraintSystem<F>","synthetic":false,"types":["halo2_proofs::plonk::circuit::ConstraintSystem"]},{"text":"impl<'a, F: Debug + Field> Debug for PinnedConstraintSystem<'a, F>","synthetic":false,"types":["halo2_proofs::plonk::circuit::PinnedConstraintSystem"]},{"text":"impl<'a, F: Debug + Field> Debug for VirtualCells<'a, F>","synthetic":false,"types":["halo2_proofs::plonk::circuit::VirtualCells"]},{"text":"impl Debug for Error","synthetic":false,"types":["halo2_proofs::plonk::error::Error"]},{"text":"impl<'params, C: Debug + CurveAffine> Debug for SingleVerifier<'params, C>","synthetic":false,"types":["halo2_proofs::plonk::verifier::SingleVerifier"]},{"text":"impl<'params, C: Debug + CurveAffine, R: Debug + RngCore> Debug for BatchVerifier<'params, C, R>","synthetic":false,"types":["halo2_proofs::plonk::verifier::BatchVerifier"]},{"text":"impl<C: Debug + CurveAffine> Debug for VerifyingKey<C> where
    C::Scalar: Debug,
    C::Scalar: Debug
","synthetic":false,"types":["halo2_proofs::plonk::VerifyingKey"]},{"text":"impl<'a, C: Debug + CurveAffine> Debug for PinnedVerificationKey<'a, C> where
    C::Scalar: Debug,
    C::Scalar: Debug
","synthetic":false,"types":["halo2_proofs::plonk::PinnedVerificationKey"]},{"text":"impl<C: Debug + CurveAffine> Debug for ProvingKey<C> where
    C::Scalar: Debug,
    C::Scalar: Debug,
    C::Scalar: Debug,
    C::Scalar: Debug,
    C::Scalar: Debug,
    C::Scalar: Debug
","synthetic":false,"types":["halo2_proofs::plonk::ProvingKey"]},{"text":"impl<'a, C: Debug + CurveAffine> Debug for MSM<'a, C> where
    C::Scalar: Debug,
    C::Scalar: Debug,
    C::Scalar: Debug,
    C::Scalar: Debug
","synthetic":false,"types":["halo2_proofs::poly::commitment::msm::MSM"]},{"text":"impl<'a, C: Debug + CurveAffine, E: Debug + EncodedChallenge<C>> Debug for Guard<'a, C, E> where
    C::Scalar: Debug,
    C::Scalar: Debug
","synthetic":false,"types":["halo2_proofs::poly::commitment::verifier::Guard"]},{"text":"impl<C: Debug + CurveAffine, E: Debug + EncodedChallenge<C>> Debug for Accumulator<C, E>","synthetic":false,"types":["halo2_proofs::poly::commitment::verifier::Accumulator"]},{"text":"impl<C: Debug + CurveAffine> Debug for Params<C>","synthetic":false,"types":["halo2_proofs::poly::commitment::Params"]},{"text":"impl<F: Debug> Debug for Blind<F>","synthetic":false,"types":["halo2_proofs::poly::commitment::Blind"]},{"text":"impl<G: Debug + Group> Debug for EvaluationDomain<G> where
    G::Scalar: Debug,
    G::Scalar: Debug,
    G::Scalar: Debug,
    G::Scalar: Debug,
    G::Scalar: Debug,
    G::Scalar: Debug,
    G::Scalar: Debug,
    G::Scalar: Debug,
    G::Scalar: Debug,
    G::Scalar: Debug
","synthetic":false,"types":["halo2_proofs::poly::domain::EvaluationDomain"]},{"text":"impl<'a, G: Debug + Group> Debug for PinnedEvaluationDomain<'a, G> where
    G::Scalar: Debug
","synthetic":false,"types":["halo2_proofs::poly::domain::PinnedEvaluationDomain"]},{"text":"impl<'a, C: Debug + CurveAffine> Debug for ProverQuery<'a, C> where
    C::Scalar: Debug,
    C::Scalar: Debug,
    C::Scalar: Debug
","synthetic":false,"types":["halo2_proofs::poly::multiopen::ProverQuery"]},{"text":"impl<'r, 'params: 'r, C: Debug + CurveAffine> Debug for VerifierQuery<'r, 'params, C> where
    C::Scalar: Debug,
    C::Scalar: Debug
","synthetic":false,"types":["halo2_proofs::poly::multiopen::VerifierQuery"]},{"text":"impl Debug for Error","synthetic":false,"types":["halo2_proofs::poly::Error"]},{"text":"impl Debug for Coeff","synthetic":false,"types":["halo2_proofs::poly::Coeff"]},{"text":"impl Debug for LagrangeCoeff","synthetic":false,"types":["halo2_proofs::poly::LagrangeCoeff"]},{"text":"impl Debug for ExtendedLagrangeCoeff","synthetic":false,"types":["halo2_proofs::poly::ExtendedLagrangeCoeff"]},{"text":"impl<F: Debug, B: Debug> Debug for Polynomial<F, B>","synthetic":false,"types":["halo2_proofs::poly::Polynomial"]},{"text":"impl Debug for Rotation","synthetic":false,"types":["halo2_proofs::poly::Rotation"]},{"text":"impl<R: Debug + Read, C: Debug + CurveAffine, E: Debug + EncodedChallenge<C>> Debug for Blake2bRead<R, C, E>","synthetic":false,"types":["halo2_proofs::transcript::Blake2bRead"]},{"text":"impl<W: Debug + Write, C: Debug + CurveAffine, E: Debug + EncodedChallenge<C>> Debug for Blake2bWrite<W, C, E>","synthetic":false,"types":["halo2_proofs::transcript::Blake2bWrite"]},{"text":"impl<C: Debug + CurveAffine, T: Debug> Debug for ChallengeScalar<C, T> where
    C::Scalar: Debug
","synthetic":false,"types":["halo2_proofs::transcript::ChallengeScalar"]},{"text":"impl<C: Debug + CurveAffine> Debug for Challenge255<C>","synthetic":false,"types":["halo2_proofs::transcript::Challenge255"]},{"text":"impl Debug for Column","synthetic":false,"types":["halo2_proofs::dev::metadata::Column"]},{"text":"impl Debug for VirtualCell","synthetic":false,"types":["halo2_proofs::dev::metadata::VirtualCell"]},{"text":"impl Debug for Gate","synthetic":false,"types":["halo2_proofs::dev::metadata::Gate"]},{"text":"impl Debug for Constraint","synthetic":false,"types":["halo2_proofs::dev::metadata::Constraint"]},{"text":"impl Debug for Region","synthetic":false,"types":["halo2_proofs::dev::metadata::Region"]},{"text":"impl Debug for FailureLocation","synthetic":false,"types":["halo2_proofs::dev::failure::FailureLocation"]},{"text":"impl Debug for VerifyFailure","synthetic":false,"types":["halo2_proofs::dev::failure::VerifyFailure"]},{"text":"impl<G: Debug + PrimeGroup, ConcreteCircuit: Debug + Circuit<G::Scalar>> Debug for CircuitCost<G, ConcreteCircuit>","synthetic":false,"types":["halo2_proofs::dev::cost::CircuitCost"]},{"text":"impl<G: Debug + PrimeGroup> Debug for MarginalProofSize<G>","synthetic":false,"types":["halo2_proofs::dev::cost::MarginalProofSize"]},{"text":"impl<G: Debug + PrimeGroup> Debug for ProofSize<G>","synthetic":false,"types":["halo2_proofs::dev::cost::ProofSize"]},{"text":"impl Debug for CircuitGates","synthetic":false,"types":["halo2_proofs::dev::gates::CircuitGates"]},{"text":"impl Debug for CircuitLayout","synthetic":false,"types":["halo2_proofs::dev::graph::layout::CircuitLayout"]},{"text":"impl<F: Debug + Group + Field> Debug for MockProver<F>","synthetic":false,"types":["halo2_proofs::dev::MockProver"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/rustdoc/latest/implementors/core/marker/trait.Freeze.js b/rustdoc/latest/implementors/core/marker/trait.Freeze.js index 0e68606d..59c4f015 100644 --- a/rustdoc/latest/implementors/core/marker/trait.Freeze.js +++ b/rustdoc/latest/implementors/core/marker/trait.Freeze.js @@ -1,4 +1,4 @@ (function() {var implementors = {}; -implementors["halo2_gadgets"] = [{"text":"impl Freeze for EccPoint","synthetic":true,"types":["halo2_gadgets::ecc::chip::EccPoint"]},{"text":"impl Freeze for NonIdentityEccPoint","synthetic":true,"types":["halo2_gadgets::ecc::chip::NonIdentityEccPoint"]},{"text":"impl<FixedPoints> Freeze for EccConfig<FixedPoints>","synthetic":true,"types":["halo2_gadgets::ecc::chip::EccConfig"]},{"text":"impl Freeze for FullScalar","synthetic":true,"types":["halo2_gadgets::ecc::chip::FullScalar"]},{"text":"impl Freeze for ShortScalar","synthetic":true,"types":["halo2_gadgets::ecc::chip::ShortScalar"]},{"text":"impl Freeze for BaseFieldElem","synthetic":true,"types":["halo2_gadgets::ecc::chip::BaseFieldElem"]},{"text":"impl<FixedPoints> Freeze for EccChip<FixedPoints>","synthetic":true,"types":["halo2_gadgets::ecc::chip::EccChip"]},{"text":"impl Freeze for EccScalarFixed","synthetic":true,"types":["halo2_gadgets::ecc::chip::EccScalarFixed"]},{"text":"impl Freeze for EccScalarFixedShort","synthetic":true,"types":["halo2_gadgets::ecc::chip::EccScalarFixedShort"]},{"text":"impl<C, EccChip> Freeze for ScalarVar<C, EccChip> where
    EccChip: Freeze,
    <EccChip as EccInstructions<C>>::ScalarVar: Freeze, 
","synthetic":true,"types":["halo2_gadgets::ecc::ScalarVar"]},{"text":"impl<C, EccChip> Freeze for ScalarFixed<C, EccChip> where
    EccChip: Freeze,
    <EccChip as EccInstructions<C>>::ScalarFixed: Freeze, 
","synthetic":true,"types":["halo2_gadgets::ecc::ScalarFixed"]},{"text":"impl<C, EccChip> Freeze for ScalarFixedShort<C, EccChip> where
    EccChip: Freeze,
    <EccChip as EccInstructions<C>>::ScalarFixedShort: Freeze, 
","synthetic":true,"types":["halo2_gadgets::ecc::ScalarFixedShort"]},{"text":"impl<C, EccChip> Freeze for NonIdentityPoint<C, EccChip> where
    EccChip: Freeze,
    <EccChip as EccInstructions<C>>::NonIdentityPoint: Freeze, 
","synthetic":true,"types":["halo2_gadgets::ecc::NonIdentityPoint"]},{"text":"impl<C, EccChip> Freeze for Point<C, EccChip> where
    EccChip: Freeze,
    <EccChip as EccInstructions<C>>::Point: Freeze, 
","synthetic":true,"types":["halo2_gadgets::ecc::Point"]},{"text":"impl<C, EccChip> Freeze for X<C, EccChip> where
    EccChip: Freeze,
    <EccChip as EccInstructions<C>>::X: Freeze, 
","synthetic":true,"types":["halo2_gadgets::ecc::X"]},{"text":"impl<C, EccChip> Freeze for FixedPoint<C, EccChip> where
    EccChip: Freeze,
    <<EccChip as EccInstructions<C>>::FixedPoints as FixedPoints<C>>::FullScalar: Freeze, 
","synthetic":true,"types":["halo2_gadgets::ecc::FixedPoint"]},{"text":"impl<C, EccChip> Freeze for FixedPointBaseField<C, EccChip> where
    EccChip: Freeze,
    <<EccChip as EccInstructions<C>>::FixedPoints as FixedPoints<C>>::Base: Freeze, 
","synthetic":true,"types":["halo2_gadgets::ecc::FixedPointBaseField"]},{"text":"impl<C, EccChip> Freeze for FixedPointShort<C, EccChip> where
    EccChip: Freeze,
    <<EccChip as EccInstructions<C>>::FixedPoints as FixedPoints<C>>::ShortScalar: Freeze, 
","synthetic":true,"types":["halo2_gadgets::ecc::FixedPointShort"]},{"text":"impl<F, const WIDTH: usize, const RATE: usize> Freeze for Pow5Config<F, WIDTH, RATE> where
    F: Freeze, 
","synthetic":true,"types":["halo2_gadgets::poseidon::pow5::Pow5Config"]},{"text":"impl<F, const WIDTH: usize, const RATE: usize> Freeze for Pow5Chip<F, WIDTH, RATE> where
    F: Freeze, 
","synthetic":true,"types":["halo2_gadgets::poseidon::pow5::Pow5Chip"]},{"text":"impl<F> Freeze for StateWord<F> where
    F: Freeze, 
","synthetic":true,"types":["halo2_gadgets::poseidon::pow5::StateWord"]},{"text":"impl<F> Freeze for PaddedWord<F> where
    F: Freeze, 
","synthetic":true,"types":["halo2_gadgets::poseidon::PaddedWord"]},{"text":"impl<F, PoseidonChip, S, const T: usize, const RATE: usize> Freeze for Word<F, PoseidonChip, S, T, RATE> where
    <PoseidonChip as PoseidonInstructions<F, S, T, RATE>>::Word: Freeze, 
","synthetic":true,"types":["halo2_gadgets::poseidon::Word"]},{"text":"impl<F, PoseidonChip, S, M, D, const T: usize, const RATE: usize> Freeze for Sponge<F, PoseidonChip, S, M, D, T, RATE> where
    M: Freeze,
    PoseidonChip: Freeze,
    <PoseidonChip as PoseidonInstructions<F, S, T, RATE>>::Word: Freeze, 
","synthetic":true,"types":["halo2_gadgets::poseidon::Sponge"]},{"text":"impl<F, PoseidonChip, S, D, const T: usize, const RATE: usize> Freeze for Hash<F, PoseidonChip, S, D, T, RATE> where
    F: Freeze,
    PoseidonChip: Freeze,
    <PoseidonChip as PoseidonInstructions<F, S, T, RATE>>::Word: Freeze, 
","synthetic":true,"types":["halo2_gadgets::poseidon::Hash"]},{"text":"impl Freeze for BlockWord","synthetic":true,"types":["halo2_gadgets::sha256::table16::BlockWord"]},{"text":"impl Freeze for Table16Config","synthetic":true,"types":["halo2_gadgets::sha256::table16::Table16Config"]},{"text":"impl Freeze for Table16Chip","synthetic":true,"types":["halo2_gadgets::sha256::table16::Table16Chip"]},{"text":"impl<BlockWord> Freeze for Sha256Digest<BlockWord> where
    BlockWord: Freeze, 
","synthetic":true,"types":["halo2_gadgets::sha256::Sha256Digest"]},{"text":"impl<F, CS> Freeze for Sha256<F, CS> where
    CS: Freeze,
    <CS as Sha256Instructions<F>>::State: Freeze, 
","synthetic":true,"types":["halo2_gadgets::sha256::Sha256"]},{"text":"impl<Hash, Commit, F> Freeze for SinsemillaConfig<Hash, Commit, F>","synthetic":true,"types":["halo2_gadgets::sinsemilla::chip::SinsemillaConfig"]},{"text":"impl<Hash, Commit, Fixed> Freeze for SinsemillaChip<Hash, Commit, Fixed>","synthetic":true,"types":["halo2_gadgets::sinsemilla::chip::SinsemillaChip"]},{"text":"impl<Hash, Commit, Fixed> Freeze for MerkleConfig<Hash, Commit, Fixed>","synthetic":true,"types":["halo2_gadgets::sinsemilla::merkle::chip::MerkleConfig"]},{"text":"impl<Hash, Commit, Fixed> Freeze for MerkleChip<Hash, Commit, Fixed>","synthetic":true,"types":["halo2_gadgets::sinsemilla::merkle::chip::MerkleChip"]},{"text":"impl<C, MerkleChip, const PATH_LENGTH: usize, const K: usize, const MAX_WORDS: usize> Freeze for MerklePath<C, MerkleChip, PATH_LENGTH, K, MAX_WORDS> where
    MerkleChip: Freeze,
    <C as CurveAffine>::Base: Freeze,
    <MerkleChip as SinsemillaInstructions<C, K, MAX_WORDS>>::HashDomains: Freeze, 
","synthetic":true,"types":["halo2_gadgets::sinsemilla::merkle::MerklePath"]},{"text":"impl<C, SinsemillaChip, const K: usize, const MAX_WORDS: usize> Freeze for Message<C, SinsemillaChip, K, MAX_WORDS> where
    SinsemillaChip: Freeze,
    <SinsemillaChip as SinsemillaInstructions<C, K, MAX_WORDS>>::Message: Freeze, 
","synthetic":true,"types":["halo2_gadgets::sinsemilla::Message"]},{"text":"impl<C, SinsemillaChip, const K: usize, const MAX_WORDS: usize> Freeze for MessagePiece<C, SinsemillaChip, K, MAX_WORDS> where
    SinsemillaChip: Freeze,
    <SinsemillaChip as SinsemillaInstructions<C, K, MAX_WORDS>>::MessagePiece: Freeze, 
","synthetic":true,"types":["halo2_gadgets::sinsemilla::MessagePiece"]},{"text":"impl<C, SinsemillaChip, EccChip, const K: usize, const MAX_WORDS: usize> Freeze for HashDomain<C, SinsemillaChip, EccChip, K, MAX_WORDS> where
    C: Freeze,
    EccChip: Freeze,
    SinsemillaChip: Freeze, 
","synthetic":true,"types":["halo2_gadgets::sinsemilla::HashDomain"]},{"text":"impl<C, SinsemillaChip, EccChip, const K: usize, const MAX_WORDS: usize> Freeze for CommitDomain<C, SinsemillaChip, EccChip, K, MAX_WORDS> where
    C: Freeze,
    EccChip: Freeze,
    SinsemillaChip: Freeze,
    <<SinsemillaChip as SinsemillaInstructions<C, K, MAX_WORDS>>::FixedPoints as FixedPoints<C>>::FullScalar: Freeze, 
","synthetic":true,"types":["halo2_gadgets::sinsemilla::CommitDomain"]},{"text":"impl<F> Freeze for CondSwapChip<F>","synthetic":true,"types":["halo2_gadgets::utilities::cond_swap::CondSwapChip"]},{"text":"impl Freeze for CondSwapConfig","synthetic":true,"types":["halo2_gadgets::utilities::cond_swap::CondSwapConfig"]},{"text":"impl<F> Freeze for RunningSum<F>","synthetic":true,"types":["halo2_gadgets::utilities::decompose_running_sum::RunningSum"]},{"text":"impl<F, const WINDOW_NUM_BITS: usize> Freeze for RunningSumConfig<F, WINDOW_NUM_BITS>","synthetic":true,"types":["halo2_gadgets::utilities::decompose_running_sum::RunningSumConfig"]},{"text":"impl<F> Freeze for RunningSum<F>","synthetic":true,"types":["halo2_gadgets::utilities::lookup_range_check::RunningSum"]},{"text":"impl<F, const K: usize> Freeze for LookupRangeCheckConfig<F, K>","synthetic":true,"types":["halo2_gadgets::utilities::lookup_range_check::LookupRangeCheckConfig"]},{"text":"impl<F, T> Freeze for RangeConstrained<F, T> where
    T: Freeze, 
","synthetic":true,"types":["halo2_gadgets::utilities::RangeConstrained"]},{"text":"impl Freeze for P128Pow5T3","synthetic":true,"types":["halo2_gadgets::primitives::poseidon::p128pow5t3::P128Pow5T3"]},{"text":"impl<F, const RATE: usize> Freeze for Absorbing<F, RATE> where
    F: Freeze, 
","synthetic":true,"types":["halo2_gadgets::primitives::poseidon::Absorbing"]},{"text":"impl<F, const RATE: usize> Freeze for Squeezing<F, RATE> where
    F: Freeze, 
","synthetic":true,"types":["halo2_gadgets::primitives::poseidon::Squeezing"]},{"text":"impl<const L: usize> Freeze for ConstantLength<L>","synthetic":true,"types":["halo2_gadgets::primitives::poseidon::ConstantLength"]},{"text":"impl<F, S, D, const T: usize, const RATE: usize> Freeze for Hash<F, S, D, T, RATE> where
    F: Freeze, 
","synthetic":true,"types":["halo2_gadgets::primitives::poseidon::Hash"]},{"text":"impl Freeze for HashDomain","synthetic":true,"types":["halo2_gadgets::primitives::sinsemilla::HashDomain"]},{"text":"impl Freeze for CommitDomain","synthetic":true,"types":["halo2_gadgets::primitives::sinsemilla::CommitDomain"]}]; +implementors["halo2_gadgets"] = [{"text":"impl Freeze for EccPoint","synthetic":true,"types":["halo2_gadgets::ecc::chip::EccPoint"]},{"text":"impl Freeze for NonIdentityEccPoint","synthetic":true,"types":["halo2_gadgets::ecc::chip::NonIdentityEccPoint"]},{"text":"impl<FixedPoints> Freeze for EccConfig<FixedPoints>","synthetic":true,"types":["halo2_gadgets::ecc::chip::EccConfig"]},{"text":"impl Freeze for FullScalar","synthetic":true,"types":["halo2_gadgets::ecc::chip::FullScalar"]},{"text":"impl Freeze for ShortScalar","synthetic":true,"types":["halo2_gadgets::ecc::chip::ShortScalar"]},{"text":"impl Freeze for BaseFieldElem","synthetic":true,"types":["halo2_gadgets::ecc::chip::BaseFieldElem"]},{"text":"impl<FixedPoints> Freeze for EccChip<FixedPoints>","synthetic":true,"types":["halo2_gadgets::ecc::chip::EccChip"]},{"text":"impl Freeze for EccScalarFixed","synthetic":true,"types":["halo2_gadgets::ecc::chip::EccScalarFixed"]},{"text":"impl Freeze for EccScalarFixedShort","synthetic":true,"types":["halo2_gadgets::ecc::chip::EccScalarFixedShort"]},{"text":"impl Freeze for ScalarVar","synthetic":true,"types":["halo2_gadgets::ecc::chip::ScalarVar"]},{"text":"impl<C, EccChip> Freeze for ScalarVar<C, EccChip> where
    EccChip: Freeze,
    <EccChip as EccInstructions<C>>::ScalarVar: Freeze, 
","synthetic":true,"types":["halo2_gadgets::ecc::ScalarVar"]},{"text":"impl<C, EccChip> Freeze for ScalarFixed<C, EccChip> where
    EccChip: Freeze,
    <EccChip as EccInstructions<C>>::ScalarFixed: Freeze, 
","synthetic":true,"types":["halo2_gadgets::ecc::ScalarFixed"]},{"text":"impl<C, EccChip> Freeze for ScalarFixedShort<C, EccChip> where
    EccChip: Freeze,
    <EccChip as EccInstructions<C>>::ScalarFixedShort: Freeze, 
","synthetic":true,"types":["halo2_gadgets::ecc::ScalarFixedShort"]},{"text":"impl<C, EccChip> Freeze for NonIdentityPoint<C, EccChip> where
    EccChip: Freeze,
    <EccChip as EccInstructions<C>>::NonIdentityPoint: Freeze, 
","synthetic":true,"types":["halo2_gadgets::ecc::NonIdentityPoint"]},{"text":"impl<C, EccChip> Freeze for Point<C, EccChip> where
    EccChip: Freeze,
    <EccChip as EccInstructions<C>>::Point: Freeze, 
","synthetic":true,"types":["halo2_gadgets::ecc::Point"]},{"text":"impl<C, EccChip> Freeze for X<C, EccChip> where
    EccChip: Freeze,
    <EccChip as EccInstructions<C>>::X: Freeze, 
","synthetic":true,"types":["halo2_gadgets::ecc::X"]},{"text":"impl<C, EccChip> Freeze for FixedPoint<C, EccChip> where
    EccChip: Freeze,
    <<EccChip as EccInstructions<C>>::FixedPoints as FixedPoints<C>>::FullScalar: Freeze, 
","synthetic":true,"types":["halo2_gadgets::ecc::FixedPoint"]},{"text":"impl<C, EccChip> Freeze for FixedPointBaseField<C, EccChip> where
    EccChip: Freeze,
    <<EccChip as EccInstructions<C>>::FixedPoints as FixedPoints<C>>::Base: Freeze, 
","synthetic":true,"types":["halo2_gadgets::ecc::FixedPointBaseField"]},{"text":"impl<C, EccChip> Freeze for FixedPointShort<C, EccChip> where
    EccChip: Freeze,
    <<EccChip as EccInstructions<C>>::FixedPoints as FixedPoints<C>>::ShortScalar: Freeze, 
","synthetic":true,"types":["halo2_gadgets::ecc::FixedPointShort"]},{"text":"impl<F, const WIDTH: usize, const RATE: usize> Freeze for Pow5Config<F, WIDTH, RATE> where
    F: Freeze, 
","synthetic":true,"types":["halo2_gadgets::poseidon::pow5::Pow5Config"]},{"text":"impl<F, const WIDTH: usize, const RATE: usize> Freeze for Pow5Chip<F, WIDTH, RATE> where
    F: Freeze, 
","synthetic":true,"types":["halo2_gadgets::poseidon::pow5::Pow5Chip"]},{"text":"impl<F> Freeze for StateWord<F> where
    F: Freeze, 
","synthetic":true,"types":["halo2_gadgets::poseidon::pow5::StateWord"]},{"text":"impl<F> Freeze for PaddedWord<F> where
    F: Freeze, 
","synthetic":true,"types":["halo2_gadgets::poseidon::PaddedWord"]},{"text":"impl<F, PoseidonChip, S, const T: usize, const RATE: usize> Freeze for Word<F, PoseidonChip, S, T, RATE> where
    <PoseidonChip as PoseidonInstructions<F, S, T, RATE>>::Word: Freeze, 
","synthetic":true,"types":["halo2_gadgets::poseidon::Word"]},{"text":"impl<F, PoseidonChip, S, M, D, const T: usize, const RATE: usize> Freeze for Sponge<F, PoseidonChip, S, M, D, T, RATE> where
    M: Freeze,
    PoseidonChip: Freeze,
    <PoseidonChip as PoseidonInstructions<F, S, T, RATE>>::Word: Freeze, 
","synthetic":true,"types":["halo2_gadgets::poseidon::Sponge"]},{"text":"impl<F, PoseidonChip, S, D, const T: usize, const RATE: usize> Freeze for Hash<F, PoseidonChip, S, D, T, RATE> where
    F: Freeze,
    PoseidonChip: Freeze,
    <PoseidonChip as PoseidonInstructions<F, S, T, RATE>>::Word: Freeze, 
","synthetic":true,"types":["halo2_gadgets::poseidon::Hash"]},{"text":"impl Freeze for BlockWord","synthetic":true,"types":["halo2_gadgets::sha256::table16::BlockWord"]},{"text":"impl Freeze for Table16Config","synthetic":true,"types":["halo2_gadgets::sha256::table16::Table16Config"]},{"text":"impl Freeze for Table16Chip","synthetic":true,"types":["halo2_gadgets::sha256::table16::Table16Chip"]},{"text":"impl<BlockWord> Freeze for Sha256Digest<BlockWord> where
    BlockWord: Freeze, 
","synthetic":true,"types":["halo2_gadgets::sha256::Sha256Digest"]},{"text":"impl<F, CS> Freeze for Sha256<F, CS> where
    CS: Freeze,
    <CS as Sha256Instructions<F>>::State: Freeze, 
","synthetic":true,"types":["halo2_gadgets::sha256::Sha256"]},{"text":"impl<Hash, Commit, F> Freeze for SinsemillaConfig<Hash, Commit, F>","synthetic":true,"types":["halo2_gadgets::sinsemilla::chip::SinsemillaConfig"]},{"text":"impl<Hash, Commit, Fixed> Freeze for SinsemillaChip<Hash, Commit, Fixed>","synthetic":true,"types":["halo2_gadgets::sinsemilla::chip::SinsemillaChip"]},{"text":"impl<Hash, Commit, Fixed> Freeze for MerkleConfig<Hash, Commit, Fixed>","synthetic":true,"types":["halo2_gadgets::sinsemilla::merkle::chip::MerkleConfig"]},{"text":"impl<Hash, Commit, Fixed> Freeze for MerkleChip<Hash, Commit, Fixed>","synthetic":true,"types":["halo2_gadgets::sinsemilla::merkle::chip::MerkleChip"]},{"text":"impl<C, MerkleChip, const PATH_LENGTH: usize, const K: usize, const MAX_WORDS: usize> Freeze for MerklePath<C, MerkleChip, PATH_LENGTH, K, MAX_WORDS> where
    MerkleChip: Freeze,
    <C as CurveAffine>::Base: Freeze,
    <MerkleChip as SinsemillaInstructions<C, K, MAX_WORDS>>::HashDomains: Freeze, 
","synthetic":true,"types":["halo2_gadgets::sinsemilla::merkle::MerklePath"]},{"text":"impl<C, SinsemillaChip, const K: usize, const MAX_WORDS: usize> Freeze for Message<C, SinsemillaChip, K, MAX_WORDS> where
    SinsemillaChip: Freeze,
    <SinsemillaChip as SinsemillaInstructions<C, K, MAX_WORDS>>::Message: Freeze, 
","synthetic":true,"types":["halo2_gadgets::sinsemilla::Message"]},{"text":"impl<C, SinsemillaChip, const K: usize, const MAX_WORDS: usize> Freeze for MessagePiece<C, SinsemillaChip, K, MAX_WORDS> where
    SinsemillaChip: Freeze,
    <SinsemillaChip as SinsemillaInstructions<C, K, MAX_WORDS>>::MessagePiece: Freeze, 
","synthetic":true,"types":["halo2_gadgets::sinsemilla::MessagePiece"]},{"text":"impl<C, SinsemillaChip, EccChip, const K: usize, const MAX_WORDS: usize> Freeze for HashDomain<C, SinsemillaChip, EccChip, K, MAX_WORDS> where
    C: Freeze,
    EccChip: Freeze,
    SinsemillaChip: Freeze, 
","synthetic":true,"types":["halo2_gadgets::sinsemilla::HashDomain"]},{"text":"impl<C, SinsemillaChip, EccChip, const K: usize, const MAX_WORDS: usize> Freeze for CommitDomain<C, SinsemillaChip, EccChip, K, MAX_WORDS> where
    C: Freeze,
    EccChip: Freeze,
    SinsemillaChip: Freeze,
    <<SinsemillaChip as SinsemillaInstructions<C, K, MAX_WORDS>>::FixedPoints as FixedPoints<C>>::FullScalar: Freeze, 
","synthetic":true,"types":["halo2_gadgets::sinsemilla::CommitDomain"]},{"text":"impl<F> Freeze for CondSwapChip<F>","synthetic":true,"types":["halo2_gadgets::utilities::cond_swap::CondSwapChip"]},{"text":"impl Freeze for CondSwapConfig","synthetic":true,"types":["halo2_gadgets::utilities::cond_swap::CondSwapConfig"]},{"text":"impl<F> Freeze for RunningSum<F>","synthetic":true,"types":["halo2_gadgets::utilities::decompose_running_sum::RunningSum"]},{"text":"impl<F, const WINDOW_NUM_BITS: usize> Freeze for RunningSumConfig<F, WINDOW_NUM_BITS>","synthetic":true,"types":["halo2_gadgets::utilities::decompose_running_sum::RunningSumConfig"]},{"text":"impl<F> Freeze for RunningSum<F>","synthetic":true,"types":["halo2_gadgets::utilities::lookup_range_check::RunningSum"]},{"text":"impl<F, const K: usize> Freeze for LookupRangeCheckConfig<F, K>","synthetic":true,"types":["halo2_gadgets::utilities::lookup_range_check::LookupRangeCheckConfig"]},{"text":"impl<F, T> Freeze for RangeConstrained<F, T> where
    T: Freeze, 
","synthetic":true,"types":["halo2_gadgets::utilities::RangeConstrained"]},{"text":"impl Freeze for P128Pow5T3","synthetic":true,"types":["halo2_gadgets::primitives::poseidon::p128pow5t3::P128Pow5T3"]},{"text":"impl<F, const RATE: usize> Freeze for Absorbing<F, RATE> where
    F: Freeze, 
","synthetic":true,"types":["halo2_gadgets::primitives::poseidon::Absorbing"]},{"text":"impl<F, const RATE: usize> Freeze for Squeezing<F, RATE> where
    F: Freeze, 
","synthetic":true,"types":["halo2_gadgets::primitives::poseidon::Squeezing"]},{"text":"impl<const L: usize> Freeze for ConstantLength<L>","synthetic":true,"types":["halo2_gadgets::primitives::poseidon::ConstantLength"]},{"text":"impl<F, S, D, const T: usize, const RATE: usize> Freeze for Hash<F, S, D, T, RATE> where
    F: Freeze, 
","synthetic":true,"types":["halo2_gadgets::primitives::poseidon::Hash"]},{"text":"impl Freeze for HashDomain","synthetic":true,"types":["halo2_gadgets::primitives::sinsemilla::HashDomain"]},{"text":"impl Freeze for CommitDomain","synthetic":true,"types":["halo2_gadgets::primitives::sinsemilla::CommitDomain"]}]; implementors["halo2_proofs"] = [{"text":"impl Freeze for SimpleFloorPlanner","synthetic":true,"types":["halo2_proofs::circuit::floor_planner::single_pass::SimpleFloorPlanner"]},{"text":"impl Freeze for V1","synthetic":true,"types":["halo2_proofs::circuit::floor_planner::v1::V1"]},{"text":"impl<'p, 'a, F, CS> Freeze for V1Pass<'p, 'a, F, CS>","synthetic":true,"types":["halo2_proofs::circuit::floor_planner::v1::V1Pass"]},{"text":"impl Freeze for RegionShape","synthetic":true,"types":["halo2_proofs::circuit::layouter::RegionShape"]},{"text":"impl Freeze for RegionColumn","synthetic":true,"types":["halo2_proofs::circuit::layouter::RegionColumn"]},{"text":"impl Freeze for RegionIndex","synthetic":true,"types":["halo2_proofs::circuit::RegionIndex"]},{"text":"impl Freeze for RegionStart","synthetic":true,"types":["halo2_proofs::circuit::RegionStart"]},{"text":"impl Freeze for Cell","synthetic":true,"types":["halo2_proofs::circuit::Cell"]},{"text":"impl<V, F> Freeze for AssignedCell<V, F> where
    V: Freeze, 
","synthetic":true,"types":["halo2_proofs::circuit::AssignedCell"]},{"text":"impl<'r, F> Freeze for Region<'r, F>","synthetic":true,"types":["halo2_proofs::circuit::Region"]},{"text":"impl<'r, F> Freeze for Table<'r, F>","synthetic":true,"types":["halo2_proofs::circuit::Table"]},{"text":"impl<'a, F, L> Freeze for NamespacedLayouter<'a, F, L>","synthetic":true,"types":["halo2_proofs::circuit::NamespacedLayouter"]},{"text":"impl<F> Freeze for Assigned<F> where
    F: Freeze, 
","synthetic":true,"types":["halo2_proofs::plonk::assigned::Assigned"]},{"text":"impl<C> Freeze for Column<C> where
    C: Freeze, 
","synthetic":true,"types":["halo2_proofs::plonk::circuit::Column"]},{"text":"impl Freeze for Advice","synthetic":true,"types":["halo2_proofs::plonk::circuit::Advice"]},{"text":"impl Freeze for Fixed","synthetic":true,"types":["halo2_proofs::plonk::circuit::Fixed"]},{"text":"impl Freeze for Instance","synthetic":true,"types":["halo2_proofs::plonk::circuit::Instance"]},{"text":"impl Freeze for Any","synthetic":true,"types":["halo2_proofs::plonk::circuit::Any"]},{"text":"impl Freeze for Selector","synthetic":true,"types":["halo2_proofs::plonk::circuit::Selector"]},{"text":"impl Freeze for TableColumn","synthetic":true,"types":["halo2_proofs::plonk::circuit::TableColumn"]},{"text":"impl<F> Freeze for Expression<F> where
    F: Freeze, 
","synthetic":true,"types":["halo2_proofs::plonk::circuit::Expression"]},{"text":"impl<F> Freeze for Constraint<F> where
    F: Freeze, 
","synthetic":true,"types":["halo2_proofs::plonk::circuit::Constraint"]},{"text":"impl<F, C, Iter> Freeze for Constraints<F, C, Iter> where
    F: Freeze,
    Iter: Freeze, 
","synthetic":true,"types":["halo2_proofs::plonk::circuit::Constraints"]},{"text":"impl<F> Freeze for ConstraintSystem<F>","synthetic":true,"types":["halo2_proofs::plonk::circuit::ConstraintSystem"]},{"text":"impl<'a, F> Freeze for PinnedConstraintSystem<'a, F>","synthetic":true,"types":["halo2_proofs::plonk::circuit::PinnedConstraintSystem"]},{"text":"impl<'a, F> Freeze for VirtualCells<'a, F>","synthetic":true,"types":["halo2_proofs::plonk::circuit::VirtualCells"]},{"text":"impl Freeze for Error","synthetic":true,"types":["halo2_proofs::plonk::error::Error"]},{"text":"impl<'params, C> Freeze for SingleVerifier<'params, C> where
    <C as CurveAffine>::ScalarExt: Freeze, 
","synthetic":true,"types":["halo2_proofs::plonk::verifier::SingleVerifier"]},{"text":"impl<'params, C, R> Freeze for BatchVerifier<'params, C, R> where
    R: Freeze,
    <C as CurveAffine>::ScalarExt: Freeze, 
","synthetic":true,"types":["halo2_proofs::plonk::verifier::BatchVerifier"]},{"text":"impl<C> Freeze for VerifyingKey<C> where
    <C as CurveAffine>::ScalarExt: Freeze, 
","synthetic":true,"types":["halo2_proofs::plonk::VerifyingKey"]},{"text":"impl<'a, C> Freeze for PinnedVerificationKey<'a, C>","synthetic":true,"types":["halo2_proofs::plonk::PinnedVerificationKey"]},{"text":"impl<C> Freeze for ProvingKey<C> where
    <C as CurveAffine>::ScalarExt: Freeze, 
","synthetic":true,"types":["halo2_proofs::plonk::ProvingKey"]},{"text":"impl<'a, C> Freeze for MSM<'a, C> where
    <C as CurveAffine>::ScalarExt: Freeze, 
","synthetic":true,"types":["halo2_proofs::poly::commitment::msm::MSM"]},{"text":"impl<'a, C, E> Freeze for Guard<'a, C, E> where
    <C as CurveAffine>::ScalarExt: Freeze, 
","synthetic":true,"types":["halo2_proofs::poly::commitment::verifier::Guard"]},{"text":"impl<C, E> Freeze for Accumulator<C, E> where
    C: Freeze, 
","synthetic":true,"types":["halo2_proofs::poly::commitment::verifier::Accumulator"]},{"text":"impl<C> Freeze for Params<C> where
    C: Freeze, 
","synthetic":true,"types":["halo2_proofs::poly::commitment::Params"]},{"text":"impl<F> Freeze for Blind<F> where
    F: Freeze, 
","synthetic":true,"types":["halo2_proofs::poly::commitment::Blind"]},{"text":"impl<G> Freeze for EvaluationDomain<G> where
    <G as Group>::Scalar: Freeze, 
","synthetic":true,"types":["halo2_proofs::poly::domain::EvaluationDomain"]},{"text":"impl<'a, G> Freeze for PinnedEvaluationDomain<'a, G>","synthetic":true,"types":["halo2_proofs::poly::domain::PinnedEvaluationDomain"]},{"text":"impl<'a, C> Freeze for ProverQuery<'a, C> where
    <C as CurveAffine>::ScalarExt: Freeze, 
","synthetic":true,"types":["halo2_proofs::poly::multiopen::ProverQuery"]},{"text":"impl<'r, 'params, C> Freeze for VerifierQuery<'r, 'params, C> where
    <C as CurveAffine>::ScalarExt: Freeze, 
","synthetic":true,"types":["halo2_proofs::poly::multiopen::VerifierQuery"]},{"text":"impl Freeze for Error","synthetic":true,"types":["halo2_proofs::poly::Error"]},{"text":"impl Freeze for Coeff","synthetic":true,"types":["halo2_proofs::poly::Coeff"]},{"text":"impl Freeze for LagrangeCoeff","synthetic":true,"types":["halo2_proofs::poly::LagrangeCoeff"]},{"text":"impl Freeze for ExtendedLagrangeCoeff","synthetic":true,"types":["halo2_proofs::poly::ExtendedLagrangeCoeff"]},{"text":"impl<F, B> Freeze for Polynomial<F, B>","synthetic":true,"types":["halo2_proofs::poly::Polynomial"]},{"text":"impl Freeze for Rotation","synthetic":true,"types":["halo2_proofs::poly::Rotation"]},{"text":"impl<R, C, E> Freeze for Blake2bRead<R, C, E> where
    R: Freeze, 
","synthetic":true,"types":["halo2_proofs::transcript::Blake2bRead"]},{"text":"impl<W, C, E> Freeze for Blake2bWrite<W, C, E> where
    W: Freeze, 
","synthetic":true,"types":["halo2_proofs::transcript::Blake2bWrite"]},{"text":"impl<C, T> Freeze for ChallengeScalar<C, T> where
    <C as CurveAffine>::ScalarExt: Freeze, 
","synthetic":true,"types":["halo2_proofs::transcript::ChallengeScalar"]},{"text":"impl<C> Freeze for Challenge255<C>","synthetic":true,"types":["halo2_proofs::transcript::Challenge255"]},{"text":"impl Freeze for Column","synthetic":true,"types":["halo2_proofs::dev::metadata::Column"]},{"text":"impl Freeze for VirtualCell","synthetic":true,"types":["halo2_proofs::dev::metadata::VirtualCell"]},{"text":"impl Freeze for Gate","synthetic":true,"types":["halo2_proofs::dev::metadata::Gate"]},{"text":"impl Freeze for Constraint","synthetic":true,"types":["halo2_proofs::dev::metadata::Constraint"]},{"text":"impl Freeze for Region","synthetic":true,"types":["halo2_proofs::dev::metadata::Region"]},{"text":"impl Freeze for FailureLocation","synthetic":true,"types":["halo2_proofs::dev::failure::FailureLocation"]},{"text":"impl Freeze for VerifyFailure","synthetic":true,"types":["halo2_proofs::dev::failure::VerifyFailure"]},{"text":"impl<G, ConcreteCircuit> Freeze for CircuitCost<G, ConcreteCircuit>","synthetic":true,"types":["halo2_proofs::dev::cost::CircuitCost"]},{"text":"impl<G> Freeze for MarginalProofSize<G>","synthetic":true,"types":["halo2_proofs::dev::cost::MarginalProofSize"]},{"text":"impl<G> Freeze for ProofSize<G>","synthetic":true,"types":["halo2_proofs::dev::cost::ProofSize"]},{"text":"impl Freeze for CircuitGates","synthetic":true,"types":["halo2_proofs::dev::gates::CircuitGates"]},{"text":"impl Freeze for CircuitLayout","synthetic":true,"types":["halo2_proofs::dev::graph::layout::CircuitLayout"]},{"text":"impl<F> Freeze for MockProver<F>","synthetic":true,"types":["halo2_proofs::dev::MockProver"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/rustdoc/latest/implementors/core/marker/trait.Send.js b/rustdoc/latest/implementors/core/marker/trait.Send.js index cbcbb542..45ccfa78 100644 --- a/rustdoc/latest/implementors/core/marker/trait.Send.js +++ b/rustdoc/latest/implementors/core/marker/trait.Send.js @@ -1,4 +1,4 @@ (function() {var implementors = {}; -implementors["halo2_gadgets"] = [{"text":"impl Send for EccPoint","synthetic":true,"types":["halo2_gadgets::ecc::chip::EccPoint"]},{"text":"impl Send for NonIdentityEccPoint","synthetic":true,"types":["halo2_gadgets::ecc::chip::NonIdentityEccPoint"]},{"text":"impl<FixedPoints> Send for EccConfig<FixedPoints> where
    FixedPoints: Send
","synthetic":true,"types":["halo2_gadgets::ecc::chip::EccConfig"]},{"text":"impl Send for FullScalar","synthetic":true,"types":["halo2_gadgets::ecc::chip::FullScalar"]},{"text":"impl Send for ShortScalar","synthetic":true,"types":["halo2_gadgets::ecc::chip::ShortScalar"]},{"text":"impl Send for BaseFieldElem","synthetic":true,"types":["halo2_gadgets::ecc::chip::BaseFieldElem"]},{"text":"impl<FixedPoints> Send for EccChip<FixedPoints> where
    FixedPoints: Send
","synthetic":true,"types":["halo2_gadgets::ecc::chip::EccChip"]},{"text":"impl Send for EccScalarFixed","synthetic":true,"types":["halo2_gadgets::ecc::chip::EccScalarFixed"]},{"text":"impl Send for EccScalarFixedShort","synthetic":true,"types":["halo2_gadgets::ecc::chip::EccScalarFixedShort"]},{"text":"impl<C, EccChip> Send for ScalarVar<C, EccChip> where
    EccChip: Send,
    <EccChip as EccInstructions<C>>::ScalarVar: Send
","synthetic":true,"types":["halo2_gadgets::ecc::ScalarVar"]},{"text":"impl<C, EccChip> Send for ScalarFixed<C, EccChip> where
    EccChip: Send,
    <EccChip as EccInstructions<C>>::ScalarFixed: Send
","synthetic":true,"types":["halo2_gadgets::ecc::ScalarFixed"]},{"text":"impl<C, EccChip> Send for ScalarFixedShort<C, EccChip> where
    EccChip: Send,
    <EccChip as EccInstructions<C>>::ScalarFixedShort: Send
","synthetic":true,"types":["halo2_gadgets::ecc::ScalarFixedShort"]},{"text":"impl<C, EccChip> Send for NonIdentityPoint<C, EccChip> where
    EccChip: Send,
    <EccChip as EccInstructions<C>>::NonIdentityPoint: Send
","synthetic":true,"types":["halo2_gadgets::ecc::NonIdentityPoint"]},{"text":"impl<C, EccChip> Send for Point<C, EccChip> where
    EccChip: Send,
    <EccChip as EccInstructions<C>>::Point: Send
","synthetic":true,"types":["halo2_gadgets::ecc::Point"]},{"text":"impl<C, EccChip> Send for X<C, EccChip> where
    EccChip: Send,
    <EccChip as EccInstructions<C>>::X: Send
","synthetic":true,"types":["halo2_gadgets::ecc::X"]},{"text":"impl<C, EccChip> Send for FixedPoint<C, EccChip> where
    EccChip: Send,
    <<EccChip as EccInstructions<C>>::FixedPoints as FixedPoints<C>>::FullScalar: Send
","synthetic":true,"types":["halo2_gadgets::ecc::FixedPoint"]},{"text":"impl<C, EccChip> Send for FixedPointBaseField<C, EccChip> where
    EccChip: Send,
    <<EccChip as EccInstructions<C>>::FixedPoints as FixedPoints<C>>::Base: Send
","synthetic":true,"types":["halo2_gadgets::ecc::FixedPointBaseField"]},{"text":"impl<C, EccChip> Send for FixedPointShort<C, EccChip> where
    EccChip: Send,
    <<EccChip as EccInstructions<C>>::FixedPoints as FixedPoints<C>>::ShortScalar: Send
","synthetic":true,"types":["halo2_gadgets::ecc::FixedPointShort"]},{"text":"impl<F, const WIDTH: usize, const RATE: usize> Send for Pow5Config<F, WIDTH, RATE>","synthetic":true,"types":["halo2_gadgets::poseidon::pow5::Pow5Config"]},{"text":"impl<F, const WIDTH: usize, const RATE: usize> Send for Pow5Chip<F, WIDTH, RATE>","synthetic":true,"types":["halo2_gadgets::poseidon::pow5::Pow5Chip"]},{"text":"impl<F> Send for StateWord<F>","synthetic":true,"types":["halo2_gadgets::poseidon::pow5::StateWord"]},{"text":"impl<F> Send for PaddedWord<F>","synthetic":true,"types":["halo2_gadgets::poseidon::PaddedWord"]},{"text":"impl<F, PoseidonChip, S, const T: usize, const RATE: usize> Send for Word<F, PoseidonChip, S, T, RATE> where
    <PoseidonChip as PoseidonInstructions<F, S, T, RATE>>::Word: Send
","synthetic":true,"types":["halo2_gadgets::poseidon::Word"]},{"text":"impl<F, PoseidonChip, S, M, D, const T: usize, const RATE: usize> Send for Sponge<F, PoseidonChip, S, M, D, T, RATE> where
    D: Send,
    M: Send,
    PoseidonChip: Send,
    <PoseidonChip as PoseidonInstructions<F, S, T, RATE>>::Word: Send
","synthetic":true,"types":["halo2_gadgets::poseidon::Sponge"]},{"text":"impl<F, PoseidonChip, S, D, const T: usize, const RATE: usize> Send for Hash<F, PoseidonChip, S, D, T, RATE> where
    D: Send,
    PoseidonChip: Send,
    <PoseidonChip as PoseidonInstructions<F, S, T, RATE>>::Word: Send
","synthetic":true,"types":["halo2_gadgets::poseidon::Hash"]},{"text":"impl Send for BlockWord","synthetic":true,"types":["halo2_gadgets::sha256::table16::BlockWord"]},{"text":"impl Send for Table16Config","synthetic":true,"types":["halo2_gadgets::sha256::table16::Table16Config"]},{"text":"impl Send for Table16Chip","synthetic":true,"types":["halo2_gadgets::sha256::table16::Table16Chip"]},{"text":"impl<BlockWord> Send for Sha256Digest<BlockWord> where
    BlockWord: Send
","synthetic":true,"types":["halo2_gadgets::sha256::Sha256Digest"]},{"text":"impl<F, CS> Send for Sha256<F, CS> where
    CS: Send,
    <CS as Sha256Instructions<F>>::BlockWord: Send,
    <CS as Sha256Instructions<F>>::State: Send
","synthetic":true,"types":["halo2_gadgets::sha256::Sha256"]},{"text":"impl<Hash, Commit, F> Send for SinsemillaConfig<Hash, Commit, F> where
    Commit: Send,
    F: Send,
    Hash: Send
","synthetic":true,"types":["halo2_gadgets::sinsemilla::chip::SinsemillaConfig"]},{"text":"impl<Hash, Commit, Fixed> Send for SinsemillaChip<Hash, Commit, Fixed> where
    Commit: Send,
    Fixed: Send,
    Hash: Send
","synthetic":true,"types":["halo2_gadgets::sinsemilla::chip::SinsemillaChip"]},{"text":"impl<Hash, Commit, Fixed> Send for MerkleConfig<Hash, Commit, Fixed> where
    Commit: Send,
    Fixed: Send,
    Hash: Send
","synthetic":true,"types":["halo2_gadgets::sinsemilla::merkle::chip::MerkleConfig"]},{"text":"impl<Hash, Commit, Fixed> Send for MerkleChip<Hash, Commit, Fixed> where
    Commit: Send,
    Fixed: Send,
    Hash: Send
","synthetic":true,"types":["halo2_gadgets::sinsemilla::merkle::chip::MerkleChip"]},{"text":"impl<C, MerkleChip, const PATH_LENGTH: usize, const K: usize, const MAX_WORDS: usize> Send for MerklePath<C, MerkleChip, PATH_LENGTH, K, MAX_WORDS> where
    MerkleChip: Send,
    <MerkleChip as SinsemillaInstructions<C, K, MAX_WORDS>>::HashDomains: Send
","synthetic":true,"types":["halo2_gadgets::sinsemilla::merkle::MerklePath"]},{"text":"impl<C, SinsemillaChip, const K: usize, const MAX_WORDS: usize> Send for Message<C, SinsemillaChip, K, MAX_WORDS> where
    SinsemillaChip: Send,
    <SinsemillaChip as SinsemillaInstructions<C, K, MAX_WORDS>>::Message: Send
","synthetic":true,"types":["halo2_gadgets::sinsemilla::Message"]},{"text":"impl<C, SinsemillaChip, const K: usize, const MAX_WORDS: usize> Send for MessagePiece<C, SinsemillaChip, K, MAX_WORDS> where
    SinsemillaChip: Send,
    <SinsemillaChip as SinsemillaInstructions<C, K, MAX_WORDS>>::MessagePiece: Send
","synthetic":true,"types":["halo2_gadgets::sinsemilla::MessagePiece"]},{"text":"impl<C, SinsemillaChip, EccChip, const K: usize, const MAX_WORDS: usize> Send for HashDomain<C, SinsemillaChip, EccChip, K, MAX_WORDS> where
    EccChip: Send,
    SinsemillaChip: Send
","synthetic":true,"types":["halo2_gadgets::sinsemilla::HashDomain"]},{"text":"impl<C, SinsemillaChip, EccChip, const K: usize, const MAX_WORDS: usize> Send for CommitDomain<C, SinsemillaChip, EccChip, K, MAX_WORDS> where
    EccChip: Send,
    SinsemillaChip: Send,
    <<SinsemillaChip as SinsemillaInstructions<C, K, MAX_WORDS>>::FixedPoints as FixedPoints<C>>::FullScalar: Send
","synthetic":true,"types":["halo2_gadgets::sinsemilla::CommitDomain"]},{"text":"impl<F> Send for CondSwapChip<F> where
    F: Send
","synthetic":true,"types":["halo2_gadgets::utilities::cond_swap::CondSwapChip"]},{"text":"impl Send for CondSwapConfig","synthetic":true,"types":["halo2_gadgets::utilities::cond_swap::CondSwapConfig"]},{"text":"impl<F> Send for RunningSum<F>","synthetic":true,"types":["halo2_gadgets::utilities::decompose_running_sum::RunningSum"]},{"text":"impl<F, const WINDOW_NUM_BITS: usize> Send for RunningSumConfig<F, WINDOW_NUM_BITS>","synthetic":true,"types":["halo2_gadgets::utilities::decompose_running_sum::RunningSumConfig"]},{"text":"impl<F> Send for RunningSum<F>","synthetic":true,"types":["halo2_gadgets::utilities::lookup_range_check::RunningSum"]},{"text":"impl<F, const K: usize> Send for LookupRangeCheckConfig<F, K>","synthetic":true,"types":["halo2_gadgets::utilities::lookup_range_check::LookupRangeCheckConfig"]},{"text":"impl<F, T> Send for RangeConstrained<F, T> where
    T: Send
","synthetic":true,"types":["halo2_gadgets::utilities::RangeConstrained"]},{"text":"impl Send for P128Pow5T3","synthetic":true,"types":["halo2_gadgets::primitives::poseidon::p128pow5t3::P128Pow5T3"]},{"text":"impl<F, const RATE: usize> Send for Absorbing<F, RATE> where
    F: Send
","synthetic":true,"types":["halo2_gadgets::primitives::poseidon::Absorbing"]},{"text":"impl<F, const RATE: usize> Send for Squeezing<F, RATE> where
    F: Send
","synthetic":true,"types":["halo2_gadgets::primitives::poseidon::Squeezing"]},{"text":"impl<const L: usize> Send for ConstantLength<L>","synthetic":true,"types":["halo2_gadgets::primitives::poseidon::ConstantLength"]},{"text":"impl<F, S, D, const T: usize, const RATE: usize> Send for Hash<F, S, D, T, RATE> where
    D: Send,
    S: Send
","synthetic":true,"types":["halo2_gadgets::primitives::poseidon::Hash"]},{"text":"impl Send for HashDomain","synthetic":true,"types":["halo2_gadgets::primitives::sinsemilla::HashDomain"]},{"text":"impl Send for CommitDomain","synthetic":true,"types":["halo2_gadgets::primitives::sinsemilla::CommitDomain"]}]; +implementors["halo2_gadgets"] = [{"text":"impl Send for EccPoint","synthetic":true,"types":["halo2_gadgets::ecc::chip::EccPoint"]},{"text":"impl Send for NonIdentityEccPoint","synthetic":true,"types":["halo2_gadgets::ecc::chip::NonIdentityEccPoint"]},{"text":"impl<FixedPoints> Send for EccConfig<FixedPoints> where
    FixedPoints: Send
","synthetic":true,"types":["halo2_gadgets::ecc::chip::EccConfig"]},{"text":"impl Send for FullScalar","synthetic":true,"types":["halo2_gadgets::ecc::chip::FullScalar"]},{"text":"impl Send for ShortScalar","synthetic":true,"types":["halo2_gadgets::ecc::chip::ShortScalar"]},{"text":"impl Send for BaseFieldElem","synthetic":true,"types":["halo2_gadgets::ecc::chip::BaseFieldElem"]},{"text":"impl<FixedPoints> Send for EccChip<FixedPoints> where
    FixedPoints: Send
","synthetic":true,"types":["halo2_gadgets::ecc::chip::EccChip"]},{"text":"impl Send for EccScalarFixed","synthetic":true,"types":["halo2_gadgets::ecc::chip::EccScalarFixed"]},{"text":"impl Send for EccScalarFixedShort","synthetic":true,"types":["halo2_gadgets::ecc::chip::EccScalarFixedShort"]},{"text":"impl Send for ScalarVar","synthetic":true,"types":["halo2_gadgets::ecc::chip::ScalarVar"]},{"text":"impl<C, EccChip> Send for ScalarVar<C, EccChip> where
    EccChip: Send,
    <EccChip as EccInstructions<C>>::ScalarVar: Send
","synthetic":true,"types":["halo2_gadgets::ecc::ScalarVar"]},{"text":"impl<C, EccChip> Send for ScalarFixed<C, EccChip> where
    EccChip: Send,
    <EccChip as EccInstructions<C>>::ScalarFixed: Send
","synthetic":true,"types":["halo2_gadgets::ecc::ScalarFixed"]},{"text":"impl<C, EccChip> Send for ScalarFixedShort<C, EccChip> where
    EccChip: Send,
    <EccChip as EccInstructions<C>>::ScalarFixedShort: Send
","synthetic":true,"types":["halo2_gadgets::ecc::ScalarFixedShort"]},{"text":"impl<C, EccChip> Send for NonIdentityPoint<C, EccChip> where
    EccChip: Send,
    <EccChip as EccInstructions<C>>::NonIdentityPoint: Send
","synthetic":true,"types":["halo2_gadgets::ecc::NonIdentityPoint"]},{"text":"impl<C, EccChip> Send for Point<C, EccChip> where
    EccChip: Send,
    <EccChip as EccInstructions<C>>::Point: Send
","synthetic":true,"types":["halo2_gadgets::ecc::Point"]},{"text":"impl<C, EccChip> Send for X<C, EccChip> where
    EccChip: Send,
    <EccChip as EccInstructions<C>>::X: Send
","synthetic":true,"types":["halo2_gadgets::ecc::X"]},{"text":"impl<C, EccChip> Send for FixedPoint<C, EccChip> where
    EccChip: Send,
    <<EccChip as EccInstructions<C>>::FixedPoints as FixedPoints<C>>::FullScalar: Send
","synthetic":true,"types":["halo2_gadgets::ecc::FixedPoint"]},{"text":"impl<C, EccChip> Send for FixedPointBaseField<C, EccChip> where
    EccChip: Send,
    <<EccChip as EccInstructions<C>>::FixedPoints as FixedPoints<C>>::Base: Send
","synthetic":true,"types":["halo2_gadgets::ecc::FixedPointBaseField"]},{"text":"impl<C, EccChip> Send for FixedPointShort<C, EccChip> where
    EccChip: Send,
    <<EccChip as EccInstructions<C>>::FixedPoints as FixedPoints<C>>::ShortScalar: Send
","synthetic":true,"types":["halo2_gadgets::ecc::FixedPointShort"]},{"text":"impl<F, const WIDTH: usize, const RATE: usize> Send for Pow5Config<F, WIDTH, RATE>","synthetic":true,"types":["halo2_gadgets::poseidon::pow5::Pow5Config"]},{"text":"impl<F, const WIDTH: usize, const RATE: usize> Send for Pow5Chip<F, WIDTH, RATE>","synthetic":true,"types":["halo2_gadgets::poseidon::pow5::Pow5Chip"]},{"text":"impl<F> Send for StateWord<F>","synthetic":true,"types":["halo2_gadgets::poseidon::pow5::StateWord"]},{"text":"impl<F> Send for PaddedWord<F>","synthetic":true,"types":["halo2_gadgets::poseidon::PaddedWord"]},{"text":"impl<F, PoseidonChip, S, const T: usize, const RATE: usize> Send for Word<F, PoseidonChip, S, T, RATE> where
    <PoseidonChip as PoseidonInstructions<F, S, T, RATE>>::Word: Send
","synthetic":true,"types":["halo2_gadgets::poseidon::Word"]},{"text":"impl<F, PoseidonChip, S, M, D, const T: usize, const RATE: usize> Send for Sponge<F, PoseidonChip, S, M, D, T, RATE> where
    D: Send,
    M: Send,
    PoseidonChip: Send,
    <PoseidonChip as PoseidonInstructions<F, S, T, RATE>>::Word: Send
","synthetic":true,"types":["halo2_gadgets::poseidon::Sponge"]},{"text":"impl<F, PoseidonChip, S, D, const T: usize, const RATE: usize> Send for Hash<F, PoseidonChip, S, D, T, RATE> where
    D: Send,
    PoseidonChip: Send,
    <PoseidonChip as PoseidonInstructions<F, S, T, RATE>>::Word: Send
","synthetic":true,"types":["halo2_gadgets::poseidon::Hash"]},{"text":"impl Send for BlockWord","synthetic":true,"types":["halo2_gadgets::sha256::table16::BlockWord"]},{"text":"impl Send for Table16Config","synthetic":true,"types":["halo2_gadgets::sha256::table16::Table16Config"]},{"text":"impl Send for Table16Chip","synthetic":true,"types":["halo2_gadgets::sha256::table16::Table16Chip"]},{"text":"impl<BlockWord> Send for Sha256Digest<BlockWord> where
    BlockWord: Send
","synthetic":true,"types":["halo2_gadgets::sha256::Sha256Digest"]},{"text":"impl<F, CS> Send for Sha256<F, CS> where
    CS: Send,
    <CS as Sha256Instructions<F>>::BlockWord: Send,
    <CS as Sha256Instructions<F>>::State: Send
","synthetic":true,"types":["halo2_gadgets::sha256::Sha256"]},{"text":"impl<Hash, Commit, F> Send for SinsemillaConfig<Hash, Commit, F> where
    Commit: Send,
    F: Send,
    Hash: Send
","synthetic":true,"types":["halo2_gadgets::sinsemilla::chip::SinsemillaConfig"]},{"text":"impl<Hash, Commit, Fixed> Send for SinsemillaChip<Hash, Commit, Fixed> where
    Commit: Send,
    Fixed: Send,
    Hash: Send
","synthetic":true,"types":["halo2_gadgets::sinsemilla::chip::SinsemillaChip"]},{"text":"impl<Hash, Commit, Fixed> Send for MerkleConfig<Hash, Commit, Fixed> where
    Commit: Send,
    Fixed: Send,
    Hash: Send
","synthetic":true,"types":["halo2_gadgets::sinsemilla::merkle::chip::MerkleConfig"]},{"text":"impl<Hash, Commit, Fixed> Send for MerkleChip<Hash, Commit, Fixed> where
    Commit: Send,
    Fixed: Send,
    Hash: Send
","synthetic":true,"types":["halo2_gadgets::sinsemilla::merkle::chip::MerkleChip"]},{"text":"impl<C, MerkleChip, const PATH_LENGTH: usize, const K: usize, const MAX_WORDS: usize> Send for MerklePath<C, MerkleChip, PATH_LENGTH, K, MAX_WORDS> where
    MerkleChip: Send,
    <MerkleChip as SinsemillaInstructions<C, K, MAX_WORDS>>::HashDomains: Send
","synthetic":true,"types":["halo2_gadgets::sinsemilla::merkle::MerklePath"]},{"text":"impl<C, SinsemillaChip, const K: usize, const MAX_WORDS: usize> Send for Message<C, SinsemillaChip, K, MAX_WORDS> where
    SinsemillaChip: Send,
    <SinsemillaChip as SinsemillaInstructions<C, K, MAX_WORDS>>::Message: Send
","synthetic":true,"types":["halo2_gadgets::sinsemilla::Message"]},{"text":"impl<C, SinsemillaChip, const K: usize, const MAX_WORDS: usize> Send for MessagePiece<C, SinsemillaChip, K, MAX_WORDS> where
    SinsemillaChip: Send,
    <SinsemillaChip as SinsemillaInstructions<C, K, MAX_WORDS>>::MessagePiece: Send
","synthetic":true,"types":["halo2_gadgets::sinsemilla::MessagePiece"]},{"text":"impl<C, SinsemillaChip, EccChip, const K: usize, const MAX_WORDS: usize> Send for HashDomain<C, SinsemillaChip, EccChip, K, MAX_WORDS> where
    EccChip: Send,
    SinsemillaChip: Send
","synthetic":true,"types":["halo2_gadgets::sinsemilla::HashDomain"]},{"text":"impl<C, SinsemillaChip, EccChip, const K: usize, const MAX_WORDS: usize> Send for CommitDomain<C, SinsemillaChip, EccChip, K, MAX_WORDS> where
    EccChip: Send,
    SinsemillaChip: Send,
    <<SinsemillaChip as SinsemillaInstructions<C, K, MAX_WORDS>>::FixedPoints as FixedPoints<C>>::FullScalar: Send
","synthetic":true,"types":["halo2_gadgets::sinsemilla::CommitDomain"]},{"text":"impl<F> Send for CondSwapChip<F> where
    F: Send
","synthetic":true,"types":["halo2_gadgets::utilities::cond_swap::CondSwapChip"]},{"text":"impl Send for CondSwapConfig","synthetic":true,"types":["halo2_gadgets::utilities::cond_swap::CondSwapConfig"]},{"text":"impl<F> Send for RunningSum<F>","synthetic":true,"types":["halo2_gadgets::utilities::decompose_running_sum::RunningSum"]},{"text":"impl<F, const WINDOW_NUM_BITS: usize> Send for RunningSumConfig<F, WINDOW_NUM_BITS>","synthetic":true,"types":["halo2_gadgets::utilities::decompose_running_sum::RunningSumConfig"]},{"text":"impl<F> Send for RunningSum<F>","synthetic":true,"types":["halo2_gadgets::utilities::lookup_range_check::RunningSum"]},{"text":"impl<F, const K: usize> Send for LookupRangeCheckConfig<F, K>","synthetic":true,"types":["halo2_gadgets::utilities::lookup_range_check::LookupRangeCheckConfig"]},{"text":"impl<F, T> Send for RangeConstrained<F, T> where
    T: Send
","synthetic":true,"types":["halo2_gadgets::utilities::RangeConstrained"]},{"text":"impl Send for P128Pow5T3","synthetic":true,"types":["halo2_gadgets::primitives::poseidon::p128pow5t3::P128Pow5T3"]},{"text":"impl<F, const RATE: usize> Send for Absorbing<F, RATE> where
    F: Send
","synthetic":true,"types":["halo2_gadgets::primitives::poseidon::Absorbing"]},{"text":"impl<F, const RATE: usize> Send for Squeezing<F, RATE> where
    F: Send
","synthetic":true,"types":["halo2_gadgets::primitives::poseidon::Squeezing"]},{"text":"impl<const L: usize> Send for ConstantLength<L>","synthetic":true,"types":["halo2_gadgets::primitives::poseidon::ConstantLength"]},{"text":"impl<F, S, D, const T: usize, const RATE: usize> Send for Hash<F, S, D, T, RATE> where
    D: Send,
    S: Send
","synthetic":true,"types":["halo2_gadgets::primitives::poseidon::Hash"]},{"text":"impl Send for HashDomain","synthetic":true,"types":["halo2_gadgets::primitives::sinsemilla::HashDomain"]},{"text":"impl Send for CommitDomain","synthetic":true,"types":["halo2_gadgets::primitives::sinsemilla::CommitDomain"]}]; implementors["halo2_proofs"] = [{"text":"impl Send for SimpleFloorPlanner","synthetic":true,"types":["halo2_proofs::circuit::floor_planner::single_pass::SimpleFloorPlanner"]},{"text":"impl Send for V1","synthetic":true,"types":["halo2_proofs::circuit::floor_planner::v1::V1"]},{"text":"impl<'p, 'a, F, CS> Send for V1Pass<'p, 'a, F, CS> where
    CS: Send
","synthetic":true,"types":["halo2_proofs::circuit::floor_planner::v1::V1Pass"]},{"text":"impl Send for RegionShape","synthetic":true,"types":["halo2_proofs::circuit::layouter::RegionShape"]},{"text":"impl Send for RegionColumn","synthetic":true,"types":["halo2_proofs::circuit::layouter::RegionColumn"]},{"text":"impl Send for RegionIndex","synthetic":true,"types":["halo2_proofs::circuit::RegionIndex"]},{"text":"impl Send for RegionStart","synthetic":true,"types":["halo2_proofs::circuit::RegionStart"]},{"text":"impl Send for Cell","synthetic":true,"types":["halo2_proofs::circuit::Cell"]},{"text":"impl<V, F> Send for AssignedCell<V, F> where
    V: Send
","synthetic":true,"types":["halo2_proofs::circuit::AssignedCell"]},{"text":"impl<'r, F> !Send for Region<'r, F>","synthetic":true,"types":["halo2_proofs::circuit::Region"]},{"text":"impl<'r, F> !Send for Table<'r, F>","synthetic":true,"types":["halo2_proofs::circuit::Table"]},{"text":"impl<'a, F, L> Send for NamespacedLayouter<'a, F, L> where
    L: Send
","synthetic":true,"types":["halo2_proofs::circuit::NamespacedLayouter"]},{"text":"impl<F> Send for Assigned<F> where
    F: Send
","synthetic":true,"types":["halo2_proofs::plonk::assigned::Assigned"]},{"text":"impl<C> Send for Column<C> where
    C: Send
","synthetic":true,"types":["halo2_proofs::plonk::circuit::Column"]},{"text":"impl Send for Advice","synthetic":true,"types":["halo2_proofs::plonk::circuit::Advice"]},{"text":"impl Send for Fixed","synthetic":true,"types":["halo2_proofs::plonk::circuit::Fixed"]},{"text":"impl Send for Instance","synthetic":true,"types":["halo2_proofs::plonk::circuit::Instance"]},{"text":"impl Send for Any","synthetic":true,"types":["halo2_proofs::plonk::circuit::Any"]},{"text":"impl Send for Selector","synthetic":true,"types":["halo2_proofs::plonk::circuit::Selector"]},{"text":"impl Send for TableColumn","synthetic":true,"types":["halo2_proofs::plonk::circuit::TableColumn"]},{"text":"impl<F> Send for Expression<F> where
    F: Send
","synthetic":true,"types":["halo2_proofs::plonk::circuit::Expression"]},{"text":"impl<F> Send for Constraint<F>","synthetic":true,"types":["halo2_proofs::plonk::circuit::Constraint"]},{"text":"impl<F, C, Iter> Send for Constraints<F, C, Iter> where
    Iter: Send
","synthetic":true,"types":["halo2_proofs::plonk::circuit::Constraints"]},{"text":"impl<F> Send for ConstraintSystem<F>","synthetic":true,"types":["halo2_proofs::plonk::circuit::ConstraintSystem"]},{"text":"impl<'a, F> Send for PinnedConstraintSystem<'a, F>","synthetic":true,"types":["halo2_proofs::plonk::circuit::PinnedConstraintSystem"]},{"text":"impl<'a, F> Send for VirtualCells<'a, F>","synthetic":true,"types":["halo2_proofs::plonk::circuit::VirtualCells"]},{"text":"impl Send for Error","synthetic":true,"types":["halo2_proofs::plonk::error::Error"]},{"text":"impl<'params, C> Send for SingleVerifier<'params, C>","synthetic":true,"types":["halo2_proofs::plonk::verifier::SingleVerifier"]},{"text":"impl<'params, C, R> Send for BatchVerifier<'params, C, R> where
    R: Send
","synthetic":true,"types":["halo2_proofs::plonk::verifier::BatchVerifier"]},{"text":"impl<C> Send for VerifyingKey<C>","synthetic":true,"types":["halo2_proofs::plonk::VerifyingKey"]},{"text":"impl<'a, C> Send for PinnedVerificationKey<'a, C>","synthetic":true,"types":["halo2_proofs::plonk::PinnedVerificationKey"]},{"text":"impl<C> Send for ProvingKey<C>","synthetic":true,"types":["halo2_proofs::plonk::ProvingKey"]},{"text":"impl<'a, C> Send for MSM<'a, C>","synthetic":true,"types":["halo2_proofs::poly::commitment::msm::MSM"]},{"text":"impl<'a, C, E> Send for Guard<'a, C, E> where
    E: Send
","synthetic":true,"types":["halo2_proofs::poly::commitment::verifier::Guard"]},{"text":"impl<C, E> Send for Accumulator<C, E> where
    E: Send
","synthetic":true,"types":["halo2_proofs::poly::commitment::verifier::Accumulator"]},{"text":"impl<C> Send for Params<C>","synthetic":true,"types":["halo2_proofs::poly::commitment::Params"]},{"text":"impl<F> Send for Blind<F> where
    F: Send
","synthetic":true,"types":["halo2_proofs::poly::commitment::Blind"]},{"text":"impl<G> Send for EvaluationDomain<G>","synthetic":true,"types":["halo2_proofs::poly::domain::EvaluationDomain"]},{"text":"impl<'a, G> Send for PinnedEvaluationDomain<'a, G>","synthetic":true,"types":["halo2_proofs::poly::domain::PinnedEvaluationDomain"]},{"text":"impl<'a, C> Send for ProverQuery<'a, C>","synthetic":true,"types":["halo2_proofs::poly::multiopen::ProverQuery"]},{"text":"impl<'r, 'params, C> Send for VerifierQuery<'r, 'params, C>","synthetic":true,"types":["halo2_proofs::poly::multiopen::VerifierQuery"]},{"text":"impl Send for Error","synthetic":true,"types":["halo2_proofs::poly::Error"]},{"text":"impl Send for Coeff","synthetic":true,"types":["halo2_proofs::poly::Coeff"]},{"text":"impl Send for LagrangeCoeff","synthetic":true,"types":["halo2_proofs::poly::LagrangeCoeff"]},{"text":"impl Send for ExtendedLagrangeCoeff","synthetic":true,"types":["halo2_proofs::poly::ExtendedLagrangeCoeff"]},{"text":"impl<F, B> Send for Polynomial<F, B> where
    B: Send,
    F: Send
","synthetic":true,"types":["halo2_proofs::poly::Polynomial"]},{"text":"impl Send for Rotation","synthetic":true,"types":["halo2_proofs::poly::Rotation"]},{"text":"impl<R, C, E> Send for Blake2bRead<R, C, E> where
    E: Send,
    R: Send
","synthetic":true,"types":["halo2_proofs::transcript::Blake2bRead"]},{"text":"impl<W, C, E> Send for Blake2bWrite<W, C, E> where
    E: Send,
    W: Send
","synthetic":true,"types":["halo2_proofs::transcript::Blake2bWrite"]},{"text":"impl<C, T> Send for ChallengeScalar<C, T> where
    T: Send
","synthetic":true,"types":["halo2_proofs::transcript::ChallengeScalar"]},{"text":"impl<C> Send for Challenge255<C>","synthetic":true,"types":["halo2_proofs::transcript::Challenge255"]},{"text":"impl Send for Column","synthetic":true,"types":["halo2_proofs::dev::metadata::Column"]},{"text":"impl Send for VirtualCell","synthetic":true,"types":["halo2_proofs::dev::metadata::VirtualCell"]},{"text":"impl Send for Gate","synthetic":true,"types":["halo2_proofs::dev::metadata::Gate"]},{"text":"impl Send for Constraint","synthetic":true,"types":["halo2_proofs::dev::metadata::Constraint"]},{"text":"impl Send for Region","synthetic":true,"types":["halo2_proofs::dev::metadata::Region"]},{"text":"impl Send for FailureLocation","synthetic":true,"types":["halo2_proofs::dev::failure::FailureLocation"]},{"text":"impl Send for VerifyFailure","synthetic":true,"types":["halo2_proofs::dev::failure::VerifyFailure"]},{"text":"impl<G, ConcreteCircuit> Send for CircuitCost<G, ConcreteCircuit> where
    ConcreteCircuit: Send
","synthetic":true,"types":["halo2_proofs::dev::cost::CircuitCost"]},{"text":"impl<G> Send for MarginalProofSize<G>","synthetic":true,"types":["halo2_proofs::dev::cost::MarginalProofSize"]},{"text":"impl<G> Send for ProofSize<G>","synthetic":true,"types":["halo2_proofs::dev::cost::ProofSize"]},{"text":"impl Send for CircuitGates","synthetic":true,"types":["halo2_proofs::dev::gates::CircuitGates"]},{"text":"impl Send for CircuitLayout","synthetic":true,"types":["halo2_proofs::dev::graph::layout::CircuitLayout"]},{"text":"impl<F> Send for MockProver<F>","synthetic":true,"types":["halo2_proofs::dev::MockProver"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/rustdoc/latest/implementors/core/marker/trait.Sync.js b/rustdoc/latest/implementors/core/marker/trait.Sync.js index e56faa19..6e6becf6 100644 --- a/rustdoc/latest/implementors/core/marker/trait.Sync.js +++ b/rustdoc/latest/implementors/core/marker/trait.Sync.js @@ -1,4 +1,4 @@ (function() {var implementors = {}; -implementors["halo2_gadgets"] = [{"text":"impl Sync for EccPoint","synthetic":true,"types":["halo2_gadgets::ecc::chip::EccPoint"]},{"text":"impl Sync for NonIdentityEccPoint","synthetic":true,"types":["halo2_gadgets::ecc::chip::NonIdentityEccPoint"]},{"text":"impl<FixedPoints> Sync for EccConfig<FixedPoints> where
    FixedPoints: Sync
","synthetic":true,"types":["halo2_gadgets::ecc::chip::EccConfig"]},{"text":"impl Sync for FullScalar","synthetic":true,"types":["halo2_gadgets::ecc::chip::FullScalar"]},{"text":"impl Sync for ShortScalar","synthetic":true,"types":["halo2_gadgets::ecc::chip::ShortScalar"]},{"text":"impl Sync for BaseFieldElem","synthetic":true,"types":["halo2_gadgets::ecc::chip::BaseFieldElem"]},{"text":"impl<FixedPoints> Sync for EccChip<FixedPoints> where
    FixedPoints: Sync
","synthetic":true,"types":["halo2_gadgets::ecc::chip::EccChip"]},{"text":"impl Sync for EccScalarFixed","synthetic":true,"types":["halo2_gadgets::ecc::chip::EccScalarFixed"]},{"text":"impl Sync for EccScalarFixedShort","synthetic":true,"types":["halo2_gadgets::ecc::chip::EccScalarFixedShort"]},{"text":"impl<C, EccChip> Sync for ScalarVar<C, EccChip> where
    EccChip: Sync,
    <EccChip as EccInstructions<C>>::ScalarVar: Sync
","synthetic":true,"types":["halo2_gadgets::ecc::ScalarVar"]},{"text":"impl<C, EccChip> Sync for ScalarFixed<C, EccChip> where
    EccChip: Sync,
    <EccChip as EccInstructions<C>>::ScalarFixed: Sync
","synthetic":true,"types":["halo2_gadgets::ecc::ScalarFixed"]},{"text":"impl<C, EccChip> Sync for ScalarFixedShort<C, EccChip> where
    EccChip: Sync,
    <EccChip as EccInstructions<C>>::ScalarFixedShort: Sync
","synthetic":true,"types":["halo2_gadgets::ecc::ScalarFixedShort"]},{"text":"impl<C, EccChip> Sync for NonIdentityPoint<C, EccChip> where
    EccChip: Sync,
    <EccChip as EccInstructions<C>>::NonIdentityPoint: Sync
","synthetic":true,"types":["halo2_gadgets::ecc::NonIdentityPoint"]},{"text":"impl<C, EccChip> Sync for Point<C, EccChip> where
    EccChip: Sync,
    <EccChip as EccInstructions<C>>::Point: Sync
","synthetic":true,"types":["halo2_gadgets::ecc::Point"]},{"text":"impl<C, EccChip> Sync for X<C, EccChip> where
    EccChip: Sync,
    <EccChip as EccInstructions<C>>::X: Sync
","synthetic":true,"types":["halo2_gadgets::ecc::X"]},{"text":"impl<C, EccChip> Sync for FixedPoint<C, EccChip> where
    EccChip: Sync,
    <<EccChip as EccInstructions<C>>::FixedPoints as FixedPoints<C>>::FullScalar: Sync
","synthetic":true,"types":["halo2_gadgets::ecc::FixedPoint"]},{"text":"impl<C, EccChip> Sync for FixedPointBaseField<C, EccChip> where
    EccChip: Sync,
    <<EccChip as EccInstructions<C>>::FixedPoints as FixedPoints<C>>::Base: Sync
","synthetic":true,"types":["halo2_gadgets::ecc::FixedPointBaseField"]},{"text":"impl<C, EccChip> Sync for FixedPointShort<C, EccChip> where
    EccChip: Sync,
    <<EccChip as EccInstructions<C>>::FixedPoints as FixedPoints<C>>::ShortScalar: Sync
","synthetic":true,"types":["halo2_gadgets::ecc::FixedPointShort"]},{"text":"impl<F, const WIDTH: usize, const RATE: usize> Sync for Pow5Config<F, WIDTH, RATE>","synthetic":true,"types":["halo2_gadgets::poseidon::pow5::Pow5Config"]},{"text":"impl<F, const WIDTH: usize, const RATE: usize> Sync for Pow5Chip<F, WIDTH, RATE>","synthetic":true,"types":["halo2_gadgets::poseidon::pow5::Pow5Chip"]},{"text":"impl<F> Sync for StateWord<F>","synthetic":true,"types":["halo2_gadgets::poseidon::pow5::StateWord"]},{"text":"impl<F> Sync for PaddedWord<F>","synthetic":true,"types":["halo2_gadgets::poseidon::PaddedWord"]},{"text":"impl<F, PoseidonChip, S, const T: usize, const RATE: usize> Sync for Word<F, PoseidonChip, S, T, RATE> where
    <PoseidonChip as PoseidonInstructions<F, S, T, RATE>>::Word: Sync
","synthetic":true,"types":["halo2_gadgets::poseidon::Word"]},{"text":"impl<F, PoseidonChip, S, M, D, const T: usize, const RATE: usize> Sync for Sponge<F, PoseidonChip, S, M, D, T, RATE> where
    D: Sync,
    M: Sync,
    PoseidonChip: Sync,
    <PoseidonChip as PoseidonInstructions<F, S, T, RATE>>::Word: Sync
","synthetic":true,"types":["halo2_gadgets::poseidon::Sponge"]},{"text":"impl<F, PoseidonChip, S, D, const T: usize, const RATE: usize> Sync for Hash<F, PoseidonChip, S, D, T, RATE> where
    D: Sync,
    PoseidonChip: Sync,
    <PoseidonChip as PoseidonInstructions<F, S, T, RATE>>::Word: Sync
","synthetic":true,"types":["halo2_gadgets::poseidon::Hash"]},{"text":"impl Sync for BlockWord","synthetic":true,"types":["halo2_gadgets::sha256::table16::BlockWord"]},{"text":"impl Sync for Table16Config","synthetic":true,"types":["halo2_gadgets::sha256::table16::Table16Config"]},{"text":"impl Sync for Table16Chip","synthetic":true,"types":["halo2_gadgets::sha256::table16::Table16Chip"]},{"text":"impl<BlockWord> Sync for Sha256Digest<BlockWord> where
    BlockWord: Sync
","synthetic":true,"types":["halo2_gadgets::sha256::Sha256Digest"]},{"text":"impl<F, CS> Sync for Sha256<F, CS> where
    CS: Sync,
    <CS as Sha256Instructions<F>>::BlockWord: Sync,
    <CS as Sha256Instructions<F>>::State: Sync
","synthetic":true,"types":["halo2_gadgets::sha256::Sha256"]},{"text":"impl<Hash, Commit, F> Sync for SinsemillaConfig<Hash, Commit, F> where
    Commit: Sync,
    F: Sync,
    Hash: Sync
","synthetic":true,"types":["halo2_gadgets::sinsemilla::chip::SinsemillaConfig"]},{"text":"impl<Hash, Commit, Fixed> Sync for SinsemillaChip<Hash, Commit, Fixed> where
    Commit: Sync,
    Fixed: Sync,
    Hash: Sync
","synthetic":true,"types":["halo2_gadgets::sinsemilla::chip::SinsemillaChip"]},{"text":"impl<Hash, Commit, Fixed> Sync for MerkleConfig<Hash, Commit, Fixed> where
    Commit: Sync,
    Fixed: Sync,
    Hash: Sync
","synthetic":true,"types":["halo2_gadgets::sinsemilla::merkle::chip::MerkleConfig"]},{"text":"impl<Hash, Commit, Fixed> Sync for MerkleChip<Hash, Commit, Fixed> where
    Commit: Sync,
    Fixed: Sync,
    Hash: Sync
","synthetic":true,"types":["halo2_gadgets::sinsemilla::merkle::chip::MerkleChip"]},{"text":"impl<C, MerkleChip, const PATH_LENGTH: usize, const K: usize, const MAX_WORDS: usize> Sync for MerklePath<C, MerkleChip, PATH_LENGTH, K, MAX_WORDS> where
    MerkleChip: Sync,
    <MerkleChip as SinsemillaInstructions<C, K, MAX_WORDS>>::HashDomains: Sync
","synthetic":true,"types":["halo2_gadgets::sinsemilla::merkle::MerklePath"]},{"text":"impl<C, SinsemillaChip, const K: usize, const MAX_WORDS: usize> Sync for Message<C, SinsemillaChip, K, MAX_WORDS> where
    SinsemillaChip: Sync,
    <SinsemillaChip as SinsemillaInstructions<C, K, MAX_WORDS>>::Message: Sync
","synthetic":true,"types":["halo2_gadgets::sinsemilla::Message"]},{"text":"impl<C, SinsemillaChip, const K: usize, const MAX_WORDS: usize> Sync for MessagePiece<C, SinsemillaChip, K, MAX_WORDS> where
    SinsemillaChip: Sync,
    <SinsemillaChip as SinsemillaInstructions<C, K, MAX_WORDS>>::MessagePiece: Sync
","synthetic":true,"types":["halo2_gadgets::sinsemilla::MessagePiece"]},{"text":"impl<C, SinsemillaChip, EccChip, const K: usize, const MAX_WORDS: usize> Sync for HashDomain<C, SinsemillaChip, EccChip, K, MAX_WORDS> where
    EccChip: Sync,
    SinsemillaChip: Sync
","synthetic":true,"types":["halo2_gadgets::sinsemilla::HashDomain"]},{"text":"impl<C, SinsemillaChip, EccChip, const K: usize, const MAX_WORDS: usize> Sync for CommitDomain<C, SinsemillaChip, EccChip, K, MAX_WORDS> where
    EccChip: Sync,
    SinsemillaChip: Sync,
    <<SinsemillaChip as SinsemillaInstructions<C, K, MAX_WORDS>>::FixedPoints as FixedPoints<C>>::FullScalar: Sync
","synthetic":true,"types":["halo2_gadgets::sinsemilla::CommitDomain"]},{"text":"impl<F> Sync for CondSwapChip<F> where
    F: Sync
","synthetic":true,"types":["halo2_gadgets::utilities::cond_swap::CondSwapChip"]},{"text":"impl Sync for CondSwapConfig","synthetic":true,"types":["halo2_gadgets::utilities::cond_swap::CondSwapConfig"]},{"text":"impl<F> Sync for RunningSum<F>","synthetic":true,"types":["halo2_gadgets::utilities::decompose_running_sum::RunningSum"]},{"text":"impl<F, const WINDOW_NUM_BITS: usize> Sync for RunningSumConfig<F, WINDOW_NUM_BITS>","synthetic":true,"types":["halo2_gadgets::utilities::decompose_running_sum::RunningSumConfig"]},{"text":"impl<F> Sync for RunningSum<F>","synthetic":true,"types":["halo2_gadgets::utilities::lookup_range_check::RunningSum"]},{"text":"impl<F, const K: usize> Sync for LookupRangeCheckConfig<F, K>","synthetic":true,"types":["halo2_gadgets::utilities::lookup_range_check::LookupRangeCheckConfig"]},{"text":"impl<F, T> Sync for RangeConstrained<F, T> where
    T: Sync
","synthetic":true,"types":["halo2_gadgets::utilities::RangeConstrained"]},{"text":"impl Sync for P128Pow5T3","synthetic":true,"types":["halo2_gadgets::primitives::poseidon::p128pow5t3::P128Pow5T3"]},{"text":"impl<F, const RATE: usize> Sync for Absorbing<F, RATE> where
    F: Sync
","synthetic":true,"types":["halo2_gadgets::primitives::poseidon::Absorbing"]},{"text":"impl<F, const RATE: usize> Sync for Squeezing<F, RATE> where
    F: Sync
","synthetic":true,"types":["halo2_gadgets::primitives::poseidon::Squeezing"]},{"text":"impl<const L: usize> Sync for ConstantLength<L>","synthetic":true,"types":["halo2_gadgets::primitives::poseidon::ConstantLength"]},{"text":"impl<F, S, D, const T: usize, const RATE: usize> Sync for Hash<F, S, D, T, RATE> where
    D: Sync,
    S: Sync
","synthetic":true,"types":["halo2_gadgets::primitives::poseidon::Hash"]},{"text":"impl Sync for HashDomain","synthetic":true,"types":["halo2_gadgets::primitives::sinsemilla::HashDomain"]},{"text":"impl Sync for CommitDomain","synthetic":true,"types":["halo2_gadgets::primitives::sinsemilla::CommitDomain"]}]; +implementors["halo2_gadgets"] = [{"text":"impl Sync for EccPoint","synthetic":true,"types":["halo2_gadgets::ecc::chip::EccPoint"]},{"text":"impl Sync for NonIdentityEccPoint","synthetic":true,"types":["halo2_gadgets::ecc::chip::NonIdentityEccPoint"]},{"text":"impl<FixedPoints> Sync for EccConfig<FixedPoints> where
    FixedPoints: Sync
","synthetic":true,"types":["halo2_gadgets::ecc::chip::EccConfig"]},{"text":"impl Sync for FullScalar","synthetic":true,"types":["halo2_gadgets::ecc::chip::FullScalar"]},{"text":"impl Sync for ShortScalar","synthetic":true,"types":["halo2_gadgets::ecc::chip::ShortScalar"]},{"text":"impl Sync for BaseFieldElem","synthetic":true,"types":["halo2_gadgets::ecc::chip::BaseFieldElem"]},{"text":"impl<FixedPoints> Sync for EccChip<FixedPoints> where
    FixedPoints: Sync
","synthetic":true,"types":["halo2_gadgets::ecc::chip::EccChip"]},{"text":"impl Sync for EccScalarFixed","synthetic":true,"types":["halo2_gadgets::ecc::chip::EccScalarFixed"]},{"text":"impl Sync for EccScalarFixedShort","synthetic":true,"types":["halo2_gadgets::ecc::chip::EccScalarFixedShort"]},{"text":"impl Sync for ScalarVar","synthetic":true,"types":["halo2_gadgets::ecc::chip::ScalarVar"]},{"text":"impl<C, EccChip> Sync for ScalarVar<C, EccChip> where
    EccChip: Sync,
    <EccChip as EccInstructions<C>>::ScalarVar: Sync
","synthetic":true,"types":["halo2_gadgets::ecc::ScalarVar"]},{"text":"impl<C, EccChip> Sync for ScalarFixed<C, EccChip> where
    EccChip: Sync,
    <EccChip as EccInstructions<C>>::ScalarFixed: Sync
","synthetic":true,"types":["halo2_gadgets::ecc::ScalarFixed"]},{"text":"impl<C, EccChip> Sync for ScalarFixedShort<C, EccChip> where
    EccChip: Sync,
    <EccChip as EccInstructions<C>>::ScalarFixedShort: Sync
","synthetic":true,"types":["halo2_gadgets::ecc::ScalarFixedShort"]},{"text":"impl<C, EccChip> Sync for NonIdentityPoint<C, EccChip> where
    EccChip: Sync,
    <EccChip as EccInstructions<C>>::NonIdentityPoint: Sync
","synthetic":true,"types":["halo2_gadgets::ecc::NonIdentityPoint"]},{"text":"impl<C, EccChip> Sync for Point<C, EccChip> where
    EccChip: Sync,
    <EccChip as EccInstructions<C>>::Point: Sync
","synthetic":true,"types":["halo2_gadgets::ecc::Point"]},{"text":"impl<C, EccChip> Sync for X<C, EccChip> where
    EccChip: Sync,
    <EccChip as EccInstructions<C>>::X: Sync
","synthetic":true,"types":["halo2_gadgets::ecc::X"]},{"text":"impl<C, EccChip> Sync for FixedPoint<C, EccChip> where
    EccChip: Sync,
    <<EccChip as EccInstructions<C>>::FixedPoints as FixedPoints<C>>::FullScalar: Sync
","synthetic":true,"types":["halo2_gadgets::ecc::FixedPoint"]},{"text":"impl<C, EccChip> Sync for FixedPointBaseField<C, EccChip> where
    EccChip: Sync,
    <<EccChip as EccInstructions<C>>::FixedPoints as FixedPoints<C>>::Base: Sync
","synthetic":true,"types":["halo2_gadgets::ecc::FixedPointBaseField"]},{"text":"impl<C, EccChip> Sync for FixedPointShort<C, EccChip> where
    EccChip: Sync,
    <<EccChip as EccInstructions<C>>::FixedPoints as FixedPoints<C>>::ShortScalar: Sync
","synthetic":true,"types":["halo2_gadgets::ecc::FixedPointShort"]},{"text":"impl<F, const WIDTH: usize, const RATE: usize> Sync for Pow5Config<F, WIDTH, RATE>","synthetic":true,"types":["halo2_gadgets::poseidon::pow5::Pow5Config"]},{"text":"impl<F, const WIDTH: usize, const RATE: usize> Sync for Pow5Chip<F, WIDTH, RATE>","synthetic":true,"types":["halo2_gadgets::poseidon::pow5::Pow5Chip"]},{"text":"impl<F> Sync for StateWord<F>","synthetic":true,"types":["halo2_gadgets::poseidon::pow5::StateWord"]},{"text":"impl<F> Sync for PaddedWord<F>","synthetic":true,"types":["halo2_gadgets::poseidon::PaddedWord"]},{"text":"impl<F, PoseidonChip, S, const T: usize, const RATE: usize> Sync for Word<F, PoseidonChip, S, T, RATE> where
    <PoseidonChip as PoseidonInstructions<F, S, T, RATE>>::Word: Sync
","synthetic":true,"types":["halo2_gadgets::poseidon::Word"]},{"text":"impl<F, PoseidonChip, S, M, D, const T: usize, const RATE: usize> Sync for Sponge<F, PoseidonChip, S, M, D, T, RATE> where
    D: Sync,
    M: Sync,
    PoseidonChip: Sync,
    <PoseidonChip as PoseidonInstructions<F, S, T, RATE>>::Word: Sync
","synthetic":true,"types":["halo2_gadgets::poseidon::Sponge"]},{"text":"impl<F, PoseidonChip, S, D, const T: usize, const RATE: usize> Sync for Hash<F, PoseidonChip, S, D, T, RATE> where
    D: Sync,
    PoseidonChip: Sync,
    <PoseidonChip as PoseidonInstructions<F, S, T, RATE>>::Word: Sync
","synthetic":true,"types":["halo2_gadgets::poseidon::Hash"]},{"text":"impl Sync for BlockWord","synthetic":true,"types":["halo2_gadgets::sha256::table16::BlockWord"]},{"text":"impl Sync for Table16Config","synthetic":true,"types":["halo2_gadgets::sha256::table16::Table16Config"]},{"text":"impl Sync for Table16Chip","synthetic":true,"types":["halo2_gadgets::sha256::table16::Table16Chip"]},{"text":"impl<BlockWord> Sync for Sha256Digest<BlockWord> where
    BlockWord: Sync
","synthetic":true,"types":["halo2_gadgets::sha256::Sha256Digest"]},{"text":"impl<F, CS> Sync for Sha256<F, CS> where
    CS: Sync,
    <CS as Sha256Instructions<F>>::BlockWord: Sync,
    <CS as Sha256Instructions<F>>::State: Sync
","synthetic":true,"types":["halo2_gadgets::sha256::Sha256"]},{"text":"impl<Hash, Commit, F> Sync for SinsemillaConfig<Hash, Commit, F> where
    Commit: Sync,
    F: Sync,
    Hash: Sync
","synthetic":true,"types":["halo2_gadgets::sinsemilla::chip::SinsemillaConfig"]},{"text":"impl<Hash, Commit, Fixed> Sync for SinsemillaChip<Hash, Commit, Fixed> where
    Commit: Sync,
    Fixed: Sync,
    Hash: Sync
","synthetic":true,"types":["halo2_gadgets::sinsemilla::chip::SinsemillaChip"]},{"text":"impl<Hash, Commit, Fixed> Sync for MerkleConfig<Hash, Commit, Fixed> where
    Commit: Sync,
    Fixed: Sync,
    Hash: Sync
","synthetic":true,"types":["halo2_gadgets::sinsemilla::merkle::chip::MerkleConfig"]},{"text":"impl<Hash, Commit, Fixed> Sync for MerkleChip<Hash, Commit, Fixed> where
    Commit: Sync,
    Fixed: Sync,
    Hash: Sync
","synthetic":true,"types":["halo2_gadgets::sinsemilla::merkle::chip::MerkleChip"]},{"text":"impl<C, MerkleChip, const PATH_LENGTH: usize, const K: usize, const MAX_WORDS: usize> Sync for MerklePath<C, MerkleChip, PATH_LENGTH, K, MAX_WORDS> where
    MerkleChip: Sync,
    <MerkleChip as SinsemillaInstructions<C, K, MAX_WORDS>>::HashDomains: Sync
","synthetic":true,"types":["halo2_gadgets::sinsemilla::merkle::MerklePath"]},{"text":"impl<C, SinsemillaChip, const K: usize, const MAX_WORDS: usize> Sync for Message<C, SinsemillaChip, K, MAX_WORDS> where
    SinsemillaChip: Sync,
    <SinsemillaChip as SinsemillaInstructions<C, K, MAX_WORDS>>::Message: Sync
","synthetic":true,"types":["halo2_gadgets::sinsemilla::Message"]},{"text":"impl<C, SinsemillaChip, const K: usize, const MAX_WORDS: usize> Sync for MessagePiece<C, SinsemillaChip, K, MAX_WORDS> where
    SinsemillaChip: Sync,
    <SinsemillaChip as SinsemillaInstructions<C, K, MAX_WORDS>>::MessagePiece: Sync
","synthetic":true,"types":["halo2_gadgets::sinsemilla::MessagePiece"]},{"text":"impl<C, SinsemillaChip, EccChip, const K: usize, const MAX_WORDS: usize> Sync for HashDomain<C, SinsemillaChip, EccChip, K, MAX_WORDS> where
    EccChip: Sync,
    SinsemillaChip: Sync
","synthetic":true,"types":["halo2_gadgets::sinsemilla::HashDomain"]},{"text":"impl<C, SinsemillaChip, EccChip, const K: usize, const MAX_WORDS: usize> Sync for CommitDomain<C, SinsemillaChip, EccChip, K, MAX_WORDS> where
    EccChip: Sync,
    SinsemillaChip: Sync,
    <<SinsemillaChip as SinsemillaInstructions<C, K, MAX_WORDS>>::FixedPoints as FixedPoints<C>>::FullScalar: Sync
","synthetic":true,"types":["halo2_gadgets::sinsemilla::CommitDomain"]},{"text":"impl<F> Sync for CondSwapChip<F> where
    F: Sync
","synthetic":true,"types":["halo2_gadgets::utilities::cond_swap::CondSwapChip"]},{"text":"impl Sync for CondSwapConfig","synthetic":true,"types":["halo2_gadgets::utilities::cond_swap::CondSwapConfig"]},{"text":"impl<F> Sync for RunningSum<F>","synthetic":true,"types":["halo2_gadgets::utilities::decompose_running_sum::RunningSum"]},{"text":"impl<F, const WINDOW_NUM_BITS: usize> Sync for RunningSumConfig<F, WINDOW_NUM_BITS>","synthetic":true,"types":["halo2_gadgets::utilities::decompose_running_sum::RunningSumConfig"]},{"text":"impl<F> Sync for RunningSum<F>","synthetic":true,"types":["halo2_gadgets::utilities::lookup_range_check::RunningSum"]},{"text":"impl<F, const K: usize> Sync for LookupRangeCheckConfig<F, K>","synthetic":true,"types":["halo2_gadgets::utilities::lookup_range_check::LookupRangeCheckConfig"]},{"text":"impl<F, T> Sync for RangeConstrained<F, T> where
    T: Sync
","synthetic":true,"types":["halo2_gadgets::utilities::RangeConstrained"]},{"text":"impl Sync for P128Pow5T3","synthetic":true,"types":["halo2_gadgets::primitives::poseidon::p128pow5t3::P128Pow5T3"]},{"text":"impl<F, const RATE: usize> Sync for Absorbing<F, RATE> where
    F: Sync
","synthetic":true,"types":["halo2_gadgets::primitives::poseidon::Absorbing"]},{"text":"impl<F, const RATE: usize> Sync for Squeezing<F, RATE> where
    F: Sync
","synthetic":true,"types":["halo2_gadgets::primitives::poseidon::Squeezing"]},{"text":"impl<const L: usize> Sync for ConstantLength<L>","synthetic":true,"types":["halo2_gadgets::primitives::poseidon::ConstantLength"]},{"text":"impl<F, S, D, const T: usize, const RATE: usize> Sync for Hash<F, S, D, T, RATE> where
    D: Sync,
    S: Sync
","synthetic":true,"types":["halo2_gadgets::primitives::poseidon::Hash"]},{"text":"impl Sync for HashDomain","synthetic":true,"types":["halo2_gadgets::primitives::sinsemilla::HashDomain"]},{"text":"impl Sync for CommitDomain","synthetic":true,"types":["halo2_gadgets::primitives::sinsemilla::CommitDomain"]}]; implementors["halo2_proofs"] = [{"text":"impl Sync for SimpleFloorPlanner","synthetic":true,"types":["halo2_proofs::circuit::floor_planner::single_pass::SimpleFloorPlanner"]},{"text":"impl Sync for V1","synthetic":true,"types":["halo2_proofs::circuit::floor_planner::v1::V1"]},{"text":"impl<'p, 'a, F, CS> Sync for V1Pass<'p, 'a, F, CS> where
    CS: Sync
","synthetic":true,"types":["halo2_proofs::circuit::floor_planner::v1::V1Pass"]},{"text":"impl Sync for RegionShape","synthetic":true,"types":["halo2_proofs::circuit::layouter::RegionShape"]},{"text":"impl Sync for RegionColumn","synthetic":true,"types":["halo2_proofs::circuit::layouter::RegionColumn"]},{"text":"impl Sync for RegionIndex","synthetic":true,"types":["halo2_proofs::circuit::RegionIndex"]},{"text":"impl Sync for RegionStart","synthetic":true,"types":["halo2_proofs::circuit::RegionStart"]},{"text":"impl Sync for Cell","synthetic":true,"types":["halo2_proofs::circuit::Cell"]},{"text":"impl<V, F> Sync for AssignedCell<V, F> where
    V: Sync
","synthetic":true,"types":["halo2_proofs::circuit::AssignedCell"]},{"text":"impl<'r, F> !Sync for Region<'r, F>","synthetic":true,"types":["halo2_proofs::circuit::Region"]},{"text":"impl<'r, F> !Sync for Table<'r, F>","synthetic":true,"types":["halo2_proofs::circuit::Table"]},{"text":"impl<'a, F, L> Sync for NamespacedLayouter<'a, F, L> where
    L: Sync
","synthetic":true,"types":["halo2_proofs::circuit::NamespacedLayouter"]},{"text":"impl<F> Sync for Assigned<F> where
    F: Sync
","synthetic":true,"types":["halo2_proofs::plonk::assigned::Assigned"]},{"text":"impl<C> Sync for Column<C> where
    C: Sync
","synthetic":true,"types":["halo2_proofs::plonk::circuit::Column"]},{"text":"impl Sync for Advice","synthetic":true,"types":["halo2_proofs::plonk::circuit::Advice"]},{"text":"impl Sync for Fixed","synthetic":true,"types":["halo2_proofs::plonk::circuit::Fixed"]},{"text":"impl Sync for Instance","synthetic":true,"types":["halo2_proofs::plonk::circuit::Instance"]},{"text":"impl Sync for Any","synthetic":true,"types":["halo2_proofs::plonk::circuit::Any"]},{"text":"impl Sync for Selector","synthetic":true,"types":["halo2_proofs::plonk::circuit::Selector"]},{"text":"impl Sync for TableColumn","synthetic":true,"types":["halo2_proofs::plonk::circuit::TableColumn"]},{"text":"impl<F> Sync for Expression<F> where
    F: Sync
","synthetic":true,"types":["halo2_proofs::plonk::circuit::Expression"]},{"text":"impl<F> Sync for Constraint<F>","synthetic":true,"types":["halo2_proofs::plonk::circuit::Constraint"]},{"text":"impl<F, C, Iter> Sync for Constraints<F, C, Iter> where
    Iter: Sync
","synthetic":true,"types":["halo2_proofs::plonk::circuit::Constraints"]},{"text":"impl<F> Sync for ConstraintSystem<F>","synthetic":true,"types":["halo2_proofs::plonk::circuit::ConstraintSystem"]},{"text":"impl<'a, F> Sync for PinnedConstraintSystem<'a, F>","synthetic":true,"types":["halo2_proofs::plonk::circuit::PinnedConstraintSystem"]},{"text":"impl<'a, F> Sync for VirtualCells<'a, F>","synthetic":true,"types":["halo2_proofs::plonk::circuit::VirtualCells"]},{"text":"impl Sync for Error","synthetic":true,"types":["halo2_proofs::plonk::error::Error"]},{"text":"impl<'params, C> Sync for SingleVerifier<'params, C>","synthetic":true,"types":["halo2_proofs::plonk::verifier::SingleVerifier"]},{"text":"impl<'params, C, R> Sync for BatchVerifier<'params, C, R> where
    R: Sync
","synthetic":true,"types":["halo2_proofs::plonk::verifier::BatchVerifier"]},{"text":"impl<C> Sync for VerifyingKey<C>","synthetic":true,"types":["halo2_proofs::plonk::VerifyingKey"]},{"text":"impl<'a, C> Sync for PinnedVerificationKey<'a, C>","synthetic":true,"types":["halo2_proofs::plonk::PinnedVerificationKey"]},{"text":"impl<C> Sync for ProvingKey<C>","synthetic":true,"types":["halo2_proofs::plonk::ProvingKey"]},{"text":"impl<'a, C> Sync for MSM<'a, C>","synthetic":true,"types":["halo2_proofs::poly::commitment::msm::MSM"]},{"text":"impl<'a, C, E> Sync for Guard<'a, C, E> where
    E: Sync
","synthetic":true,"types":["halo2_proofs::poly::commitment::verifier::Guard"]},{"text":"impl<C, E> Sync for Accumulator<C, E> where
    E: Sync
","synthetic":true,"types":["halo2_proofs::poly::commitment::verifier::Accumulator"]},{"text":"impl<C> Sync for Params<C>","synthetic":true,"types":["halo2_proofs::poly::commitment::Params"]},{"text":"impl<F> Sync for Blind<F> where
    F: Sync
","synthetic":true,"types":["halo2_proofs::poly::commitment::Blind"]},{"text":"impl<G> Sync for EvaluationDomain<G>","synthetic":true,"types":["halo2_proofs::poly::domain::EvaluationDomain"]},{"text":"impl<'a, G> Sync for PinnedEvaluationDomain<'a, G>","synthetic":true,"types":["halo2_proofs::poly::domain::PinnedEvaluationDomain"]},{"text":"impl<'a, C> Sync for ProverQuery<'a, C>","synthetic":true,"types":["halo2_proofs::poly::multiopen::ProverQuery"]},{"text":"impl<'r, 'params, C> Sync for VerifierQuery<'r, 'params, C>","synthetic":true,"types":["halo2_proofs::poly::multiopen::VerifierQuery"]},{"text":"impl Sync for Error","synthetic":true,"types":["halo2_proofs::poly::Error"]},{"text":"impl Sync for Coeff","synthetic":true,"types":["halo2_proofs::poly::Coeff"]},{"text":"impl Sync for LagrangeCoeff","synthetic":true,"types":["halo2_proofs::poly::LagrangeCoeff"]},{"text":"impl Sync for ExtendedLagrangeCoeff","synthetic":true,"types":["halo2_proofs::poly::ExtendedLagrangeCoeff"]},{"text":"impl<F, B> Sync for Polynomial<F, B> where
    B: Sync,
    F: Sync
","synthetic":true,"types":["halo2_proofs::poly::Polynomial"]},{"text":"impl Sync for Rotation","synthetic":true,"types":["halo2_proofs::poly::Rotation"]},{"text":"impl<R, C, E> Sync for Blake2bRead<R, C, E> where
    E: Sync,
    R: Sync
","synthetic":true,"types":["halo2_proofs::transcript::Blake2bRead"]},{"text":"impl<W, C, E> Sync for Blake2bWrite<W, C, E> where
    E: Sync,
    W: Sync
","synthetic":true,"types":["halo2_proofs::transcript::Blake2bWrite"]},{"text":"impl<C, T> Sync for ChallengeScalar<C, T> where
    T: Sync
","synthetic":true,"types":["halo2_proofs::transcript::ChallengeScalar"]},{"text":"impl<C> Sync for Challenge255<C>","synthetic":true,"types":["halo2_proofs::transcript::Challenge255"]},{"text":"impl Sync for Column","synthetic":true,"types":["halo2_proofs::dev::metadata::Column"]},{"text":"impl Sync for VirtualCell","synthetic":true,"types":["halo2_proofs::dev::metadata::VirtualCell"]},{"text":"impl Sync for Gate","synthetic":true,"types":["halo2_proofs::dev::metadata::Gate"]},{"text":"impl Sync for Constraint","synthetic":true,"types":["halo2_proofs::dev::metadata::Constraint"]},{"text":"impl Sync for Region","synthetic":true,"types":["halo2_proofs::dev::metadata::Region"]},{"text":"impl Sync for FailureLocation","synthetic":true,"types":["halo2_proofs::dev::failure::FailureLocation"]},{"text":"impl Sync for VerifyFailure","synthetic":true,"types":["halo2_proofs::dev::failure::VerifyFailure"]},{"text":"impl<G, ConcreteCircuit> Sync for CircuitCost<G, ConcreteCircuit> where
    ConcreteCircuit: Sync
","synthetic":true,"types":["halo2_proofs::dev::cost::CircuitCost"]},{"text":"impl<G> Sync for MarginalProofSize<G>","synthetic":true,"types":["halo2_proofs::dev::cost::MarginalProofSize"]},{"text":"impl<G> Sync for ProofSize<G>","synthetic":true,"types":["halo2_proofs::dev::cost::ProofSize"]},{"text":"impl Sync for CircuitGates","synthetic":true,"types":["halo2_proofs::dev::gates::CircuitGates"]},{"text":"impl Sync for CircuitLayout","synthetic":true,"types":["halo2_proofs::dev::graph::layout::CircuitLayout"]},{"text":"impl<F> Sync for MockProver<F>","synthetic":true,"types":["halo2_proofs::dev::MockProver"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/rustdoc/latest/implementors/core/marker/trait.Unpin.js b/rustdoc/latest/implementors/core/marker/trait.Unpin.js index 6237d976..4ede8235 100644 --- a/rustdoc/latest/implementors/core/marker/trait.Unpin.js +++ b/rustdoc/latest/implementors/core/marker/trait.Unpin.js @@ -1,4 +1,4 @@ (function() {var implementors = {}; -implementors["halo2_gadgets"] = [{"text":"impl Unpin for EccPoint","synthetic":true,"types":["halo2_gadgets::ecc::chip::EccPoint"]},{"text":"impl Unpin for NonIdentityEccPoint","synthetic":true,"types":["halo2_gadgets::ecc::chip::NonIdentityEccPoint"]},{"text":"impl<FixedPoints> Unpin for EccConfig<FixedPoints> where
    FixedPoints: Unpin
","synthetic":true,"types":["halo2_gadgets::ecc::chip::EccConfig"]},{"text":"impl Unpin for FullScalar","synthetic":true,"types":["halo2_gadgets::ecc::chip::FullScalar"]},{"text":"impl Unpin for ShortScalar","synthetic":true,"types":["halo2_gadgets::ecc::chip::ShortScalar"]},{"text":"impl Unpin for BaseFieldElem","synthetic":true,"types":["halo2_gadgets::ecc::chip::BaseFieldElem"]},{"text":"impl<FixedPoints> Unpin for EccChip<FixedPoints> where
    FixedPoints: Unpin
","synthetic":true,"types":["halo2_gadgets::ecc::chip::EccChip"]},{"text":"impl Unpin for EccScalarFixed","synthetic":true,"types":["halo2_gadgets::ecc::chip::EccScalarFixed"]},{"text":"impl Unpin for EccScalarFixedShort","synthetic":true,"types":["halo2_gadgets::ecc::chip::EccScalarFixedShort"]},{"text":"impl<C, EccChip> Unpin for ScalarVar<C, EccChip> where
    EccChip: Unpin,
    <EccChip as EccInstructions<C>>::ScalarVar: Unpin
","synthetic":true,"types":["halo2_gadgets::ecc::ScalarVar"]},{"text":"impl<C, EccChip> Unpin for ScalarFixed<C, EccChip> where
    EccChip: Unpin,
    <EccChip as EccInstructions<C>>::ScalarFixed: Unpin
","synthetic":true,"types":["halo2_gadgets::ecc::ScalarFixed"]},{"text":"impl<C, EccChip> Unpin for ScalarFixedShort<C, EccChip> where
    EccChip: Unpin,
    <EccChip as EccInstructions<C>>::ScalarFixedShort: Unpin
","synthetic":true,"types":["halo2_gadgets::ecc::ScalarFixedShort"]},{"text":"impl<C, EccChip> Unpin for NonIdentityPoint<C, EccChip> where
    EccChip: Unpin,
    <EccChip as EccInstructions<C>>::NonIdentityPoint: Unpin
","synthetic":true,"types":["halo2_gadgets::ecc::NonIdentityPoint"]},{"text":"impl<C, EccChip> Unpin for Point<C, EccChip> where
    EccChip: Unpin,
    <EccChip as EccInstructions<C>>::Point: Unpin
","synthetic":true,"types":["halo2_gadgets::ecc::Point"]},{"text":"impl<C, EccChip> Unpin for X<C, EccChip> where
    EccChip: Unpin,
    <EccChip as EccInstructions<C>>::X: Unpin
","synthetic":true,"types":["halo2_gadgets::ecc::X"]},{"text":"impl<C, EccChip> Unpin for FixedPoint<C, EccChip> where
    EccChip: Unpin,
    <<EccChip as EccInstructions<C>>::FixedPoints as FixedPoints<C>>::FullScalar: Unpin
","synthetic":true,"types":["halo2_gadgets::ecc::FixedPoint"]},{"text":"impl<C, EccChip> Unpin for FixedPointBaseField<C, EccChip> where
    EccChip: Unpin,
    <<EccChip as EccInstructions<C>>::FixedPoints as FixedPoints<C>>::Base: Unpin
","synthetic":true,"types":["halo2_gadgets::ecc::FixedPointBaseField"]},{"text":"impl<C, EccChip> Unpin for FixedPointShort<C, EccChip> where
    EccChip: Unpin,
    <<EccChip as EccInstructions<C>>::FixedPoints as FixedPoints<C>>::ShortScalar: Unpin
","synthetic":true,"types":["halo2_gadgets::ecc::FixedPointShort"]},{"text":"impl<F, const WIDTH: usize, const RATE: usize> Unpin for Pow5Config<F, WIDTH, RATE> where
    F: Unpin
","synthetic":true,"types":["halo2_gadgets::poseidon::pow5::Pow5Config"]},{"text":"impl<F, const WIDTH: usize, const RATE: usize> Unpin for Pow5Chip<F, WIDTH, RATE> where
    F: Unpin
","synthetic":true,"types":["halo2_gadgets::poseidon::pow5::Pow5Chip"]},{"text":"impl<F> Unpin for StateWord<F> where
    F: Unpin
","synthetic":true,"types":["halo2_gadgets::poseidon::pow5::StateWord"]},{"text":"impl<F> Unpin for PaddedWord<F> where
    F: Unpin
","synthetic":true,"types":["halo2_gadgets::poseidon::PaddedWord"]},{"text":"impl<F, PoseidonChip, S, const T: usize, const RATE: usize> Unpin for Word<F, PoseidonChip, S, T, RATE> where
    <PoseidonChip as PoseidonInstructions<F, S, T, RATE>>::Word: Unpin
","synthetic":true,"types":["halo2_gadgets::poseidon::Word"]},{"text":"impl<F, PoseidonChip, S, M, D, const T: usize, const RATE: usize> Unpin for Sponge<F, PoseidonChip, S, M, D, T, RATE> where
    D: Unpin,
    M: Unpin,
    PoseidonChip: Unpin,
    <PoseidonChip as PoseidonInstructions<F, S, T, RATE>>::Word: Unpin
","synthetic":true,"types":["halo2_gadgets::poseidon::Sponge"]},{"text":"impl<F, PoseidonChip, S, D, const T: usize, const RATE: usize> Unpin for Hash<F, PoseidonChip, S, D, T, RATE> where
    D: Unpin,
    F: Unpin,
    PoseidonChip: Unpin,
    <PoseidonChip as PoseidonInstructions<F, S, T, RATE>>::Word: Unpin
","synthetic":true,"types":["halo2_gadgets::poseidon::Hash"]},{"text":"impl Unpin for BlockWord","synthetic":true,"types":["halo2_gadgets::sha256::table16::BlockWord"]},{"text":"impl Unpin for Table16Config","synthetic":true,"types":["halo2_gadgets::sha256::table16::Table16Config"]},{"text":"impl Unpin for Table16Chip","synthetic":true,"types":["halo2_gadgets::sha256::table16::Table16Chip"]},{"text":"impl<BlockWord> Unpin for Sha256Digest<BlockWord> where
    BlockWord: Unpin
","synthetic":true,"types":["halo2_gadgets::sha256::Sha256Digest"]},{"text":"impl<F, CS> Unpin for Sha256<F, CS> where
    CS: Unpin,
    <CS as Sha256Instructions<F>>::BlockWord: Unpin,
    <CS as Sha256Instructions<F>>::State: Unpin
","synthetic":true,"types":["halo2_gadgets::sha256::Sha256"]},{"text":"impl<Hash, Commit, F> Unpin for SinsemillaConfig<Hash, Commit, F> where
    Commit: Unpin,
    F: Unpin,
    Hash: Unpin
","synthetic":true,"types":["halo2_gadgets::sinsemilla::chip::SinsemillaConfig"]},{"text":"impl<Hash, Commit, Fixed> Unpin for SinsemillaChip<Hash, Commit, Fixed> where
    Commit: Unpin,
    Fixed: Unpin,
    Hash: Unpin
","synthetic":true,"types":["halo2_gadgets::sinsemilla::chip::SinsemillaChip"]},{"text":"impl<Hash, Commit, Fixed> Unpin for MerkleConfig<Hash, Commit, Fixed> where
    Commit: Unpin,
    Fixed: Unpin,
    Hash: Unpin
","synthetic":true,"types":["halo2_gadgets::sinsemilla::merkle::chip::MerkleConfig"]},{"text":"impl<Hash, Commit, Fixed> Unpin for MerkleChip<Hash, Commit, Fixed> where
    Commit: Unpin,
    Fixed: Unpin,
    Hash: Unpin
","synthetic":true,"types":["halo2_gadgets::sinsemilla::merkle::chip::MerkleChip"]},{"text":"impl<C, MerkleChip, const PATH_LENGTH: usize, const K: usize, const MAX_WORDS: usize> Unpin for MerklePath<C, MerkleChip, PATH_LENGTH, K, MAX_WORDS> where
    MerkleChip: Unpin,
    <C as CurveAffine>::Base: Unpin,
    <MerkleChip as SinsemillaInstructions<C, K, MAX_WORDS>>::HashDomains: Unpin
","synthetic":true,"types":["halo2_gadgets::sinsemilla::merkle::MerklePath"]},{"text":"impl<C, SinsemillaChip, const K: usize, const MAX_WORDS: usize> Unpin for Message<C, SinsemillaChip, K, MAX_WORDS> where
    SinsemillaChip: Unpin,
    <SinsemillaChip as SinsemillaInstructions<C, K, MAX_WORDS>>::Message: Unpin
","synthetic":true,"types":["halo2_gadgets::sinsemilla::Message"]},{"text":"impl<C, SinsemillaChip, const K: usize, const MAX_WORDS: usize> Unpin for MessagePiece<C, SinsemillaChip, K, MAX_WORDS> where
    SinsemillaChip: Unpin,
    <SinsemillaChip as SinsemillaInstructions<C, K, MAX_WORDS>>::MessagePiece: Unpin
","synthetic":true,"types":["halo2_gadgets::sinsemilla::MessagePiece"]},{"text":"impl<C, SinsemillaChip, EccChip, const K: usize, const MAX_WORDS: usize> Unpin for HashDomain<C, SinsemillaChip, EccChip, K, MAX_WORDS> where
    C: Unpin,
    EccChip: Unpin,
    SinsemillaChip: Unpin
","synthetic":true,"types":["halo2_gadgets::sinsemilla::HashDomain"]},{"text":"impl<C, SinsemillaChip, EccChip, const K: usize, const MAX_WORDS: usize> Unpin for CommitDomain<C, SinsemillaChip, EccChip, K, MAX_WORDS> where
    C: Unpin,
    EccChip: Unpin,
    SinsemillaChip: Unpin,
    <<SinsemillaChip as SinsemillaInstructions<C, K, MAX_WORDS>>::FixedPoints as FixedPoints<C>>::FullScalar: Unpin
","synthetic":true,"types":["halo2_gadgets::sinsemilla::CommitDomain"]},{"text":"impl<F> Unpin for CondSwapChip<F> where
    F: Unpin
","synthetic":true,"types":["halo2_gadgets::utilities::cond_swap::CondSwapChip"]},{"text":"impl Unpin for CondSwapConfig","synthetic":true,"types":["halo2_gadgets::utilities::cond_swap::CondSwapConfig"]},{"text":"impl<F> Unpin for RunningSum<F> where
    F: Unpin
","synthetic":true,"types":["halo2_gadgets::utilities::decompose_running_sum::RunningSum"]},{"text":"impl<F, const WINDOW_NUM_BITS: usize> Unpin for RunningSumConfig<F, WINDOW_NUM_BITS> where
    F: Unpin
","synthetic":true,"types":["halo2_gadgets::utilities::decompose_running_sum::RunningSumConfig"]},{"text":"impl<F> Unpin for RunningSum<F> where
    F: Unpin
","synthetic":true,"types":["halo2_gadgets::utilities::lookup_range_check::RunningSum"]},{"text":"impl<F, const K: usize> Unpin for LookupRangeCheckConfig<F, K> where
    F: Unpin
","synthetic":true,"types":["halo2_gadgets::utilities::lookup_range_check::LookupRangeCheckConfig"]},{"text":"impl<F, T> Unpin for RangeConstrained<F, T> where
    F: Unpin,
    T: Unpin
","synthetic":true,"types":["halo2_gadgets::utilities::RangeConstrained"]},{"text":"impl Unpin for P128Pow5T3","synthetic":true,"types":["halo2_gadgets::primitives::poseidon::p128pow5t3::P128Pow5T3"]},{"text":"impl<F, const RATE: usize> Unpin for Absorbing<F, RATE> where
    F: Unpin
","synthetic":true,"types":["halo2_gadgets::primitives::poseidon::Absorbing"]},{"text":"impl<F, const RATE: usize> Unpin for Squeezing<F, RATE> where
    F: Unpin
","synthetic":true,"types":["halo2_gadgets::primitives::poseidon::Squeezing"]},{"text":"impl<const L: usize> Unpin for ConstantLength<L>","synthetic":true,"types":["halo2_gadgets::primitives::poseidon::ConstantLength"]},{"text":"impl<F, S, D, const T: usize, const RATE: usize> Unpin for Hash<F, S, D, T, RATE> where
    D: Unpin,
    F: Unpin,
    S: Unpin
","synthetic":true,"types":["halo2_gadgets::primitives::poseidon::Hash"]},{"text":"impl Unpin for HashDomain","synthetic":true,"types":["halo2_gadgets::primitives::sinsemilla::HashDomain"]},{"text":"impl Unpin for CommitDomain","synthetic":true,"types":["halo2_gadgets::primitives::sinsemilla::CommitDomain"]}]; +implementors["halo2_gadgets"] = [{"text":"impl Unpin for EccPoint","synthetic":true,"types":["halo2_gadgets::ecc::chip::EccPoint"]},{"text":"impl Unpin for NonIdentityEccPoint","synthetic":true,"types":["halo2_gadgets::ecc::chip::NonIdentityEccPoint"]},{"text":"impl<FixedPoints> Unpin for EccConfig<FixedPoints> where
    FixedPoints: Unpin
","synthetic":true,"types":["halo2_gadgets::ecc::chip::EccConfig"]},{"text":"impl Unpin for FullScalar","synthetic":true,"types":["halo2_gadgets::ecc::chip::FullScalar"]},{"text":"impl Unpin for ShortScalar","synthetic":true,"types":["halo2_gadgets::ecc::chip::ShortScalar"]},{"text":"impl Unpin for BaseFieldElem","synthetic":true,"types":["halo2_gadgets::ecc::chip::BaseFieldElem"]},{"text":"impl<FixedPoints> Unpin for EccChip<FixedPoints> where
    FixedPoints: Unpin
","synthetic":true,"types":["halo2_gadgets::ecc::chip::EccChip"]},{"text":"impl Unpin for EccScalarFixed","synthetic":true,"types":["halo2_gadgets::ecc::chip::EccScalarFixed"]},{"text":"impl Unpin for EccScalarFixedShort","synthetic":true,"types":["halo2_gadgets::ecc::chip::EccScalarFixedShort"]},{"text":"impl Unpin for ScalarVar","synthetic":true,"types":["halo2_gadgets::ecc::chip::ScalarVar"]},{"text":"impl<C, EccChip> Unpin for ScalarVar<C, EccChip> where
    EccChip: Unpin,
    <EccChip as EccInstructions<C>>::ScalarVar: Unpin
","synthetic":true,"types":["halo2_gadgets::ecc::ScalarVar"]},{"text":"impl<C, EccChip> Unpin for ScalarFixed<C, EccChip> where
    EccChip: Unpin,
    <EccChip as EccInstructions<C>>::ScalarFixed: Unpin
","synthetic":true,"types":["halo2_gadgets::ecc::ScalarFixed"]},{"text":"impl<C, EccChip> Unpin for ScalarFixedShort<C, EccChip> where
    EccChip: Unpin,
    <EccChip as EccInstructions<C>>::ScalarFixedShort: Unpin
","synthetic":true,"types":["halo2_gadgets::ecc::ScalarFixedShort"]},{"text":"impl<C, EccChip> Unpin for NonIdentityPoint<C, EccChip> where
    EccChip: Unpin,
    <EccChip as EccInstructions<C>>::NonIdentityPoint: Unpin
","synthetic":true,"types":["halo2_gadgets::ecc::NonIdentityPoint"]},{"text":"impl<C, EccChip> Unpin for Point<C, EccChip> where
    EccChip: Unpin,
    <EccChip as EccInstructions<C>>::Point: Unpin
","synthetic":true,"types":["halo2_gadgets::ecc::Point"]},{"text":"impl<C, EccChip> Unpin for X<C, EccChip> where
    EccChip: Unpin,
    <EccChip as EccInstructions<C>>::X: Unpin
","synthetic":true,"types":["halo2_gadgets::ecc::X"]},{"text":"impl<C, EccChip> Unpin for FixedPoint<C, EccChip> where
    EccChip: Unpin,
    <<EccChip as EccInstructions<C>>::FixedPoints as FixedPoints<C>>::FullScalar: Unpin
","synthetic":true,"types":["halo2_gadgets::ecc::FixedPoint"]},{"text":"impl<C, EccChip> Unpin for FixedPointBaseField<C, EccChip> where
    EccChip: Unpin,
    <<EccChip as EccInstructions<C>>::FixedPoints as FixedPoints<C>>::Base: Unpin
","synthetic":true,"types":["halo2_gadgets::ecc::FixedPointBaseField"]},{"text":"impl<C, EccChip> Unpin for FixedPointShort<C, EccChip> where
    EccChip: Unpin,
    <<EccChip as EccInstructions<C>>::FixedPoints as FixedPoints<C>>::ShortScalar: Unpin
","synthetic":true,"types":["halo2_gadgets::ecc::FixedPointShort"]},{"text":"impl<F, const WIDTH: usize, const RATE: usize> Unpin for Pow5Config<F, WIDTH, RATE> where
    F: Unpin
","synthetic":true,"types":["halo2_gadgets::poseidon::pow5::Pow5Config"]},{"text":"impl<F, const WIDTH: usize, const RATE: usize> Unpin for Pow5Chip<F, WIDTH, RATE> where
    F: Unpin
","synthetic":true,"types":["halo2_gadgets::poseidon::pow5::Pow5Chip"]},{"text":"impl<F> Unpin for StateWord<F> where
    F: Unpin
","synthetic":true,"types":["halo2_gadgets::poseidon::pow5::StateWord"]},{"text":"impl<F> Unpin for PaddedWord<F> where
    F: Unpin
","synthetic":true,"types":["halo2_gadgets::poseidon::PaddedWord"]},{"text":"impl<F, PoseidonChip, S, const T: usize, const RATE: usize> Unpin for Word<F, PoseidonChip, S, T, RATE> where
    <PoseidonChip as PoseidonInstructions<F, S, T, RATE>>::Word: Unpin
","synthetic":true,"types":["halo2_gadgets::poseidon::Word"]},{"text":"impl<F, PoseidonChip, S, M, D, const T: usize, const RATE: usize> Unpin for Sponge<F, PoseidonChip, S, M, D, T, RATE> where
    D: Unpin,
    M: Unpin,
    PoseidonChip: Unpin,
    <PoseidonChip as PoseidonInstructions<F, S, T, RATE>>::Word: Unpin
","synthetic":true,"types":["halo2_gadgets::poseidon::Sponge"]},{"text":"impl<F, PoseidonChip, S, D, const T: usize, const RATE: usize> Unpin for Hash<F, PoseidonChip, S, D, T, RATE> where
    D: Unpin,
    F: Unpin,
    PoseidonChip: Unpin,
    <PoseidonChip as PoseidonInstructions<F, S, T, RATE>>::Word: Unpin
","synthetic":true,"types":["halo2_gadgets::poseidon::Hash"]},{"text":"impl Unpin for BlockWord","synthetic":true,"types":["halo2_gadgets::sha256::table16::BlockWord"]},{"text":"impl Unpin for Table16Config","synthetic":true,"types":["halo2_gadgets::sha256::table16::Table16Config"]},{"text":"impl Unpin for Table16Chip","synthetic":true,"types":["halo2_gadgets::sha256::table16::Table16Chip"]},{"text":"impl<BlockWord> Unpin for Sha256Digest<BlockWord> where
    BlockWord: Unpin
","synthetic":true,"types":["halo2_gadgets::sha256::Sha256Digest"]},{"text":"impl<F, CS> Unpin for Sha256<F, CS> where
    CS: Unpin,
    <CS as Sha256Instructions<F>>::BlockWord: Unpin,
    <CS as Sha256Instructions<F>>::State: Unpin
","synthetic":true,"types":["halo2_gadgets::sha256::Sha256"]},{"text":"impl<Hash, Commit, F> Unpin for SinsemillaConfig<Hash, Commit, F> where
    Commit: Unpin,
    F: Unpin,
    Hash: Unpin
","synthetic":true,"types":["halo2_gadgets::sinsemilla::chip::SinsemillaConfig"]},{"text":"impl<Hash, Commit, Fixed> Unpin for SinsemillaChip<Hash, Commit, Fixed> where
    Commit: Unpin,
    Fixed: Unpin,
    Hash: Unpin
","synthetic":true,"types":["halo2_gadgets::sinsemilla::chip::SinsemillaChip"]},{"text":"impl<Hash, Commit, Fixed> Unpin for MerkleConfig<Hash, Commit, Fixed> where
    Commit: Unpin,
    Fixed: Unpin,
    Hash: Unpin
","synthetic":true,"types":["halo2_gadgets::sinsemilla::merkle::chip::MerkleConfig"]},{"text":"impl<Hash, Commit, Fixed> Unpin for MerkleChip<Hash, Commit, Fixed> where
    Commit: Unpin,
    Fixed: Unpin,
    Hash: Unpin
","synthetic":true,"types":["halo2_gadgets::sinsemilla::merkle::chip::MerkleChip"]},{"text":"impl<C, MerkleChip, const PATH_LENGTH: usize, const K: usize, const MAX_WORDS: usize> Unpin for MerklePath<C, MerkleChip, PATH_LENGTH, K, MAX_WORDS> where
    MerkleChip: Unpin,
    <C as CurveAffine>::Base: Unpin,
    <MerkleChip as SinsemillaInstructions<C, K, MAX_WORDS>>::HashDomains: Unpin
","synthetic":true,"types":["halo2_gadgets::sinsemilla::merkle::MerklePath"]},{"text":"impl<C, SinsemillaChip, const K: usize, const MAX_WORDS: usize> Unpin for Message<C, SinsemillaChip, K, MAX_WORDS> where
    SinsemillaChip: Unpin,
    <SinsemillaChip as SinsemillaInstructions<C, K, MAX_WORDS>>::Message: Unpin
","synthetic":true,"types":["halo2_gadgets::sinsemilla::Message"]},{"text":"impl<C, SinsemillaChip, const K: usize, const MAX_WORDS: usize> Unpin for MessagePiece<C, SinsemillaChip, K, MAX_WORDS> where
    SinsemillaChip: Unpin,
    <SinsemillaChip as SinsemillaInstructions<C, K, MAX_WORDS>>::MessagePiece: Unpin
","synthetic":true,"types":["halo2_gadgets::sinsemilla::MessagePiece"]},{"text":"impl<C, SinsemillaChip, EccChip, const K: usize, const MAX_WORDS: usize> Unpin for HashDomain<C, SinsemillaChip, EccChip, K, MAX_WORDS> where
    C: Unpin,
    EccChip: Unpin,
    SinsemillaChip: Unpin
","synthetic":true,"types":["halo2_gadgets::sinsemilla::HashDomain"]},{"text":"impl<C, SinsemillaChip, EccChip, const K: usize, const MAX_WORDS: usize> Unpin for CommitDomain<C, SinsemillaChip, EccChip, K, MAX_WORDS> where
    C: Unpin,
    EccChip: Unpin,
    SinsemillaChip: Unpin,
    <<SinsemillaChip as SinsemillaInstructions<C, K, MAX_WORDS>>::FixedPoints as FixedPoints<C>>::FullScalar: Unpin
","synthetic":true,"types":["halo2_gadgets::sinsemilla::CommitDomain"]},{"text":"impl<F> Unpin for CondSwapChip<F> where
    F: Unpin
","synthetic":true,"types":["halo2_gadgets::utilities::cond_swap::CondSwapChip"]},{"text":"impl Unpin for CondSwapConfig","synthetic":true,"types":["halo2_gadgets::utilities::cond_swap::CondSwapConfig"]},{"text":"impl<F> Unpin for RunningSum<F> where
    F: Unpin
","synthetic":true,"types":["halo2_gadgets::utilities::decompose_running_sum::RunningSum"]},{"text":"impl<F, const WINDOW_NUM_BITS: usize> Unpin for RunningSumConfig<F, WINDOW_NUM_BITS> where
    F: Unpin
","synthetic":true,"types":["halo2_gadgets::utilities::decompose_running_sum::RunningSumConfig"]},{"text":"impl<F> Unpin for RunningSum<F> where
    F: Unpin
","synthetic":true,"types":["halo2_gadgets::utilities::lookup_range_check::RunningSum"]},{"text":"impl<F, const K: usize> Unpin for LookupRangeCheckConfig<F, K> where
    F: Unpin
","synthetic":true,"types":["halo2_gadgets::utilities::lookup_range_check::LookupRangeCheckConfig"]},{"text":"impl<F, T> Unpin for RangeConstrained<F, T> where
    F: Unpin,
    T: Unpin
","synthetic":true,"types":["halo2_gadgets::utilities::RangeConstrained"]},{"text":"impl Unpin for P128Pow5T3","synthetic":true,"types":["halo2_gadgets::primitives::poseidon::p128pow5t3::P128Pow5T3"]},{"text":"impl<F, const RATE: usize> Unpin for Absorbing<F, RATE> where
    F: Unpin
","synthetic":true,"types":["halo2_gadgets::primitives::poseidon::Absorbing"]},{"text":"impl<F, const RATE: usize> Unpin for Squeezing<F, RATE> where
    F: Unpin
","synthetic":true,"types":["halo2_gadgets::primitives::poseidon::Squeezing"]},{"text":"impl<const L: usize> Unpin for ConstantLength<L>","synthetic":true,"types":["halo2_gadgets::primitives::poseidon::ConstantLength"]},{"text":"impl<F, S, D, const T: usize, const RATE: usize> Unpin for Hash<F, S, D, T, RATE> where
    D: Unpin,
    F: Unpin,
    S: Unpin
","synthetic":true,"types":["halo2_gadgets::primitives::poseidon::Hash"]},{"text":"impl Unpin for HashDomain","synthetic":true,"types":["halo2_gadgets::primitives::sinsemilla::HashDomain"]},{"text":"impl Unpin for CommitDomain","synthetic":true,"types":["halo2_gadgets::primitives::sinsemilla::CommitDomain"]}]; implementors["halo2_proofs"] = [{"text":"impl Unpin for SimpleFloorPlanner","synthetic":true,"types":["halo2_proofs::circuit::floor_planner::single_pass::SimpleFloorPlanner"]},{"text":"impl Unpin for V1","synthetic":true,"types":["halo2_proofs::circuit::floor_planner::v1::V1"]},{"text":"impl<'p, 'a, F, CS> Unpin for V1Pass<'p, 'a, F, CS> where
    'a: 'p, 
","synthetic":true,"types":["halo2_proofs::circuit::floor_planner::v1::V1Pass"]},{"text":"impl Unpin for RegionShape","synthetic":true,"types":["halo2_proofs::circuit::layouter::RegionShape"]},{"text":"impl Unpin for RegionColumn","synthetic":true,"types":["halo2_proofs::circuit::layouter::RegionColumn"]},{"text":"impl Unpin for RegionIndex","synthetic":true,"types":["halo2_proofs::circuit::RegionIndex"]},{"text":"impl Unpin for RegionStart","synthetic":true,"types":["halo2_proofs::circuit::RegionStart"]},{"text":"impl Unpin for Cell","synthetic":true,"types":["halo2_proofs::circuit::Cell"]},{"text":"impl<V, F> Unpin for AssignedCell<V, F> where
    F: Unpin,
    V: Unpin
","synthetic":true,"types":["halo2_proofs::circuit::AssignedCell"]},{"text":"impl<'r, F> Unpin for Region<'r, F>","synthetic":true,"types":["halo2_proofs::circuit::Region"]},{"text":"impl<'r, F> Unpin for Table<'r, F>","synthetic":true,"types":["halo2_proofs::circuit::Table"]},{"text":"impl<'a, F, L> Unpin for NamespacedLayouter<'a, F, L> where
    F: Unpin
","synthetic":true,"types":["halo2_proofs::circuit::NamespacedLayouter"]},{"text":"impl<F> Unpin for Assigned<F> where
    F: Unpin
","synthetic":true,"types":["halo2_proofs::plonk::assigned::Assigned"]},{"text":"impl<C> Unpin for Column<C> where
    C: Unpin
","synthetic":true,"types":["halo2_proofs::plonk::circuit::Column"]},{"text":"impl Unpin for Advice","synthetic":true,"types":["halo2_proofs::plonk::circuit::Advice"]},{"text":"impl Unpin for Fixed","synthetic":true,"types":["halo2_proofs::plonk::circuit::Fixed"]},{"text":"impl Unpin for Instance","synthetic":true,"types":["halo2_proofs::plonk::circuit::Instance"]},{"text":"impl Unpin for Any","synthetic":true,"types":["halo2_proofs::plonk::circuit::Any"]},{"text":"impl Unpin for Selector","synthetic":true,"types":["halo2_proofs::plonk::circuit::Selector"]},{"text":"impl Unpin for TableColumn","synthetic":true,"types":["halo2_proofs::plonk::circuit::TableColumn"]},{"text":"impl<F> Unpin for Expression<F> where
    F: Unpin
","synthetic":true,"types":["halo2_proofs::plonk::circuit::Expression"]},{"text":"impl<F> Unpin for Constraint<F> where
    F: Unpin
","synthetic":true,"types":["halo2_proofs::plonk::circuit::Constraint"]},{"text":"impl<F, C, Iter> Unpin for Constraints<F, C, Iter> where
    F: Unpin,
    Iter: Unpin
","synthetic":true,"types":["halo2_proofs::plonk::circuit::Constraints"]},{"text":"impl<F> Unpin for ConstraintSystem<F> where
    F: Unpin
","synthetic":true,"types":["halo2_proofs::plonk::circuit::ConstraintSystem"]},{"text":"impl<'a, F> Unpin for PinnedConstraintSystem<'a, F>","synthetic":true,"types":["halo2_proofs::plonk::circuit::PinnedConstraintSystem"]},{"text":"impl<'a, F> Unpin for VirtualCells<'a, F>","synthetic":true,"types":["halo2_proofs::plonk::circuit::VirtualCells"]},{"text":"impl Unpin for Error","synthetic":true,"types":["halo2_proofs::plonk::error::Error"]},{"text":"impl<'params, C> Unpin for SingleVerifier<'params, C> where
    C: Unpin,
    <C as CurveAffine>::ScalarExt: Unpin
","synthetic":true,"types":["halo2_proofs::plonk::verifier::SingleVerifier"]},{"text":"impl<'params, C, R> Unpin for BatchVerifier<'params, C, R> where
    C: Unpin,
    R: Unpin,
    <C as CurveAffine>::ScalarExt: Unpin
","synthetic":true,"types":["halo2_proofs::plonk::verifier::BatchVerifier"]},{"text":"impl<C> Unpin for VerifyingKey<C> where
    C: Unpin,
    <C as CurveAffine>::ScalarExt: Unpin
","synthetic":true,"types":["halo2_proofs::plonk::VerifyingKey"]},{"text":"impl<'a, C> Unpin for PinnedVerificationKey<'a, C>","synthetic":true,"types":["halo2_proofs::plonk::PinnedVerificationKey"]},{"text":"impl<C> Unpin for ProvingKey<C> where
    C: Unpin,
    <C as CurveAffine>::ScalarExt: Unpin
","synthetic":true,"types":["halo2_proofs::plonk::ProvingKey"]},{"text":"impl<'a, C> Unpin for MSM<'a, C> where
    C: Unpin,
    <C as CurveAffine>::ScalarExt: Unpin
","synthetic":true,"types":["halo2_proofs::poly::commitment::msm::MSM"]},{"text":"impl<'a, C, E> Unpin for Guard<'a, C, E> where
    C: Unpin,
    E: Unpin,
    <C as CurveAffine>::ScalarExt: Unpin
","synthetic":true,"types":["halo2_proofs::poly::commitment::verifier::Guard"]},{"text":"impl<C, E> Unpin for Accumulator<C, E> where
    C: Unpin,
    E: Unpin
","synthetic":true,"types":["halo2_proofs::poly::commitment::verifier::Accumulator"]},{"text":"impl<C> Unpin for Params<C> where
    C: Unpin
","synthetic":true,"types":["halo2_proofs::poly::commitment::Params"]},{"text":"impl<F> Unpin for Blind<F> where
    F: Unpin
","synthetic":true,"types":["halo2_proofs::poly::commitment::Blind"]},{"text":"impl<G> Unpin for EvaluationDomain<G> where
    <G as Group>::Scalar: Unpin
","synthetic":true,"types":["halo2_proofs::poly::domain::EvaluationDomain"]},{"text":"impl<'a, G> Unpin for PinnedEvaluationDomain<'a, G>","synthetic":true,"types":["halo2_proofs::poly::domain::PinnedEvaluationDomain"]},{"text":"impl<'a, C> Unpin for ProverQuery<'a, C> where
    <C as CurveAffine>::ScalarExt: Unpin
","synthetic":true,"types":["halo2_proofs::poly::multiopen::ProverQuery"]},{"text":"impl<'r, 'params, C> Unpin for VerifierQuery<'r, 'params, C> where
    <C as CurveAffine>::ScalarExt: Unpin,
    'params: 'r, 
","synthetic":true,"types":["halo2_proofs::poly::multiopen::VerifierQuery"]},{"text":"impl Unpin for Error","synthetic":true,"types":["halo2_proofs::poly::Error"]},{"text":"impl Unpin for Coeff","synthetic":true,"types":["halo2_proofs::poly::Coeff"]},{"text":"impl Unpin for LagrangeCoeff","synthetic":true,"types":["halo2_proofs::poly::LagrangeCoeff"]},{"text":"impl Unpin for ExtendedLagrangeCoeff","synthetic":true,"types":["halo2_proofs::poly::ExtendedLagrangeCoeff"]},{"text":"impl<F, B> Unpin for Polynomial<F, B> where
    B: Unpin,
    F: Unpin
","synthetic":true,"types":["halo2_proofs::poly::Polynomial"]},{"text":"impl Unpin for Rotation","synthetic":true,"types":["halo2_proofs::poly::Rotation"]},{"text":"impl<R, C, E> Unpin for Blake2bRead<R, C, E> where
    C: Unpin,
    E: Unpin,
    R: Unpin
","synthetic":true,"types":["halo2_proofs::transcript::Blake2bRead"]},{"text":"impl<W, C, E> Unpin for Blake2bWrite<W, C, E> where
    C: Unpin,
    E: Unpin,
    W: Unpin
","synthetic":true,"types":["halo2_proofs::transcript::Blake2bWrite"]},{"text":"impl<C, T> Unpin for ChallengeScalar<C, T> where
    T: Unpin,
    <C as CurveAffine>::ScalarExt: Unpin
","synthetic":true,"types":["halo2_proofs::transcript::ChallengeScalar"]},{"text":"impl<C> Unpin for Challenge255<C> where
    C: Unpin
","synthetic":true,"types":["halo2_proofs::transcript::Challenge255"]},{"text":"impl Unpin for Column","synthetic":true,"types":["halo2_proofs::dev::metadata::Column"]},{"text":"impl Unpin for VirtualCell","synthetic":true,"types":["halo2_proofs::dev::metadata::VirtualCell"]},{"text":"impl Unpin for Gate","synthetic":true,"types":["halo2_proofs::dev::metadata::Gate"]},{"text":"impl Unpin for Constraint","synthetic":true,"types":["halo2_proofs::dev::metadata::Constraint"]},{"text":"impl Unpin for Region","synthetic":true,"types":["halo2_proofs::dev::metadata::Region"]},{"text":"impl Unpin for FailureLocation","synthetic":true,"types":["halo2_proofs::dev::failure::FailureLocation"]},{"text":"impl Unpin for VerifyFailure","synthetic":true,"types":["halo2_proofs::dev::failure::VerifyFailure"]},{"text":"impl<G, ConcreteCircuit> Unpin for CircuitCost<G, ConcreteCircuit> where
    ConcreteCircuit: Unpin,
    G: Unpin
","synthetic":true,"types":["halo2_proofs::dev::cost::CircuitCost"]},{"text":"impl<G> Unpin for MarginalProofSize<G> where
    G: Unpin
","synthetic":true,"types":["halo2_proofs::dev::cost::MarginalProofSize"]},{"text":"impl<G> Unpin for ProofSize<G> where
    G: Unpin
","synthetic":true,"types":["halo2_proofs::dev::cost::ProofSize"]},{"text":"impl Unpin for CircuitGates","synthetic":true,"types":["halo2_proofs::dev::gates::CircuitGates"]},{"text":"impl Unpin for CircuitLayout","synthetic":true,"types":["halo2_proofs::dev::graph::layout::CircuitLayout"]},{"text":"impl<F> Unpin for MockProver<F> where
    F: Unpin
","synthetic":true,"types":["halo2_proofs::dev::MockProver"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/rustdoc/latest/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js b/rustdoc/latest/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js index 874de093..9af0fb09 100644 --- a/rustdoc/latest/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js +++ b/rustdoc/latest/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js @@ -1,4 +1,4 @@ (function() {var implementors = {}; -implementors["halo2_gadgets"] = [{"text":"impl RefUnwindSafe for EccPoint","synthetic":true,"types":["halo2_gadgets::ecc::chip::EccPoint"]},{"text":"impl RefUnwindSafe for NonIdentityEccPoint","synthetic":true,"types":["halo2_gadgets::ecc::chip::NonIdentityEccPoint"]},{"text":"impl<FixedPoints> RefUnwindSafe for EccConfig<FixedPoints> where
    FixedPoints: RefUnwindSafe
","synthetic":true,"types":["halo2_gadgets::ecc::chip::EccConfig"]},{"text":"impl RefUnwindSafe for FullScalar","synthetic":true,"types":["halo2_gadgets::ecc::chip::FullScalar"]},{"text":"impl RefUnwindSafe for ShortScalar","synthetic":true,"types":["halo2_gadgets::ecc::chip::ShortScalar"]},{"text":"impl RefUnwindSafe for BaseFieldElem","synthetic":true,"types":["halo2_gadgets::ecc::chip::BaseFieldElem"]},{"text":"impl<FixedPoints> RefUnwindSafe for EccChip<FixedPoints> where
    FixedPoints: RefUnwindSafe
","synthetic":true,"types":["halo2_gadgets::ecc::chip::EccChip"]},{"text":"impl RefUnwindSafe for EccScalarFixed","synthetic":true,"types":["halo2_gadgets::ecc::chip::EccScalarFixed"]},{"text":"impl RefUnwindSafe for EccScalarFixedShort","synthetic":true,"types":["halo2_gadgets::ecc::chip::EccScalarFixedShort"]},{"text":"impl<C, EccChip> RefUnwindSafe for ScalarVar<C, EccChip> where
    EccChip: RefUnwindSafe,
    <EccChip as EccInstructions<C>>::ScalarVar: RefUnwindSafe
","synthetic":true,"types":["halo2_gadgets::ecc::ScalarVar"]},{"text":"impl<C, EccChip> RefUnwindSafe for ScalarFixed<C, EccChip> where
    EccChip: RefUnwindSafe,
    <EccChip as EccInstructions<C>>::ScalarFixed: RefUnwindSafe
","synthetic":true,"types":["halo2_gadgets::ecc::ScalarFixed"]},{"text":"impl<C, EccChip> RefUnwindSafe for ScalarFixedShort<C, EccChip> where
    EccChip: RefUnwindSafe,
    <EccChip as EccInstructions<C>>::ScalarFixedShort: RefUnwindSafe
","synthetic":true,"types":["halo2_gadgets::ecc::ScalarFixedShort"]},{"text":"impl<C, EccChip> RefUnwindSafe for NonIdentityPoint<C, EccChip> where
    EccChip: RefUnwindSafe,
    <EccChip as EccInstructions<C>>::NonIdentityPoint: RefUnwindSafe
","synthetic":true,"types":["halo2_gadgets::ecc::NonIdentityPoint"]},{"text":"impl<C, EccChip> RefUnwindSafe for Point<C, EccChip> where
    EccChip: RefUnwindSafe,
    <EccChip as EccInstructions<C>>::Point: RefUnwindSafe
","synthetic":true,"types":["halo2_gadgets::ecc::Point"]},{"text":"impl<C, EccChip> RefUnwindSafe for X<C, EccChip> where
    EccChip: RefUnwindSafe,
    <EccChip as EccInstructions<C>>::X: RefUnwindSafe
","synthetic":true,"types":["halo2_gadgets::ecc::X"]},{"text":"impl<C, EccChip> RefUnwindSafe for FixedPoint<C, EccChip> where
    EccChip: RefUnwindSafe,
    <<EccChip as EccInstructions<C>>::FixedPoints as FixedPoints<C>>::FullScalar: RefUnwindSafe
","synthetic":true,"types":["halo2_gadgets::ecc::FixedPoint"]},{"text":"impl<C, EccChip> RefUnwindSafe for FixedPointBaseField<C, EccChip> where
    EccChip: RefUnwindSafe,
    <<EccChip as EccInstructions<C>>::FixedPoints as FixedPoints<C>>::Base: RefUnwindSafe
","synthetic":true,"types":["halo2_gadgets::ecc::FixedPointBaseField"]},{"text":"impl<C, EccChip> RefUnwindSafe for FixedPointShort<C, EccChip> where
    EccChip: RefUnwindSafe,
    <<EccChip as EccInstructions<C>>::FixedPoints as FixedPoints<C>>::ShortScalar: RefUnwindSafe
","synthetic":true,"types":["halo2_gadgets::ecc::FixedPointShort"]},{"text":"impl<F, const WIDTH: usize, const RATE: usize> RefUnwindSafe for Pow5Config<F, WIDTH, RATE> where
    F: RefUnwindSafe
","synthetic":true,"types":["halo2_gadgets::poseidon::pow5::Pow5Config"]},{"text":"impl<F, const WIDTH: usize, const RATE: usize> RefUnwindSafe for Pow5Chip<F, WIDTH, RATE> where
    F: RefUnwindSafe
","synthetic":true,"types":["halo2_gadgets::poseidon::pow5::Pow5Chip"]},{"text":"impl<F> RefUnwindSafe for StateWord<F> where
    F: RefUnwindSafe
","synthetic":true,"types":["halo2_gadgets::poseidon::pow5::StateWord"]},{"text":"impl<F> RefUnwindSafe for PaddedWord<F> where
    F: RefUnwindSafe
","synthetic":true,"types":["halo2_gadgets::poseidon::PaddedWord"]},{"text":"impl<F, PoseidonChip, S, const T: usize, const RATE: usize> RefUnwindSafe for Word<F, PoseidonChip, S, T, RATE> where
    <PoseidonChip as PoseidonInstructions<F, S, T, RATE>>::Word: RefUnwindSafe
","synthetic":true,"types":["halo2_gadgets::poseidon::Word"]},{"text":"impl<F, PoseidonChip, S, M, D, const T: usize, const RATE: usize> RefUnwindSafe for Sponge<F, PoseidonChip, S, M, D, T, RATE> where
    D: RefUnwindSafe,
    M: RefUnwindSafe,
    PoseidonChip: RefUnwindSafe,
    <PoseidonChip as PoseidonInstructions<F, S, T, RATE>>::Word: RefUnwindSafe
","synthetic":true,"types":["halo2_gadgets::poseidon::Sponge"]},{"text":"impl<F, PoseidonChip, S, D, const T: usize, const RATE: usize> RefUnwindSafe for Hash<F, PoseidonChip, S, D, T, RATE> where
    D: RefUnwindSafe,
    F: RefUnwindSafe,
    PoseidonChip: RefUnwindSafe,
    <PoseidonChip as PoseidonInstructions<F, S, T, RATE>>::Word: RefUnwindSafe
","synthetic":true,"types":["halo2_gadgets::poseidon::Hash"]},{"text":"impl RefUnwindSafe for BlockWord","synthetic":true,"types":["halo2_gadgets::sha256::table16::BlockWord"]},{"text":"impl RefUnwindSafe for Table16Config","synthetic":true,"types":["halo2_gadgets::sha256::table16::Table16Config"]},{"text":"impl RefUnwindSafe for Table16Chip","synthetic":true,"types":["halo2_gadgets::sha256::table16::Table16Chip"]},{"text":"impl<BlockWord> RefUnwindSafe for Sha256Digest<BlockWord> where
    BlockWord: RefUnwindSafe
","synthetic":true,"types":["halo2_gadgets::sha256::Sha256Digest"]},{"text":"impl<F, CS> RefUnwindSafe for Sha256<F, CS> where
    CS: RefUnwindSafe,
    <CS as Sha256Instructions<F>>::BlockWord: RefUnwindSafe,
    <CS as Sha256Instructions<F>>::State: RefUnwindSafe
","synthetic":true,"types":["halo2_gadgets::sha256::Sha256"]},{"text":"impl<Hash, Commit, F> RefUnwindSafe for SinsemillaConfig<Hash, Commit, F> where
    Commit: RefUnwindSafe,
    F: RefUnwindSafe,
    Hash: RefUnwindSafe
","synthetic":true,"types":["halo2_gadgets::sinsemilla::chip::SinsemillaConfig"]},{"text":"impl<Hash, Commit, Fixed> RefUnwindSafe for SinsemillaChip<Hash, Commit, Fixed> where
    Commit: RefUnwindSafe,
    Fixed: RefUnwindSafe,
    Hash: RefUnwindSafe
","synthetic":true,"types":["halo2_gadgets::sinsemilla::chip::SinsemillaChip"]},{"text":"impl<Hash, Commit, Fixed> RefUnwindSafe for MerkleConfig<Hash, Commit, Fixed> where
    Commit: RefUnwindSafe,
    Fixed: RefUnwindSafe,
    Hash: RefUnwindSafe
","synthetic":true,"types":["halo2_gadgets::sinsemilla::merkle::chip::MerkleConfig"]},{"text":"impl<Hash, Commit, Fixed> RefUnwindSafe for MerkleChip<Hash, Commit, Fixed> where
    Commit: RefUnwindSafe,
    Fixed: RefUnwindSafe,
    Hash: RefUnwindSafe
","synthetic":true,"types":["halo2_gadgets::sinsemilla::merkle::chip::MerkleChip"]},{"text":"impl<C, MerkleChip, const PATH_LENGTH: usize, const K: usize, const MAX_WORDS: usize> RefUnwindSafe for MerklePath<C, MerkleChip, PATH_LENGTH, K, MAX_WORDS> where
    MerkleChip: RefUnwindSafe,
    <C as CurveAffine>::Base: RefUnwindSafe,
    <MerkleChip as SinsemillaInstructions<C, K, MAX_WORDS>>::HashDomains: RefUnwindSafe
","synthetic":true,"types":["halo2_gadgets::sinsemilla::merkle::MerklePath"]},{"text":"impl<C, SinsemillaChip, const K: usize, const MAX_WORDS: usize> RefUnwindSafe for Message<C, SinsemillaChip, K, MAX_WORDS> where
    SinsemillaChip: RefUnwindSafe,
    <SinsemillaChip as SinsemillaInstructions<C, K, MAX_WORDS>>::Message: RefUnwindSafe
","synthetic":true,"types":["halo2_gadgets::sinsemilla::Message"]},{"text":"impl<C, SinsemillaChip, const K: usize, const MAX_WORDS: usize> RefUnwindSafe for MessagePiece<C, SinsemillaChip, K, MAX_WORDS> where
    SinsemillaChip: RefUnwindSafe,
    <SinsemillaChip as SinsemillaInstructions<C, K, MAX_WORDS>>::MessagePiece: RefUnwindSafe
","synthetic":true,"types":["halo2_gadgets::sinsemilla::MessagePiece"]},{"text":"impl<C, SinsemillaChip, EccChip, const K: usize, const MAX_WORDS: usize> RefUnwindSafe for HashDomain<C, SinsemillaChip, EccChip, K, MAX_WORDS> where
    C: RefUnwindSafe,
    EccChip: RefUnwindSafe,
    SinsemillaChip: RefUnwindSafe
","synthetic":true,"types":["halo2_gadgets::sinsemilla::HashDomain"]},{"text":"impl<C, SinsemillaChip, EccChip, const K: usize, const MAX_WORDS: usize> RefUnwindSafe for CommitDomain<C, SinsemillaChip, EccChip, K, MAX_WORDS> where
    C: RefUnwindSafe,
    EccChip: RefUnwindSafe,
    SinsemillaChip: RefUnwindSafe,
    <<SinsemillaChip as SinsemillaInstructions<C, K, MAX_WORDS>>::FixedPoints as FixedPoints<C>>::FullScalar: RefUnwindSafe
","synthetic":true,"types":["halo2_gadgets::sinsemilla::CommitDomain"]},{"text":"impl<F> RefUnwindSafe for CondSwapChip<F> where
    F: RefUnwindSafe
","synthetic":true,"types":["halo2_gadgets::utilities::cond_swap::CondSwapChip"]},{"text":"impl RefUnwindSafe for CondSwapConfig","synthetic":true,"types":["halo2_gadgets::utilities::cond_swap::CondSwapConfig"]},{"text":"impl<F> RefUnwindSafe for RunningSum<F> where
    F: RefUnwindSafe
","synthetic":true,"types":["halo2_gadgets::utilities::decompose_running_sum::RunningSum"]},{"text":"impl<F, const WINDOW_NUM_BITS: usize> RefUnwindSafe for RunningSumConfig<F, WINDOW_NUM_BITS> where
    F: RefUnwindSafe
","synthetic":true,"types":["halo2_gadgets::utilities::decompose_running_sum::RunningSumConfig"]},{"text":"impl<F> RefUnwindSafe for RunningSum<F> where
    F: RefUnwindSafe
","synthetic":true,"types":["halo2_gadgets::utilities::lookup_range_check::RunningSum"]},{"text":"impl<F, const K: usize> RefUnwindSafe for LookupRangeCheckConfig<F, K> where
    F: RefUnwindSafe
","synthetic":true,"types":["halo2_gadgets::utilities::lookup_range_check::LookupRangeCheckConfig"]},{"text":"impl<F, T> RefUnwindSafe for RangeConstrained<F, T> where
    F: RefUnwindSafe,
    T: RefUnwindSafe
","synthetic":true,"types":["halo2_gadgets::utilities::RangeConstrained"]},{"text":"impl RefUnwindSafe for P128Pow5T3","synthetic":true,"types":["halo2_gadgets::primitives::poseidon::p128pow5t3::P128Pow5T3"]},{"text":"impl<F, const RATE: usize> RefUnwindSafe for Absorbing<F, RATE> where
    F: RefUnwindSafe
","synthetic":true,"types":["halo2_gadgets::primitives::poseidon::Absorbing"]},{"text":"impl<F, const RATE: usize> RefUnwindSafe for Squeezing<F, RATE> where
    F: RefUnwindSafe
","synthetic":true,"types":["halo2_gadgets::primitives::poseidon::Squeezing"]},{"text":"impl<const L: usize> RefUnwindSafe for ConstantLength<L>","synthetic":true,"types":["halo2_gadgets::primitives::poseidon::ConstantLength"]},{"text":"impl<F, S, D, const T: usize, const RATE: usize> RefUnwindSafe for Hash<F, S, D, T, RATE> where
    D: RefUnwindSafe,
    F: RefUnwindSafe,
    S: RefUnwindSafe
","synthetic":true,"types":["halo2_gadgets::primitives::poseidon::Hash"]},{"text":"impl RefUnwindSafe for HashDomain","synthetic":true,"types":["halo2_gadgets::primitives::sinsemilla::HashDomain"]},{"text":"impl RefUnwindSafe for CommitDomain","synthetic":true,"types":["halo2_gadgets::primitives::sinsemilla::CommitDomain"]}]; +implementors["halo2_gadgets"] = [{"text":"impl RefUnwindSafe for EccPoint","synthetic":true,"types":["halo2_gadgets::ecc::chip::EccPoint"]},{"text":"impl RefUnwindSafe for NonIdentityEccPoint","synthetic":true,"types":["halo2_gadgets::ecc::chip::NonIdentityEccPoint"]},{"text":"impl<FixedPoints> RefUnwindSafe for EccConfig<FixedPoints> where
    FixedPoints: RefUnwindSafe
","synthetic":true,"types":["halo2_gadgets::ecc::chip::EccConfig"]},{"text":"impl RefUnwindSafe for FullScalar","synthetic":true,"types":["halo2_gadgets::ecc::chip::FullScalar"]},{"text":"impl RefUnwindSafe for ShortScalar","synthetic":true,"types":["halo2_gadgets::ecc::chip::ShortScalar"]},{"text":"impl RefUnwindSafe for BaseFieldElem","synthetic":true,"types":["halo2_gadgets::ecc::chip::BaseFieldElem"]},{"text":"impl<FixedPoints> RefUnwindSafe for EccChip<FixedPoints> where
    FixedPoints: RefUnwindSafe
","synthetic":true,"types":["halo2_gadgets::ecc::chip::EccChip"]},{"text":"impl RefUnwindSafe for EccScalarFixed","synthetic":true,"types":["halo2_gadgets::ecc::chip::EccScalarFixed"]},{"text":"impl RefUnwindSafe for EccScalarFixedShort","synthetic":true,"types":["halo2_gadgets::ecc::chip::EccScalarFixedShort"]},{"text":"impl RefUnwindSafe for ScalarVar","synthetic":true,"types":["halo2_gadgets::ecc::chip::ScalarVar"]},{"text":"impl<C, EccChip> RefUnwindSafe for ScalarVar<C, EccChip> where
    EccChip: RefUnwindSafe,
    <EccChip as EccInstructions<C>>::ScalarVar: RefUnwindSafe
","synthetic":true,"types":["halo2_gadgets::ecc::ScalarVar"]},{"text":"impl<C, EccChip> RefUnwindSafe for ScalarFixed<C, EccChip> where
    EccChip: RefUnwindSafe,
    <EccChip as EccInstructions<C>>::ScalarFixed: RefUnwindSafe
","synthetic":true,"types":["halo2_gadgets::ecc::ScalarFixed"]},{"text":"impl<C, EccChip> RefUnwindSafe for ScalarFixedShort<C, EccChip> where
    EccChip: RefUnwindSafe,
    <EccChip as EccInstructions<C>>::ScalarFixedShort: RefUnwindSafe
","synthetic":true,"types":["halo2_gadgets::ecc::ScalarFixedShort"]},{"text":"impl<C, EccChip> RefUnwindSafe for NonIdentityPoint<C, EccChip> where
    EccChip: RefUnwindSafe,
    <EccChip as EccInstructions<C>>::NonIdentityPoint: RefUnwindSafe
","synthetic":true,"types":["halo2_gadgets::ecc::NonIdentityPoint"]},{"text":"impl<C, EccChip> RefUnwindSafe for Point<C, EccChip> where
    EccChip: RefUnwindSafe,
    <EccChip as EccInstructions<C>>::Point: RefUnwindSafe
","synthetic":true,"types":["halo2_gadgets::ecc::Point"]},{"text":"impl<C, EccChip> RefUnwindSafe for X<C, EccChip> where
    EccChip: RefUnwindSafe,
    <EccChip as EccInstructions<C>>::X: RefUnwindSafe
","synthetic":true,"types":["halo2_gadgets::ecc::X"]},{"text":"impl<C, EccChip> RefUnwindSafe for FixedPoint<C, EccChip> where
    EccChip: RefUnwindSafe,
    <<EccChip as EccInstructions<C>>::FixedPoints as FixedPoints<C>>::FullScalar: RefUnwindSafe
","synthetic":true,"types":["halo2_gadgets::ecc::FixedPoint"]},{"text":"impl<C, EccChip> RefUnwindSafe for FixedPointBaseField<C, EccChip> where
    EccChip: RefUnwindSafe,
    <<EccChip as EccInstructions<C>>::FixedPoints as FixedPoints<C>>::Base: RefUnwindSafe
","synthetic":true,"types":["halo2_gadgets::ecc::FixedPointBaseField"]},{"text":"impl<C, EccChip> RefUnwindSafe for FixedPointShort<C, EccChip> where
    EccChip: RefUnwindSafe,
    <<EccChip as EccInstructions<C>>::FixedPoints as FixedPoints<C>>::ShortScalar: RefUnwindSafe
","synthetic":true,"types":["halo2_gadgets::ecc::FixedPointShort"]},{"text":"impl<F, const WIDTH: usize, const RATE: usize> RefUnwindSafe for Pow5Config<F, WIDTH, RATE> where
    F: RefUnwindSafe
","synthetic":true,"types":["halo2_gadgets::poseidon::pow5::Pow5Config"]},{"text":"impl<F, const WIDTH: usize, const RATE: usize> RefUnwindSafe for Pow5Chip<F, WIDTH, RATE> where
    F: RefUnwindSafe
","synthetic":true,"types":["halo2_gadgets::poseidon::pow5::Pow5Chip"]},{"text":"impl<F> RefUnwindSafe for StateWord<F> where
    F: RefUnwindSafe
","synthetic":true,"types":["halo2_gadgets::poseidon::pow5::StateWord"]},{"text":"impl<F> RefUnwindSafe for PaddedWord<F> where
    F: RefUnwindSafe
","synthetic":true,"types":["halo2_gadgets::poseidon::PaddedWord"]},{"text":"impl<F, PoseidonChip, S, const T: usize, const RATE: usize> RefUnwindSafe for Word<F, PoseidonChip, S, T, RATE> where
    <PoseidonChip as PoseidonInstructions<F, S, T, RATE>>::Word: RefUnwindSafe
","synthetic":true,"types":["halo2_gadgets::poseidon::Word"]},{"text":"impl<F, PoseidonChip, S, M, D, const T: usize, const RATE: usize> RefUnwindSafe for Sponge<F, PoseidonChip, S, M, D, T, RATE> where
    D: RefUnwindSafe,
    M: RefUnwindSafe,
    PoseidonChip: RefUnwindSafe,
    <PoseidonChip as PoseidonInstructions<F, S, T, RATE>>::Word: RefUnwindSafe
","synthetic":true,"types":["halo2_gadgets::poseidon::Sponge"]},{"text":"impl<F, PoseidonChip, S, D, const T: usize, const RATE: usize> RefUnwindSafe for Hash<F, PoseidonChip, S, D, T, RATE> where
    D: RefUnwindSafe,
    F: RefUnwindSafe,
    PoseidonChip: RefUnwindSafe,
    <PoseidonChip as PoseidonInstructions<F, S, T, RATE>>::Word: RefUnwindSafe
","synthetic":true,"types":["halo2_gadgets::poseidon::Hash"]},{"text":"impl RefUnwindSafe for BlockWord","synthetic":true,"types":["halo2_gadgets::sha256::table16::BlockWord"]},{"text":"impl RefUnwindSafe for Table16Config","synthetic":true,"types":["halo2_gadgets::sha256::table16::Table16Config"]},{"text":"impl RefUnwindSafe for Table16Chip","synthetic":true,"types":["halo2_gadgets::sha256::table16::Table16Chip"]},{"text":"impl<BlockWord> RefUnwindSafe for Sha256Digest<BlockWord> where
    BlockWord: RefUnwindSafe
","synthetic":true,"types":["halo2_gadgets::sha256::Sha256Digest"]},{"text":"impl<F, CS> RefUnwindSafe for Sha256<F, CS> where
    CS: RefUnwindSafe,
    <CS as Sha256Instructions<F>>::BlockWord: RefUnwindSafe,
    <CS as Sha256Instructions<F>>::State: RefUnwindSafe
","synthetic":true,"types":["halo2_gadgets::sha256::Sha256"]},{"text":"impl<Hash, Commit, F> RefUnwindSafe for SinsemillaConfig<Hash, Commit, F> where
    Commit: RefUnwindSafe,
    F: RefUnwindSafe,
    Hash: RefUnwindSafe
","synthetic":true,"types":["halo2_gadgets::sinsemilla::chip::SinsemillaConfig"]},{"text":"impl<Hash, Commit, Fixed> RefUnwindSafe for SinsemillaChip<Hash, Commit, Fixed> where
    Commit: RefUnwindSafe,
    Fixed: RefUnwindSafe,
    Hash: RefUnwindSafe
","synthetic":true,"types":["halo2_gadgets::sinsemilla::chip::SinsemillaChip"]},{"text":"impl<Hash, Commit, Fixed> RefUnwindSafe for MerkleConfig<Hash, Commit, Fixed> where
    Commit: RefUnwindSafe,
    Fixed: RefUnwindSafe,
    Hash: RefUnwindSafe
","synthetic":true,"types":["halo2_gadgets::sinsemilla::merkle::chip::MerkleConfig"]},{"text":"impl<Hash, Commit, Fixed> RefUnwindSafe for MerkleChip<Hash, Commit, Fixed> where
    Commit: RefUnwindSafe,
    Fixed: RefUnwindSafe,
    Hash: RefUnwindSafe
","synthetic":true,"types":["halo2_gadgets::sinsemilla::merkle::chip::MerkleChip"]},{"text":"impl<C, MerkleChip, const PATH_LENGTH: usize, const K: usize, const MAX_WORDS: usize> RefUnwindSafe for MerklePath<C, MerkleChip, PATH_LENGTH, K, MAX_WORDS> where
    MerkleChip: RefUnwindSafe,
    <C as CurveAffine>::Base: RefUnwindSafe,
    <MerkleChip as SinsemillaInstructions<C, K, MAX_WORDS>>::HashDomains: RefUnwindSafe
","synthetic":true,"types":["halo2_gadgets::sinsemilla::merkle::MerklePath"]},{"text":"impl<C, SinsemillaChip, const K: usize, const MAX_WORDS: usize> RefUnwindSafe for Message<C, SinsemillaChip, K, MAX_WORDS> where
    SinsemillaChip: RefUnwindSafe,
    <SinsemillaChip as SinsemillaInstructions<C, K, MAX_WORDS>>::Message: RefUnwindSafe
","synthetic":true,"types":["halo2_gadgets::sinsemilla::Message"]},{"text":"impl<C, SinsemillaChip, const K: usize, const MAX_WORDS: usize> RefUnwindSafe for MessagePiece<C, SinsemillaChip, K, MAX_WORDS> where
    SinsemillaChip: RefUnwindSafe,
    <SinsemillaChip as SinsemillaInstructions<C, K, MAX_WORDS>>::MessagePiece: RefUnwindSafe
","synthetic":true,"types":["halo2_gadgets::sinsemilla::MessagePiece"]},{"text":"impl<C, SinsemillaChip, EccChip, const K: usize, const MAX_WORDS: usize> RefUnwindSafe for HashDomain<C, SinsemillaChip, EccChip, K, MAX_WORDS> where
    C: RefUnwindSafe,
    EccChip: RefUnwindSafe,
    SinsemillaChip: RefUnwindSafe
","synthetic":true,"types":["halo2_gadgets::sinsemilla::HashDomain"]},{"text":"impl<C, SinsemillaChip, EccChip, const K: usize, const MAX_WORDS: usize> RefUnwindSafe for CommitDomain<C, SinsemillaChip, EccChip, K, MAX_WORDS> where
    C: RefUnwindSafe,
    EccChip: RefUnwindSafe,
    SinsemillaChip: RefUnwindSafe,
    <<SinsemillaChip as SinsemillaInstructions<C, K, MAX_WORDS>>::FixedPoints as FixedPoints<C>>::FullScalar: RefUnwindSafe
","synthetic":true,"types":["halo2_gadgets::sinsemilla::CommitDomain"]},{"text":"impl<F> RefUnwindSafe for CondSwapChip<F> where
    F: RefUnwindSafe
","synthetic":true,"types":["halo2_gadgets::utilities::cond_swap::CondSwapChip"]},{"text":"impl RefUnwindSafe for CondSwapConfig","synthetic":true,"types":["halo2_gadgets::utilities::cond_swap::CondSwapConfig"]},{"text":"impl<F> RefUnwindSafe for RunningSum<F> where
    F: RefUnwindSafe
","synthetic":true,"types":["halo2_gadgets::utilities::decompose_running_sum::RunningSum"]},{"text":"impl<F, const WINDOW_NUM_BITS: usize> RefUnwindSafe for RunningSumConfig<F, WINDOW_NUM_BITS> where
    F: RefUnwindSafe
","synthetic":true,"types":["halo2_gadgets::utilities::decompose_running_sum::RunningSumConfig"]},{"text":"impl<F> RefUnwindSafe for RunningSum<F> where
    F: RefUnwindSafe
","synthetic":true,"types":["halo2_gadgets::utilities::lookup_range_check::RunningSum"]},{"text":"impl<F, const K: usize> RefUnwindSafe for LookupRangeCheckConfig<F, K> where
    F: RefUnwindSafe
","synthetic":true,"types":["halo2_gadgets::utilities::lookup_range_check::LookupRangeCheckConfig"]},{"text":"impl<F, T> RefUnwindSafe for RangeConstrained<F, T> where
    F: RefUnwindSafe,
    T: RefUnwindSafe
","synthetic":true,"types":["halo2_gadgets::utilities::RangeConstrained"]},{"text":"impl RefUnwindSafe for P128Pow5T3","synthetic":true,"types":["halo2_gadgets::primitives::poseidon::p128pow5t3::P128Pow5T3"]},{"text":"impl<F, const RATE: usize> RefUnwindSafe for Absorbing<F, RATE> where
    F: RefUnwindSafe
","synthetic":true,"types":["halo2_gadgets::primitives::poseidon::Absorbing"]},{"text":"impl<F, const RATE: usize> RefUnwindSafe for Squeezing<F, RATE> where
    F: RefUnwindSafe
","synthetic":true,"types":["halo2_gadgets::primitives::poseidon::Squeezing"]},{"text":"impl<const L: usize> RefUnwindSafe for ConstantLength<L>","synthetic":true,"types":["halo2_gadgets::primitives::poseidon::ConstantLength"]},{"text":"impl<F, S, D, const T: usize, const RATE: usize> RefUnwindSafe for Hash<F, S, D, T, RATE> where
    D: RefUnwindSafe,
    F: RefUnwindSafe,
    S: RefUnwindSafe
","synthetic":true,"types":["halo2_gadgets::primitives::poseidon::Hash"]},{"text":"impl RefUnwindSafe for HashDomain","synthetic":true,"types":["halo2_gadgets::primitives::sinsemilla::HashDomain"]},{"text":"impl RefUnwindSafe for CommitDomain","synthetic":true,"types":["halo2_gadgets::primitives::sinsemilla::CommitDomain"]}]; implementors["halo2_proofs"] = [{"text":"impl RefUnwindSafe for SimpleFloorPlanner","synthetic":true,"types":["halo2_proofs::circuit::floor_planner::single_pass::SimpleFloorPlanner"]},{"text":"impl RefUnwindSafe for V1","synthetic":true,"types":["halo2_proofs::circuit::floor_planner::v1::V1"]},{"text":"impl<'p, 'a, F, CS> RefUnwindSafe for V1Pass<'p, 'a, F, CS> where
    CS: RefUnwindSafe,
    F: RefUnwindSafe
","synthetic":true,"types":["halo2_proofs::circuit::floor_planner::v1::V1Pass"]},{"text":"impl RefUnwindSafe for RegionShape","synthetic":true,"types":["halo2_proofs::circuit::layouter::RegionShape"]},{"text":"impl RefUnwindSafe for RegionColumn","synthetic":true,"types":["halo2_proofs::circuit::layouter::RegionColumn"]},{"text":"impl RefUnwindSafe for RegionIndex","synthetic":true,"types":["halo2_proofs::circuit::RegionIndex"]},{"text":"impl RefUnwindSafe for RegionStart","synthetic":true,"types":["halo2_proofs::circuit::RegionStart"]},{"text":"impl RefUnwindSafe for Cell","synthetic":true,"types":["halo2_proofs::circuit::Cell"]},{"text":"impl<V, F> RefUnwindSafe for AssignedCell<V, F> where
    F: RefUnwindSafe,
    V: RefUnwindSafe
","synthetic":true,"types":["halo2_proofs::circuit::AssignedCell"]},{"text":"impl<'r, F> !RefUnwindSafe for Region<'r, F>","synthetic":true,"types":["halo2_proofs::circuit::Region"]},{"text":"impl<'r, F> !RefUnwindSafe for Table<'r, F>","synthetic":true,"types":["halo2_proofs::circuit::Table"]},{"text":"impl<'a, F, L> RefUnwindSafe for NamespacedLayouter<'a, F, L> where
    F: RefUnwindSafe,
    L: RefUnwindSafe
","synthetic":true,"types":["halo2_proofs::circuit::NamespacedLayouter"]},{"text":"impl<F> RefUnwindSafe for Assigned<F> where
    F: RefUnwindSafe
","synthetic":true,"types":["halo2_proofs::plonk::assigned::Assigned"]},{"text":"impl<C> RefUnwindSafe for Column<C> where
    C: RefUnwindSafe
","synthetic":true,"types":["halo2_proofs::plonk::circuit::Column"]},{"text":"impl RefUnwindSafe for Advice","synthetic":true,"types":["halo2_proofs::plonk::circuit::Advice"]},{"text":"impl RefUnwindSafe for Fixed","synthetic":true,"types":["halo2_proofs::plonk::circuit::Fixed"]},{"text":"impl RefUnwindSafe for Instance","synthetic":true,"types":["halo2_proofs::plonk::circuit::Instance"]},{"text":"impl RefUnwindSafe for Any","synthetic":true,"types":["halo2_proofs::plonk::circuit::Any"]},{"text":"impl RefUnwindSafe for Selector","synthetic":true,"types":["halo2_proofs::plonk::circuit::Selector"]},{"text":"impl RefUnwindSafe for TableColumn","synthetic":true,"types":["halo2_proofs::plonk::circuit::TableColumn"]},{"text":"impl<F> RefUnwindSafe for Expression<F> where
    F: RefUnwindSafe
","synthetic":true,"types":["halo2_proofs::plonk::circuit::Expression"]},{"text":"impl<F> RefUnwindSafe for Constraint<F> where
    F: RefUnwindSafe
","synthetic":true,"types":["halo2_proofs::plonk::circuit::Constraint"]},{"text":"impl<F, C, Iter> RefUnwindSafe for Constraints<F, C, Iter> where
    F: RefUnwindSafe,
    Iter: RefUnwindSafe
","synthetic":true,"types":["halo2_proofs::plonk::circuit::Constraints"]},{"text":"impl<F> RefUnwindSafe for ConstraintSystem<F> where
    F: RefUnwindSafe
","synthetic":true,"types":["halo2_proofs::plonk::circuit::ConstraintSystem"]},{"text":"impl<'a, F> RefUnwindSafe for PinnedConstraintSystem<'a, F> where
    F: RefUnwindSafe
","synthetic":true,"types":["halo2_proofs::plonk::circuit::PinnedConstraintSystem"]},{"text":"impl<'a, F> RefUnwindSafe for VirtualCells<'a, F> where
    F: RefUnwindSafe
","synthetic":true,"types":["halo2_proofs::plonk::circuit::VirtualCells"]},{"text":"impl !RefUnwindSafe for Error","synthetic":true,"types":["halo2_proofs::plonk::error::Error"]},{"text":"impl<'params, C> RefUnwindSafe for SingleVerifier<'params, C> where
    C: RefUnwindSafe,
    <C as CurveAffine>::ScalarExt: RefUnwindSafe
","synthetic":true,"types":["halo2_proofs::plonk::verifier::SingleVerifier"]},{"text":"impl<'params, C, R> RefUnwindSafe for BatchVerifier<'params, C, R> where
    C: RefUnwindSafe,
    R: RefUnwindSafe,
    <C as CurveAffine>::ScalarExt: RefUnwindSafe
","synthetic":true,"types":["halo2_proofs::plonk::verifier::BatchVerifier"]},{"text":"impl<C> RefUnwindSafe for VerifyingKey<C> where
    C: RefUnwindSafe,
    <C as CurveAffine>::ScalarExt: RefUnwindSafe
","synthetic":true,"types":["halo2_proofs::plonk::VerifyingKey"]},{"text":"impl<'a, C> RefUnwindSafe for PinnedVerificationKey<'a, C> where
    C: RefUnwindSafe,
    <C as CurveAffine>::ScalarExt: RefUnwindSafe
","synthetic":true,"types":["halo2_proofs::plonk::PinnedVerificationKey"]},{"text":"impl<C> RefUnwindSafe for ProvingKey<C> where
    C: RefUnwindSafe,
    <C as CurveAffine>::ScalarExt: RefUnwindSafe
","synthetic":true,"types":["halo2_proofs::plonk::ProvingKey"]},{"text":"impl<'a, C> RefUnwindSafe for MSM<'a, C> where
    C: RefUnwindSafe,
    <C as CurveAffine>::ScalarExt: RefUnwindSafe
","synthetic":true,"types":["halo2_proofs::poly::commitment::msm::MSM"]},{"text":"impl<'a, C, E> RefUnwindSafe for Guard<'a, C, E> where
    C: RefUnwindSafe,
    E: RefUnwindSafe,
    <C as CurveAffine>::ScalarExt: RefUnwindSafe
","synthetic":true,"types":["halo2_proofs::poly::commitment::verifier::Guard"]},{"text":"impl<C, E> RefUnwindSafe for Accumulator<C, E> where
    C: RefUnwindSafe,
    E: RefUnwindSafe
","synthetic":true,"types":["halo2_proofs::poly::commitment::verifier::Accumulator"]},{"text":"impl<C> RefUnwindSafe for Params<C> where
    C: RefUnwindSafe
","synthetic":true,"types":["halo2_proofs::poly::commitment::Params"]},{"text":"impl<F> RefUnwindSafe for Blind<F> where
    F: RefUnwindSafe
","synthetic":true,"types":["halo2_proofs::poly::commitment::Blind"]},{"text":"impl<G> RefUnwindSafe for EvaluationDomain<G> where
    <G as Group>::Scalar: RefUnwindSafe
","synthetic":true,"types":["halo2_proofs::poly::domain::EvaluationDomain"]},{"text":"impl<'a, G> RefUnwindSafe for PinnedEvaluationDomain<'a, G> where
    <G as Group>::Scalar: RefUnwindSafe
","synthetic":true,"types":["halo2_proofs::poly::domain::PinnedEvaluationDomain"]},{"text":"impl<'a, C> RefUnwindSafe for ProverQuery<'a, C> where
    <C as CurveAffine>::ScalarExt: RefUnwindSafe
","synthetic":true,"types":["halo2_proofs::poly::multiopen::ProverQuery"]},{"text":"impl<'r, 'params, C> RefUnwindSafe for VerifierQuery<'r, 'params, C> where
    C: RefUnwindSafe,
    <C as CurveAffine>::ScalarExt: RefUnwindSafe
","synthetic":true,"types":["halo2_proofs::poly::multiopen::VerifierQuery"]},{"text":"impl RefUnwindSafe for Error","synthetic":true,"types":["halo2_proofs::poly::Error"]},{"text":"impl RefUnwindSafe for Coeff","synthetic":true,"types":["halo2_proofs::poly::Coeff"]},{"text":"impl RefUnwindSafe for LagrangeCoeff","synthetic":true,"types":["halo2_proofs::poly::LagrangeCoeff"]},{"text":"impl RefUnwindSafe for ExtendedLagrangeCoeff","synthetic":true,"types":["halo2_proofs::poly::ExtendedLagrangeCoeff"]},{"text":"impl<F, B> RefUnwindSafe for Polynomial<F, B> where
    B: RefUnwindSafe,
    F: RefUnwindSafe
","synthetic":true,"types":["halo2_proofs::poly::Polynomial"]},{"text":"impl RefUnwindSafe for Rotation","synthetic":true,"types":["halo2_proofs::poly::Rotation"]},{"text":"impl<R, C, E> RefUnwindSafe for Blake2bRead<R, C, E> where
    C: RefUnwindSafe,
    E: RefUnwindSafe,
    R: RefUnwindSafe
","synthetic":true,"types":["halo2_proofs::transcript::Blake2bRead"]},{"text":"impl<W, C, E> RefUnwindSafe for Blake2bWrite<W, C, E> where
    C: RefUnwindSafe,
    E: RefUnwindSafe,
    W: RefUnwindSafe
","synthetic":true,"types":["halo2_proofs::transcript::Blake2bWrite"]},{"text":"impl<C, T> RefUnwindSafe for ChallengeScalar<C, T> where
    T: RefUnwindSafe,
    <C as CurveAffine>::ScalarExt: RefUnwindSafe
","synthetic":true,"types":["halo2_proofs::transcript::ChallengeScalar"]},{"text":"impl<C> RefUnwindSafe for Challenge255<C> where
    C: RefUnwindSafe
","synthetic":true,"types":["halo2_proofs::transcript::Challenge255"]},{"text":"impl RefUnwindSafe for Column","synthetic":true,"types":["halo2_proofs::dev::metadata::Column"]},{"text":"impl RefUnwindSafe for VirtualCell","synthetic":true,"types":["halo2_proofs::dev::metadata::VirtualCell"]},{"text":"impl RefUnwindSafe for Gate","synthetic":true,"types":["halo2_proofs::dev::metadata::Gate"]},{"text":"impl RefUnwindSafe for Constraint","synthetic":true,"types":["halo2_proofs::dev::metadata::Constraint"]},{"text":"impl RefUnwindSafe for Region","synthetic":true,"types":["halo2_proofs::dev::metadata::Region"]},{"text":"impl RefUnwindSafe for FailureLocation","synthetic":true,"types":["halo2_proofs::dev::failure::FailureLocation"]},{"text":"impl RefUnwindSafe for VerifyFailure","synthetic":true,"types":["halo2_proofs::dev::failure::VerifyFailure"]},{"text":"impl<G, ConcreteCircuit> RefUnwindSafe for CircuitCost<G, ConcreteCircuit> where
    ConcreteCircuit: RefUnwindSafe,
    G: RefUnwindSafe
","synthetic":true,"types":["halo2_proofs::dev::cost::CircuitCost"]},{"text":"impl<G> RefUnwindSafe for MarginalProofSize<G> where
    G: RefUnwindSafe
","synthetic":true,"types":["halo2_proofs::dev::cost::MarginalProofSize"]},{"text":"impl<G> RefUnwindSafe for ProofSize<G> where
    G: RefUnwindSafe
","synthetic":true,"types":["halo2_proofs::dev::cost::ProofSize"]},{"text":"impl RefUnwindSafe for CircuitGates","synthetic":true,"types":["halo2_proofs::dev::gates::CircuitGates"]},{"text":"impl RefUnwindSafe for CircuitLayout","synthetic":true,"types":["halo2_proofs::dev::graph::layout::CircuitLayout"]},{"text":"impl<F> RefUnwindSafe for MockProver<F> where
    F: RefUnwindSafe
","synthetic":true,"types":["halo2_proofs::dev::MockProver"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/rustdoc/latest/implementors/core/panic/unwind_safe/trait.UnwindSafe.js b/rustdoc/latest/implementors/core/panic/unwind_safe/trait.UnwindSafe.js index 75271c97..36f4d4f5 100644 --- a/rustdoc/latest/implementors/core/panic/unwind_safe/trait.UnwindSafe.js +++ b/rustdoc/latest/implementors/core/panic/unwind_safe/trait.UnwindSafe.js @@ -1,4 +1,4 @@ (function() {var implementors = {}; -implementors["halo2_gadgets"] = [{"text":"impl UnwindSafe for EccPoint","synthetic":true,"types":["halo2_gadgets::ecc::chip::EccPoint"]},{"text":"impl UnwindSafe for NonIdentityEccPoint","synthetic":true,"types":["halo2_gadgets::ecc::chip::NonIdentityEccPoint"]},{"text":"impl<FixedPoints> UnwindSafe for EccConfig<FixedPoints> where
    FixedPoints: UnwindSafe
","synthetic":true,"types":["halo2_gadgets::ecc::chip::EccConfig"]},{"text":"impl UnwindSafe for FullScalar","synthetic":true,"types":["halo2_gadgets::ecc::chip::FullScalar"]},{"text":"impl UnwindSafe for ShortScalar","synthetic":true,"types":["halo2_gadgets::ecc::chip::ShortScalar"]},{"text":"impl UnwindSafe for BaseFieldElem","synthetic":true,"types":["halo2_gadgets::ecc::chip::BaseFieldElem"]},{"text":"impl<FixedPoints> UnwindSafe for EccChip<FixedPoints> where
    FixedPoints: UnwindSafe
","synthetic":true,"types":["halo2_gadgets::ecc::chip::EccChip"]},{"text":"impl UnwindSafe for EccScalarFixed","synthetic":true,"types":["halo2_gadgets::ecc::chip::EccScalarFixed"]},{"text":"impl UnwindSafe for EccScalarFixedShort","synthetic":true,"types":["halo2_gadgets::ecc::chip::EccScalarFixedShort"]},{"text":"impl<C, EccChip> UnwindSafe for ScalarVar<C, EccChip> where
    EccChip: UnwindSafe,
    <EccChip as EccInstructions<C>>::ScalarVar: UnwindSafe
","synthetic":true,"types":["halo2_gadgets::ecc::ScalarVar"]},{"text":"impl<C, EccChip> UnwindSafe for ScalarFixed<C, EccChip> where
    EccChip: UnwindSafe,
    <EccChip as EccInstructions<C>>::ScalarFixed: UnwindSafe
","synthetic":true,"types":["halo2_gadgets::ecc::ScalarFixed"]},{"text":"impl<C, EccChip> UnwindSafe for ScalarFixedShort<C, EccChip> where
    EccChip: UnwindSafe,
    <EccChip as EccInstructions<C>>::ScalarFixedShort: UnwindSafe
","synthetic":true,"types":["halo2_gadgets::ecc::ScalarFixedShort"]},{"text":"impl<C, EccChip> UnwindSafe for NonIdentityPoint<C, EccChip> where
    EccChip: UnwindSafe,
    <EccChip as EccInstructions<C>>::NonIdentityPoint: UnwindSafe
","synthetic":true,"types":["halo2_gadgets::ecc::NonIdentityPoint"]},{"text":"impl<C, EccChip> UnwindSafe for Point<C, EccChip> where
    EccChip: UnwindSafe,
    <EccChip as EccInstructions<C>>::Point: UnwindSafe
","synthetic":true,"types":["halo2_gadgets::ecc::Point"]},{"text":"impl<C, EccChip> UnwindSafe for X<C, EccChip> where
    EccChip: UnwindSafe,
    <EccChip as EccInstructions<C>>::X: UnwindSafe
","synthetic":true,"types":["halo2_gadgets::ecc::X"]},{"text":"impl<C, EccChip> UnwindSafe for FixedPoint<C, EccChip> where
    EccChip: UnwindSafe,
    <<EccChip as EccInstructions<C>>::FixedPoints as FixedPoints<C>>::FullScalar: UnwindSafe
","synthetic":true,"types":["halo2_gadgets::ecc::FixedPoint"]},{"text":"impl<C, EccChip> UnwindSafe for FixedPointBaseField<C, EccChip> where
    EccChip: UnwindSafe,
    <<EccChip as EccInstructions<C>>::FixedPoints as FixedPoints<C>>::Base: UnwindSafe
","synthetic":true,"types":["halo2_gadgets::ecc::FixedPointBaseField"]},{"text":"impl<C, EccChip> UnwindSafe for FixedPointShort<C, EccChip> where
    EccChip: UnwindSafe,
    <<EccChip as EccInstructions<C>>::FixedPoints as FixedPoints<C>>::ShortScalar: UnwindSafe
","synthetic":true,"types":["halo2_gadgets::ecc::FixedPointShort"]},{"text":"impl<F, const WIDTH: usize, const RATE: usize> UnwindSafe for Pow5Config<F, WIDTH, RATE> where
    F: UnwindSafe
","synthetic":true,"types":["halo2_gadgets::poseidon::pow5::Pow5Config"]},{"text":"impl<F, const WIDTH: usize, const RATE: usize> UnwindSafe for Pow5Chip<F, WIDTH, RATE> where
    F: UnwindSafe
","synthetic":true,"types":["halo2_gadgets::poseidon::pow5::Pow5Chip"]},{"text":"impl<F> UnwindSafe for StateWord<F> where
    F: UnwindSafe
","synthetic":true,"types":["halo2_gadgets::poseidon::pow5::StateWord"]},{"text":"impl<F> UnwindSafe for PaddedWord<F> where
    F: UnwindSafe
","synthetic":true,"types":["halo2_gadgets::poseidon::PaddedWord"]},{"text":"impl<F, PoseidonChip, S, const T: usize, const RATE: usize> UnwindSafe for Word<F, PoseidonChip, S, T, RATE> where
    <PoseidonChip as PoseidonInstructions<F, S, T, RATE>>::Word: UnwindSafe
","synthetic":true,"types":["halo2_gadgets::poseidon::Word"]},{"text":"impl<F, PoseidonChip, S, M, D, const T: usize, const RATE: usize> UnwindSafe for Sponge<F, PoseidonChip, S, M, D, T, RATE> where
    D: UnwindSafe,
    M: UnwindSafe,
    PoseidonChip: UnwindSafe,
    <PoseidonChip as PoseidonInstructions<F, S, T, RATE>>::Word: UnwindSafe
","synthetic":true,"types":["halo2_gadgets::poseidon::Sponge"]},{"text":"impl<F, PoseidonChip, S, D, const T: usize, const RATE: usize> UnwindSafe for Hash<F, PoseidonChip, S, D, T, RATE> where
    D: UnwindSafe,
    F: UnwindSafe,
    PoseidonChip: UnwindSafe,
    <PoseidonChip as PoseidonInstructions<F, S, T, RATE>>::Word: UnwindSafe
","synthetic":true,"types":["halo2_gadgets::poseidon::Hash"]},{"text":"impl UnwindSafe for BlockWord","synthetic":true,"types":["halo2_gadgets::sha256::table16::BlockWord"]},{"text":"impl UnwindSafe for Table16Config","synthetic":true,"types":["halo2_gadgets::sha256::table16::Table16Config"]},{"text":"impl UnwindSafe for Table16Chip","synthetic":true,"types":["halo2_gadgets::sha256::table16::Table16Chip"]},{"text":"impl<BlockWord> UnwindSafe for Sha256Digest<BlockWord> where
    BlockWord: UnwindSafe
","synthetic":true,"types":["halo2_gadgets::sha256::Sha256Digest"]},{"text":"impl<F, CS> UnwindSafe for Sha256<F, CS> where
    CS: UnwindSafe,
    <CS as Sha256Instructions<F>>::BlockWord: UnwindSafe,
    <CS as Sha256Instructions<F>>::State: UnwindSafe
","synthetic":true,"types":["halo2_gadgets::sha256::Sha256"]},{"text":"impl<Hash, Commit, F> UnwindSafe for SinsemillaConfig<Hash, Commit, F> where
    Commit: UnwindSafe,
    F: UnwindSafe,
    Hash: UnwindSafe
","synthetic":true,"types":["halo2_gadgets::sinsemilla::chip::SinsemillaConfig"]},{"text":"impl<Hash, Commit, Fixed> UnwindSafe for SinsemillaChip<Hash, Commit, Fixed> where
    Commit: UnwindSafe,
    Fixed: UnwindSafe,
    Hash: UnwindSafe
","synthetic":true,"types":["halo2_gadgets::sinsemilla::chip::SinsemillaChip"]},{"text":"impl<Hash, Commit, Fixed> UnwindSafe for MerkleConfig<Hash, Commit, Fixed> where
    Commit: UnwindSafe,
    Fixed: UnwindSafe,
    Hash: UnwindSafe
","synthetic":true,"types":["halo2_gadgets::sinsemilla::merkle::chip::MerkleConfig"]},{"text":"impl<Hash, Commit, Fixed> UnwindSafe for MerkleChip<Hash, Commit, Fixed> where
    Commit: UnwindSafe,
    Fixed: UnwindSafe,
    Hash: UnwindSafe
","synthetic":true,"types":["halo2_gadgets::sinsemilla::merkle::chip::MerkleChip"]},{"text":"impl<C, MerkleChip, const PATH_LENGTH: usize, const K: usize, const MAX_WORDS: usize> UnwindSafe for MerklePath<C, MerkleChip, PATH_LENGTH, K, MAX_WORDS> where
    MerkleChip: UnwindSafe,
    <C as CurveAffine>::Base: UnwindSafe,
    <MerkleChip as SinsemillaInstructions<C, K, MAX_WORDS>>::HashDomains: UnwindSafe
","synthetic":true,"types":["halo2_gadgets::sinsemilla::merkle::MerklePath"]},{"text":"impl<C, SinsemillaChip, const K: usize, const MAX_WORDS: usize> UnwindSafe for Message<C, SinsemillaChip, K, MAX_WORDS> where
    SinsemillaChip: UnwindSafe,
    <SinsemillaChip as SinsemillaInstructions<C, K, MAX_WORDS>>::Message: UnwindSafe
","synthetic":true,"types":["halo2_gadgets::sinsemilla::Message"]},{"text":"impl<C, SinsemillaChip, const K: usize, const MAX_WORDS: usize> UnwindSafe for MessagePiece<C, SinsemillaChip, K, MAX_WORDS> where
    SinsemillaChip: UnwindSafe,
    <SinsemillaChip as SinsemillaInstructions<C, K, MAX_WORDS>>::MessagePiece: UnwindSafe
","synthetic":true,"types":["halo2_gadgets::sinsemilla::MessagePiece"]},{"text":"impl<C, SinsemillaChip, EccChip, const K: usize, const MAX_WORDS: usize> UnwindSafe for HashDomain<C, SinsemillaChip, EccChip, K, MAX_WORDS> where
    C: UnwindSafe,
    EccChip: UnwindSafe,
    SinsemillaChip: UnwindSafe
","synthetic":true,"types":["halo2_gadgets::sinsemilla::HashDomain"]},{"text":"impl<C, SinsemillaChip, EccChip, const K: usize, const MAX_WORDS: usize> UnwindSafe for CommitDomain<C, SinsemillaChip, EccChip, K, MAX_WORDS> where
    C: UnwindSafe,
    EccChip: UnwindSafe,
    SinsemillaChip: UnwindSafe,
    <<SinsemillaChip as SinsemillaInstructions<C, K, MAX_WORDS>>::FixedPoints as FixedPoints<C>>::FullScalar: UnwindSafe
","synthetic":true,"types":["halo2_gadgets::sinsemilla::CommitDomain"]},{"text":"impl<F> UnwindSafe for CondSwapChip<F> where
    F: UnwindSafe
","synthetic":true,"types":["halo2_gadgets::utilities::cond_swap::CondSwapChip"]},{"text":"impl UnwindSafe for CondSwapConfig","synthetic":true,"types":["halo2_gadgets::utilities::cond_swap::CondSwapConfig"]},{"text":"impl<F> UnwindSafe for RunningSum<F> where
    F: UnwindSafe
","synthetic":true,"types":["halo2_gadgets::utilities::decompose_running_sum::RunningSum"]},{"text":"impl<F, const WINDOW_NUM_BITS: usize> UnwindSafe for RunningSumConfig<F, WINDOW_NUM_BITS> where
    F: UnwindSafe
","synthetic":true,"types":["halo2_gadgets::utilities::decompose_running_sum::RunningSumConfig"]},{"text":"impl<F> UnwindSafe for RunningSum<F> where
    F: UnwindSafe
","synthetic":true,"types":["halo2_gadgets::utilities::lookup_range_check::RunningSum"]},{"text":"impl<F, const K: usize> UnwindSafe for LookupRangeCheckConfig<F, K> where
    F: UnwindSafe
","synthetic":true,"types":["halo2_gadgets::utilities::lookup_range_check::LookupRangeCheckConfig"]},{"text":"impl<F, T> UnwindSafe for RangeConstrained<F, T> where
    F: UnwindSafe,
    T: UnwindSafe
","synthetic":true,"types":["halo2_gadgets::utilities::RangeConstrained"]},{"text":"impl UnwindSafe for P128Pow5T3","synthetic":true,"types":["halo2_gadgets::primitives::poseidon::p128pow5t3::P128Pow5T3"]},{"text":"impl<F, const RATE: usize> UnwindSafe for Absorbing<F, RATE> where
    F: UnwindSafe
","synthetic":true,"types":["halo2_gadgets::primitives::poseidon::Absorbing"]},{"text":"impl<F, const RATE: usize> UnwindSafe for Squeezing<F, RATE> where
    F: UnwindSafe
","synthetic":true,"types":["halo2_gadgets::primitives::poseidon::Squeezing"]},{"text":"impl<const L: usize> UnwindSafe for ConstantLength<L>","synthetic":true,"types":["halo2_gadgets::primitives::poseidon::ConstantLength"]},{"text":"impl<F, S, D, const T: usize, const RATE: usize> UnwindSafe for Hash<F, S, D, T, RATE> where
    D: UnwindSafe,
    F: UnwindSafe,
    S: UnwindSafe
","synthetic":true,"types":["halo2_gadgets::primitives::poseidon::Hash"]},{"text":"impl UnwindSafe for HashDomain","synthetic":true,"types":["halo2_gadgets::primitives::sinsemilla::HashDomain"]},{"text":"impl UnwindSafe for CommitDomain","synthetic":true,"types":["halo2_gadgets::primitives::sinsemilla::CommitDomain"]}]; +implementors["halo2_gadgets"] = [{"text":"impl UnwindSafe for EccPoint","synthetic":true,"types":["halo2_gadgets::ecc::chip::EccPoint"]},{"text":"impl UnwindSafe for NonIdentityEccPoint","synthetic":true,"types":["halo2_gadgets::ecc::chip::NonIdentityEccPoint"]},{"text":"impl<FixedPoints> UnwindSafe for EccConfig<FixedPoints> where
    FixedPoints: UnwindSafe
","synthetic":true,"types":["halo2_gadgets::ecc::chip::EccConfig"]},{"text":"impl UnwindSafe for FullScalar","synthetic":true,"types":["halo2_gadgets::ecc::chip::FullScalar"]},{"text":"impl UnwindSafe for ShortScalar","synthetic":true,"types":["halo2_gadgets::ecc::chip::ShortScalar"]},{"text":"impl UnwindSafe for BaseFieldElem","synthetic":true,"types":["halo2_gadgets::ecc::chip::BaseFieldElem"]},{"text":"impl<FixedPoints> UnwindSafe for EccChip<FixedPoints> where
    FixedPoints: UnwindSafe
","synthetic":true,"types":["halo2_gadgets::ecc::chip::EccChip"]},{"text":"impl UnwindSafe for EccScalarFixed","synthetic":true,"types":["halo2_gadgets::ecc::chip::EccScalarFixed"]},{"text":"impl UnwindSafe for EccScalarFixedShort","synthetic":true,"types":["halo2_gadgets::ecc::chip::EccScalarFixedShort"]},{"text":"impl UnwindSafe for ScalarVar","synthetic":true,"types":["halo2_gadgets::ecc::chip::ScalarVar"]},{"text":"impl<C, EccChip> UnwindSafe for ScalarVar<C, EccChip> where
    EccChip: UnwindSafe,
    <EccChip as EccInstructions<C>>::ScalarVar: UnwindSafe
","synthetic":true,"types":["halo2_gadgets::ecc::ScalarVar"]},{"text":"impl<C, EccChip> UnwindSafe for ScalarFixed<C, EccChip> where
    EccChip: UnwindSafe,
    <EccChip as EccInstructions<C>>::ScalarFixed: UnwindSafe
","synthetic":true,"types":["halo2_gadgets::ecc::ScalarFixed"]},{"text":"impl<C, EccChip> UnwindSafe for ScalarFixedShort<C, EccChip> where
    EccChip: UnwindSafe,
    <EccChip as EccInstructions<C>>::ScalarFixedShort: UnwindSafe
","synthetic":true,"types":["halo2_gadgets::ecc::ScalarFixedShort"]},{"text":"impl<C, EccChip> UnwindSafe for NonIdentityPoint<C, EccChip> where
    EccChip: UnwindSafe,
    <EccChip as EccInstructions<C>>::NonIdentityPoint: UnwindSafe
","synthetic":true,"types":["halo2_gadgets::ecc::NonIdentityPoint"]},{"text":"impl<C, EccChip> UnwindSafe for Point<C, EccChip> where
    EccChip: UnwindSafe,
    <EccChip as EccInstructions<C>>::Point: UnwindSafe
","synthetic":true,"types":["halo2_gadgets::ecc::Point"]},{"text":"impl<C, EccChip> UnwindSafe for X<C, EccChip> where
    EccChip: UnwindSafe,
    <EccChip as EccInstructions<C>>::X: UnwindSafe
","synthetic":true,"types":["halo2_gadgets::ecc::X"]},{"text":"impl<C, EccChip> UnwindSafe for FixedPoint<C, EccChip> where
    EccChip: UnwindSafe,
    <<EccChip as EccInstructions<C>>::FixedPoints as FixedPoints<C>>::FullScalar: UnwindSafe
","synthetic":true,"types":["halo2_gadgets::ecc::FixedPoint"]},{"text":"impl<C, EccChip> UnwindSafe for FixedPointBaseField<C, EccChip> where
    EccChip: UnwindSafe,
    <<EccChip as EccInstructions<C>>::FixedPoints as FixedPoints<C>>::Base: UnwindSafe
","synthetic":true,"types":["halo2_gadgets::ecc::FixedPointBaseField"]},{"text":"impl<C, EccChip> UnwindSafe for FixedPointShort<C, EccChip> where
    EccChip: UnwindSafe,
    <<EccChip as EccInstructions<C>>::FixedPoints as FixedPoints<C>>::ShortScalar: UnwindSafe
","synthetic":true,"types":["halo2_gadgets::ecc::FixedPointShort"]},{"text":"impl<F, const WIDTH: usize, const RATE: usize> UnwindSafe for Pow5Config<F, WIDTH, RATE> where
    F: UnwindSafe
","synthetic":true,"types":["halo2_gadgets::poseidon::pow5::Pow5Config"]},{"text":"impl<F, const WIDTH: usize, const RATE: usize> UnwindSafe for Pow5Chip<F, WIDTH, RATE> where
    F: UnwindSafe
","synthetic":true,"types":["halo2_gadgets::poseidon::pow5::Pow5Chip"]},{"text":"impl<F> UnwindSafe for StateWord<F> where
    F: UnwindSafe
","synthetic":true,"types":["halo2_gadgets::poseidon::pow5::StateWord"]},{"text":"impl<F> UnwindSafe for PaddedWord<F> where
    F: UnwindSafe
","synthetic":true,"types":["halo2_gadgets::poseidon::PaddedWord"]},{"text":"impl<F, PoseidonChip, S, const T: usize, const RATE: usize> UnwindSafe for Word<F, PoseidonChip, S, T, RATE> where
    <PoseidonChip as PoseidonInstructions<F, S, T, RATE>>::Word: UnwindSafe
","synthetic":true,"types":["halo2_gadgets::poseidon::Word"]},{"text":"impl<F, PoseidonChip, S, M, D, const T: usize, const RATE: usize> UnwindSafe for Sponge<F, PoseidonChip, S, M, D, T, RATE> where
    D: UnwindSafe,
    M: UnwindSafe,
    PoseidonChip: UnwindSafe,
    <PoseidonChip as PoseidonInstructions<F, S, T, RATE>>::Word: UnwindSafe
","synthetic":true,"types":["halo2_gadgets::poseidon::Sponge"]},{"text":"impl<F, PoseidonChip, S, D, const T: usize, const RATE: usize> UnwindSafe for Hash<F, PoseidonChip, S, D, T, RATE> where
    D: UnwindSafe,
    F: UnwindSafe,
    PoseidonChip: UnwindSafe,
    <PoseidonChip as PoseidonInstructions<F, S, T, RATE>>::Word: UnwindSafe
","synthetic":true,"types":["halo2_gadgets::poseidon::Hash"]},{"text":"impl UnwindSafe for BlockWord","synthetic":true,"types":["halo2_gadgets::sha256::table16::BlockWord"]},{"text":"impl UnwindSafe for Table16Config","synthetic":true,"types":["halo2_gadgets::sha256::table16::Table16Config"]},{"text":"impl UnwindSafe for Table16Chip","synthetic":true,"types":["halo2_gadgets::sha256::table16::Table16Chip"]},{"text":"impl<BlockWord> UnwindSafe for Sha256Digest<BlockWord> where
    BlockWord: UnwindSafe
","synthetic":true,"types":["halo2_gadgets::sha256::Sha256Digest"]},{"text":"impl<F, CS> UnwindSafe for Sha256<F, CS> where
    CS: UnwindSafe,
    <CS as Sha256Instructions<F>>::BlockWord: UnwindSafe,
    <CS as Sha256Instructions<F>>::State: UnwindSafe
","synthetic":true,"types":["halo2_gadgets::sha256::Sha256"]},{"text":"impl<Hash, Commit, F> UnwindSafe for SinsemillaConfig<Hash, Commit, F> where
    Commit: UnwindSafe,
    F: UnwindSafe,
    Hash: UnwindSafe
","synthetic":true,"types":["halo2_gadgets::sinsemilla::chip::SinsemillaConfig"]},{"text":"impl<Hash, Commit, Fixed> UnwindSafe for SinsemillaChip<Hash, Commit, Fixed> where
    Commit: UnwindSafe,
    Fixed: UnwindSafe,
    Hash: UnwindSafe
","synthetic":true,"types":["halo2_gadgets::sinsemilla::chip::SinsemillaChip"]},{"text":"impl<Hash, Commit, Fixed> UnwindSafe for MerkleConfig<Hash, Commit, Fixed> where
    Commit: UnwindSafe,
    Fixed: UnwindSafe,
    Hash: UnwindSafe
","synthetic":true,"types":["halo2_gadgets::sinsemilla::merkle::chip::MerkleConfig"]},{"text":"impl<Hash, Commit, Fixed> UnwindSafe for MerkleChip<Hash, Commit, Fixed> where
    Commit: UnwindSafe,
    Fixed: UnwindSafe,
    Hash: UnwindSafe
","synthetic":true,"types":["halo2_gadgets::sinsemilla::merkle::chip::MerkleChip"]},{"text":"impl<C, MerkleChip, const PATH_LENGTH: usize, const K: usize, const MAX_WORDS: usize> UnwindSafe for MerklePath<C, MerkleChip, PATH_LENGTH, K, MAX_WORDS> where
    MerkleChip: UnwindSafe,
    <C as CurveAffine>::Base: UnwindSafe,
    <MerkleChip as SinsemillaInstructions<C, K, MAX_WORDS>>::HashDomains: UnwindSafe
","synthetic":true,"types":["halo2_gadgets::sinsemilla::merkle::MerklePath"]},{"text":"impl<C, SinsemillaChip, const K: usize, const MAX_WORDS: usize> UnwindSafe for Message<C, SinsemillaChip, K, MAX_WORDS> where
    SinsemillaChip: UnwindSafe,
    <SinsemillaChip as SinsemillaInstructions<C, K, MAX_WORDS>>::Message: UnwindSafe
","synthetic":true,"types":["halo2_gadgets::sinsemilla::Message"]},{"text":"impl<C, SinsemillaChip, const K: usize, const MAX_WORDS: usize> UnwindSafe for MessagePiece<C, SinsemillaChip, K, MAX_WORDS> where
    SinsemillaChip: UnwindSafe,
    <SinsemillaChip as SinsemillaInstructions<C, K, MAX_WORDS>>::MessagePiece: UnwindSafe
","synthetic":true,"types":["halo2_gadgets::sinsemilla::MessagePiece"]},{"text":"impl<C, SinsemillaChip, EccChip, const K: usize, const MAX_WORDS: usize> UnwindSafe for HashDomain<C, SinsemillaChip, EccChip, K, MAX_WORDS> where
    C: UnwindSafe,
    EccChip: UnwindSafe,
    SinsemillaChip: UnwindSafe
","synthetic":true,"types":["halo2_gadgets::sinsemilla::HashDomain"]},{"text":"impl<C, SinsemillaChip, EccChip, const K: usize, const MAX_WORDS: usize> UnwindSafe for CommitDomain<C, SinsemillaChip, EccChip, K, MAX_WORDS> where
    C: UnwindSafe,
    EccChip: UnwindSafe,
    SinsemillaChip: UnwindSafe,
    <<SinsemillaChip as SinsemillaInstructions<C, K, MAX_WORDS>>::FixedPoints as FixedPoints<C>>::FullScalar: UnwindSafe
","synthetic":true,"types":["halo2_gadgets::sinsemilla::CommitDomain"]},{"text":"impl<F> UnwindSafe for CondSwapChip<F> where
    F: UnwindSafe
","synthetic":true,"types":["halo2_gadgets::utilities::cond_swap::CondSwapChip"]},{"text":"impl UnwindSafe for CondSwapConfig","synthetic":true,"types":["halo2_gadgets::utilities::cond_swap::CondSwapConfig"]},{"text":"impl<F> UnwindSafe for RunningSum<F> where
    F: UnwindSafe
","synthetic":true,"types":["halo2_gadgets::utilities::decompose_running_sum::RunningSum"]},{"text":"impl<F, const WINDOW_NUM_BITS: usize> UnwindSafe for RunningSumConfig<F, WINDOW_NUM_BITS> where
    F: UnwindSafe
","synthetic":true,"types":["halo2_gadgets::utilities::decompose_running_sum::RunningSumConfig"]},{"text":"impl<F> UnwindSafe for RunningSum<F> where
    F: UnwindSafe
","synthetic":true,"types":["halo2_gadgets::utilities::lookup_range_check::RunningSum"]},{"text":"impl<F, const K: usize> UnwindSafe for LookupRangeCheckConfig<F, K> where
    F: UnwindSafe
","synthetic":true,"types":["halo2_gadgets::utilities::lookup_range_check::LookupRangeCheckConfig"]},{"text":"impl<F, T> UnwindSafe for RangeConstrained<F, T> where
    F: UnwindSafe,
    T: UnwindSafe
","synthetic":true,"types":["halo2_gadgets::utilities::RangeConstrained"]},{"text":"impl UnwindSafe for P128Pow5T3","synthetic":true,"types":["halo2_gadgets::primitives::poseidon::p128pow5t3::P128Pow5T3"]},{"text":"impl<F, const RATE: usize> UnwindSafe for Absorbing<F, RATE> where
    F: UnwindSafe
","synthetic":true,"types":["halo2_gadgets::primitives::poseidon::Absorbing"]},{"text":"impl<F, const RATE: usize> UnwindSafe for Squeezing<F, RATE> where
    F: UnwindSafe
","synthetic":true,"types":["halo2_gadgets::primitives::poseidon::Squeezing"]},{"text":"impl<const L: usize> UnwindSafe for ConstantLength<L>","synthetic":true,"types":["halo2_gadgets::primitives::poseidon::ConstantLength"]},{"text":"impl<F, S, D, const T: usize, const RATE: usize> UnwindSafe for Hash<F, S, D, T, RATE> where
    D: UnwindSafe,
    F: UnwindSafe,
    S: UnwindSafe
","synthetic":true,"types":["halo2_gadgets::primitives::poseidon::Hash"]},{"text":"impl UnwindSafe for HashDomain","synthetic":true,"types":["halo2_gadgets::primitives::sinsemilla::HashDomain"]},{"text":"impl UnwindSafe for CommitDomain","synthetic":true,"types":["halo2_gadgets::primitives::sinsemilla::CommitDomain"]}]; implementors["halo2_proofs"] = [{"text":"impl UnwindSafe for SimpleFloorPlanner","synthetic":true,"types":["halo2_proofs::circuit::floor_planner::single_pass::SimpleFloorPlanner"]},{"text":"impl UnwindSafe for V1","synthetic":true,"types":["halo2_proofs::circuit::floor_planner::v1::V1"]},{"text":"impl<'p, 'a, F, CS> !UnwindSafe for V1Pass<'p, 'a, F, CS>","synthetic":true,"types":["halo2_proofs::circuit::floor_planner::v1::V1Pass"]},{"text":"impl UnwindSafe for RegionShape","synthetic":true,"types":["halo2_proofs::circuit::layouter::RegionShape"]},{"text":"impl UnwindSafe for RegionColumn","synthetic":true,"types":["halo2_proofs::circuit::layouter::RegionColumn"]},{"text":"impl UnwindSafe for RegionIndex","synthetic":true,"types":["halo2_proofs::circuit::RegionIndex"]},{"text":"impl UnwindSafe for RegionStart","synthetic":true,"types":["halo2_proofs::circuit::RegionStart"]},{"text":"impl UnwindSafe for Cell","synthetic":true,"types":["halo2_proofs::circuit::Cell"]},{"text":"impl<V, F> UnwindSafe for AssignedCell<V, F> where
    F: UnwindSafe,
    V: UnwindSafe
","synthetic":true,"types":["halo2_proofs::circuit::AssignedCell"]},{"text":"impl<'r, F> !UnwindSafe for Region<'r, F>","synthetic":true,"types":["halo2_proofs::circuit::Region"]},{"text":"impl<'r, F> !UnwindSafe for Table<'r, F>","synthetic":true,"types":["halo2_proofs::circuit::Table"]},{"text":"impl<'a, F, L> !UnwindSafe for NamespacedLayouter<'a, F, L>","synthetic":true,"types":["halo2_proofs::circuit::NamespacedLayouter"]},{"text":"impl<F> UnwindSafe for Assigned<F> where
    F: UnwindSafe
","synthetic":true,"types":["halo2_proofs::plonk::assigned::Assigned"]},{"text":"impl<C> UnwindSafe for Column<C> where
    C: UnwindSafe
","synthetic":true,"types":["halo2_proofs::plonk::circuit::Column"]},{"text":"impl UnwindSafe for Advice","synthetic":true,"types":["halo2_proofs::plonk::circuit::Advice"]},{"text":"impl UnwindSafe for Fixed","synthetic":true,"types":["halo2_proofs::plonk::circuit::Fixed"]},{"text":"impl UnwindSafe for Instance","synthetic":true,"types":["halo2_proofs::plonk::circuit::Instance"]},{"text":"impl UnwindSafe for Any","synthetic":true,"types":["halo2_proofs::plonk::circuit::Any"]},{"text":"impl UnwindSafe for Selector","synthetic":true,"types":["halo2_proofs::plonk::circuit::Selector"]},{"text":"impl UnwindSafe for TableColumn","synthetic":true,"types":["halo2_proofs::plonk::circuit::TableColumn"]},{"text":"impl<F> UnwindSafe for Expression<F> where
    F: UnwindSafe
","synthetic":true,"types":["halo2_proofs::plonk::circuit::Expression"]},{"text":"impl<F> UnwindSafe for Constraint<F> where
    F: UnwindSafe
","synthetic":true,"types":["halo2_proofs::plonk::circuit::Constraint"]},{"text":"impl<F, C, Iter> UnwindSafe for Constraints<F, C, Iter> where
    F: UnwindSafe,
    Iter: UnwindSafe
","synthetic":true,"types":["halo2_proofs::plonk::circuit::Constraints"]},{"text":"impl<F> UnwindSafe for ConstraintSystem<F> where
    F: UnwindSafe
","synthetic":true,"types":["halo2_proofs::plonk::circuit::ConstraintSystem"]},{"text":"impl<'a, F> UnwindSafe for PinnedConstraintSystem<'a, F> where
    F: RefUnwindSafe
","synthetic":true,"types":["halo2_proofs::plonk::circuit::PinnedConstraintSystem"]},{"text":"impl<'a, F> !UnwindSafe for VirtualCells<'a, F>","synthetic":true,"types":["halo2_proofs::plonk::circuit::VirtualCells"]},{"text":"impl !UnwindSafe for Error","synthetic":true,"types":["halo2_proofs::plonk::error::Error"]},{"text":"impl<'params, C> UnwindSafe for SingleVerifier<'params, C> where
    C: UnwindSafe + RefUnwindSafe,
    <C as CurveAffine>::ScalarExt: UnwindSafe
","synthetic":true,"types":["halo2_proofs::plonk::verifier::SingleVerifier"]},{"text":"impl<'params, C, R> UnwindSafe for BatchVerifier<'params, C, R> where
    C: UnwindSafe + RefUnwindSafe,
    R: UnwindSafe,
    <C as CurveAffine>::ScalarExt: UnwindSafe
","synthetic":true,"types":["halo2_proofs::plonk::verifier::BatchVerifier"]},{"text":"impl<C> UnwindSafe for VerifyingKey<C> where
    C: UnwindSafe,
    <C as CurveAffine>::ScalarExt: UnwindSafe
","synthetic":true,"types":["halo2_proofs::plonk::VerifyingKey"]},{"text":"impl<'a, C> UnwindSafe for PinnedVerificationKey<'a, C> where
    C: RefUnwindSafe,
    <C as CurveAffine>::ScalarExt: RefUnwindSafe
","synthetic":true,"types":["halo2_proofs::plonk::PinnedVerificationKey"]},{"text":"impl<C> UnwindSafe for ProvingKey<C> where
    C: UnwindSafe,
    <C as CurveAffine>::ScalarExt: UnwindSafe
","synthetic":true,"types":["halo2_proofs::plonk::ProvingKey"]},{"text":"impl<'a, C> UnwindSafe for MSM<'a, C> where
    C: UnwindSafe + RefUnwindSafe,
    <C as CurveAffine>::ScalarExt: UnwindSafe
","synthetic":true,"types":["halo2_proofs::poly::commitment::msm::MSM"]},{"text":"impl<'a, C, E> UnwindSafe for Guard<'a, C, E> where
    C: UnwindSafe + RefUnwindSafe,
    E: UnwindSafe,
    <C as CurveAffine>::ScalarExt: UnwindSafe
","synthetic":true,"types":["halo2_proofs::poly::commitment::verifier::Guard"]},{"text":"impl<C, E> UnwindSafe for Accumulator<C, E> where
    C: UnwindSafe,
    E: UnwindSafe
","synthetic":true,"types":["halo2_proofs::poly::commitment::verifier::Accumulator"]},{"text":"impl<C> UnwindSafe for Params<C> where
    C: UnwindSafe
","synthetic":true,"types":["halo2_proofs::poly::commitment::Params"]},{"text":"impl<F> UnwindSafe for Blind<F> where
    F: UnwindSafe
","synthetic":true,"types":["halo2_proofs::poly::commitment::Blind"]},{"text":"impl<G> UnwindSafe for EvaluationDomain<G> where
    <G as Group>::Scalar: UnwindSafe
","synthetic":true,"types":["halo2_proofs::poly::domain::EvaluationDomain"]},{"text":"impl<'a, G> UnwindSafe for PinnedEvaluationDomain<'a, G> where
    <G as Group>::Scalar: RefUnwindSafe
","synthetic":true,"types":["halo2_proofs::poly::domain::PinnedEvaluationDomain"]},{"text":"impl<'a, C> UnwindSafe for ProverQuery<'a, C> where
    <C as CurveAffine>::ScalarExt: UnwindSafe + RefUnwindSafe
","synthetic":true,"types":["halo2_proofs::poly::multiopen::ProverQuery"]},{"text":"impl<'r, 'params, C> UnwindSafe for VerifierQuery<'r, 'params, C> where
    C: RefUnwindSafe,
    <C as CurveAffine>::ScalarExt: UnwindSafe + RefUnwindSafe
","synthetic":true,"types":["halo2_proofs::poly::multiopen::VerifierQuery"]},{"text":"impl UnwindSafe for Error","synthetic":true,"types":["halo2_proofs::poly::Error"]},{"text":"impl UnwindSafe for Coeff","synthetic":true,"types":["halo2_proofs::poly::Coeff"]},{"text":"impl UnwindSafe for LagrangeCoeff","synthetic":true,"types":["halo2_proofs::poly::LagrangeCoeff"]},{"text":"impl UnwindSafe for ExtendedLagrangeCoeff","synthetic":true,"types":["halo2_proofs::poly::ExtendedLagrangeCoeff"]},{"text":"impl<F, B> UnwindSafe for Polynomial<F, B> where
    B: UnwindSafe,
    F: UnwindSafe
","synthetic":true,"types":["halo2_proofs::poly::Polynomial"]},{"text":"impl UnwindSafe for Rotation","synthetic":true,"types":["halo2_proofs::poly::Rotation"]},{"text":"impl<R, C, E> UnwindSafe for Blake2bRead<R, C, E> where
    C: UnwindSafe,
    E: UnwindSafe,
    R: UnwindSafe
","synthetic":true,"types":["halo2_proofs::transcript::Blake2bRead"]},{"text":"impl<W, C, E> UnwindSafe for Blake2bWrite<W, C, E> where
    C: UnwindSafe,
    E: UnwindSafe,
    W: UnwindSafe
","synthetic":true,"types":["halo2_proofs::transcript::Blake2bWrite"]},{"text":"impl<C, T> UnwindSafe for ChallengeScalar<C, T> where
    T: UnwindSafe,
    <C as CurveAffine>::ScalarExt: UnwindSafe
","synthetic":true,"types":["halo2_proofs::transcript::ChallengeScalar"]},{"text":"impl<C> UnwindSafe for Challenge255<C> where
    C: UnwindSafe
","synthetic":true,"types":["halo2_proofs::transcript::Challenge255"]},{"text":"impl UnwindSafe for Column","synthetic":true,"types":["halo2_proofs::dev::metadata::Column"]},{"text":"impl UnwindSafe for VirtualCell","synthetic":true,"types":["halo2_proofs::dev::metadata::VirtualCell"]},{"text":"impl UnwindSafe for Gate","synthetic":true,"types":["halo2_proofs::dev::metadata::Gate"]},{"text":"impl UnwindSafe for Constraint","synthetic":true,"types":["halo2_proofs::dev::metadata::Constraint"]},{"text":"impl UnwindSafe for Region","synthetic":true,"types":["halo2_proofs::dev::metadata::Region"]},{"text":"impl UnwindSafe for FailureLocation","synthetic":true,"types":["halo2_proofs::dev::failure::FailureLocation"]},{"text":"impl UnwindSafe for VerifyFailure","synthetic":true,"types":["halo2_proofs::dev::failure::VerifyFailure"]},{"text":"impl<G, ConcreteCircuit> UnwindSafe for CircuitCost<G, ConcreteCircuit> where
    ConcreteCircuit: UnwindSafe,
    G: UnwindSafe
","synthetic":true,"types":["halo2_proofs::dev::cost::CircuitCost"]},{"text":"impl<G> UnwindSafe for MarginalProofSize<G> where
    G: UnwindSafe
","synthetic":true,"types":["halo2_proofs::dev::cost::MarginalProofSize"]},{"text":"impl<G> UnwindSafe for ProofSize<G> where
    G: UnwindSafe
","synthetic":true,"types":["halo2_proofs::dev::cost::ProofSize"]},{"text":"impl UnwindSafe for CircuitGates","synthetic":true,"types":["halo2_proofs::dev::gates::CircuitGates"]},{"text":"impl UnwindSafe for CircuitLayout","synthetic":true,"types":["halo2_proofs::dev::graph::layout::CircuitLayout"]},{"text":"impl<F> UnwindSafe for MockProver<F> where
    F: UnwindSafe
","synthetic":true,"types":["halo2_proofs::dev::MockProver"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/rustdoc/latest/implementors/halo2_gadgets/ecc/chip/trait.ScalarKind.js b/rustdoc/latest/implementors/halo2_gadgets/ecc/chip/trait.FixedScalarKind.js similarity index 100% rename from rustdoc/latest/implementors/halo2_gadgets/ecc/chip/trait.ScalarKind.js rename to rustdoc/latest/implementors/halo2_gadgets/ecc/chip/trait.FixedScalarKind.js diff --git a/rustdoc/latest/implementors/halo2_gadgets/ecc/trait.BaseFitsInScalarInstructions.js b/rustdoc/latest/implementors/halo2_gadgets/ecc/trait.BaseFitsInScalarInstructions.js new file mode 100644 index 00000000..e51b2ca8 --- /dev/null +++ b/rustdoc/latest/implementors/halo2_gadgets/ecc/trait.BaseFitsInScalarInstructions.js @@ -0,0 +1,3 @@ +(function() {var implementors = {}; +implementors["halo2_gadgets"] = []; +if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/rustdoc/latest/search-index.js b/rustdoc/latest/search-index.js index 85abe78a..44b33d85 100644 --- a/rustdoc/latest/search-index.js +++ b/rustdoc/latest/search-index.js @@ -1,6 +1,6 @@ var searchIndex = JSON.parse('{\ "halo2":{"doc":"halo2","t":[],"n":[],"q":[],"d":[],"i":[],"f":[],"p":[]},\ -"halo2_gadgets":{"doc":"halo2_gadgets","t":[0,0,0,0,0,0,16,8,3,3,3,8,16,16,3,16,3,16,3,16,3,16,3,16,16,3,16,10,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,10,10,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,10,4,3,3,3,3,3,8,4,18,3,8,16,4,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,17,17,17,17,5,5,5,5,3,13,4,13,8,8,3,3,3,3,3,16,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,0,0,3,3,8,3,3,16,8,8,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,10,11,10,11,10,11,11,10,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,17,3,3,17,17,11,11,17,11,17,17,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,17,3,16,3,3,8,16,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,16,3,8,16,16,3,8,16,3,16,3,16,16,10,16,8,16,11,11,11,11,11,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,10,10,11,11,11,11,11,11,11,11,11,11,0,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,17,8,3,11,11,11,0,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,8,3,8,8,16,11,5,5,11,11,10,11,11,0,0,5,11,11,11,11,11,5,11,11,11,5,11,0,11,5,5,11,11,11,11,11,10,10,11,11,11,3,3,8,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11],"n":["ecc","poseidon","primitives","sha256","sinsemilla","utilities","Base","EccInstructions","FixedPoint","FixedPointBaseField","FixedPointShort","FixedPoints","FixedPoints","FullScalar","NonIdentityPoint","NonIdentityPoint","Point","Point","ScalarFixed","ScalarFixed","ScalarFixedShort","ScalarFixedShort","ScalarVar","ScalarVar","ShortScalar","X","X","add","add","add","add_incomplete","add_incomplete","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","chip","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","constrain_equal","constrain_equal","constrain_equal","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","drop","drop","drop","drop","drop","extract_p","extract_p","extract_p","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from_inner","from_inner","from_inner","from_inner","from_inner","from_inner","init","init","init","init","init","init","init","init","init","inner","inner","inner","into","into","into","into","into","into","into","into","into","mul","mul","mul","mul","mul","mul_fixed","mul_fixed_base_field_elem","mul_fixed_short","new","new","to_owned","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","witness_point","witness_point_non_id","BaseFieldElem","EccChip","EccConfig","EccPoint","EccScalarFixed","EccScalarFixedShort","FixedPoint","FullScalar","NUM_WINDOWS","NonIdentityEccPoint","ScalarKind","ScalarKind","ShortScalar","add","add_incomplete","advices","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","config","configure","constants","constrain_equal","construct","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","drop","drop","drop","drop","drop","eq","eq","extract_p","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","generator","init","init","init","init","init","init","init","init","init","into","into","into","into","into","into","into","into","into","lagrange_coeffs","loaded","lookup_config","mul","mul_fixed","mul_fixed_base_field_elem","mul_fixed_short","ne","ne","point","point","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","u","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","witness_point","witness_point_non_id","x","x","y","y","z","FIXED_BASE_WINDOW_SIZE","H","NUM_WINDOWS","NUM_WINDOWS_SHORT","compute_lagrange_coeffs","find_zs_and_us","test_lagrange_coeffs","test_zs_and_us","Hash","Message","PaddedWord","Padding","PoseidonInstructions","PoseidonSpongeInstructions","Pow5Chip","Pow5Config","Sponge","StateWord","Word","Word","absorb","add_input","add_input","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","cell","clone","clone","clone","clone_into","clone_into","clone_into","config","configure","construct","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","drop","drop","drop","finish_absorbing","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from_inner","get_output","get_output","hash","init","init","init","init","init","init","init","init","initial_state","initial_state","inner","into","into","into","into","into","into","into","loaded","new","permute","permute","squeeze","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","value","vzip","vzip","vzip","vzip","vzip","vzip","vzip","0","0","poseidon","sinsemilla","Absorbing","ConstantLength","Domain","Hash","P128Pow5T3","Padding","Spec","SpongeMode","Squeezing","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","constants","constants","constants","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","drop","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","full_rounds","full_rounds","full_rounds","hash","init","init","init","init","init","init","initial_capacity_element","initial_capacity_element","into","into","into","into","into","name","name","padding","padding","partial_rounds","partial_rounds","partial_rounds","sbox","sbox","sbox","secure_mds","secure_mds","secure_mds","to_owned","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","C","CommitDomain","HashDomain","INV_TWO_POW_K","K","Q","Q","Q_PERSONALIZATION","R","SINSEMILLA_S","S_PERSONALIZATION","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","commit","deref","deref","deref_mut","deref_mut","drop","drop","fmt","fmt","from","from","hash","hash_to_point","init","init","into","into","new","new","short_commit","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","0","BLOCK_SIZE","BlockWord","BlockWord","Sha256","Sha256Digest","Sha256Instructions","State","Table16Chip","Table16Config","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","compress","compress","config","configure","construct","default","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","digest","digest","digest","drop","drop","drop","drop","drop","finalize","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","init","init","init","init","init","initialization","initialization","initialization_vector","initialization_vector","into","into","into","into","into","load","loaded","new","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","update","vzip","vzip","vzip","vzip","vzip","CellValue","CommitDomain","CommitDomains","CommitDomains","FixedPoints","HashDomain","HashDomains","HashDomains","Message","Message","MessagePiece","MessagePiece","NonIdentityPoint","Q","RunningSum","SinsemillaInstructions","X","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","chip","clone","clone","clone_into","clone_into","commit","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","extract","fmt","fmt","fmt","fmt","from","from","from","from","from_field_elem","from_pieces","from_subpieces","hash","hash_domain","hash_to_point","hash_to_point","init","init","init","init","inner","into","into","into","into","merkle","new","new","r","short_commit","to_owned","to_owned","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","witness_message_piece","SinsemillaChip","SinsemillaConfig","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","config","configure","construct","deref","deref","deref_mut","deref_mut","drop","drop","eq","eq","extract","fmt","fmt","from","from","hash_to_point","init","init","into","into","load","loaded","lookup_config","ne","ne","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","witness_message_piece","MERKLE_CRH_PERSONALIZATION","MerkleInstructions","MerklePath","borrow","borrow_mut","calculate_root","chip","clone","clone_into","construct","deref","deref_mut","drop","fmt","from","hash_layer","init","into","to_owned","try_from","try_into","type_id","vzip","MerkleChip","MerkleConfig","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","config","configure","construct","deref","deref","deref_mut","deref_mut","drop","drop","extract","fmt","fmt","from","from","hash_layer","hash_to_point","init","init","into","into","loaded","swap","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","witness_message_piece","FieldValue","RangeConstrained","UtilitiesInstructions","Var","Var","bitrange_of","bitrange_subset","bool_check","borrow","borrow_mut","cell","clone","clone_into","cond_swap","decompose_running_sum","decompose_word","deref","deref_mut","drop","fmt","from","i2lebsp","init","inner","into","lebs2ip","load_private","lookup_range_check","num_bits","range_check","ternary","to_owned","try_from","try_into","type_id","unsound_unchecked","value","value","value","vzip","witness_short","CondSwapChip","CondSwapConfig","CondSwapInstructions","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","config","configure","construct","deref","deref","deref_mut","deref_mut","drop","drop","fmt","fmt","from","from","init","init","into","into","loaded","swap","swap","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","RunningSum","RunningSumConfig","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","configure","copy_decompose","deref","deref","deref","deref_mut","deref_mut","drop","drop","eq","fmt","fmt","from","from","init","init","into","into","ne","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","witness_decompose","LookupRangeCheckConfig","RunningSum","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","configure","copy_check","copy_short_check","deref","deref","deref","deref_mut","deref_mut","drop","drop","eq","fmt","fmt","from","from","init","init","into","into","ne","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","witness_check","witness_short_check"],"q":["halo2_gadgets","","","","","","halo2_gadgets::ecc","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","halo2_gadgets::ecc::chip","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","halo2_gadgets::ecc::chip::constants","","","","","","","","halo2_gadgets::poseidon","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","halo2_gadgets::poseidon::PaddedWord","","halo2_gadgets::primitives","","halo2_gadgets::primitives::poseidon","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","halo2_gadgets::primitives::sinsemilla","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","halo2_gadgets::sha256","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","halo2_gadgets::sinsemilla","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","halo2_gadgets::sinsemilla::chip","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","halo2_gadgets::sinsemilla::merkle","","","","","","","","","","","","","","","","","","","","","","","halo2_gadgets::sinsemilla::merkle::chip","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","halo2_gadgets::utilities","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","halo2_gadgets::utilities::cond_swap","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","halo2_gadgets::utilities::decompose_running_sum","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","halo2_gadgets::utilities::lookup_range_check","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"d":["Gadgets for elliptic curve operations.","Gadget and chips for the Poseidon algebraic hash function.","Primitives used in the Orchard protocol.","Gadget and chips for the SHA-256 hash function.","Gadgets for the Sinsemilla hash function.","Utility gadgets.","Fixed points that can be multiplied by base field elements.","The set of circuit instructions required to use the ECC …","A constant elliptic curve point over the given curve, for …","A constant elliptic curve point over the given curve, used …","A constant elliptic curve point over the given curve, used …","Defines the fixed points for a given instantiation of the …","Enumeration of the set of fixed bases to be used in scalar …","Fixed points that can be used with full-width scalar …","A non-identity elliptic curve point over the given curve.","Variable representing a non-identity elliptic curve point.","An elliptic curve point over the given curve.","Variable representing an elliptic curve point.","A full-width element of the given elliptic curve’s …","Variable representing a full-width element of the elliptic …","A signed short element of the given elliptic curve’s …","Variable representing a signed short element of the …","An element of the given elliptic curve’s base field, …","Variable representing an element of the elliptic curve’s …","Fixed points that can be used with short scalar …","The affine short Weierstrass x-coordinate of an elliptic …","Variable representing the affine short Weierstrass …","Performs complete point addition, returning a + b.","Returns self + other using complete addition.","Returns self + other using complete addition.","Performs incomplete point addition, returning a + b.","Returns self + other using incomplete addition. The …","","","","","","","","","","","","","","","","","","","Chip implementations for the ECC gadgets.","","","","","","","","","","","Constrains point a to be equal in value to point b.","Constrains this point to be equal in value to another …","Constrains this point to be equal in value to another …","","","","","","","","","","","","","","","","","","","","","","","","","","","","Extracts the x-coordinate of a point.","Extracts the x-coordinate of a point.","Extracts the x-coordinate of a point.","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Wraps the given point (obtained directly from an …","Wraps the given point (obtained directly from an …","Wraps the given x-coordinate (obtained directly from an …","Wraps the given fixed base (obtained directly from an …","Wraps the given fixed base (obtained directly from an …","Wraps the given fixed base (obtained directly from an …","","","","","","","","","","Returns the inner point.","Returns the inner point.","Returns the inner x-coordinate.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Performs variable-base scalar multiplication, returning …","Returns [by] self.","Returns [by] self.","Returns [by] self.","Returns [by] self.","Performs fixed-base scalar multiplication using a …","Performs fixed-base scalar multiplication using a base …","Performs fixed-base scalar multiplication using a short …","Constructs a new point with the given value.","Constructs a new point with the given value.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Witnesses the given point as a private input to the …","Witnesses the given point as a private input to the …","Type marker representing a base field element being used …","A chip implementing EccInstructions","Configuration for the ECC chip","A curve point represented in affine (x, y) coordinates, or …","A full-width scalar used for fixed-base scalar …","A signed short scalar used for fixed-base scalar …","Returns information about a fixed point that is required …","Type marker representing a full-width scalar for use in …","The number of windows that this scalar kind requires.","A non-identity point represented in affine (x, y) …","A trait representing the kind of scalar used with a …","The kind of scalar that this fixed point can be multiplied …","Type marker representing a signed 64-bit scalar for use in …","","","Advice columns needed by instructions in the ECC chip.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Side effects","Constants required for the ECC chip.","","Reconstructs this chip from the given config.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the generator for this fixed point.","","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Returns the Lagrange coefficients for this fixed point.","","Lookup range check using 10-bit lookup table","","","","","","","Returns the value of this curve point, if known.","Returns the value of this curve point, if known.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the $u$ values for this fixed point.","","","","","","","","","","","","The cell containing the affine short-Weierstrass …","The cell containing the affine short-Weierstrass …","The cell containing the affine short-Weierstrass …","The cell containing the affine short-Weierstrass …","Returns the $z$ value for this fixed point.","Window size for fixed-base scalar multiplication","$2^{FIXED_BASE_WINDOW_SIZE}$","Number of windows for a full-width scalar","Number of windows for a short signed scalar","For each window, we interpolate the $x$-coordinate. Here, …","For each window, $z$ is a field element such that for each …","Test that Lagrange interpolation coefficients reproduce …","Test that the z-values and u-values satisfy the conditions:","A Poseidon hash function, built around a sponge.","A message word provided by the prover.","A word from the padded input to a Poseidon sponge.","A padding word, that will be fixed in the circuit …","The set of circuit instructions required to use the …","The set of circuit instructions required to use the Sponge …","A Poseidon chip using an $x^5$ S-Box.","Configuration for a Pow5Chip.","A Poseidon sponge.","A word in the Poseidon state.","A word over which the Poseidon permutation operates.","Variable representing the word over which the Poseidon …","Absorbs an element into the sponge.","Adds the given input to the state.","","","","","","","","","","","","","","","","","","","","","","","","Configures this chip for use in a circuit.","Construct a Pow5Chip.","","","","","","","","","","","","","","","","","","","","","","Transitions the sponge into its squeezing state.","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Construct a Word gadget from the inner word.","Extracts sponge output from the given state.","","Hashes the given input.","","","","","","","","Initializes a new hasher.","Returns the initial empty state for the given domain.","","The word contained in this gadget.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","Constructs a new duplex sponge for the given Poseidon …","Applies the Poseidon permutation to the given state.","","Squeezes an element from the sponge.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","The Poseidon algebraic hash function.","The Sinsemilla hash function and commitment scheme.","The absorbing state of the Sponge.","A Poseidon hash function used with constant input length.","A domain in which a Poseidon hash function is being used.","A Poseidon hash function, built around a sponge.","Poseidon-128 using the $x^5$ S-box, with a width of 3 …","Iterator that outputs padding field elements.","A specification for a Poseidon permutation.","The state of the Sponge.","The squeezing state of the Sponge.","","","","","","","","","","","","","Generates (round_constants, mds, mds^-1) corresponding to …","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","The number of full rounds for this specification.","","","Hashes the given input.","","Initializes a new hasher.","","","","","The initial capacity element, encoding this domain.","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","The name of this domain, for debug formatting purposes.","","Returns the padding to be appended to the input.","","The number of partial rounds for this specification.","","","The S-box for this specification.","","","Side-loaded index of the first correct and secure MDS that …","","","","","","","","","","","","","","","","","","","","","","","","The largest integer such that $2^c \\\\leq (r_P - 1) / 2$, …","A domain in which $\\\\mathsf{SinsemillaCommit}$ and …","A domain in which $\\\\mathsf{SinsemillaHashToPoint}$ and …","$\\\\frac{1}{2^K}$","Number of bits of each message piece in …","Returns the Sinsemilla $Q$ constant for this domain.","Returns the Sinsemilla $Q$ constant for this domain.","SWU hash-to-curve personalization for Sinsemilla $Q$ …","Returns the Sinsemilla $R$ constant for this domain.","The precomputed bases for the Sinsemilla hash function.","SWU hash-to-curve personalization for Sinsemilla $S$ …","","","","","","","$\\\\mathsf{SinsemillaCommit}$ from § 5.4.8.4.","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","$\\\\mathsf{SinsemillaHash}$ from § 5.4.1.9.","$\\\\mathsf{SinsemillaHashToPoint}$ from § 5.4.1.9.","","","Calls U::from(self).","Calls U::from(self).","Constructs a new HashDomain with a specific prefix string.","Constructs a new CommitDomain with a specific prefix …","$\\\\mathsf{SinsemillaShortCommit}$ from § 5.4.8.4.","","","","","","","","","","","The size of a SHA-256 block, in 32-bit words.","A word in a Table16 message block.","Variable representing a 32-bit word of the input block to …","A gadget that constrains a SHA-256 invocation. It supports …","The output of a SHA-256 circuit invocation.","The set of circuit instructions required to use the Sha256 …","Variable representing the SHA-256 internal state.","A chip that implements SHA-256 with a maximum lookup table …","Configuration for a Table16Chip.","","","","","","","","","","","","","","","","","Starting from the given initialized state, processes a …","","","Configures a circuit to include this chip.","Reconstructs this chip from the given config.","","","","","","","","","","","","Converts the given state into a message digest.","","Convenience function to compute hash of the data. It will …","","","","","","Retrieve result and consume hasher instance.","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","Creates an initial state from the output state of a …","","Places the SHA-256 IV in the circuit, returning the …","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Loads the lookup table required by this chip into the …","","Create a new hasher instance.","","","","","","","","","","","","","","","","","","","Digest data, updating the internal state.","","","","","","A variable in the circuit.","Gadget representing a domain in which …","Trait allowing circuit’s Sinsemilla CommitDomains to be …","CommitDomains used in this instruction.","A type enumerating the fixed points used in CommitDomains.","A domain in which $\\\\mathsf{SinsemillaHashToPoint}$ and …","Trait allowing circuit’s Sinsemilla HashDomains to be …","HashDomains used in this instruction.","A message to be hashed.","A message composed of Self::MessagePieces.","A message piece with a bitlength of some multiple of K.","A piece in a message containing a number of K-bit words. A …","A point output of Self::hash_to_point.","Returns the Q constant for this domain.","A cumulative sum z is used to decompose a Sinsemilla …","The set of circuit instructions required to use the …","The x-coordinate of a point output of Self::hash_to_point.","","","","","","","","","Chip implementations for the Sinsemilla gadgets.","","","","","$\\\\mathsf{SinsemillaCommit}$ from § 5.4.8.4.","","","","","","","","","","","","","Extracts the x-coordinate of the output of a Sinsemilla …","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Constructs a MessagePiece from a field element.","Constructs a message from a vector of MessagePieces.","Constructs a MessagePiece by concatenating a sequence of …","$\\\\mathsf{SinsemillaHash}$ from § 5.4.1.9.","Returns the HashDomain contained in this CommitDomain","Hashes a message to an ECC curve point. This returns both …","$\\\\mathsf{SinsemillaHashToPoint}$ from § 5.4.1.9.","","","","","Returns the inner MessagePiece contained in this gadget.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Gadgets for implementing a Merkle tree with Sinsemilla.","Constructs a new HashDomain for the given domain.","Constructs a new CommitDomain for the given domain.","Returns the fixed point corresponding to the R constant …","$\\\\mathsf{SinsemillaShortCommit}$ from § 5.4.8.4.","","","","","","","","","","","","","","","","","","","Witness a message piece given a field element. Returns a …","A chip that implements 10-bit Sinsemilla using a lookup …","Configuration for the Sinsemilla hash chip","","","","","","","","","","Side-effects","Reconstructs this chip from the given config.","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","Calls U::from(self).","Calls U::from(self).","Loads the lookup table required by this chip into the …","","Returns the lookup range check config used in this config.","","","","","","","","","","","","","","SWU hash-to-curve personalization for the Merkle CRH …","Instructions to check the validity of a Merkle path of a …","Gadget representing a Merkle path that proves a leaf …","","","Calculates the root of the tree containing the given leaf …","Chip implementing a Merkle hash using Sinsemilla as the …","","","Constructs a MerklePath.","","","","","Returns the argument unchanged.","Compute MerkleCRH for a given layer. The hash that …","","Calls U::from(self).","","","","","","Chip implementing MerkleInstructions.","Configuration for the MerkleChip implementation.","","","","","","","","","","Configures the MerkleChip.","Constructs a MerkleChip given a MerkleConfig.","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","A type that has a value at either keygen or proving time.","A type representing a range-constrained field element.","Trait for utilities used across circuits.","Trait for a variable in the circuit.","Variable in the circuit.","Constructs a RangeConstrained<Option<F>> as a bitrange of …","Takes a specified subsequence of the little-endian bit …","Checks that an expression is either 1 or 0.","","","The cell at which this variable was allocated.","","","Gadget and chip for a conditional swap utility.","Decomposes an $n$-bit field element $\\\\alpha$ into $W$ …","Decompose a word alpha into window_num_bits bits …","","","","","Returns the argument unchanged.","The sequence of bits representing a u64 in little-endian …","","Returns the range-constrained inner type.","Calls U::from(self).","The u64 integer represented by an L-bit little-endian …","Load a variable.","Make use of a K-bit lookup table to decompose a field …","Returns the number of bits to which this cell is …","Check that an expression is in the small range [0..range), …","If a then b, else c. Returns (a * b) + (1 - a) * c.","","","","","Constructs a RangeConstrained<AssignedCell<F, F>> without …","Returns the value of this type.","The value allocated to this variable.","Extracts the range-constrained value from this …","","Witnesses a subset of the bits in value and constrains …","A chip implementing a conditional swap.","Configuration for the CondSwapChip.","Instructions for a conditional swap gadget.","","","","","","","","","","Configures this chip for use in a circuit.","Constructs a CondSwapChip given a CondSwapConfig.","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","","Given an input pair (a,b) and a swap boolean flag, returns …","","","","","","","","","","","","The running sum $[z_0, …, z_W]$. If created in strict …","Configuration that provides methods for running sum …","","","","","","","perm MUST include the advice column z.","Decompose an existing variable alpha that is copied into …","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","Decompose a field element alpha that is witnessed in this …","Configuration that provides methods for a lookup range …","The running sum $[z_0, …, z_W]$. If created in strict …","","","","","","","The running_sum advice column breaks the field element …","Range check on an existing cell that is copied into this …","Short range check on an existing cell that is copied into …","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","Range check on a value that is witnessed in this helper.","Short range check on value that is witnessed in this …"],"i":[0,0,0,0,0,0,1,0,0,0,0,0,2,1,0,2,0,2,0,2,0,2,0,2,1,0,2,2,3,4,2,3,5,6,7,3,4,8,9,10,11,5,6,7,3,4,8,9,10,11,0,3,4,9,10,11,3,4,9,10,11,2,3,4,5,6,7,3,4,8,9,10,11,5,6,7,3,4,8,9,10,11,5,6,7,3,4,8,9,10,11,2,3,4,5,6,7,3,4,8,9,10,11,5,6,7,3,4,4,8,9,10,11,3,4,8,9,10,11,5,6,7,3,4,8,9,10,11,3,4,8,5,6,7,3,4,8,9,10,11,2,3,9,10,11,2,2,2,3,4,3,4,9,10,11,5,6,7,3,4,8,9,10,11,5,6,7,3,4,8,9,10,11,5,6,7,3,4,8,9,10,11,5,6,7,3,4,8,9,10,11,2,2,0,0,0,0,0,0,0,0,12,0,0,13,0,14,14,15,16,17,15,18,19,20,14,21,22,16,17,15,18,19,20,14,21,22,16,17,15,14,21,22,16,17,15,14,21,22,14,14,0,14,14,16,17,15,18,19,20,14,21,22,16,17,15,18,19,20,14,21,22,16,17,15,18,19,20,14,21,22,15,14,14,16,17,15,18,19,20,14,21,22,16,16,17,15,18,19,20,14,21,22,13,16,17,15,18,19,20,14,21,22,16,17,15,18,19,20,14,21,22,13,14,15,14,14,14,14,15,14,16,17,16,17,15,14,21,22,16,17,15,18,19,20,14,21,22,16,17,15,18,19,20,14,21,22,16,17,15,18,19,20,14,21,22,13,16,17,15,18,19,20,14,21,22,14,14,16,17,16,17,13,0,0,0,0,0,0,0,0,0,23,0,23,0,0,0,0,0,0,0,24,25,26,27,28,27,29,23,30,25,31,28,27,29,23,30,25,31,29,28,29,23,28,29,23,27,27,27,28,27,29,23,30,25,31,28,27,29,23,30,25,31,28,27,29,23,30,25,31,25,28,27,29,23,30,25,31,28,27,29,29,23,30,25,31,30,26,27,31,28,27,29,23,30,25,31,31,26,27,30,28,27,29,23,30,25,31,27,25,24,27,25,28,29,23,28,27,29,23,30,25,31,28,27,29,23,30,25,31,28,27,29,23,30,25,31,29,28,27,29,23,30,25,31,32,33,0,0,0,0,0,0,0,34,0,0,0,35,36,37,38,39,35,36,37,38,39,39,39,40,36,36,35,36,37,38,39,35,36,37,38,39,35,36,37,38,39,35,36,37,38,39,35,36,37,38,39,40,36,36,35,35,35,36,37,38,39,34,39,35,36,37,38,39,34,39,34,39,40,36,36,40,36,36,40,36,36,39,35,36,37,38,39,35,36,37,38,39,35,36,37,38,39,35,36,37,38,39,0,0,0,0,0,41,42,0,42,0,0,41,42,41,42,41,41,42,41,42,41,42,41,42,41,42,41,42,41,41,41,42,41,42,41,42,42,41,41,42,41,42,41,42,41,42,43,0,0,44,0,0,0,44,0,0,43,45,46,47,48,43,45,46,47,48,43,45,46,43,45,46,44,46,46,46,46,43,43,45,46,47,48,43,45,46,47,48,44,46,48,43,45,46,47,48,48,43,45,46,47,48,43,45,46,47,48,43,45,46,47,48,44,46,44,46,43,45,46,47,48,46,46,48,43,45,46,43,45,46,47,48,43,45,46,47,48,43,45,46,47,48,48,43,45,46,47,48,49,0,0,49,49,0,0,49,0,49,0,49,49,50,49,0,49,51,52,53,54,51,52,53,54,0,51,52,51,52,54,51,52,53,54,51,52,53,54,51,52,53,54,49,51,52,53,54,51,52,53,54,52,51,52,53,55,49,53,51,52,53,54,52,51,52,53,54,0,53,54,55,54,51,52,51,52,53,54,51,52,53,54,51,52,53,54,51,52,53,54,49,0,0,56,57,56,57,56,57,56,57,57,57,57,56,57,56,57,56,57,56,57,57,56,57,56,57,57,56,57,56,57,57,57,56,56,57,56,57,56,57,56,57,56,57,56,57,57,0,0,0,58,58,58,0,58,58,58,58,58,58,58,58,59,58,58,58,58,58,58,58,0,0,60,61,60,61,60,61,60,61,61,61,61,60,61,60,61,60,61,61,60,61,60,61,61,61,60,61,60,61,61,61,60,61,60,61,60,61,60,61,60,61,61,0,0,0,0,62,63,0,0,63,63,64,63,63,0,0,0,63,63,63,63,63,0,63,63,63,0,62,0,63,0,0,63,63,63,63,63,65,64,63,63,63,0,0,0,66,67,66,67,66,67,66,67,66,66,66,66,67,66,67,66,67,66,67,66,67,66,67,66,67,66,68,66,66,67,66,67,66,67,66,67,66,67,0,0,69,70,69,70,70,70,70,70,69,69,70,69,70,69,70,70,69,70,69,70,69,70,69,70,70,70,69,70,69,70,69,70,69,70,70,0,0,71,72,71,72,72,72,72,72,72,71,71,72,71,72,71,72,72,71,72,71,72,71,72,71,72,72,72,71,72,71,72,71,72,71,72,72,72],"f":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[["",0],["",0],["",0]],["result",4,[["error",4]]]],[[["",0],["",0]],["result",4,[["point",3],["error",4]]]],[[["",0],["",0]],["result",4,[["point",3],["error",4]]]],[[["",0]],["result",4,[["error",4]]]],[[["",0],["",0]],["result",4,[["error",4]]]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],null,[[["",0]],["nonidentitypoint",3]],[[["",0]],["point",3]],[[["",0]],["fixedpoint",3]],[[["",0]],["fixedpointbasefield",3]],[[["",0]],["fixedpointshort",3]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0]],["result",4,[["error",4]]]],[[["",0],["",0]],["result",4,[["error",4]]]],[[["",0],["",0]],["result",4,[["error",4]]]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["",0]]],[[["",0]],["x",3]],[[["",0]],["x",3]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[["nonidentitypoint",3]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[["",0]]],[[["",0]]],[[["",0]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["",0]],["result",4,[["error",4]]]],[[["",0]],["result",4,[["error",4]]]],[[["",0],["option",4]],["result",4,[["error",4]]]],[[["",0]],["result",4,[["point",3],["error",4]]]],[[["",0]],["result",4,[["error",4]]]],[[["",0],["option",4]],["result",4,[["error",4]]]],[[["",0]],["result",4,[["error",4]]]],[[["",0]],["result",4,[["error",4]]]],[[["option",4]],["result",4,[["error",4]]]],[[["option",4]],["result",4,[["error",4]]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["",0],["option",4]],["result",4,[["error",4]]]],[[["",0],["option",4]],["result",4,[["error",4]]]],null,null,null,null,null,null,null,null,null,null,null,null,null,[[["",0],["",0],["",0]],["result",4,[["error",4]]]],[[["",0]],["result",4,[["error",4]]]],null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["eccpoint",3]],[[["",0]],["nonidentityeccpoint",3]],[[["",0]],["eccconfig",3]],[[["",0]],["eccchip",3]],[[["",0]],["eccscalarfixed",3]],[[["",0]],["eccscalarfixedshort",3]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0]]],[[["constraintsystem",3],["lookuprangecheckconfig",3,[["base",6]]]]],null,[[["",0]],["result",4,[["error",4]]]],[[]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["",0],["eccconfig",3]],["bool",0]],[[["",0],["eccchip",3]],["bool",0]],[[["",0]]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[]],[[["nonidentityeccpoint",3]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["",0]]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["",0]],["vec",3]],[[["",0]]],null,[[["",0]],["result",4,[["error",4]]]],[[["",0],["option",4,[["scalar",6]]]],["result",4,[["error",4]]]],[[["",0],["assignedcell",3,[["base",6],["base",6]]]],["result",4,[["error",4]]]],[[["",0]],["result",4,[["error",4]]]],[[["",0],["eccconfig",3]],["bool",0]],[[["",0],["eccchip",3]],["bool",0]],[[["",0]],["option",4,[["affine",6]]]],[[["",0]],["option",4,[["affine",6]]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["vec",3]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["",0],["option",4,[["affine",6]]]],["result",4,[["error",4]]]],[[["",0],["option",4,[["affine",6]]]],["result",4,[["error",4]]]],[[["",0]],["assignedcell",3,[["base",6],["base",6]]]],[[["",0]],["assignedcell",3,[["base",6],["base",6]]]],[[["",0]],["assignedcell",3,[["base",6],["base",6]]]],[[["",0]],["assignedcell",3,[["base",6],["base",6]]]],[[["",0]],["vec",3,[["u64",0]]]],null,null,null,null,[[["curveaffine",8],["usize",0]],["vec",3]],[[["curveaffine",8],["usize",0]],["option",4,[["vec",3]]]],[[["curveaffine",8],["usize",0]]],[[["curveaffine",8],["usize",0]]],null,null,null,null,null,null,null,null,null,null,null,null,[[["",0],["paddedword",4]],["result",4,[["error",4]]]],[[["",0],["absorbing",3]],["result",4,[["error",4]]]],[[["",0],["absorbing",3]],["result",4,[["error",4]]]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["cell",3]],[[["",0]],["pow5config",3]],[[["",0]],["stateword",3]],[[["",0]],["paddedword",4]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0]]],[[["constraintsystem",3],["column",3,[["advice",3]]]],["pow5config",3]],[[["pow5config",3]]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[],["result",4,[["sponge",3,[["squeezing",3]]],["error",4]]]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[]],[[["assignedcell",3]],["stateword",3]],[[]],[[]],[[]],[[]],[[]],[[],["squeezing",3]],[[],["squeezing",3]],[[],["result",4,[["assignedcell",3],["error",4]]]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[],["result",4,[["error",4]]]],[[["",0]],["result",4,[["error",4]]]],[[["",0]],["result",4,[["error",4]]]],[[["",0]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["",0]]],[[],["result",4,[["error",4]]]],[[["",0]],["result",4,[["error",4]]]],[[["",0]],["result",4,[["error",4]]]],[[["",0]],["result",4,[["assignedcell",3],["error",4]]]],[[["",0]]],[[["",0]]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["option",4]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,null,null,null,null,null,null,null,null,null,null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["constantlength",3]],[[["",0],["",0]]],[[]],[[]],[[]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[]],[[],["usize",0]],[[]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["string",3]],[[],["string",3]],[[["usize",0]]],[[["usize",0]]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[]],[[["fq",6]],["fq",6]],[[["fp",6]],["fp",6]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[]],[[]],[[]],null,null,null,null,null,[[["",0]],["point",6]],[[["",0]],["point",6]],null,[[["",0]],["point",6]],null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["hashdomain",3]],[[["",0],["",0]]],[[["",0],["scalar",6]],["ctoption",3,[["point",6]]]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]]],[[["usize",0]]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[["",0]],["ctoption",3,[["base",6]]]],[[["",0]],["ctoption",3,[["point",6]]]],[[],["usize",0]],[[],["usize",0]],[[]],[[]],[[["str",0]]],[[["str",0]]],[[["",0],["scalar",6]],["ctoption",3,[["base",6]]]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],null,null,null,null,null,null,null,null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["blockword",3]],[[["",0]],["table16config",3]],[[["",0]],["table16chip",3]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0]],["result",4,[["error",4]]]],[[["",0]],["result",4,[["error",4]]]],[[["",0]]],[[["constraintsystem",3]]],[[]],[[],["blockword",3]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["",0]],["result",4,[["error",4]]]],[[["",0]],["result",4,[["error",4]]]],[[],["result",4,[["sha256digest",3],["error",4]]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[],["result",4,[["sha256digest",3],["error",4]]]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[["",0]],["result",4,[["error",4]]]],[[["",0]],["result",4,[["error",4]]]],[[["",0]],["result",4,[["error",4]]]],[[["",0]],["result",4,[["state",3],["error",4]]]],[[]],[[]],[[]],[[]],[[]],[[["table16config",3]],["result",4,[["error",4]]]],[[["",0]]],[[],["result",4,[["error",4]]]],[[["",0]]],[[["",0]]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["result",4,[["error",4]]]],[[]],[[]],[[]],[[]],[[]],null,null,null,null,null,null,null,null,null,null,null,null,null,[[["",0]]],null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],null,[[["",0]],["message",3]],[[["",0]],["messagepiece",3]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["message",3],["option",4]],["result",4,[["error",4]]]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[["option",4],["usize",0]],["result",4,[["error",4]]]],[[["vec",3,[["messagepiece",3]]]]],[[],["result",4,[["error",4]]]],[[["",0],["message",3]],["result",4,[["error",4]]]],[[["",0]]],[[["",0]],["result",4,[["error",4]]]],[[["",0],["message",3]],["result",4,[["error",4]]]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[["",0]]],[[]],[[]],[[]],[[]],null,[[]],[[]],[[["",0]]],[[["",0],["message",3],["option",4]],["result",4,[["error",4]]]],[[["",0]]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[]],[[]],[[["",0],["option",4],["usize",0]],["result",4,[["error",4]]]],null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["sinsemillaconfig",3]],[[["",0]],["sinsemillachip",3]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0]]],[[["constraintsystem",3],["column",3,[["advice",3]]],["column",3,[["fixed",3]]],["lookuprangecheckconfig",3,[["base",6]]]]],[[]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]]],[[["usize",0]]],[[["",0],["sinsemillaconfig",3]],["bool",0]],[[["",0],["sinsemillachip",3]],["bool",0]],[[]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[["",0],["affine",6]],["result",4,[["error",4]]]],[[],["usize",0]],[[],["usize",0]],[[]],[[]],[[["sinsemillaconfig",3]],["result",4,[["error",4]]]],[[["",0]]],[[["",0]],["lookuprangecheckconfig",3,[["base",6]]]],[[["",0],["sinsemillaconfig",3]],["bool",0]],[[["",0],["sinsemillachip",3]],["bool",0]],[[["",0]]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[["",0],["option",4,[["base",6]]],["usize",0]],["result",4,[["error",4]]]],null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["result",4,[["error",4]]]],null,[[["",0]],["merklepath",3]],[[["",0],["",0]]],[[["option",4,[["u32",0]]],["option",4]]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]]],[[["",0],["formatter",3]],["result",6]],[[]],[[["",0],["usize",0]],["result",4,[["error",4]]]],[[],["usize",0]],[[]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[]],null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["merkleconfig",3]],[[["",0]],["merklechip",3]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0]]],[[["constraintsystem",3],["sinsemillaconfig",3]],["merkleconfig",3]],[[["merkleconfig",3]]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]]],[[["usize",0]]],[[]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[["",0],["affine",6],["usize",0]],["result",4,[["error",4]]]],[[["",0],["affine",6]],["result",4,[["error",4]]]],[[],["usize",0]],[[],["usize",0]],[[]],[[]],[[["",0]]],[[["",0],["option",4,[["bool",0]]]],["result",4,[["error",4]]]],[[["",0]]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[["",0],["option",4,[["base",6]]],["usize",0]],["result",4,[["error",4]]]],null,null,null,null,null,[[["option",4],["range",3,[["usize",0]]]]],[[["",0],["range",3,[["usize",0]]]],["primefieldbits",8]],[[["expression",4,[["fieldext",8]]]],["expression",4,[["fieldext",8]]]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["cell",3]],[[["",0]],["rangeconstrained",3]],[[["",0],["",0]]],null,null,[[["",0],["usize",0],["usize",0]],["vec",3,[["u8",0]]]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]]],[[["",0],["formatter",3]],["result",6]],[[]],[[["u64",0]]],[[],["usize",0]],[[["",0]],["",0]],[[]],[[],["u64",0]],[[["",0],["column",3,[["advice",3]]],["option",4]],["result",4,[["error",4]]]],null,[[["",0]],["usize",0]],[[["expression",4,[["fieldext",8]]],["usize",0]],["expression",4,[["fieldext",8]]]],[[["expression",4,[["fieldext",8]]],["expression",4,[["fieldext",8]]],["expression",4,[["fieldext",8]]]],["expression",4,[["fieldext",8]]]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["assignedcell",3],["usize",0]]],[[["",0]],["option",4]],[[["",0]],["option",4]],[[["",0]],["rangeconstrained",3,[["option",4]]]],[[]],[[["lookuprangecheckconfig",3],["option",4],["range",3,[["usize",0]]]],["result",4,[["error",4]]]],null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["condswapchip",3]],[[["",0]],["condswapconfig",3]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0]]],[[["constraintsystem",3]],["condswapconfig",3]],[[["condswapconfig",3]]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]]],[[["usize",0]]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[],["usize",0]],[[],["usize",0]],[[]],[[]],[[["",0]]],[[["",0],["option",4,[["bool",0]]]],["result",4,[["error",4]]]],[[["",0],["option",4,[["bool",0]]]],["result",4,[["error",4]]]],[[["",0]]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["runningsumconfig",3]],[[["",0],["",0]]],[[["constraintsystem",3],["selector",3],["column",3,[["advice",3]]]]],[[["",0],["region",3],["usize",0],["assignedcell",3],["bool",0],["usize",0],["usize",0]],["result",4,[["runningsum",3],["error",4]]]],[[["usize",0]],["",0]],[[["",0]],["vec",3]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]]],[[["usize",0]]],[[["",0],["runningsumconfig",3]],["bool",0]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[],["usize",0]],[[],["usize",0]],[[]],[[]],[[["",0],["runningsumconfig",3]],["bool",0]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[["",0],["region",3],["usize",0],["option",4],["bool",0],["usize",0],["usize",0]],["result",4,[["runningsum",3],["error",4]]]],null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["lookuprangecheckconfig",3]],[[["",0],["",0]]],[[["constraintsystem",3],["column",3,[["advice",3]]],["tablecolumn",3]]],[[["",0],["assignedcell",3],["usize",0],["bool",0]],["result",4,[["runningsum",3],["error",4]]]],[[["",0],["assignedcell",3],["usize",0]],["result",4,[["error",4]]]],[[["usize",0]],["",0]],[[["",0]],["vec",3]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]]],[[["usize",0]]],[[["",0],["lookuprangecheckconfig",3]],["bool",0]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[],["usize",0]],[[],["usize",0]],[[]],[[]],[[["",0],["lookuprangecheckconfig",3]],["bool",0]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[["",0],["option",4],["usize",0],["bool",0]],["result",4,[["runningsum",3],["error",4]]]],[[["",0],["option",4],["usize",0]],["result",4,[["assignedcell",3],["error",4]]]]],"p":[[8,"FixedPoints"],[8,"EccInstructions"],[3,"NonIdentityPoint"],[3,"Point"],[3,"ScalarVar"],[3,"ScalarFixed"],[3,"ScalarFixedShort"],[3,"X"],[3,"FixedPoint"],[3,"FixedPointBaseField"],[3,"FixedPointShort"],[8,"ScalarKind"],[8,"FixedPoint"],[3,"EccChip"],[3,"EccConfig"],[3,"EccPoint"],[3,"NonIdentityEccPoint"],[4,"FullScalar"],[4,"ShortScalar"],[4,"BaseFieldElem"],[3,"EccScalarFixed"],[3,"EccScalarFixedShort"],[4,"PaddedWord"],[8,"PoseidonInstructions"],[3,"Sponge"],[8,"PoseidonSpongeInstructions"],[3,"Pow5Chip"],[3,"Pow5Config"],[3,"StateWord"],[3,"Word"],[3,"Hash"],[13,"Message"],[13,"Padding"],[8,"Domain"],[3,"Hash"],[3,"P128Pow5T3"],[3,"Absorbing"],[3,"Squeezing"],[3,"ConstantLength"],[8,"Spec"],[3,"HashDomain"],[3,"CommitDomain"],[3,"BlockWord"],[8,"Sha256Instructions"],[3,"Table16Config"],[3,"Table16Chip"],[3,"Sha256Digest"],[3,"Sha256"],[8,"SinsemillaInstructions"],[8,"HashDomains"],[3,"Message"],[3,"MessagePiece"],[3,"HashDomain"],[3,"CommitDomain"],[8,"CommitDomains"],[3,"SinsemillaConfig"],[3,"SinsemillaChip"],[3,"MerklePath"],[8,"MerkleInstructions"],[3,"MerkleConfig"],[3,"MerkleChip"],[8,"UtilitiesInstructions"],[3,"RangeConstrained"],[8,"Var"],[8,"FieldValue"],[3,"CondSwapChip"],[3,"CondSwapConfig"],[8,"CondSwapInstructions"],[3,"RunningSum"],[3,"RunningSumConfig"],[3,"RunningSum"],[3,"LookupRangeCheckConfig"]]},\ +"halo2_gadgets":{"doc":"halo2_gadgets","t":[0,0,0,0,0,0,16,8,8,3,3,3,8,16,16,3,16,3,16,3,16,3,16,3,16,16,3,16,10,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,10,10,10,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,10,10,4,13,3,3,3,3,3,8,8,16,4,13,18,3,4,4,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,12,17,17,17,17,5,5,5,5,3,13,4,13,8,8,3,3,3,3,3,16,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,0,0,3,3,8,3,3,16,8,8,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,10,11,10,11,10,11,11,10,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,17,3,3,17,17,11,11,17,11,17,17,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,17,3,16,3,3,8,16,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,16,3,8,16,16,3,8,16,3,16,3,16,16,10,16,8,16,11,11,11,11,11,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,10,10,11,11,11,11,11,11,11,11,11,11,0,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,17,8,3,11,11,11,0,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,8,3,8,8,16,11,5,5,11,11,10,11,11,0,0,5,11,11,11,11,11,5,11,11,11,5,11,0,11,5,5,11,11,11,11,11,10,10,11,11,11,3,3,8,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11],"n":["ecc","poseidon","primitives","sha256","sinsemilla","utilities","Base","BaseFitsInScalarInstructions","EccInstructions","FixedPoint","FixedPointBaseField","FixedPointShort","FixedPoints","FixedPoints","FullScalar","NonIdentityPoint","NonIdentityPoint","Point","Point","ScalarFixed","ScalarFixed","ScalarFixedShort","ScalarFixedShort","ScalarVar","ScalarVar","ShortScalar","X","X","add","add","add","add_incomplete","add_incomplete","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","chip","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","constrain_equal","constrain_equal","constrain_equal","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","drop","drop","drop","drop","drop","extract_p","extract_p","extract_p","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from_base","from_inner","from_inner","from_inner","from_inner","from_inner","from_inner","init","init","init","init","init","init","init","init","init","inner","inner","inner","into","into","into","into","into","into","into","into","into","mul","mul","mul","mul","mul","mul_fixed","mul_fixed_base_field_elem","mul_fixed_short","new","new","new","scalar_var_from_base","to_owned","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","witness_point","witness_point_non_id","witness_scalar_var","BaseFieldElem","BaseFieldElem","EccChip","EccConfig","EccPoint","EccScalarFixed","EccScalarFixedShort","FixedPoint","FixedScalarKind","FixedScalarKind","FullScalar","FullWidth","NUM_WINDOWS","NonIdentityEccPoint","ScalarVar","ShortScalar","add","add_incomplete","advices","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","config","configure","constants","constrain_equal","construct","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","eq","eq","extract_p","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","generator","init","init","init","init","init","init","init","init","init","init","into","into","into","into","into","into","into","into","into","into","lagrange_coeffs","loaded","lookup_config","mul","mul_fixed","mul_fixed_base_field_elem","mul_fixed_short","ne","ne","point","point","scalar_var_from_base","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","u","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","witness_point","witness_point_non_id","witness_scalar_var","x","x","y","y","z","0","FIXED_BASE_WINDOW_SIZE","H","NUM_WINDOWS","NUM_WINDOWS_SHORT","compute_lagrange_coeffs","find_zs_and_us","test_lagrange_coeffs","test_zs_and_us","Hash","Message","PaddedWord","Padding","PoseidonInstructions","PoseidonSpongeInstructions","Pow5Chip","Pow5Config","Sponge","StateWord","Word","Word","absorb","add_input","add_input","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","cell","clone","clone","clone","clone_into","clone_into","clone_into","config","configure","construct","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","drop","drop","drop","finish_absorbing","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from_inner","get_output","get_output","hash","init","init","init","init","init","init","init","init","initial_state","initial_state","inner","into","into","into","into","into","into","into","loaded","new","permute","permute","squeeze","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","value","vzip","vzip","vzip","vzip","vzip","vzip","vzip","0","0","poseidon","sinsemilla","Absorbing","ConstantLength","Domain","Hash","P128Pow5T3","Padding","Spec","SpongeMode","Squeezing","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","constants","constants","constants","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","drop","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","full_rounds","full_rounds","full_rounds","hash","init","init","init","init","init","init","initial_capacity_element","initial_capacity_element","into","into","into","into","into","name","name","padding","padding","partial_rounds","partial_rounds","partial_rounds","sbox","sbox","sbox","secure_mds","secure_mds","secure_mds","to_owned","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","C","CommitDomain","HashDomain","INV_TWO_POW_K","K","Q","Q","Q_PERSONALIZATION","R","SINSEMILLA_S","S_PERSONALIZATION","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","commit","deref","deref","deref_mut","deref_mut","drop","drop","fmt","fmt","from","from","hash","hash_to_point","init","init","into","into","new","new","short_commit","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","0","BLOCK_SIZE","BlockWord","BlockWord","Sha256","Sha256Digest","Sha256Instructions","State","Table16Chip","Table16Config","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","compress","compress","config","configure","construct","default","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","digest","digest","digest","drop","drop","drop","drop","drop","finalize","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","init","init","init","init","init","initialization","initialization","initialization_vector","initialization_vector","into","into","into","into","into","load","loaded","new","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","update","vzip","vzip","vzip","vzip","vzip","CellValue","CommitDomain","CommitDomains","CommitDomains","FixedPoints","HashDomain","HashDomains","HashDomains","Message","Message","MessagePiece","MessagePiece","NonIdentityPoint","Q","RunningSum","SinsemillaInstructions","X","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","chip","clone","clone","clone_into","clone_into","commit","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","extract","fmt","fmt","fmt","fmt","from","from","from","from","from_field_elem","from_pieces","from_subpieces","hash","hash_domain","hash_to_point","hash_to_point","init","init","init","init","inner","into","into","into","into","merkle","new","new","r","short_commit","to_owned","to_owned","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","witness_message_piece","SinsemillaChip","SinsemillaConfig","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","config","configure","construct","deref","deref","deref_mut","deref_mut","drop","drop","eq","eq","extract","fmt","fmt","from","from","hash_to_point","init","init","into","into","load","loaded","lookup_config","ne","ne","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","witness_message_piece","MERKLE_CRH_PERSONALIZATION","MerkleInstructions","MerklePath","borrow","borrow_mut","calculate_root","chip","clone","clone_into","construct","deref","deref_mut","drop","fmt","from","hash_layer","init","into","to_owned","try_from","try_into","type_id","vzip","MerkleChip","MerkleConfig","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","config","configure","construct","deref","deref","deref_mut","deref_mut","drop","drop","extract","fmt","fmt","from","from","hash_layer","hash_to_point","init","init","into","into","loaded","swap","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","witness_message_piece","FieldValue","RangeConstrained","UtilitiesInstructions","Var","Var","bitrange_of","bitrange_subset","bool_check","borrow","borrow_mut","cell","clone","clone_into","cond_swap","decompose_running_sum","decompose_word","deref","deref_mut","drop","fmt","from","i2lebsp","init","inner","into","lebs2ip","load_private","lookup_range_check","num_bits","range_check","ternary","to_owned","try_from","try_into","type_id","unsound_unchecked","value","value","value","vzip","witness_short","CondSwapChip","CondSwapConfig","CondSwapInstructions","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","config","configure","construct","deref","deref","deref_mut","deref_mut","drop","drop","fmt","fmt","from","from","init","init","into","into","loaded","swap","swap","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","RunningSum","RunningSumConfig","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","configure","copy_decompose","deref","deref","deref","deref_mut","deref_mut","drop","drop","eq","fmt","fmt","from","from","init","init","into","into","ne","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","witness_decompose","LookupRangeCheckConfig","RunningSum","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","configure","copy_check","copy_short_check","deref","deref","deref","deref_mut","deref_mut","drop","drop","eq","fmt","fmt","from","from","init","init","into","into","ne","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","witness_check","witness_short_check"],"q":["halo2_gadgets","","","","","","halo2_gadgets::ecc","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","halo2_gadgets::ecc::chip","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","halo2_gadgets::ecc::chip::ScalarVar","halo2_gadgets::ecc::chip::constants","","","","","","","","halo2_gadgets::poseidon","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","halo2_gadgets::poseidon::PaddedWord","","halo2_gadgets::primitives","","halo2_gadgets::primitives::poseidon","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","halo2_gadgets::primitives::sinsemilla","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","halo2_gadgets::sha256","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","halo2_gadgets::sinsemilla","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","halo2_gadgets::sinsemilla::chip","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","halo2_gadgets::sinsemilla::merkle","","","","","","","","","","","","","","","","","","","","","","","halo2_gadgets::sinsemilla::merkle::chip","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","halo2_gadgets::utilities","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","halo2_gadgets::utilities::cond_swap","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","halo2_gadgets::utilities::decompose_running_sum","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","halo2_gadgets::utilities::lookup_range_check","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"d":["Gadgets for elliptic curve operations.","Gadget and chips for the Poseidon algebraic hash function.","Primitives used in the Orchard protocol.","Gadget and chips for the SHA-256 hash function.","Gadgets for the Sinsemilla hash function.","Utility gadgets.","Fixed points that can be multiplied by base field elements.","Instructions that can be implemented for a curve whose …","The set of circuit instructions required to use the ECC …","A constant elliptic curve point over the given curve, for …","A constant elliptic curve point over the given curve, used …","A constant elliptic curve point over the given curve, used …","Defines the fixed points for a given instantiation of the …","Enumeration of the set of fixed bases to be used in scalar …","Fixed points that can be used with full-width scalar …","A non-identity elliptic curve point over the given curve.","Variable representing a non-identity elliptic curve point.","An elliptic curve point over the given curve.","Variable representing an elliptic curve point.","A full-width element of the given elliptic curve’s …","Variable representing a full-width element of the elliptic …","A signed short element of the given elliptic curve’s …","Variable representing a signed short element of the …","An element of the given elliptic curve’s base field, …","Variable representing a scalar used in variable-base …","Fixed points that can be used with short scalar …","The affine short Weierstrass x-coordinate of an elliptic …","Variable representing the affine short Weierstrass …","Performs complete point addition, returning a + b.","Returns self + other using complete addition.","Returns self + other using complete addition.","Performs incomplete point addition, returning a + b.","Returns self + other using incomplete addition. The …","","","","","","","","","","","","","","","","","","","Chip implementations for the ECC gadgets.","","","","","","","","","","","Constrains point a to be equal in value to point b.","Constrains this point to be equal in value to another …","Constrains this point to be equal in value to another …","","","","","","","","","","","","","","","","","","","","","","","","","","","","Extracts the x-coordinate of a point.","Extracts the x-coordinate of a point.","Extracts the x-coordinate of a point.","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Constructs a scalar from an existing base-field element.","Wraps the given point (obtained directly from an …","Wraps the given point (obtained directly from an …","Wraps the given x-coordinate (obtained directly from an …","Wraps the given fixed base (obtained directly from an …","Wraps the given fixed base (obtained directly from an …","Wraps the given fixed base (obtained directly from an …","","","","","","","","","","Returns the inner point.","Returns the inner point.","Returns the inner x-coordinate.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Performs variable-base scalar multiplication, returning …","Returns [by] self.","Returns [by] self.","Returns [by] self.","Returns [by] self.","Performs fixed-base scalar multiplication using a …","Performs fixed-base scalar multiplication using a base …","Performs fixed-base scalar multiplication using a short …","Witnesses the given full-width scalar.","Constructs a new point with the given value.","Constructs a new point with the given value.","Converts a base field element that exists as a variable in …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Witnesses the given point as a private input to the …","Witnesses the given point as a private input to the …","Witnesses a full-width scalar to be used in variable-base …","Type marker representing a base field element being used …","An element of the elliptic curve’s base field, that is …","A chip implementing EccInstructions","Configuration for the ECC chip","A curve point represented in affine (x, y) coordinates, or …","A full-width scalar used for fixed-base scalar …","A signed short scalar used for fixed-base scalar …","Returns information about a fixed point that is required …","A trait representing the kind of scalar used with a …","The kind of scalar that this fixed point can be multiplied …","Type marker representing a full-width scalar for use in …","A full-width scalar. This is unimplemented for …","The number of windows that this scalar kind requires.","A non-identity point represented in affine (x, y) …","An enumeration of the possible types of scalars used in …","Type marker representing a signed 64-bit scalar for use in …","","","Advice columns needed by instructions in the ECC chip.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Side effects","Constants required for the ECC chip.","","Reconstructs this chip from the given config.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the generator for this fixed point.","","","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Returns the Lagrange coefficients for this fixed point.","","Lookup range check using 10-bit lookup table","","","","","","","Returns the value of this curve point, if known.","Returns the value of this curve point, if known.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the $u$ values for this fixed point.","","","","","","","","","","","","","","The cell containing the affine short-Weierstrass …","The cell containing the affine short-Weierstrass …","The cell containing the affine short-Weierstrass …","The cell containing the affine short-Weierstrass …","Returns the $z$ value for this fixed point.","","Window size for fixed-base scalar multiplication","$2^{FIXED_BASE_WINDOW_SIZE}$","Number of windows for a full-width scalar","Number of windows for a short signed scalar","For each window, we interpolate the $x$-coordinate. Here, …","For each window, $z$ is a field element such that for each …","Test that Lagrange interpolation coefficients reproduce …","Test that the z-values and u-values satisfy the conditions:","A Poseidon hash function, built around a sponge.","A message word provided by the prover.","A word from the padded input to a Poseidon sponge.","A padding word, that will be fixed in the circuit …","The set of circuit instructions required to use the …","The set of circuit instructions required to use the Sponge …","A Poseidon chip using an $x^5$ S-Box.","Configuration for a Pow5Chip.","A Poseidon sponge.","A word in the Poseidon state.","A word over which the Poseidon permutation operates.","Variable representing the word over which the Poseidon …","Absorbs an element into the sponge.","Adds the given input to the state.","","","","","","","","","","","","","","","","","","","","","","","","Configures this chip for use in a circuit.","Construct a Pow5Chip.","","","","","","","","","","","","","","","","","","","","","","Transitions the sponge into its squeezing state.","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Construct a Word gadget from the inner word.","Extracts sponge output from the given state.","","Hashes the given input.","","","","","","","","Initializes a new hasher.","Returns the initial empty state for the given domain.","","The word contained in this gadget.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","Constructs a new duplex sponge for the given Poseidon …","Applies the Poseidon permutation to the given state.","","Squeezes an element from the sponge.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","The Poseidon algebraic hash function.","The Sinsemilla hash function and commitment scheme.","The absorbing state of the Sponge.","A Poseidon hash function used with constant input length.","A domain in which a Poseidon hash function is being used.","A Poseidon hash function, built around a sponge.","Poseidon-128 using the $x^5$ S-box, with a width of 3 …","Iterator that outputs padding field elements.","A specification for a Poseidon permutation.","The state of the Sponge.","The squeezing state of the Sponge.","","","","","","","","","","","","","Generates (round_constants, mds, mds^-1) corresponding to …","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","The number of full rounds for this specification.","","","Hashes the given input.","","Initializes a new hasher.","","","","","The initial capacity element, encoding this domain.","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","The name of this domain, for debug formatting purposes.","","Returns the padding to be appended to the input.","","The number of partial rounds for this specification.","","","The S-box for this specification.","","","Side-loaded index of the first correct and secure MDS that …","","","","","","","","","","","","","","","","","","","","","","","","The largest integer such that $2^c \\\\leq (r_P - 1) / 2$, …","A domain in which $\\\\mathsf{SinsemillaCommit}$ and …","A domain in which $\\\\mathsf{SinsemillaHashToPoint}$ and …","$\\\\frac{1}{2^K}$","Number of bits of each message piece in …","Returns the Sinsemilla $Q$ constant for this domain.","Returns the Sinsemilla $Q$ constant for this domain.","SWU hash-to-curve personalization for Sinsemilla $Q$ …","Returns the Sinsemilla $R$ constant for this domain.","The precomputed bases for the Sinsemilla hash function.","SWU hash-to-curve personalization for Sinsemilla $S$ …","","","","","","","$\\\\mathsf{SinsemillaCommit}$ from § 5.4.8.4.","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","$\\\\mathsf{SinsemillaHash}$ from § 5.4.1.9.","$\\\\mathsf{SinsemillaHashToPoint}$ from § 5.4.1.9.","","","Calls U::from(self).","Calls U::from(self).","Constructs a new HashDomain with a specific prefix string.","Constructs a new CommitDomain with a specific prefix …","$\\\\mathsf{SinsemillaShortCommit}$ from § 5.4.8.4.","","","","","","","","","","","The size of a SHA-256 block, in 32-bit words.","A word in a Table16 message block.","Variable representing a 32-bit word of the input block to …","A gadget that constrains a SHA-256 invocation. It supports …","The output of a SHA-256 circuit invocation.","The set of circuit instructions required to use the Sha256 …","Variable representing the SHA-256 internal state.","A chip that implements SHA-256 with a maximum lookup table …","Configuration for a Table16Chip.","","","","","","","","","","","","","","","","","Starting from the given initialized state, processes a …","","","Configures a circuit to include this chip.","Reconstructs this chip from the given config.","","","","","","","","","","","","Converts the given state into a message digest.","","Convenience function to compute hash of the data. It will …","","","","","","Retrieve result and consume hasher instance.","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","Creates an initial state from the output state of a …","","Places the SHA-256 IV in the circuit, returning the …","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Loads the lookup table required by this chip into the …","","Create a new hasher instance.","","","","","","","","","","","","","","","","","","","Digest data, updating the internal state.","","","","","","A variable in the circuit.","Gadget representing a domain in which …","Trait allowing circuit’s Sinsemilla CommitDomains to be …","CommitDomains used in this instruction.","A type enumerating the fixed points used in CommitDomains.","A domain in which $\\\\mathsf{SinsemillaHashToPoint}$ and …","Trait allowing circuit’s Sinsemilla HashDomains to be …","HashDomains used in this instruction.","A message to be hashed.","A message composed of Self::MessagePieces.","A message piece with a bitlength of some multiple of K.","A piece in a message containing a number of K-bit words. A …","A point output of Self::hash_to_point.","Returns the Q constant for this domain.","A cumulative sum z is used to decompose a Sinsemilla …","The set of circuit instructions required to use the …","The x-coordinate of a point output of Self::hash_to_point.","","","","","","","","","Chip implementations for the Sinsemilla gadgets.","","","","","$\\\\mathsf{SinsemillaCommit}$ from § 5.4.8.4.","","","","","","","","","","","","","Extracts the x-coordinate of the output of a Sinsemilla …","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Constructs a MessagePiece from a field element.","Constructs a message from a vector of MessagePieces.","Constructs a MessagePiece by concatenating a sequence of …","$\\\\mathsf{SinsemillaHash}$ from § 5.4.1.9.","Returns the HashDomain contained in this CommitDomain","Hashes a message to an ECC curve point. This returns both …","$\\\\mathsf{SinsemillaHashToPoint}$ from § 5.4.1.9.","","","","","Returns the inner MessagePiece contained in this gadget.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Gadgets for implementing a Merkle tree with Sinsemilla.","Constructs a new HashDomain for the given domain.","Constructs a new CommitDomain for the given domain.","Returns the fixed point corresponding to the R constant …","$\\\\mathsf{SinsemillaShortCommit}$ from § 5.4.8.4.","","","","","","","","","","","","","","","","","","","Witness a message piece given a field element. Returns a …","A chip that implements 10-bit Sinsemilla using a lookup …","Configuration for the Sinsemilla hash chip","","","","","","","","","","Side-effects","Reconstructs this chip from the given config.","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","Calls U::from(self).","Calls U::from(self).","Loads the lookup table required by this chip into the …","","Returns the lookup range check config used in this config.","","","","","","","","","","","","","","SWU hash-to-curve personalization for the Merkle CRH …","Instructions to check the validity of a Merkle path of a …","Gadget representing a Merkle path that proves a leaf …","","","Calculates the root of the tree containing the given leaf …","Chip implementing a Merkle hash using Sinsemilla as the …","","","Constructs a MerklePath.","","","","","Returns the argument unchanged.","Compute MerkleCRH for a given layer. The hash that …","","Calls U::from(self).","","","","","","Chip implementing MerkleInstructions.","Configuration for the MerkleChip implementation.","","","","","","","","","","Configures the MerkleChip.","Constructs a MerkleChip given a MerkleConfig.","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","A type that has a value at either keygen or proving time.","A type representing a range-constrained field element.","Trait for utilities used across circuits.","Trait for a variable in the circuit.","Variable in the circuit.","Constructs a RangeConstrained<Option<F>> as a bitrange of …","Takes a specified subsequence of the little-endian bit …","Checks that an expression is either 1 or 0.","","","The cell at which this variable was allocated.","","","Gadget and chip for a conditional swap utility.","Decomposes an $n$-bit field element $\\\\alpha$ into $W$ …","Decompose a word alpha into window_num_bits bits …","","","","","Returns the argument unchanged.","The sequence of bits representing a u64 in little-endian …","","Returns the range-constrained inner type.","Calls U::from(self).","The u64 integer represented by an L-bit little-endian …","Load a variable.","Make use of a K-bit lookup table to decompose a field …","Returns the number of bits to which this cell is …","Check that an expression is in the small range [0..range), …","If a then b, else c. Returns (a * b) + (1 - a) * c.","","","","","Constructs a RangeConstrained<AssignedCell<F, F>> without …","Returns the value of this type.","The value allocated to this variable.","Extracts the range-constrained value from this …","","Witnesses a subset of the bits in value and constrains …","A chip implementing a conditional swap.","Configuration for the CondSwapChip.","Instructions for a conditional swap gadget.","","","","","","","","","","Configures this chip for use in a circuit.","Constructs a CondSwapChip given a CondSwapConfig.","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","","Given an input pair (a,b) and a swap boolean flag, returns …","","","","","","","","","","","","The running sum $[z_0, …, z_W]$. If created in strict …","Configuration that provides methods for running sum …","","","","","","","perm MUST include the advice column z.","Decompose an existing variable alpha that is copied into …","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","Decompose a field element alpha that is witnessed in this …","Configuration that provides methods for a lookup range …","The running sum $[z_0, …, z_W]$. If created in strict …","","","","","","","The running_sum advice column breaks the field element …","Range check on an existing cell that is copied into this …","Short range check on an existing cell that is copied into …","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","Range check on a value that is witnessed in this helper.","Short range check on value that is witnessed in this …"],"i":[0,0,0,0,0,0,1,0,0,0,0,0,0,2,1,0,2,0,2,0,2,0,2,0,2,1,0,2,2,3,4,2,3,5,6,7,3,4,8,9,10,11,5,6,7,3,4,8,9,10,11,0,3,4,9,10,11,3,4,9,10,11,2,3,4,5,6,7,3,4,8,9,10,11,5,6,7,3,4,8,9,10,11,5,6,7,3,4,8,9,10,11,2,3,4,5,6,7,3,4,8,9,10,11,5,6,7,3,4,4,8,9,10,11,5,3,4,8,9,10,11,5,6,7,3,4,8,9,10,11,3,4,8,5,6,7,3,4,8,9,10,11,2,3,9,10,11,2,2,2,5,3,4,12,3,4,9,10,11,5,6,7,3,4,8,9,10,11,5,6,7,3,4,8,9,10,11,5,6,7,3,4,8,9,10,11,5,6,7,3,4,8,9,10,11,2,2,2,0,13,0,0,0,0,0,0,0,14,0,13,15,0,0,0,16,16,17,18,19,17,20,21,22,16,23,24,13,18,19,17,20,21,22,16,23,24,13,18,19,17,16,23,24,13,18,19,17,16,23,24,13,16,16,0,16,16,18,19,17,20,21,22,16,23,24,13,18,19,17,20,21,22,16,23,24,13,18,19,17,20,21,22,16,23,24,13,17,16,16,18,19,17,20,21,22,16,23,24,13,18,18,19,17,20,21,22,16,23,24,13,14,18,19,17,20,21,22,16,23,24,13,18,19,17,20,21,22,16,23,24,13,14,16,17,16,16,16,16,17,16,18,19,16,18,19,17,16,23,24,13,18,19,17,20,21,22,16,23,24,13,18,19,17,20,21,22,16,23,24,13,18,19,17,20,21,22,16,23,24,13,14,18,19,17,20,21,22,16,23,24,13,16,16,16,18,19,18,19,14,25,0,0,0,0,0,0,0,0,0,26,0,26,0,0,0,0,0,0,0,27,28,29,30,31,30,32,26,33,28,34,31,30,32,26,33,28,34,32,31,32,26,31,32,26,30,30,30,31,30,32,26,33,28,34,31,30,32,26,33,28,34,31,30,32,26,33,28,34,28,31,30,32,26,33,28,34,31,30,32,32,26,33,28,34,33,29,30,34,31,30,32,26,33,28,34,34,29,30,33,31,30,32,26,33,28,34,30,28,27,30,28,31,32,26,31,30,32,26,33,28,34,31,30,32,26,33,28,34,31,30,32,26,33,28,34,32,31,30,32,26,33,28,34,35,36,0,0,0,0,0,0,0,37,0,0,0,38,39,40,41,42,38,39,40,41,42,42,42,43,39,39,38,39,40,41,42,38,39,40,41,42,38,39,40,41,42,38,39,40,41,42,38,39,40,41,42,43,39,39,38,38,38,39,40,41,42,37,42,38,39,40,41,42,37,42,37,42,43,39,39,43,39,39,43,39,39,42,38,39,40,41,42,38,39,40,41,42,38,39,40,41,42,38,39,40,41,42,0,0,0,0,0,44,45,0,45,0,0,44,45,44,45,44,44,45,44,45,44,45,44,45,44,45,44,45,44,44,44,45,44,45,44,45,45,44,44,45,44,45,44,45,44,45,46,0,0,47,0,0,0,47,0,0,46,48,49,50,51,46,48,49,50,51,46,48,49,46,48,49,47,49,49,49,49,46,46,48,49,50,51,46,48,49,50,51,47,49,51,46,48,49,50,51,51,46,48,49,50,51,46,48,49,50,51,46,48,49,50,51,47,49,47,49,46,48,49,50,51,49,49,51,46,48,49,46,48,49,50,51,46,48,49,50,51,46,48,49,50,51,51,46,48,49,50,51,52,0,0,52,52,0,0,52,0,52,0,52,52,53,52,0,52,54,55,56,57,54,55,56,57,0,54,55,54,55,57,54,55,56,57,54,55,56,57,54,55,56,57,52,54,55,56,57,54,55,56,57,55,54,55,56,58,52,56,54,55,56,57,55,54,55,56,57,0,56,57,58,57,54,55,54,55,56,57,54,55,56,57,54,55,56,57,54,55,56,57,52,0,0,59,60,59,60,59,60,59,60,60,60,60,59,60,59,60,59,60,59,60,60,59,60,59,60,60,59,60,59,60,60,60,59,59,60,59,60,59,60,59,60,59,60,59,60,60,0,0,0,61,61,61,0,61,61,61,61,61,61,61,61,62,61,61,61,61,61,61,61,0,0,63,64,63,64,63,64,63,64,64,64,64,63,64,63,64,63,64,64,63,64,63,64,64,64,63,64,63,64,64,64,63,64,63,64,63,64,63,64,63,64,64,0,0,0,0,65,66,0,0,66,66,67,66,66,0,0,0,66,66,66,66,66,0,66,66,66,0,65,0,66,0,0,66,66,66,66,66,68,67,66,66,66,0,0,0,69,70,69,70,69,70,69,70,69,69,69,69,70,69,70,69,70,69,70,69,70,69,70,69,70,69,71,69,69,70,69,70,69,70,69,70,69,70,0,0,72,73,72,73,73,73,73,73,72,72,73,72,73,72,73,73,72,73,72,73,72,73,72,73,73,73,72,73,72,73,72,73,72,73,73,0,0,74,75,74,75,75,75,75,75,75,74,74,75,74,75,74,75,75,74,75,74,75,74,75,74,75,75,75,74,75,74,75,74,75,74,75,75,75],"f":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[["",0],["",0],["",0]],["result",4,[["error",4]]]],[[["",0],["",0]],["result",4,[["point",3],["error",4]]]],[[["",0],["",0]],["result",4,[["point",3],["error",4]]]],[[["",0]],["result",4,[["error",4]]]],[[["",0],["",0]],["result",4,[["error",4]]]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],null,[[["",0]],["nonidentitypoint",3]],[[["",0]],["point",3]],[[["",0]],["fixedpoint",3]],[[["",0]],["fixedpointbasefield",3]],[[["",0]],["fixedpointshort",3]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0]],["result",4,[["error",4]]]],[[["",0],["",0]],["result",4,[["error",4]]]],[[["",0],["",0]],["result",4,[["error",4]]]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["",0]]],[[["",0]],["x",3]],[[["",0]],["x",3]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[]],[[["nonidentitypoint",3]]],[[]],[[]],[[]],[[]],[[],["result",4,[["error",4]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[["",0]]],[[["",0]]],[[["",0]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["",0]],["result",4,[["error",4]]]],[[["",0],["scalarvar",3]],["result",4,[["error",4]]]],[[["",0],["option",4]],["result",4,[["error",4]]]],[[["",0]],["result",4,[["point",3],["error",4]]]],[[["",0]],["result",4,[["error",4]]]],[[["",0],["option",4]],["result",4,[["error",4]]]],[[["",0]],["result",4,[["error",4]]]],[[["",0]],["result",4,[["error",4]]]],[[["option",4]],["result",4,[["error",4]]]],[[["option",4]],["result",4,[["error",4]]]],[[["option",4]],["result",4,[["error",4]]]],[[["",0]],["result",4,[["error",4]]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["",0],["option",4]],["result",4,[["error",4]]]],[[["",0],["option",4]],["result",4,[["error",4]]]],[[["",0],["option",4]],["result",4,[["error",4]]]],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[["",0],["",0],["",0]],["result",4,[["error",4]]]],[[["",0]],["result",4,[["error",4]]]],null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["eccpoint",3]],[[["",0]],["nonidentityeccpoint",3]],[[["",0]],["eccconfig",3]],[[["",0]],["eccchip",3]],[[["",0]],["eccscalarfixed",3]],[[["",0]],["eccscalarfixedshort",3]],[[["",0]],["scalarvar",4]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0]]],[[["constraintsystem",3],["lookuprangecheckconfig",3,[["base",6]]]]],null,[[["",0]],["result",4,[["error",4]]]],[[]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["",0],["eccconfig",3]],["bool",0]],[[["",0],["eccchip",3]],["bool",0]],[[["",0]]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["nonidentityeccpoint",3]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["",0]]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["",0]],["vec",3]],[[["",0]]],null,[[["",0]],["result",4,[["error",4]]]],[[["",0],["option",4,[["scalar",6]]]],["result",4,[["error",4]]]],[[["",0],["assignedcell",3,[["base",6],["base",6]]]],["result",4,[["error",4]]]],[[["",0]],["result",4,[["error",4]]]],[[["",0],["eccconfig",3]],["bool",0]],[[["",0],["eccchip",3]],["bool",0]],[[["",0]],["option",4,[["affine",6]]]],[[["",0]],["option",4,[["affine",6]]]],[[["",0]],["result",4,[["error",4]]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["vec",3]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["",0],["option",4,[["affine",6]]]],["result",4,[["error",4]]]],[[["",0],["option",4,[["affine",6]]]],["result",4,[["error",4]]]],[[["",0],["option",4,[["scalar",6]]]],["result",4,[["error",4]]]],[[["",0]],["assignedcell",3,[["base",6],["base",6]]]],[[["",0]],["assignedcell",3,[["base",6],["base",6]]]],[[["",0]],["assignedcell",3,[["base",6],["base",6]]]],[[["",0]],["assignedcell",3,[["base",6],["base",6]]]],[[["",0]],["vec",3,[["u64",0]]]],null,null,null,null,null,[[["curveaffine",8],["usize",0]],["vec",3]],[[["curveaffine",8],["usize",0]],["option",4,[["vec",3]]]],[[["curveaffine",8],["usize",0]]],[[["curveaffine",8],["usize",0]]],null,null,null,null,null,null,null,null,null,null,null,null,[[["",0],["paddedword",4]],["result",4,[["error",4]]]],[[["",0],["absorbing",3]],["result",4,[["error",4]]]],[[["",0],["absorbing",3]],["result",4,[["error",4]]]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["cell",3]],[[["",0]],["pow5config",3]],[[["",0]],["stateword",3]],[[["",0]],["paddedword",4]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0]]],[[["constraintsystem",3],["column",3,[["advice",3]]]],["pow5config",3]],[[["pow5config",3]]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[],["result",4,[["sponge",3,[["squeezing",3]]],["error",4]]]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[["assignedcell",3]],["stateword",3]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["squeezing",3]],[[],["squeezing",3]],[[],["result",4,[["assignedcell",3],["error",4]]]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[],["result",4,[["error",4]]]],[[["",0]],["result",4,[["error",4]]]],[[["",0]],["result",4,[["error",4]]]],[[["",0]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["",0]]],[[],["result",4,[["error",4]]]],[[["",0]],["result",4,[["error",4]]]],[[["",0]],["result",4,[["error",4]]]],[[["",0]],["result",4,[["assignedcell",3],["error",4]]]],[[["",0]]],[[["",0]]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["option",4]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,null,null,null,null,null,null,null,null,null,null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["constantlength",3]],[[["",0],["",0]]],[[]],[[]],[[]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[]],[[],["usize",0]],[[]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["string",3]],[[],["string",3]],[[["usize",0]]],[[["usize",0]]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[]],[[["fq",6]],["fq",6]],[[["fp",6]],["fp",6]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[]],[[]],[[]],null,null,null,null,null,[[["",0]],["point",6]],[[["",0]],["point",6]],null,[[["",0]],["point",6]],null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["hashdomain",3]],[[["",0],["",0]]],[[["",0],["scalar",6]],["ctoption",3,[["point",6]]]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]]],[[["usize",0]]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[["",0]],["ctoption",3,[["base",6]]]],[[["",0]],["ctoption",3,[["point",6]]]],[[],["usize",0]],[[],["usize",0]],[[]],[[]],[[["str",0]]],[[["str",0]]],[[["",0],["scalar",6]],["ctoption",3,[["base",6]]]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],null,null,null,null,null,null,null,null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["blockword",3]],[[["",0]],["table16config",3]],[[["",0]],["table16chip",3]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0]],["result",4,[["error",4]]]],[[["",0]],["result",4,[["error",4]]]],[[["",0]]],[[["constraintsystem",3]]],[[]],[[],["blockword",3]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["",0]],["result",4,[["error",4]]]],[[["",0]],["result",4,[["error",4]]]],[[],["result",4,[["sha256digest",3],["error",4]]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[],["result",4,[["sha256digest",3],["error",4]]]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[["",0]],["result",4,[["error",4]]]],[[["",0]],["result",4,[["error",4]]]],[[["",0]],["result",4,[["error",4]]]],[[["",0]],["result",4,[["state",3],["error",4]]]],[[]],[[]],[[]],[[]],[[]],[[["table16config",3]],["result",4,[["error",4]]]],[[["",0]]],[[],["result",4,[["error",4]]]],[[["",0]]],[[["",0]]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["result",4,[["error",4]]]],[[]],[[]],[[]],[[]],[[]],null,null,null,null,null,null,null,null,null,null,null,null,null,[[["",0]]],null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],null,[[["",0]],["message",3]],[[["",0]],["messagepiece",3]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["message",3],["option",4]],["result",4,[["error",4]]]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[["option",4],["usize",0]],["result",4,[["error",4]]]],[[["vec",3,[["messagepiece",3]]]]],[[],["result",4,[["error",4]]]],[[["",0],["message",3]],["result",4,[["error",4]]]],[[["",0]]],[[["",0]],["result",4,[["error",4]]]],[[["",0],["message",3]],["result",4,[["error",4]]]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[["",0]]],[[]],[[]],[[]],[[]],null,[[]],[[]],[[["",0]]],[[["",0],["message",3],["option",4]],["result",4,[["error",4]]]],[[["",0]]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[]],[[]],[[["",0],["option",4],["usize",0]],["result",4,[["error",4]]]],null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["sinsemillaconfig",3]],[[["",0]],["sinsemillachip",3]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0]]],[[["constraintsystem",3],["column",3,[["advice",3]]],["column",3,[["fixed",3]]],["lookuprangecheckconfig",3,[["base",6]]]]],[[]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]]],[[["usize",0]]],[[["",0],["sinsemillaconfig",3]],["bool",0]],[[["",0],["sinsemillachip",3]],["bool",0]],[[]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[["",0],["affine",6]],["result",4,[["error",4]]]],[[],["usize",0]],[[],["usize",0]],[[]],[[]],[[["sinsemillaconfig",3]],["result",4,[["error",4]]]],[[["",0]]],[[["",0]],["lookuprangecheckconfig",3,[["base",6]]]],[[["",0],["sinsemillaconfig",3]],["bool",0]],[[["",0],["sinsemillachip",3]],["bool",0]],[[["",0]]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[["",0],["option",4,[["base",6]]],["usize",0]],["result",4,[["error",4]]]],null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["result",4,[["error",4]]]],null,[[["",0]],["merklepath",3]],[[["",0],["",0]]],[[["option",4,[["u32",0]]],["option",4]]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]]],[[["",0],["formatter",3]],["result",6]],[[]],[[["",0],["usize",0]],["result",4,[["error",4]]]],[[],["usize",0]],[[]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[]],null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["merkleconfig",3]],[[["",0]],["merklechip",3]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0]]],[[["constraintsystem",3],["sinsemillaconfig",3]],["merkleconfig",3]],[[["merkleconfig",3]]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]]],[[["usize",0]]],[[]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[["",0],["affine",6],["usize",0]],["result",4,[["error",4]]]],[[["",0],["affine",6]],["result",4,[["error",4]]]],[[],["usize",0]],[[],["usize",0]],[[]],[[]],[[["",0]]],[[["",0],["option",4,[["bool",0]]]],["result",4,[["error",4]]]],[[["",0]]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[["",0],["option",4,[["base",6]]],["usize",0]],["result",4,[["error",4]]]],null,null,null,null,null,[[["option",4],["range",3,[["usize",0]]]]],[[["",0],["range",3,[["usize",0]]]],["primefieldbits",8]],[[["expression",4,[["fieldext",8]]]],["expression",4,[["fieldext",8]]]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["cell",3]],[[["",0]],["rangeconstrained",3]],[[["",0],["",0]]],null,null,[[["",0],["usize",0],["usize",0]],["vec",3,[["u8",0]]]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]]],[[["",0],["formatter",3]],["result",6]],[[]],[[["u64",0]]],[[],["usize",0]],[[["",0]],["",0]],[[]],[[],["u64",0]],[[["",0],["column",3,[["advice",3]]],["option",4]],["result",4,[["error",4]]]],null,[[["",0]],["usize",0]],[[["expression",4,[["fieldext",8]]],["usize",0]],["expression",4,[["fieldext",8]]]],[[["expression",4,[["fieldext",8]]],["expression",4,[["fieldext",8]]],["expression",4,[["fieldext",8]]]],["expression",4,[["fieldext",8]]]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["assignedcell",3],["usize",0]]],[[["",0]],["option",4]],[[["",0]],["option",4]],[[["",0]],["rangeconstrained",3,[["option",4]]]],[[]],[[["lookuprangecheckconfig",3],["option",4],["range",3,[["usize",0]]]],["result",4,[["error",4]]]],null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["condswapchip",3]],[[["",0]],["condswapconfig",3]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0]]],[[["constraintsystem",3]],["condswapconfig",3]],[[["condswapconfig",3]]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]]],[[["usize",0]]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[],["usize",0]],[[],["usize",0]],[[]],[[]],[[["",0]]],[[["",0],["option",4,[["bool",0]]]],["result",4,[["error",4]]]],[[["",0],["option",4,[["bool",0]]]],["result",4,[["error",4]]]],[[["",0]]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["runningsumconfig",3]],[[["",0],["",0]]],[[["constraintsystem",3],["selector",3],["column",3,[["advice",3]]]]],[[["",0],["region",3],["usize",0],["assignedcell",3],["bool",0],["usize",0],["usize",0]],["result",4,[["runningsum",3],["error",4]]]],[[["usize",0]],["",0]],[[["",0]],["vec",3]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]]],[[["usize",0]]],[[["",0],["runningsumconfig",3]],["bool",0]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[],["usize",0]],[[],["usize",0]],[[]],[[]],[[["",0],["runningsumconfig",3]],["bool",0]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[["",0],["region",3],["usize",0],["option",4],["bool",0],["usize",0],["usize",0]],["result",4,[["runningsum",3],["error",4]]]],null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["lookuprangecheckconfig",3]],[[["",0],["",0]]],[[["constraintsystem",3],["column",3,[["advice",3]]],["tablecolumn",3]]],[[["",0],["assignedcell",3],["usize",0],["bool",0]],["result",4,[["runningsum",3],["error",4]]]],[[["",0],["assignedcell",3],["usize",0]],["result",4,[["error",4]]]],[[["usize",0]],["",0]],[[["",0]],["vec",3]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]]],[[["usize",0]]],[[["",0],["lookuprangecheckconfig",3]],["bool",0]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[],["usize",0]],[[],["usize",0]],[[]],[[]],[[["",0],["lookuprangecheckconfig",3]],["bool",0]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[["",0],["option",4],["usize",0],["bool",0]],["result",4,[["runningsum",3],["error",4]]]],[[["",0],["option",4],["usize",0]],["result",4,[["assignedcell",3],["error",4]]]]],"p":[[8,"FixedPoints"],[8,"EccInstructions"],[3,"NonIdentityPoint"],[3,"Point"],[3,"ScalarVar"],[3,"ScalarFixed"],[3,"ScalarFixedShort"],[3,"X"],[3,"FixedPoint"],[3,"FixedPointBaseField"],[3,"FixedPointShort"],[8,"BaseFitsInScalarInstructions"],[4,"ScalarVar"],[8,"FixedPoint"],[8,"FixedScalarKind"],[3,"EccChip"],[3,"EccConfig"],[3,"EccPoint"],[3,"NonIdentityEccPoint"],[4,"FullScalar"],[4,"ShortScalar"],[4,"BaseFieldElem"],[3,"EccScalarFixed"],[3,"EccScalarFixedShort"],[13,"BaseFieldElem"],[4,"PaddedWord"],[8,"PoseidonInstructions"],[3,"Sponge"],[8,"PoseidonSpongeInstructions"],[3,"Pow5Chip"],[3,"Pow5Config"],[3,"StateWord"],[3,"Word"],[3,"Hash"],[13,"Message"],[13,"Padding"],[8,"Domain"],[3,"Hash"],[3,"P128Pow5T3"],[3,"Absorbing"],[3,"Squeezing"],[3,"ConstantLength"],[8,"Spec"],[3,"HashDomain"],[3,"CommitDomain"],[3,"BlockWord"],[8,"Sha256Instructions"],[3,"Table16Config"],[3,"Table16Chip"],[3,"Sha256Digest"],[3,"Sha256"],[8,"SinsemillaInstructions"],[8,"HashDomains"],[3,"Message"],[3,"MessagePiece"],[3,"HashDomain"],[3,"CommitDomain"],[8,"CommitDomains"],[3,"SinsemillaConfig"],[3,"SinsemillaChip"],[3,"MerklePath"],[8,"MerkleInstructions"],[3,"MerkleConfig"],[3,"MerkleChip"],[8,"UtilitiesInstructions"],[3,"RangeConstrained"],[8,"Var"],[8,"FieldValue"],[3,"CondSwapChip"],[3,"CondSwapConfig"],[8,"CondSwapInstructions"],[3,"RunningSum"],[3,"RunningSumConfig"],[3,"RunningSum"],[3,"LookupRangeCheckConfig"]]},\ "halo2_proofs":{"doc":"halo2_proofs","t":[0,0,0,0,0,0,16,16,16,18,3,8,8,16,18,8,8,8,18,18,16,16,16,8,3,18,18,18,10,10,10,10,5,5,11,11,11,11,11,11,5,11,10,11,11,11,11,11,11,10,11,11,10,5,11,11,11,11,10,10,10,11,10,10,10,10,10,10,10,11,11,11,11,10,10,10,11,11,10,5,5,11,10,10,5,11,11,11,10,5,5,10,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,10,3,3,8,16,8,16,3,3,3,3,16,3,3,11,11,11,11,11,10,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,10,11,11,10,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,13,4,8,3,13,8,10,11,10,11,10,11,10,10,11,11,11,11,11,11,11,11,11,11,11,10,11,10,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,13,3,3,13,13,4,13,13,3,13,13,4,11,11,11,11,11,11,11,11,11,11,11,11,11,5,11,11,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,3,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,3,3,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,13,13,4,4,8,3,13,8,3,13,8,16,13,3,3,13,3,4,4,3,13,13,8,16,3,13,13,13,13,13,13,13,13,16,3,3,13,3,13,13,3,13,3,13,13,3,13,13,8,3,3,13,11,11,11,11,11,11,11,10,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,10,11,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,10,11,11,11,11,11,11,11,11,11,11,10,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,10,11,11,10,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,10,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,8,3,4,3,3,3,13,3,3,3,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,3,3,3,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,5,11,11,11,11,11,11,3,3,12,11,11,11,11,11,11,11,11,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,5,11,11,3,3,3,3,8,16,8,8,8,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,10,11,10,11,10,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,10,11],"n":["arithmetic","circuit","dev","plonk","poly","transcript","AffineExt","Base","Base","CURVE_ID","Coordinates","CurveAffine","CurveExt","CurveExt","DELTA","Field","FieldExt","Group","MODULUS","ROOT_OF_UNITY_INV","Scalar","ScalarExt","ScalarExt","SqrtRatio","SqrtTables","TWO_INV","T_MINUS1_OVER2","ZETA","a","a","b","b","best_fft","best_multiexp","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","compute_inner_product","conditional_select","coordinates","cube","default","deref","deref","deref_mut","deref_mut","double","drop","drop","endo","eval_polynomial","fmt","fmt","from","from","from_bytes_wide","from_u128","from_xy","from_xy","get_lower_128","get_lower_32","group_add","group_scale","group_sub","group_zero","hash_to_curve","init","init","into","into","invert","is_on_curve","is_on_curve","is_zero","is_zero_vartime","jacobian_coordinates","kate_division","lagrange_interpolate","new","new_jacobian","one","parallelize","pow","pow_by_t_minus1_over2","pow_vartime","random","recursive_butterfly_arithmetic","small_multiexp","sqrt","sqrt_alt","sqrt_alt","sqrt_ratio","sqrt_ratio","square","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","u","v","vzip","vzip","x","y","zero","AssignedCell","Cell","Chip","Config","Layouter","Loaded","NamespacedLayouter","Region","RegionIndex","RegionStart","Root","SimpleFloorPlanner","Table","assign_advice","assign_advice_from_constant","assign_advice_from_instance","assign_cell","assign_fixed","assign_region","assign_region","assign_table","assign_table","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","cell","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","config","constrain_constant","constrain_equal","constrain_instance","constrain_instance","copy_advice","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","drop","drop","drop","drop","drop","eq","evaluate","floor_planner","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","get_root","get_root","init","init","init","init","init","init","init","init","into","into","into","into","into","into","into","into","layouter","loaded","namespace","ne","pop_namespace","pop_namespace","push_namespace","push_namespace","synthesize","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","value","value_field","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","V1","V1Pass","assign_region","assign_table","borrow","borrow","borrow_mut","borrow_mut","constrain_instance","deref","deref","deref_mut","deref_mut","drop","drop","fmt","fmt","from","from","get_root","init","init","into","into","pop_namespace","push_namespace","synthesize","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","Column","RegionColumn","RegionLayouter","RegionShape","Selector","TableLayouter","assign_advice","assign_advice","assign_advice_from_constant","assign_advice_from_constant","assign_advice_from_instance","assign_advice_from_instance","assign_cell","assign_fixed","assign_fixed","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","cmp","columns","constrain_constant","constrain_constant","constrain_equal","constrain_equal","deref","deref","deref_mut","deref_mut","drop","drop","enable_selector","enable_selector","eq","fmt","fmt","from","from","from","from","hash","init","init","into","into","ne","new","partial_cmp","region_index","row_count","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","0","0","CellNotAssigned","CircuitGates","CircuitLayout","ConstraintNotSatisfied","ConstraintPoisoned","FailureLocation","InRegion","Lookup","MockProver","OutsideRegion","Permutation","VerifyFailure","assert_satisfied","assign_advice","assign_fixed","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","circuit_dot_graph","collect","copy","cost","default","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","drop","enable_selector","enter_region","eq","eq","exit_region","fill_from_row","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","init","init","init","init","init","into","into","into","into","into","mark_equality_cells","metadata","ne","ne","pop_namespace","push_namespace","queries_to_csv","query_instance","render","run","show_equality_constraints","show_labels","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","verify","view_height","view_width","vzip","vzip","vzip","vzip","vzip","offset","region","row","cell_values","column","column","constraint","constraint","gate","gate_offset","location","location","location","lookup_index","offset","region","CircuitCost","MarginalProofSize","ProofSize","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","deref","deref","deref","deref_mut","deref_mut","deref_mut","drop","drop","drop","fmt","fmt","fmt","from","from","from","init","init","init","into","into","into","marginal_proof_size","measure","proof_size","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","Column","Constraint","Gate","Region","VirtualCell","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","cmp","cmp","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","drop","eq","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","init","init","init","init","init","into","into","into","into","into","ne","ne","ne","ne","ne","partial_cmp","partial_cmp","to_owned","to_owned","to_string","to_string","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","Advice","Advice","Advice","Any","Assigned","Assignment","BatchVerifier","BoundsFailure","Circuit","Column","ColumnNotInPermutation","ColumnType","Config","Constant","Constraint","ConstraintSystem","ConstraintSystemFailure","Constraints","Error","Expression","Fixed","Fixed","Fixed","FloorPlanner","FloorPlanner","Instance","Instance","Instance","InstanceTooLarge","InvalidInstances","Negated","NotEnoughColumnsForConstants","NotEnoughRowsAvailable","Opening","Output","PinnedConstraintSystem","PinnedVerificationKey","Product","ProvingKey","Rational","Scaled","Selector","Selector","SingleVerifier","Sum","Synthesis","TableColumn","Transcript","Trivial","VerificationStrategy","VerifyingKey","VirtualCells","Zero","add","add","add","add","add_assign","add_assign","advice_column","assign_advice","assign_fixed","blinding_factors","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","column_type","complex_selector","configure","copy","create_gate","create_proof","cube","default","degree","degree","denominator","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","double","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","enable","enable_constant","enable_equality","enable_selector","enter_region","eq","eq","eq","eq","eq","eq","eq","eq","evaluate","evaluate","exit_region","fill_from_row","finalize","fixed_column","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","get_domain","get_vk","hash","hash","hash","hash","hash","hash","hash","hash_into","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","instance_column","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into_iter","invert","is_simple","is_zero_vartime","keygen_pk","keygen_vk","lookup","lookup_table_column","minimum_rows","mul","mul","mul","mul","mul","mul_assign","mul_assign","ne","ne","ne","neg","neg","new","new","numerator","partial_cmp","partial_cmp","pinned","pinned","pop_namespace","process","process","process","push_namespace","query_advice","query_any","query_fixed","query_instance","query_instance","query_selector","selector","set_minimum_degree","source","square","square","sub","sub","sub","sub","sub_assign","sub_assign","synthesize","synthesize","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","verify_proof","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","with_selector","without_witnesses","0","0","1","0","0","current_k","0","0","0","0","0","0","1","1","1","column_index","column_index","column_index","query_index","query_index","query_index","rotation","rotation","rotation","0","Basis","Coeff","Error","EvaluationDomain","ExtendedLagrangeCoeff","LagrangeCoeff","OpeningError","PinnedEvaluationDomain","Polynomial","Rotation","SamplingError","add","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","coeff_from_vec","coeff_to_extended","commitment","constant_extended","constant_lagrange","cur","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","divide_by_vanishing_poly","drop","drop","drop","drop","drop","drop","drop","drop","empty_coeff","empty_extended","empty_lagrange","eq","extended_len","extended_to_coeff","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","get_extended_omega","get_omega","get_omega_inv","get_quotient_poly_degree","index","index","index","index_mut","index_mut","index_mut","init","init","init","init","init","init","init","init","into","into","into","into","into","into","into","into","iter","iter_mut","l_i_range","lagrange_from_vec","lagrange_to_coeff","mul","multiopen","ne","new","next","num_coeffs","pinned","prev","rotate","rotate_extended","rotate_omega","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","0","Accumulator","Blind","Guard","MSM","Params","add","add_assign","add_assign","add_constant_term","add_msm","add_to_g_scalars","add_to_u_scalar","add_to_w_scalar","append_term","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","commit","commit_lagrange","compute_g","create_proof","default","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","drop","empty_msm","eq","eval","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","g","get_g","init","init","init","init","init","into","into","into","into","into","mul","mul_assign","mul_assign","ne","new","new","read","scale","to_owned","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","u_packed","use_challenges","use_g","verify_proof","vzip","vzip","vzip","vzip","vzip","write","ProverQuery","VerifierQuery","blind","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","create_proof","deref","deref","deref_mut","deref_mut","drop","drop","fmt","fmt","from","from","init","init","into","into","new_commitment","new_msm","point","poly","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","verify_proof","vzip","vzip","Blake2bRead","Blake2bWrite","Challenge255","ChallengeScalar","EncodedChallenge","Input","Transcript","TranscriptRead","TranscriptWrite","as_challenge_scalar","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","common_point","common_point","common_point","common_scalar","common_scalar","common_scalar","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","finalize","fmt","fmt","fmt","fmt","from","from","from","from","get_scalar","get_scalar","init","init","init","init","init","init","into","into","into","into","new","new","read_point","read_point","read_scalar","read_scalar","squeeze_challenge","squeeze_challenge","squeeze_challenge","squeeze_challenge_scalar","to_owned","to_owned","to_owned","to_owned","translate","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","write_point","write_point","write_scalar","write_scalar"],"q":["halo2_proofs","","","","","","halo2_proofs::arithmetic","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","halo2_proofs::circuit","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","halo2_proofs::circuit::floor_planner","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","halo2_proofs::circuit::layouter","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","halo2_proofs::circuit::layouter::RegionColumn","","halo2_proofs::dev","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","halo2_proofs::dev::FailureLocation","","","halo2_proofs::dev::VerifyFailure","","","","","","","","","","","","","halo2_proofs::dev::cost","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","halo2_proofs::dev::metadata","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","halo2_proofs::plonk","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","halo2_proofs::plonk::Assigned","","","halo2_proofs::plonk::Error","","","halo2_proofs::plonk::Expression","","","","","","","","","","","","","","","","","","halo2_proofs::poly","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","halo2_proofs::poly::commitment","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","halo2_proofs::poly::multiopen","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","halo2_proofs::transcript","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"d":["This module provides common utilities, traits and …","Traits and structs for implementing circuit components.","Tools for developing circuits.","This module provides an implementation of a variant of …","Contains utilities for performing arithmetic over …","This module contains utilities and traits for dealing with …","The affine version of the curve","The base field over which this elliptic curve is …","The base field over which this elliptic curve is …","CURVE_ID used for hash-to-curve.","The affine coordinates of a point on an elliptic curve.","This trait is the affine counterpart to Curve and is used …","This trait is a common interface for dealing with elements …","The projective form of the curve","Generator of the $t-order$ multiplicative subgroup","This trait represents an element of a field.","This trait is a common interface for dealing with elements …","This represents an element of a group with basic …","Modulus of the field written as a string for display …","Inverse of PrimeField::root_of_unity()","The group is assumed to be of prime order $p$. Scalar is …","The scalar field of this elliptic curve.","The scalar field of this elliptic curve.","A trait that exposes additional operations related to …","Tables used for square root computation.","Inverse of $2$ in the field.","The value $(T-1)/2$ such that $2^S \\\\cdot T = p - 1$ with …","Element of multiplicative order $3$.","Returns the curve constant a.","Returns the curve constant $a$.","Returns the curve constant b.","Returns the curve constant $b$.","Performs a radix-$2$ Fast-Fourier Transformation (FFT) on …","Performs a multi-exponentiation operation.","","","","","","","This computes the inner product of two vectors a and b.","","Gets the coordinates of this point.","Cubes this element.","","","","","","Doubles this element.","","","Apply the curve endomorphism by multiplying the …","This evaluates a provided polynomial (in coefficient form) …","","","Returns the argument unchanged.","Returns the argument unchanged.","Obtains a field element that is congruent to the provided …","Obtains a field element congruent to the integer v.","Obtains a point given $(x, y)$, failing if it is not on the","Obtains a Coordinates value given $(x, y)$, failing if it …","Gets the lower 128 bits of this field element when …","Gets the lower 32 bits of this field element when expressed","Adds rhs to this group element.","Scales this group element by a scalar.","Subtracts rhs from this group element.","Returns the additive identity of the group.","Requests a hasher that accepts messages and returns …","","","Calls U::from(self).","Calls U::from(self).","Computes the multiplicative inverse of this element, …","Returns whether or not this element is on the curve; should","Returns whether or not this element is on the curve; should","Returns true iff this element is zero.","Returns true iff this element is zero.","Return the Jacobian coordinates of this point.","Divides polynomial a in X by X - b with no remainder.","Returns coefficients of an n - 1 degree polynomial given a …","Build tables given parameters for the perfect hash.","Obtains a point given Jacobian coordinates $X : Y : Z$, …","Returns the one element of the field, the multiplicative …","This simple utility function will parallelize an operation …","Exponentiates self by by, where by is a little-endian order","Raise this field element to the power Self::T_MINUS1_OVER2.","Exponentiates self by exp, where exp is a little-endian …","Returns an element chosen uniformly at random using a …","This perform recursive butterfly arithmetic","Performs a small multi-exponentiation operation. Uses the …","Returns the square root of the field element, if it is …","Equivalent to Self::sqrt_ratio(self, one()).","Same as sqrt_ratio(u, one()) but more efficient.","Computes:","Computes:","Squares this element.","","","","","","","","Returns the u-coordinate.","Returns the v-coordinate.","","","Returns the x-coordinate.","Returns the y-coordinate.","Returns the zero element of the field, the additive …","An assigned cell.","A pointer to a cell within a circuit.","A chip implements a set of instructions that can be used …","A type that holds the configuration for this chip, and any …","A layout strategy within a circuit. The layouter is …","A type that holds any general chip state that needs to be …","This is a “namespaced” layouter which borrows a …","A region of the circuit in which a Chip can assign cells.","Index of a region in a layouter","Starting row of a region in a layouter","Represents the type of the “root” of this layouter, so …","A simple FloorPlanner that performs minimal optimizations.","A lookup table in the circuit.","Assign an advice column value (witness).","Assigns a constant value to the column advice at offset …","Assign the value of the instance column’s cell at …","Assigns a fixed value to a table cell.","Assign a fixed value.","Assign a region of gates to an absolute row number.","","Assign a table region to an absolute row number.","","","","","","","","","","","","","","","","","","Returns the cell.","","","","","","","","","The chip holds its own configuration.","Constrains a cell to have a constant value.","Constrains two cells to have the same value.","Constrains a Cell to equal an instance column’s row …","","Copies the value to a given advice cell and constrains …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Evaluates this assigned cell’s value directly, …","Implementations of common circuit floor planners.","","","","","","","","","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","Returns the argument unchanged.","Gets the “root” of this assignment, bypassing the …","","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Implementations of common circuit layouters.","Provides access to general chip state loaded at the …","Enters into a namespace.","","Exits out of the existing namespace.","","Creates a new (sub)namespace and enters into it.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the value of the AssignedCell.","Returns the field element value of the AssignedCell.","","","","","","","","","The version 1 FloorPlanner provided by halo2.","A single pass of the V1 layouter.","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","Concrete column","The virtual column involved in a region. This includes …","Helper trait for implementing a custom Layouter.","The shape of a region. For a region at a certain index, we …","Virtual column representing a (boolean) selector","Helper trait for implementing a custom Layouter.","Assign an advice column value (witness)","","Assigns a constant value to the column advice at offset …","","Assign the value of the instance column’s cell at …","","Assigns a fixed value to a table cell.","Assign a fixed value","","","","","","","","","","","Get a reference to the set of columns used in a RegionShape…","Constrains a cell to have a constant value.","","Constraint two cells to have the same value.","","","","","","","","Enables a selector at the given offset.","","","","","Returns the argument unchanged.","","Returns the argument unchanged.","","","","","Calls U::from(self).","Calls U::from(self).","","Create a new RegionShape for a region at region_index.","","Get the region_index of a RegionShape.","Get the row_count of a RegionShape.","","","","","","","","","","","","","A cell used in an active gate was not assigned to.","A struct for collecting and displaying the gates within a …","Graphical renderer for circuit layouts.","A constraint was not satisfied for a particular row.","A constraint was active on an unusable row, and is likely …","The location within the circuit at which a particular …","A location inside a region.","A lookup input did not exist in its corresponding table.","A test prover for debugging circuits.","A location outside of a region.","A permutation did not preserve the original value of a …","The reasons why a particular circuit is not satisfied.","Panics if the circuit being checked by this MockProver is …","","","","","","","","","","","","","Builds a dot graph string representing the given circuit.","Collects the gates from within the circuit.","","Developer tools for investigating the cost of a circuit.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Marks cells involved in equality constraints, in red.","Metadata about circuits.","","","","","Prints the queries in this circuit to a CSV grid.","","Renders the given circuit on the given drawing area.","Runs a synthetic keygen-and-prove operation on the given …","Draws red lines between equality-constrained cells.","Sets the visibility of region labels.","","","","","","","","","","","","","","","","","","","Returns Ok(()) if this MockProver is satisfied, or a list …","Sets the view height for this layout, as a number of rows.","Sets the view width for this layout, as a number of …","","","","","","The offset (relative to the start of the region) at which …","The region in which the failure occurred.","The circuit row on which the failure occurred.","The values of the virtual cells used by this constraint.","The column in which this cell should be assigned.","The column in which this permutation is not satisfied.","The polynomial constraint that is not satisfied.","The polynomial constraint that is not satisfied.","The index of the active gate.","The offset (relative to the start of the region) at which …","The location at which this constraint is not satisfied.","The location at which the lookup is not satisfied.","The location at which the permutation is not satisfied.","The index of the lookup that is not satisfied. These …","The offset (relative to the start of the region) at which …","The region in which this cell should be assigned.","Measures a circuit to determine its costs, and explain …","The marginal size of a Halo 2 proof, broken down into its …","The size of a Halo 2 proof, broken down into its …","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Returns the marginal proof size per instance of this …","Measures a circuit with parameter constant k.","Returns the proof size for the given number of instances …","","","","","","","","","","","","","Metadata about a column within a circuit.","Metadata about a configured constraint within a circuit.","Metadata about a configured gate within a circuit.","Metadata about an assigned region within a circuit.","A “virtual cell” is a PLONK cell that has been queried …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","","Returns the argument unchanged.","","Returns the argument unchanged.","","Returns the argument unchanged.","","Returns the argument unchanged.","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","An advice column","An Advice variant","This is an advice (witness) column queried at a certain …","An enum over the Advice, Fixed, Instance structs","A value assigned to a cell within a circuit.","This trait allows a Circuit to direct some backend to …","A verifier that checks multiple proofs in a batch.","Out of bounds index passed to a backend","This is a trait that circuits provide implementations for …","A column with an index and type","The instance sets up a copy constraint involving a column …","A column type","This is a configuration object that stores things like …","This is a constant polynomial","An individual polynomial constraint.","This is a description of the circuit environment, such as …","The constraint system is not satisfied.","A set of polynomial constraints with a common selector.","This is an error that could occur during proving or …","Low-degree expression representing an identity that must …","A fixed column","A Fixed variant","This is a fixed column queried at a certain relative …","A floor planning strategy for a circuit.","The floor planner used for this circuit. This is an …","An instance column","An Instance variant","This is an instance (external) column queried at a certain …","Instance provided exceeds number of available rows","The provided instances do not match the circuit parameters.","This is a negated polynomial","Circuit synthesis requires global constants, but circuit …","k is too small for the given circuit.","Opening error","The output type of this verification strategy after …","Represents the minimal parameters that determine a …","Minimal representation of a verification key that can be …","This is the product of two polynomials","This is a proving key which allows for the creation of …","A value stored as a fraction to enable batch inversion.","This is a scaled polynomial","A selector, representing a fixed boolean value per row of …","This is a virtual selector","A verifier that checks a single proof at a time.","This is the sum of two polynomials","This is an error that can occur during synthesis of the …","A fixed column of a lookup table.","Transcript error","A value that does not require inversion to evaluate.","Trait representing a strategy for verifying Halo 2 proofs.","This is a verifying key which allows for the verification …","Exposes the “virtual cells” that can be queried while …","The field element zero.","","","","","","","Allocate a new advice column","Assign an advice column value (witness)","Assign a fixed value","Compute the number of blinding factors necessary to …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Type of this column.","Allocate a new complex selector that can appear anywhere …","The circuit is given an opportunity to describe the exact …","Assign two cells to have the same value","Creates a new gate.","This creates a proof for the provided circuit when given …","Cubes this element.","","Compute the degree of this polynomial","Compute the degree of the constraint system (the maximum …","Returns the denominator, if non-trivial.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Doubles this element.","","","","","","","","","","","","","","","","","","","","","Enable this selector at the given offset within the given …","Enables this fixed column to be used for global constant …","Enable the ability to enforce equality over cells in this …","Enables a selector at the given row.","Creates a new region and enters into it.","","","","","","","","","Evaluates this assigned value directly, performing an …","Evaluate the polynomial using the provided closures to …","Exits the current region.","Fills a fixed column starting from the given row with …","Finalizes the batch and checks its validity.","Allocate a new fixed column","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Get the underlying EvaluationDomain.","Get the underlying VerifyingKey.","","","","","","","","Hashes a verification key into a transcript.","","","","","","","","","","","","","","","","","","","","","Allocate a new instance column","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","Inverts this assigned value (taking the inverse of zero to …","Is this selector “simple”? Simple selectors can only …","Returns true iff this element is zero.","Generate a ProvingKey from a VerifyingKey and an instance …","Generate a VerifyingKey from an instance of Circuit.","Add a lookup argument for some input expressions and table …","Allocates a new fixed column that can be used in a lookup …","Returns the minimum necessary rows that need to exist in …","","","","","","","","","","","","","Constructs a new single proof verifier.","Constructs a new batch verifier.","Returns the numerator.","","","Obtain a pinned version of this constraint system; a …","Obtains a pinned representation of this verification key …","Exits out of the existing namespace.","Obtains an MSM from the verifier strategy and yields back …","","","Creates a new (sub)namespace and enters into it.","Query an advice column at a relative position","Query an Any column at a relative position","Query a fixed column at a relative position","Queries the cell of an instance column at a particular …","Query an instance column at a relative position","Query a selector at the current position.","Allocate a new (simple) selector. Simple selectors cannot …","Sets the minimum degree required by the circuit, which can …","","Squares this element.","Square this expression.","","","","","","","Given the provided cs, synthesize the given circuit.","Given the provided cs, synthesize the circuit. The …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns a boolean indicating whether or not the proof is …","","","","","","","","","","","","","","","","","","","","","Constructs a set of constraints that are controlled by the …","Returns a copy of this circuit with no witness values …","","","","","","The current value of k being used.","","","","","","","","","","Column index","Column index","Column index","Query index","Query index","Query index","Rotation of this query","Rotation of this query","Rotation of this query","","The basis over which a polynomial is described.","The polynomial is defined as coefficients","This is an error that could occur during proving or …","This structure contains precomputed constants and other …","The polynomial is defined as coefficients of Lagrange …","The polynomial is defined as coefficients of Lagrange …","OpeningProof is not well-formed","Represents the minimal parameters that determine an …","Represents a univariate polynomial defined over a field …","Describes the relative rotation of a vector. Negative …","Caller needs to re-sample a point","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Obtains a polynomial in coefficient form when given a …","This takes us from an n-length coefficient vector into a …","This module contains an implementation of the polynomial …","Returns a constant polynomial in the extended Lagrange …","Returns a constant polynomial in the Lagrange coefficient …","The current location in the evaluation domain","","","","","","","","","","","","","","","","","","","This divides the polynomial (in the extended domain) by …","","","","","","","","","Returns an empty (zero) polynomial in the coefficient basis","Returns an empty (zero) polynomial in the extended …","Returns an empty (zero) polynomial in the Lagrange …","","Get the size of the extended domain","This takes us from the extended evaluation domain and gets …","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Get the generator of the extended domain’s …","Get $\\\\omega$, the generator of the $2^k$ order …","Get $\\\\omega^{-1}$, the inverse of the generator of the …","Gets the quotient polynomial’s degree (as a multiple of …","","","","","","","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Iterate over the values, which are either in coefficient …","Iterate over the values mutably, which are either in …","Computes evaluations (at the point x, where xn = x^n) of …","Obtains a polynomial in Lagrange form when given a vector …","This takes us from an n-length vector into the coefficient …","","This module contains an optimisation of the polynomial …","","This constructs a new evaluation domain object based on …","The next location in the evaluation domain","Gets the size of this polynomial in terms of the number of …","Obtain a pinned version of this evaluation domain; a …","The previous location in the evaluation domain","Rotates the values in a Lagrange basis polynomial by …","Rotate the extended domain polynomial over the original …","Multiplies a value by some power of $\\\\omega$, essentially …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","An accumulator instance consisting of an evaluation claim …","Wrapper type around a blinding factor.","A guard returned by the verifier","A multiscalar multiplication in the polynomial commitment …","These are the public parameters for the polynomial …","","","","Add a value to the first entry of g_scalars.","Add another multiexp into this one","Add a vector of scalars to g_scalars. This function will …","Add to u_scalar","Add to w_scalar","Add arbitrary term (the scalar and the point)","","","","","","","","","","","","","","","","","","","","","This computes a commitment to a polynomial described by …","This commits to a polynomial using its evaluations over …","Computes G = ⟨s, params.g⟩","Create a polynomial commitment opening proof for the …","","","","","","","","","","","","","","","","","Generates an empty multiscalar multiplication struct using …","","Perform multiexp and check that it results in zero","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","The claimed output of the linear-time polycommit opening …","Getter for g generators","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","Create a new, empty MSM using the provided parameters.","Initializes parameters for the curve, given a random …","Reads params from a buffer.","Scale all scalars in the MSM by some scaling factor","","","","","","","","","","","","","","","","","","","","","A vector of challenges u_0, …, u_{k - 1} sampled by the …","Lets caller supply the challenges and obtain an MSM with …","Lets caller supply the purported G point and simply appends","Checks to see if the proof represented within transcript …","","","","","","Writes params to a buffer.","A polynomial query at a point","A polynomial query at a point","blinding factor of polynomial","","","","","","","","","Create a multi-opening proof","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","Create a new verifier query based on a commitment","Create a new verifier query based on a linear combination …","point at which polynomial is queried","coefficients of polynomial","","","","","","","","","Verify a multi-opening proof","","","We will replace BLAKE2b with an algebraic hash function in …","We will replace BLAKE2b with an algebraic hash function in …","A 255-bit challenge.","The scalar representation of a verifier challenge.","EncodedChallenge<C> defines a challenge encoding with a …","The Input type used to derive the challenge encoding. For …","Generic transcript view (from either the prover or verifier…","Transcript view from the perspective of a verifier that …","Transcript view from the perspective of a prover that has …","Cast an encoded challenge as a typed ChallengeScalar.","","","","","","","","","","","","","","","","","Writing the point to the transcript without writing it to …","","","Writing the scalar to the transcript without writing it to …","","","","","","","","","","","","","","","","","Conclude the interaction and return the output buffer …","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Get a scalar field element from an encoded challenge.","","Initialize a transcript given an input buffer.","","Initialize a transcript given an output buffer.","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Get an encoded challenge from a given input challenge.","","Read a curve point from the prover.","","Read a curve scalar from the prover.","","Squeeze an encoded verifier challenge from the transcript.","","","Squeeze a typed challenge (in the scalar field) from the …","","","","","","","","","","","","","","","","","","","","","","Write a curve point to the proof and the transcript.","","Write a scalar to the proof and the transcript.",""],"i":[0,0,0,0,0,0,1,1,2,1,0,0,0,2,3,0,0,0,3,3,4,1,2,0,0,3,5,3,1,2,1,2,0,0,6,7,6,7,6,6,0,6,2,8,6,6,7,6,7,8,6,7,1,0,6,7,6,7,3,3,2,6,3,5,4,4,4,4,1,6,7,6,7,8,1,2,8,8,1,0,0,7,1,8,0,3,5,8,8,0,0,8,5,7,5,7,8,6,6,7,6,7,6,7,6,6,6,7,6,6,8,0,0,0,9,0,9,0,0,0,0,10,0,0,11,11,11,12,11,10,13,10,13,14,15,16,17,18,11,12,13,14,15,16,17,18,11,12,13,18,15,16,17,18,15,16,17,18,9,11,11,10,13,18,14,15,15,16,16,17,18,11,12,13,14,15,16,17,18,11,12,13,14,15,16,17,18,11,12,13,13,16,18,0,14,15,16,17,18,11,12,13,14,15,15,16,16,17,18,11,11,12,12,13,10,13,14,15,16,17,18,11,12,13,14,15,16,17,18,11,12,13,0,9,10,16,10,13,10,13,14,15,16,17,18,14,15,16,17,18,11,12,13,14,15,16,17,18,11,12,13,14,15,16,17,18,11,12,13,18,18,14,15,16,17,18,11,12,13,0,0,19,19,20,19,20,19,19,20,19,20,19,20,19,20,19,20,19,19,20,19,20,19,19,19,20,20,19,20,19,20,19,20,19,21,0,0,0,21,0,22,23,22,23,22,23,24,22,23,23,21,23,21,23,21,23,21,21,23,22,23,22,23,23,21,23,21,23,21,22,23,21,23,21,23,21,21,21,21,23,21,23,21,21,23,21,23,23,23,21,23,21,23,21,23,21,23,21,25,26,27,0,0,27,27,0,28,27,0,28,27,0,29,29,29,28,27,30,31,29,28,27,30,31,29,0,30,29,0,31,28,27,30,31,29,28,27,30,31,29,28,27,30,31,29,29,29,28,27,29,29,28,28,27,27,30,30,31,29,28,27,30,31,29,28,27,30,31,29,28,27,30,31,29,31,0,28,27,29,29,30,29,31,29,31,31,28,27,30,28,27,30,31,29,28,27,30,31,29,28,27,30,31,29,29,31,31,28,27,30,31,29,32,32,33,34,35,36,34,37,35,35,34,38,36,38,35,35,0,0,0,39,40,41,39,40,41,39,40,41,39,40,41,39,40,41,39,40,41,39,40,41,39,40,41,39,40,41,39,39,39,39,40,41,39,40,41,39,40,41,39,40,41,0,0,0,0,0,42,43,44,45,46,42,43,44,45,46,42,46,42,46,42,43,42,43,44,45,46,42,43,44,45,46,42,43,44,45,46,42,43,44,45,46,42,42,43,43,44,44,45,45,46,46,42,42,42,43,43,43,44,44,45,45,46,46,46,42,43,44,45,46,42,43,44,45,46,42,43,44,45,46,42,43,42,46,42,43,44,45,46,42,43,44,45,46,42,43,44,45,46,42,43,44,45,46,42,43,44,45,46,0,47,48,0,0,0,0,49,0,0,49,0,50,48,0,0,49,0,0,0,0,47,48,0,50,0,47,48,49,49,48,49,49,49,51,0,0,48,0,52,48,0,48,0,48,49,0,49,52,0,0,0,52,52,52,52,48,52,52,53,54,54,53,52,55,56,57,58,47,59,60,48,61,62,53,63,64,49,65,66,67,68,69,52,55,56,57,58,47,59,60,48,61,62,53,63,64,49,65,66,67,68,69,52,55,56,57,58,47,59,60,48,53,67,69,52,55,56,57,58,47,59,60,48,53,67,69,55,47,55,53,50,54,53,0,52,53,48,53,52,52,55,56,57,58,47,59,60,48,61,62,53,63,64,49,65,66,67,68,69,52,55,56,57,58,47,59,60,48,61,62,53,63,64,49,65,66,67,68,69,52,52,55,56,57,58,47,59,60,48,61,62,53,63,64,49,65,66,67,68,69,59,53,53,54,54,52,55,56,57,58,47,59,60,52,48,54,54,66,53,52,55,56,57,58,47,59,60,48,61,62,53,63,64,49,49,65,66,67,68,69,52,52,52,52,52,55,55,55,55,56,57,58,47,47,47,47,59,60,48,61,61,61,62,53,63,64,49,49,65,66,67,68,69,67,69,55,56,57,58,47,59,60,67,52,55,56,57,58,47,59,60,48,61,62,53,63,64,49,65,66,67,68,69,53,52,55,56,57,58,47,59,60,48,61,62,53,63,64,49,65,66,67,68,69,62,52,59,52,0,0,53,53,53,52,52,52,48,48,52,52,55,59,60,52,48,65,66,52,55,47,53,67,54,51,65,66,54,64,64,64,54,64,64,53,53,49,52,48,52,52,52,48,52,52,70,50,52,55,56,57,58,47,59,60,48,53,67,69,49,52,55,55,55,55,56,57,58,47,59,60,48,61,62,53,63,64,49,65,66,67,68,69,52,55,56,57,58,47,59,60,48,61,62,53,63,64,49,65,66,67,68,69,52,55,56,57,58,47,59,60,48,61,62,53,63,64,49,65,66,67,68,69,0,52,55,56,57,58,47,59,60,48,61,62,53,63,64,49,65,66,67,68,69,62,50,71,72,72,73,74,75,76,77,78,79,80,81,79,80,81,82,83,84,82,83,84,82,83,84,85,0,0,0,0,0,0,86,0,0,0,86,87,88,89,86,90,91,92,87,85,88,89,86,90,91,92,87,85,88,90,91,92,87,85,88,90,91,92,87,85,88,88,0,88,88,85,88,89,86,90,91,92,87,87,85,88,89,86,90,91,92,87,87,85,88,88,89,86,90,91,92,87,85,88,88,88,85,88,88,88,89,86,90,91,92,87,85,88,89,86,90,91,92,87,85,88,88,88,88,87,87,87,87,87,87,88,89,86,90,91,92,87,85,88,89,86,90,91,92,87,85,87,87,88,88,88,87,0,85,88,85,87,88,85,87,88,88,88,90,91,92,87,85,88,89,86,90,91,92,87,85,88,89,86,90,91,92,87,85,88,89,86,90,91,92,87,85,88,89,86,90,91,92,87,85,93,0,0,0,0,0,93,93,93,94,94,94,94,94,94,94,95,96,97,93,94,95,96,97,93,94,95,96,97,93,94,95,96,97,93,97,97,95,0,93,94,95,96,97,93,94,95,96,97,93,94,95,96,97,93,97,93,94,94,95,96,97,93,94,95,96,97,93,96,97,94,95,96,97,93,94,95,96,97,93,93,93,93,93,94,97,97,94,94,95,96,97,93,94,95,96,97,93,94,95,96,97,93,94,95,96,97,93,96,95,95,0,94,95,96,97,93,97,0,0,98,98,99,98,99,98,99,98,99,0,98,99,98,99,98,99,98,99,98,99,98,99,98,99,99,99,98,98,98,99,98,99,98,99,98,99,0,98,99,0,0,0,0,0,100,0,0,0,100,101,102,103,104,101,102,103,104,101,102,103,104,101,102,103,104,105,101,102,105,101,102,101,102,103,103,104,104,101,102,103,104,101,102,103,104,102,101,102,103,104,101,102,103,104,100,104,101,101,102,102,103,104,101,102,103,104,100,104,106,101,106,101,105,101,102,105,101,102,103,104,103,101,102,103,104,101,102,103,104,101,102,103,104,101,102,103,104,107,102,107,102],"f":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[["u32",0]]],[[]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["coordinates",3]],[[["",0],["",0]]],[[],["field",8]],[[["coordinates",3],["coordinates",3],["choice",3]],["coordinates",3]],[[["",0]],["ctoption",3,[["coordinates",3]]]],[[["",0]]],[[],["coordinates",3]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["",0]]],[[["usize",0]]],[[["usize",0]]],[[["",0]]],[[["field",8]],["field",8]],[[["",0],["formatter",3]],["result",4,[["error",3]]]],[[["",0],["formatter",3]],["result",4,[["error",3]]]],[[]],[[]],[[]],[[["u128",0]]],[[],["ctoption",3]],[[],["ctoption",3,[["coordinates",3]]]],[[["",0]],["u128",0]],[[["",0]],["u32",0]],[[["",0],["",0]]],[[["",0]]],[[["",0],["",0]]],[[]],[[["str",0]],["box",3,[["fn",8],["global",3]]]],[[],["usize",0]],[[],["usize",0]],[[]],[[]],[[["",0]],["ctoption",3]],[[["",0]],["choice",3]],[[["",0]],["choice",3]],[[["",0]],["choice",3]],[[["",0]],["bool",0]],[[["",0]]],[[["intoiterator",8],["field",8]],["vec",3,[["field",8]]]],[[],["vec",3,[["fieldext",8]]]],[[["u32",0],["usize",0]],["sqrttables",3]],[[],["ctoption",3]],[[]],[[["",26,[["fn",8],["send",8],["sync",8],["clone",8]]]]],[[["",0]]],[[["",0]]],[[["",0]]],[[]],[[["usize",0],["usize",0]]],[[]],[[["",0]],["ctoption",3]],[[["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0],["",0]]],[[["",0]]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]]],[[["",0]]],[[]],[[]],[[["",0]]],[[["",0]]],[[]],null,null,null,null,null,null,null,null,null,null,null,null,null,[[["",0],["column",3,[["advice",3]]],["usize",0]],["result",4,[["assignedcell",3],["error",4]]]],[[["",0],["column",3,[["advice",3]]],["usize",0]],["result",4,[["assignedcell",3],["error",4]]]],[[["",0],["column",3,[["instance",3]]],["usize",0],["column",3,[["advice",3]]],["usize",0]],["result",4,[["assignedcell",3],["error",4]]]],[[["",0],["tablecolumn",3],["usize",0]],["result",4,[["error",4]]]],[[["",0],["column",3,[["fixed",3]]],["usize",0]],["result",4,[["assignedcell",3],["error",4]]]],[[["",0]],["result",4,[["error",4]]]],[[["",0]],["result",4,[["error",4]]]],[[["",0]],["result",4,[["error",4]]]],[[["",0]],["result",4,[["error",4]]]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["cell",3]],[[["",0]],["regionindex",3]],[[["",0]],["regionstart",3]],[[["",0]],["cell",3]],[[["",0]],["assignedcell",3]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0]]],[[["",0],["cell",3]],["result",4,[["error",4]]]],[[["",0],["cell",3],["cell",3]],["result",4,[["error",4]]]],[[["",0],["cell",3],["column",3,[["instance",3]]],["usize",0]],["result",4,[["error",4]]]],[[["",0],["cell",3],["column",3,[["instance",3]]],["usize",0]],["result",4,[["error",4]]]],[[["",0],["region",3],["column",3,[["advice",3]]],["usize",0]],["result",4,[["error",4]]]],[[["usize",0]],["",0]],[[["",0]]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["",0]]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["",0]]],[[["usize",0]]],[[["",0],["regionstart",3]],["bool",0]],[[],["assignedcell",3]],null,[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[]],[[["usize",0]],["regionindex",3]],[[]],[[]],[[["usize",0]],["regionstart",3]],[[]],[[]],[[]],[[["regionlayouter",8]]],[[]],[[["tablelayouter",8]]],[[]],[[["",0]]],[[["",0]]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,[[["",0]]],[[["",0]],["namespacedlayouter",3]],[[["",0],["regionstart",3]],["bool",0]],[[["",0],["option",4,[["string",3]]]]],[[["",0],["option",4,[["string",3]]]]],[[["",0]]],[[["",0]]],[[["",0],["",0],["vec",3,[["column",3,[["fixed",3]]]]]],["result",4,[["error",4]]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["option",4]],[[["",0]],["option",4,[["assigned",4]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,null,[[["",0]],["result",4,[["error",4]]]],[[["",0]],["result",4,[["error",4]]]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0],["cell",3],["column",3,[["instance",3]]],["usize",0]],["result",4,[["error",4]]]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]]],[[["usize",0]]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[["",0]]],[[],["usize",0]],[[],["usize",0]],[[]],[[]],[[["",0],["option",4,[["string",3]]]]],[[["",0]]],[[["",0],["",0],["vec",3,[["column",3,[["fixed",3]]]]]],["result",4,[["error",4]]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],null,null,null,null,null,null,[[["",0],["fn",8],["column",3,[["advice",3]]],["usize",0],["fnmut",8]],["result",4,[["cell",3],["error",4]]]],[[["",0],["fn",8],["column",3,[["advice",3]]],["usize",0],["fnmut",8]],["result",4,[["cell",3],["error",4]]]],[[["",0],["fn",8],["column",3,[["advice",3]]],["usize",0],["assigned",4]],["result",4,[["cell",3],["error",4]]]],[[["",0],["fn",8],["column",3,[["advice",3]]],["usize",0],["assigned",4]],["result",4,[["cell",3],["error",4]]]],[[["",0],["fn",8],["column",3,[["instance",3]]],["usize",0],["column",3,[["advice",3]]],["usize",0]],["result",4,[["error",4]]]],[[["",0],["fn",8],["column",3,[["instance",3]]],["usize",0],["column",3,[["advice",3]]],["usize",0]],["result",4,[["error",4]]]],[[["",0],["fn",8],["tablecolumn",3],["usize",0],["fnmut",8]],["result",4,[["error",4]]]],[[["",0],["fn",8],["column",3,[["fixed",3]]],["usize",0],["fnmut",8]],["result",4,[["cell",3],["error",4]]]],[[["",0],["fn",8],["column",3,[["fixed",3]]],["usize",0],["fnmut",8]],["result",4,[["cell",3],["error",4]]]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["regionshape",3]],[[["",0]],["regioncolumn",4]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]],["ordering",4]],[[["",0]],["hashset",3]],[[["",0],["cell",3],["assigned",4]],["result",4,[["error",4]]]],[[["",0],["cell",3],["assigned",4]],["result",4,[["error",4]]]],[[["",0],["cell",3],["cell",3]],["result",4,[["error",4]]]],[[["",0],["cell",3],["cell",3]],["result",4,[["error",4]]]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]]],[[["usize",0]]],[[["",0],["fn",8],["selector",3],["usize",0]],["result",4,[["error",4]]]],[[["",0],["fn",8],["selector",3],["usize",0]],["result",4,[["error",4]]]],[[["",0],["regioncolumn",4]],["bool",0]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[]],[[["selector",3]],["regioncolumn",4]],[[]],[[["column",3,[["any",4]]]],["regioncolumn",4]],[[["",0],["",0]]],[[],["usize",0]],[[],["usize",0]],[[]],[[]],[[["",0],["regioncolumn",4]],["bool",0]],[[["regionindex",3]]],[[["",0],["",0]],["option",4,[["ordering",4]]]],[[["",0]],["regionindex",3]],[[["",0]],["usize",0]],[[["",0]]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[["",0]]],[[["",0],["column",3,[["advice",3]]],["usize",0]],["result",4,[["error",4]]]],[[["",0],["column",3,[["fixed",3]]],["usize",0]],["result",4,[["error",4]]]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["string",3]],[[]],[[["",0],["column",3,[["any",4]]],["usize",0],["column",3,[["any",4]]],["usize",0]],["result",4,[["error",4]]]],null,[[],["circuitlayout",3]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["",0],["selector",3],["usize",0]],["result",4,[["error",4]]]],[[["",0]]],[[["",0],["failurelocation",4]],["bool",0]],[[["",0],["verifyfailure",4]],["bool",0]],[[["",0]]],[[["",0],["column",3,[["fixed",3]]],["usize",0],["option",4,[["assigned",4]]]],["result",4,[["error",4]]]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",4,[["error",3]]]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[]],[[]],[[]],[[]],[[]],[[["bool",0]]],null,[[["",0],["failurelocation",4]],["bool",0]],[[["",0],["verifyfailure",4]],["bool",0]],[[["",0],["option",4,[["string",3]]]]],[[["",0]]],[[["",0]],["string",3]],[[["",0],["column",3,[["instance",3]]],["usize",0]],["result",4,[["option",4],["error",4]]]],[[["u32",0],["",0],["drawingarea",3]],["result",4,[["drawingareaerrorkind",4]]]],[[["u32",0],["",0],["vec",3,[["vec",3]]]],["result",4,[["error",4]]]],[[["bool",0]]],[[["bool",0]]],[[["",0]],["string",3]],[[["",0]],["string",3]],[[["",0]],["string",3]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["result",4,[["vec",3,[["verifyfailure",4]]]]]],[[["range",3,[["usize",0]]]]],[[["range",3,[["usize",0]]]]],[[]],[[]],[[]],[[]],[[]],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[]],[[]],[[]],[[["",0]],["marginalproofsize",3]],[[["usize",0],["",0]]],[[["",0],["usize",0]],["proofsize",3]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[]],null,null,null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["column",3]],[[["",0]],["region",3]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["column",3]],["ordering",4]],[[["",0],["virtualcell",3]],["ordering",4]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["",0],["column",3]],["bool",0]],[[["",0],["virtualcell",3]],["bool",0]],[[["",0],["gate",3]],["bool",0]],[[["",0],["constraint",3]],["bool",0]],[[["",0],["region",3]],["bool",0]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[["column",3,[["any",4]]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[]],[[]],[[]],[[]],[[]],[[["",0],["column",3]],["bool",0]],[[["",0],["virtualcell",3]],["bool",0]],[[["",0],["gate",3]],["bool",0]],[[["",0],["constraint",3]],["bool",0]],[[["",0],["region",3]],["bool",0]],[[["",0],["column",3]],["option",4,[["ordering",4]]]],[[["",0],["virtualcell",3]],["option",4,[["ordering",4]]]],[[["",0]]],[[["",0]]],[[["",0]],["string",3]],[[["",0]],["string",3]],[[["",0]],["string",3]],[[["",0]],["string",3]],[[["",0]],["string",3]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[]],[[]],[[]],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[["",0]],["assigned",4]],[[["assigned",4]],["assigned",4]],[[],["assigned",4]],[[["expression",4]],["expression",4]],[[["",0],["",0]]],[[["",0]]],[[["",0]],["column",3,[["advice",3]]]],[[["",0],["column",3,[["advice",3]]],["usize",0]],["result",4,[["error",4]]]],[[["",0],["column",3,[["fixed",3]]],["usize",0]],["result",4,[["error",4]]]],[[["",0]],["usize",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["assigned",4]],[[["",0]],["column",3]],[[["",0]],["advice",3]],[[["",0]],["fixed",3]],[[["",0]],["instance",3]],[[["",0]],["any",4]],[[["",0]],["selector",3]],[[["",0]],["tablecolumn",3]],[[["",0]],["expression",4]],[[["",0]],["constraintsystem",3]],[[["",0]],["verifyingkey",3]],[[["",0]],["provingkey",3]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]],["ordering",4]],[[["",0],["",0]],["ordering",4]],[[["",0]],["",0]],[[["",0]],["selector",3]],[[["constraintsystem",3]]],[[["",0],["column",3,[["any",4]]],["usize",0],["column",3,[["any",4]]],["usize",0]],["result",4,[["error",4]]]],[[["",0],["str",0]]],[[["params",3],["provingkey",3],["rngcore",8],["",0]],["result",4,[["error",4]]]],[[["",0]]],[[],["constraintsystem",3]],[[["",0]],["usize",0]],[[["",0]],["usize",0]],[[["",0]],["option",4]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["",0]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["",0],["region",3],["usize",0]],["result",4,[["error",4]]]],[[["",0],["column",3,[["fixed",3]]]]],[[["",0],["into",8,[["column",3,[["any",4]]]]]]],[[["",0],["selector",3],["usize",0]],["result",4,[["error",4]]]],[[["",0]]],[[["",0],["",0]],["bool",0]],[[["",0],["column",3]],["bool",0]],[[["",0],["advice",3]],["bool",0]],[[["",0],["fixed",3]],["bool",0]],[[["",0],["instance",3]],["bool",0]],[[["",0],["any",4]],["bool",0]],[[["",0],["selector",3]],["bool",0]],[[["",0],["tablecolumn",3]],["bool",0]],[[]],[[["",0]]],[[["",0]]],[[["",0],["column",3,[["fixed",3]]],["usize",0],["option",4,[["assigned",4]]]],["result",4,[["error",4]]]],[[],["bool",0]],[[["",0]],["column",3,[["fixed",3]]]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["assigned",4]]],[[["",0]]],[[]],[[]],[[]],[[["column",3,[["advice",3]]]],["column",3,[["any",4]]]],[[["column",3,[["fixed",3]]]],["column",3,[["any",4]]]],[[["column",3,[["instance",3]]]],["column",3,[["any",4]]]],[[]],[[]],[[]],[[]],[[]],[[["instance",3]],["any",4]],[[["fixed",3]],["any",4]],[[["advice",3]],["any",4]],[[]],[[]],[[]],[[["expression",4]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["error",3]]],[[]],[[]],[[]],[[]],[[]],[[["",0]],["evaluationdomain",3]],[[["",0]],["verifyingkey",3]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]],["result",6]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[["",0]],["column",3,[["instance",3]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["",0]]],[[["",0]],["bool",0]],[[["",0]],["bool",0]],[[["params",3],["verifyingkey",3],["",0]],["result",4,[["provingkey",3],["error",4]]]],[[["params",3],["",0]],["result",4,[["verifyingkey",3],["error",4]]]],[[["",0]],["usize",0]],[[["",0]],["tablecolumn",3]],[[["",0]],["usize",0]],[[["assigned",4]],["assigned",4]],[[],["assigned",4]],[[["assigned",4]],["assigned",4]],[[["expression",4]],["expression",4]],[[],["expression",4]],[[["",0]]],[[["",0],["",0]]],[[["",0],["column",3]],["bool",0]],[[["",0],["selector",3]],["bool",0]],[[["",0],["tablecolumn",3]],["bool",0]],[[]],[[]],[[["params",3]]],[[["params",3]]],[[["",0]]],[[["",0],["",0]],["option",4,[["ordering",4]]]],[[["",0],["",0]],["option",4,[["ordering",4]]]],[[["",0]],["pinnedconstraintsystem",3]],[[["",0]],["pinnedverificationkey",3]],[[["",0],["option",4,[["string",3]]]]],[[],["result",4,[["error",4]]]],[[],["result",4,[["error",4]]]],[[],["result",4,[["error",4]]]],[[["",0]]],[[["",0],["column",3,[["advice",3]]],["rotation",3]],["expression",4]],[[["",0],["into",8,[["column",3,[["any",4]]]]],["rotation",3]],["expression",4]],[[["",0],["column",3,[["fixed",3]]],["rotation",3]],["expression",4]],[[["",0],["column",3,[["instance",3]]],["usize",0]],["result",4,[["option",4],["error",4]]]],[[["",0],["column",3,[["instance",3]]],["rotation",3]],["expression",4]],[[["",0],["selector",3]],["expression",4]],[[["",0]],["selector",3]],[[["",0],["usize",0]]],[[["",0]],["option",4,[["error",8]]]],[[["",0]]],[[]],[[["",0]],["assigned",4]],[[],["assigned",4]],[[["assigned",4]],["assigned",4]],[[["expression",4]],["expression",4]],[[["",0],["",0]]],[[["",0]]],[[["",0],["",0],["vec",3,[["column",3,[["fixed",3]]]]]],["result",4,[["error",4]]]],[[["",0]],["result",4,[["error",4]]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]],["string",3]],[[],["result",4]],[[["column",3,[["any",4]]]],["result",4]],[[],["result",4]],[[["column",3,[["any",4]]]],["result",4]],[[["column",3,[["any",4]]]],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["params",3],["verifyingkey",3],["verificationstrategy",8,[["curveaffine",8]]],["",0]],["result",4,[["error",4]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["expression",4]]],[[["",0]]],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[["polynomial",3]],["polynomial",3]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["evaluationdomain",3]],[[["",0]],["coeff",3]],[[["",0]],["lagrangecoeff",3]],[[["",0]],["extendedlagrangecoeff",3]],[[["",0]],["polynomial",3]],[[["",0]],["rotation",3]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["vec",3]],["polynomial",3,[["coeff",3]]]],[[["",0],["polynomial",3,[["coeff",3]]]],["polynomial",3,[["extendedlagrangecoeff",3]]]],null,[[["",0]],["polynomial",3,[["extendedlagrangecoeff",3]]]],[[["",0]],["polynomial",3,[["lagrangecoeff",3]]]],[[],["rotation",3]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["",0]]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["",0]]],[[["usize",0]],["",0]],[[["",0],["polynomial",3,[["extendedlagrangecoeff",3]]]],["polynomial",3,[["extendedlagrangecoeff",3]]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["",0]],["polynomial",3,[["coeff",3]]]],[[["",0]],["polynomial",3,[["extendedlagrangecoeff",3]]]],[[["",0]],["polynomial",3,[["lagrangecoeff",3]]]],[[["",0],["rotation",3]],["bool",0]],[[["",0]],["usize",0]],[[["",0],["polynomial",3,[["extendedlagrangecoeff",3]]]],["vec",3]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]],["usize",0]],[[["",0],["rangefull",3]]],[[["",0],["usize",0]],["",0]],[[["",0],["rangefrom",3,[["usize",0]]]]],[[["",0],["usize",0]],["",0]],[[["",0],["rangefrom",3,[["usize",0]]]]],[[["",0],["rangefull",3]]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["",0]]],[[["",0]]],[[["",0],["",26,[["intoiterator",8],["clone",8]]]],["vec",3]],[[["",0],["vec",3]],["polynomial",3,[["lagrangecoeff",3]]]],[[["",0],["polynomial",3,[["lagrangecoeff",3]]]],["polynomial",3,[["coeff",3]]]],[[],["polynomial",3]],null,[[["",0],["rotation",3]],["bool",0]],[[["u32",0],["u32",0]]],[[],["rotation",3]],[[["",0]],["usize",0]],[[["",0]],["pinnedevaluationdomain",3]],[[],["rotation",3]],[[["",0],["rotation",3]],["polynomial",3,[["lagrangecoeff",3]]]],[[["",0],["polynomial",3],["rotation",3]],["polynomial",3,[["extendedlagrangecoeff",3]]]],[[["",0],["rotation",3]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,null,null,null,null,null,[[["blind",3]]],[[["",0]]],[[["",0],["blind",3]]],[[["",0]]],[[["",0],["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["msm",3]],[[["",0]],["guard",3]],[[["",0]],["accumulator",3]],[[["",0]],["params",3]],[[["",0]],["blind",3]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["polynomial",3],["blind",3]]],[[["",0],["polynomial",3],["blind",3]]],[[["",0]]],[[["params",3],["rngcore",8],["",0],["polynomial",3],["blind",3]],["result",6]],[[]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["",0]],["msm",3]],[[["",0],["blind",3]],["bool",0]],[[],["bool",0]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[]],null,[[["",0]],["vec",3]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[]],[[]],[[]],[[]],[[]],[[["blind",3]]],[[["",0]]],[[["",0],["blind",3]]],[[["",0],["blind",3]],["bool",0]],[[["params",3]]],[[["u32",0]]],[[["",0]],["result",6]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],null,[[],["msm",3]],[[]],[[["params",3],["msm",3,[["curveaffine",8]]],["",0]],["result",4,[["guard",3,[["curveaffine",8],["encodedchallenge",8,[["curveaffine",8]]]]],["error",4]]]],[[]],[[]],[[]],[[]],[[]],[[["",0],["",0]],["result",6]],null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["proverquery",3]],[[["",0]],["verifierquery",3]],[[["",0],["",0]]],[[["",0],["",0]]],[[["params",3],["rngcore",8],["",0]],["result",6]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]]],[[["usize",0]]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[],["usize",0]],[[],["usize",0]],[[]],[[]],[[["",0]]],[[["msm",3]]],null,null,[[["",0]]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["params",3],["",0],["msm",3,[["curveaffine",8]]]],["result",4,[["guard",3,[["curveaffine",8],["encodedchallenge",8,[["curveaffine",8]]]]],["error",4]]]],[[]],[[]],null,null,null,null,null,null,null,null,null,[[["",0]],["challengescalar",3]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["blake2bread",3]],[[["",0]],["blake2bwrite",3]],[[["",0]],["challengescalar",3]],[[["",0]],["challenge255",3]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0]],["result",6]],[[["",0]],["result",6]],[[["",0]],["result",6]],[[["",0]],["result",6]],[[["",0]],["result",6]],[[["",0]],["result",6]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["",0]]],[[["usize",0]],["",0]],[[["",0]]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[["usize",0]]],[[]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[["",0]]],[[["",0]]],[[]],[[],["usize",0]],[[]],[[],["usize",0]],[[],["usize",0]],[[],["usize",0]],[[]],[[]],[[]],[[]],[[]],[[]],[[["",0]],["result",6]],[[["",0]],["result",6]],[[["",0]],["result",6]],[[["",0]],["result",6]],[[["",0]]],[[["",0]],["challenge255",3]],[[["",0]],["challenge255",3]],[[["",0]],["challengescalar",3]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[]],[[]],[[["",0]],["result",6]],[[["",0]],["result",6]],[[["",0]],["result",6]],[[["",0]],["result",6]]],"p":[[8,"CurveExt"],[8,"CurveAffine"],[8,"FieldExt"],[8,"Group"],[8,"SqrtRatio"],[3,"Coordinates"],[3,"SqrtTables"],[8,"Field"],[8,"Chip"],[8,"Layouter"],[3,"Region"],[3,"Table"],[3,"NamespacedLayouter"],[3,"SimpleFloorPlanner"],[3,"RegionIndex"],[3,"RegionStart"],[3,"Cell"],[3,"AssignedCell"],[3,"V1Pass"],[3,"V1"],[4,"RegionColumn"],[8,"RegionLayouter"],[3,"RegionShape"],[8,"TableLayouter"],[13,"Column"],[13,"Selector"],[4,"VerifyFailure"],[4,"FailureLocation"],[3,"MockProver"],[3,"CircuitGates"],[3,"CircuitLayout"],[13,"InRegion"],[13,"OutsideRegion"],[13,"ConstraintNotSatisfied"],[13,"CellNotAssigned"],[13,"Permutation"],[13,"ConstraintPoisoned"],[13,"Lookup"],[3,"CircuitCost"],[3,"MarginalProofSize"],[3,"ProofSize"],[3,"Column"],[3,"VirtualCell"],[3,"Gate"],[3,"Constraint"],[3,"Region"],[4,"Any"],[4,"Expression"],[4,"Error"],[8,"Circuit"],[8,"VerificationStrategy"],[4,"Assigned"],[3,"ConstraintSystem"],[8,"Assignment"],[3,"Column"],[3,"Advice"],[3,"Fixed"],[3,"Instance"],[3,"Selector"],[3,"TableColumn"],[3,"Constraint"],[3,"Constraints"],[3,"PinnedConstraintSystem"],[3,"VirtualCells"],[3,"SingleVerifier"],[3,"BatchVerifier"],[3,"VerifyingKey"],[3,"PinnedVerificationKey"],[3,"ProvingKey"],[8,"FloorPlanner"],[13,"Trivial"],[13,"Rational"],[13,"Transcript"],[13,"ColumnNotInPermutation"],[13,"NotEnoughRowsAvailable"],[13,"Constant"],[13,"Selector"],[13,"Negated"],[13,"Sum"],[13,"Product"],[13,"Scaled"],[13,"Fixed"],[13,"Advice"],[13,"Instance"],[3,"Rotation"],[4,"Error"],[3,"Polynomial"],[3,"EvaluationDomain"],[3,"PinnedEvaluationDomain"],[3,"Coeff"],[3,"LagrangeCoeff"],[3,"ExtendedLagrangeCoeff"],[3,"Blind"],[3,"MSM"],[3,"Guard"],[3,"Accumulator"],[3,"Params"],[3,"ProverQuery"],[3,"VerifierQuery"],[8,"EncodedChallenge"],[3,"Blake2bRead"],[3,"Blake2bWrite"],[3,"ChallengeScalar"],[3,"Challenge255"],[8,"Transcript"],[8,"TranscriptRead"],[8,"TranscriptWrite"]]}\ }'); if (window.initSearch) {window.initSearch(searchIndex)}; \ No newline at end of file diff --git a/rustdoc/latest/src/halo2_gadgets/ecc.rs.html b/rustdoc/latest/src/halo2_gadgets/ecc.rs.html index 8f2e4fbb..854c42cd 100644 --- a/rustdoc/latest/src/halo2_gadgets/ecc.rs.html +++ b/rustdoc/latest/src/halo2_gadgets/ecc.rs.html @@ -849,6 +849,47 @@ 829 830 831 +832 +833 +834 +835 +836 +837 +838 +839 +840 +841 +842 +843 +844 +845 +846 +847 +848 +849 +850 +851 +852 +853 +854 +855 +856 +857 +858 +859 +860 +861 +862 +863 +864 +865 +866 +867 +868 +869 +870 +871 +872
//! Gadgets for elliptic curve operations.
 
 use std::fmt::Debug;
@@ -867,17 +908,11 @@
 pub trait EccInstructions<C: CurveAffine>:
     Chip<C::Base> + UtilitiesInstructions<C::Base> + Clone + Debug + Eq
 {
-    /// Variable representing an element of the elliptic curve's base field, that
-    /// is used as a scalar in variable-base scalar mul.
+    /// Variable representing a scalar used in variable-base scalar mul.
     ///
-    /// It is not true in general that a scalar field element fits in a curve's
-    /// base field, and in particular it is untrue for the Pallas curve, whose
-    /// scalar field `Fq` is larger than its base field `Fp`.
-    ///
-    /// However, the only use of variable-base scalar mul in the Orchard protocol
-    /// is in deriving diversified addresses `[ivk] g_d`,  and `ivk` is guaranteed
-    /// to be in the base field of the curve. (See non-normative notes in
-    /// https://zips.z.cash/protocol/nu5.pdf#orchardkeycomponents.)
+    /// This type is treated as a full-width scalar. However, if `Self` implements
+    /// [`BaseFitsInScalarInstructions`] then this may also be constructed from an element
+    /// of the base field.
     type ScalarVar: Clone + Debug;
     /// Variable representing a full-width element of the elliptic curve's
     /// scalar field, to be used for fixed-base scalar mul.
@@ -925,6 +960,13 @@
         value: Option<C>,
     ) -> Result<Self::NonIdentityPoint, Error>;
 
+    /// Witnesses a full-width scalar to be used in variable-base multiplication.
+    fn witness_scalar_var(
+        &self,
+        layouter: &mut impl Layouter<C::Base>,
+        value: Option<C::Scalar>,
+    ) -> Result<Self::ScalarVar, Error>;
+
     /// Extracts the x-coordinate of a point.
     fn extract_p<Point: Into<Self::Point> + Clone>(point: &Point) -> Self::X;
 
@@ -950,7 +992,7 @@
     fn mul(
         &self,
         layouter: &mut impl Layouter<C::Base>,
-        scalar: &Self::Var,
+        scalar: &Self::ScalarVar,
         base: &Self::NonIdentityPoint,
     ) -> Result<(Self::Point, Self::ScalarVar), Error>;
 
@@ -982,6 +1024,18 @@
     ) -> Result<Self::Point, Error>;
 }
 
+/// Instructions that can be implemented for a curve whose base field fits into
+/// its scalar field.
+pub trait BaseFitsInScalarInstructions<C: CurveAffine>: EccInstructions<C> {
+    /// Converts a base field element that exists as a variable in the circuit
+    /// into a scalar to be used in variable-base scalar multiplication.
+    fn scalar_var_from_base(
+        &self,
+        layouter: &mut impl Layouter<C::Base>,
+        base: &Self::Var,
+    ) -> Result<Self::ScalarVar, Error>;
+}
+
 /// Defines the fixed points for a given instantiation of the ECC chip.
 pub trait FixedPoints<C: CurveAffine>: Debug + Eq + Clone {
     /// Fixed points that can be used with full-width scalar multiplication.
@@ -1009,6 +1063,33 @@
     inner: EccChip::ScalarVar,
 }
 
+impl<C: CurveAffine, EccChip: EccInstructions<C>> ScalarVar<C, EccChip> {
+    /// Witnesses the given full-width scalar.
+    ///
+    /// Depending on the `EccChip` implementation, this may either witness the scalar
+    /// immediately, or delay witnessing until its first use in [`NonIdentityPoint::mul`].
+    pub fn new(
+        chip: EccChip,
+        mut layouter: impl Layouter<C::Base>,
+        value: Option<C::Scalar>,
+    ) -> Result<Self, Error> {
+        let scalar = chip.witness_scalar_var(&mut layouter, value);
+        scalar.map(|inner| ScalarVar { chip, inner })
+    }
+}
+
+impl<C: CurveAffine, EccChip: BaseFitsInScalarInstructions<C>> ScalarVar<C, EccChip> {
+    /// Constructs a scalar from an existing base-field element.
+    pub fn from_base(
+        chip: EccChip,
+        mut layouter: impl Layouter<C::Base>,
+        base: &EccChip::Var,
+    ) -> Result<Self, Error> {
+        let scalar = chip.scalar_var_from_base(&mut layouter, base);
+        scalar.map(|inner| ScalarVar { chip, inner })
+    }
+}
+
 /// A full-width element of the given elliptic curve's scalar field, to be used for fixed-base scalar mul.
 #[derive(Debug)]
 pub struct ScalarFixed<C: CurveAffine, EccChip: EccInstructions<C>> {
@@ -1110,10 +1191,11 @@
     pub fn mul(
         &self,
         mut layouter: impl Layouter<C::Base>,
-        by: &EccChip::Var,
+        by: ScalarVar<C, EccChip>,
     ) -> Result<(Point<C, EccChip>, ScalarVar<C, EccChip>), Error> {
+        assert_eq!(self.chip, by.chip);
         self.chip
-            .mul(&mut layouter, by, &self.inner.clone())
+            .mul(&mut layouter, &by.inner, &self.inner.clone())
             .map(|(point, scalar)| {
                 (
                     Point {
@@ -1392,7 +1474,7 @@
     }
 
     impl FixedPoint<pallas::Affine> for FullWidth {
-        type ScalarKind = FullScalar;
+        type FixedScalarKind = FullScalar;
 
         fn generator(&self) -> pallas::Affine {
             self.0
@@ -1422,7 +1504,7 @@
     }
 
     impl FixedPoint<pallas::Affine> for BaseField {
-        type ScalarKind = BaseFieldElem;
+        type FixedScalarKind = BaseFieldElem;
 
         fn generator(&self) -> pallas::Affine {
             *BASE
@@ -1452,7 +1534,7 @@
     }
 
     impl FixedPoint<pallas::Affine> for Short {
-        type ScalarKind = ShortScalar;
+        type FixedScalarKind = ShortScalar;
 
         fn generator(&self) -> pallas::Affine {
             *BASE
diff --git a/rustdoc/latest/src/halo2_gadgets/ecc/chip.rs.html b/rustdoc/latest/src/halo2_gadgets/ecc/chip.rs.html
index 622be5f1..82d32951 100644
--- a/rustdoc/latest/src/halo2_gadgets/ecc/chip.rs.html
+++ b/rustdoc/latest/src/halo2_gadgets/ecc/chip.rs.html
@@ -544,9 +544,62 @@
 524
 525
 526
+527
+528
+529
+530
+531
+532
+533
+534
+535
+536
+537
+538
+539
+540
+541
+542
+543
+544
+545
+546
+547
+548
+549
+550
+551
+552
+553
+554
+555
+556
+557
+558
+559
+560
+561
+562
+563
+564
+565
+566
+567
+568
+569
+570
+571
+572
+573
+574
+575
+576
+577
+578
+579
 
//! Chip implementations for the ECC gadgets.
 
-use super::{EccInstructions, FixedPoints};
+use super::{BaseFitsInScalarInstructions, EccInstructions, FixedPoints};
 use crate::{
     primitives::sinsemilla,
     utilities::{lookup_range_check::LookupRangeCheckConfig, UtilitiesInstructions},
@@ -709,7 +762,7 @@
 /// A trait representing the kind of scalar used with a particular `FixedPoint`.
 ///
 /// This trait exists because of limitations around const generics.
-pub trait ScalarKind {
+pub trait FixedScalarKind {
     /// The number of windows that this scalar kind requires.
     const NUM_WINDOWS: usize;
 }
@@ -718,7 +771,7 @@
 /// multiplication.
 #[derive(Debug)]
 pub enum FullScalar {}
-impl ScalarKind for FullScalar {
+impl FixedScalarKind for FullScalar {
     const NUM_WINDOWS: usize = NUM_WINDOWS;
 }
 
@@ -726,7 +779,7 @@
 /// multiplication.
 #[derive(Debug)]
 pub enum ShortScalar {}
-impl ScalarKind for ShortScalar {
+impl FixedScalarKind for ShortScalar {
     const NUM_WINDOWS: usize = NUM_WINDOWS_SHORT;
 }
 
@@ -734,13 +787,13 @@
 /// scalar multiplication.
 #[derive(Debug)]
 pub enum BaseFieldElem {}
-impl ScalarKind for BaseFieldElem {
+impl FixedScalarKind for BaseFieldElem {
     const NUM_WINDOWS: usize = NUM_WINDOWS;
 }
 
 /// Returns information about a fixed point that is required by [`EccChip`].
 ///
-/// For each window required by `Self::ScalarKind`, $z$ is a field element such that for
+/// For each window required by `Self::FixedScalarKind`, $z$ is a field element such that for
 /// each point $(x, y)$ in the window:
 /// - $z + y = u^2$ (some square in the field); and
 /// - $z - y$ is not a square.
@@ -750,7 +803,7 @@
 /// arrays instead of `Vec`s.
 pub trait FixedPoint<C: CurveAffine>: std::fmt::Debug + Eq + Clone {
     /// The kind of scalar that this fixed point can be multiplied by.
-    type ScalarKind: ScalarKind;
+    type FixedScalarKind: FixedScalarKind;
 
     /// Returns the generator for this fixed point.
     fn generator(&self) -> C;
@@ -763,7 +816,7 @@
 
     /// Returns the Lagrange coefficients for this fixed point.
     fn lagrange_coeffs(&self) -> Vec<[C::Base; H]> {
-        compute_lagrange_coeffs(self.generator(), Self::ScalarKind::NUM_WINDOWS)
+        compute_lagrange_coeffs(self.generator(), Self::FixedScalarKind::NUM_WINDOWS)
     }
 }
 
@@ -923,18 +976,38 @@
     }
 }
 
+/// An enumeration of the possible types of scalars used in variable-base
+/// multiplication.
+#[derive(Clone, Debug)]
+pub enum ScalarVar {
+    /// An element of the elliptic curve's base field, that is used as a scalar
+    /// in variable-base scalar mul.
+    ///
+    /// It is not true in general that a scalar field element fits in a curve's
+    /// base field, and in particular it is untrue for the Pallas curve, whose
+    /// scalar field `Fq` is larger than its base field `Fp`.
+    ///
+    /// However, the only use of variable-base scalar mul in the Orchard protocol
+    /// is in deriving diversified addresses `[ivk] g_d`,  and `ivk` is guaranteed
+    /// to be in the base field of the curve. (See non-normative notes in
+    /// https://zips.z.cash/protocol/nu5.pdf#orchardkeycomponents.)
+    BaseFieldElem(AssignedCell<pallas::Base, pallas::Base>),
+    /// A full-width scalar. This is unimplemented for halo2_gadgets v0.1.0.
+    FullWidth,
+}
+
 impl<Fixed: FixedPoints<pallas::Affine>> EccInstructions<pallas::Affine> for EccChip<Fixed>
 where
     <Fixed as FixedPoints<pallas::Affine>>::Base:
-        FixedPoint<pallas::Affine, ScalarKind = BaseFieldElem>,
+        FixedPoint<pallas::Affine, FixedScalarKind = BaseFieldElem>,
     <Fixed as FixedPoints<pallas::Affine>>::FullScalar:
-        FixedPoint<pallas::Affine, ScalarKind = FullScalar>,
+        FixedPoint<pallas::Affine, FixedScalarKind = FullScalar>,
     <Fixed as FixedPoints<pallas::Affine>>::ShortScalar:
-        FixedPoint<pallas::Affine, ScalarKind = ShortScalar>,
+        FixedPoint<pallas::Affine, FixedScalarKind = ShortScalar>,
 {
     type ScalarFixed = EccScalarFixed;
     type ScalarFixedShort = EccScalarFixedShort;
-    type ScalarVar = AssignedCell<pallas::Base, pallas::Base>;
+    type ScalarVar = ScalarVar;
     type Point = EccPoint;
     type NonIdentityPoint = NonIdentityEccPoint;
     type X = AssignedCell<pallas::Base, pallas::Base>;
@@ -981,6 +1054,15 @@
         )
     }
 
+    fn witness_scalar_var(
+        &self,
+        _layouter: &mut impl Layouter<pallas::Base>,
+        _value: Option<pallas::Scalar>,
+    ) -> Result<Self::ScalarVar, Error> {
+        // This is unimplemented for halo2_gadgets v0.1.0.
+        todo!()
+    }
+
     fn extract_p<Point: Into<Self::Point> + Clone>(point: &Point) -> Self::X {
         let point: EccPoint = (point.clone()).into();
         point.x()
@@ -1017,15 +1099,20 @@
     fn mul(
         &self,
         layouter: &mut impl Layouter<pallas::Base>,
-        scalar: &Self::Var,
+        scalar: &Self::ScalarVar,
         base: &Self::NonIdentityPoint,
     ) -> Result<(Self::Point, Self::ScalarVar), Error> {
         let config = self.config().mul;
-        config.assign(
-            layouter.namespace(|| "variable-base scalar mul"),
-            scalar.clone(),
-            base,
-        )
+        match scalar {
+            ScalarVar::BaseFieldElem(scalar) => config.assign(
+                layouter.namespace(|| "variable-base scalar mul"),
+                scalar.clone(),
+                base,
+            ),
+            ScalarVar::FullWidth => {
+                todo!()
+            }
+        }
     }
 
     fn mul_fixed(
@@ -1070,6 +1157,25 @@
         )
     }
 }
+
+impl<Fixed: FixedPoints<pallas::Affine>> BaseFitsInScalarInstructions<pallas::Affine>
+    for EccChip<Fixed>
+where
+    <Fixed as FixedPoints<pallas::Affine>>::Base:
+        FixedPoint<pallas::Affine, FixedScalarKind = BaseFieldElem>,
+    <Fixed as FixedPoints<pallas::Affine>>::FullScalar:
+        FixedPoint<pallas::Affine, FixedScalarKind = FullScalar>,
+    <Fixed as FixedPoints<pallas::Affine>>::ShortScalar:
+        FixedPoint<pallas::Affine, FixedScalarKind = ShortScalar>,
+{
+    fn scalar_var_from_base(
+        &self,
+        _layouter: &mut impl Layouter<pallas::Base>,
+        base: &Self::Var,
+    ) -> Result<Self::ScalarVar, Error> {
+        Ok(ScalarVar::BaseFieldElem(base.clone()))
+    }
+}
 
\ No newline at end of file diff --git a/rustdoc/latest/src/halo2_gadgets/ecc/chip/mul.rs.html b/rustdoc/latest/src/halo2_gadgets/ecc/chip/mul.rs.html index c6398a62..46707bd4 100644 --- a/rustdoc/latest/src/halo2_gadgets/ecc/chip/mul.rs.html +++ b/rustdoc/latest/src/halo2_gadgets/ecc/chip/mul.rs.html @@ -590,7 +590,22 @@ 570 571 572 -
use super::{add, EccPoint, NonIdentityEccPoint, T_Q};
+573
+574
+575
+576
+577
+578
+579
+580
+581
+582
+583
+584
+585
+586
+587
+
use super::{add, EccPoint, NonIdentityEccPoint, ScalarVar, T_Q};
 use crate::{
     primitives::sinsemilla,
     utilities::{bool_check, lookup_range_check::LookupRangeCheckConfig, ternary},
@@ -759,7 +774,7 @@
         mut layouter: impl Layouter<pallas::Base>,
         alpha: AssignedCell<pallas::Base, pallas::Base>,
         base: &NonIdentityEccPoint,
-    ) -> Result<(EccPoint, AssignedCell<pallas::Base, pallas::Base>), Error> {
+    ) -> Result<(EccPoint, ScalarVar), Error> {
         let (result, zs): (EccPoint, Vec<Z<pallas::Base>>) = layouter.assign_region(
             || "variable-base scalar mul",
             |mut region| {
@@ -885,7 +900,7 @@
             &zs,
         )?;
 
-        Ok((result, alpha))
+        Ok((result, ScalarVar::BaseFieldElem(alpha)))
     }
 
     /// Processes the final scalar bit `k_0`.
@@ -1075,7 +1090,7 @@
         ecc::{
             chip::{EccChip, EccPoint},
             tests::TestFixedBases,
-            EccInstructions, NonIdentityPoint, Point,
+            EccInstructions, NonIdentityPoint, Point, ScalarVar,
         },
         utilities::UtilitiesInstructions,
     };
@@ -1117,7 +1132,12 @@
                     column,
                     Some(scalar_val),
                 )?;
-                p.mul(layouter.namespace(|| "random [a]B"), &scalar)?
+                let scalar = ScalarVar::from_base(
+                    chip.clone(),
+                    layouter.namespace(|| "ScalarVar from_base"),
+                    &scalar,
+                )?;
+                p.mul(layouter.namespace(|| "random [a]B"), scalar)?
             };
             constrain_equal_non_id(
                 chip.clone(),
@@ -1135,7 +1155,12 @@
             let (result, _) = {
                 let scalar =
                     chip.load_private(layouter.namespace(|| "zero"), column, Some(scalar_val))?;
-                p.mul(layouter.namespace(|| "[0]B"), &scalar)?
+                let scalar = ScalarVar::from_base(
+                    chip.clone(),
+                    layouter.namespace(|| "ScalarVar from_base"),
+                    &scalar,
+                )?;
+                p.mul(layouter.namespace(|| "[0]B"), scalar)?
             };
             if let Some(is_identity) = result.inner().is_identity() {
                 assert!(is_identity);
@@ -1148,7 +1173,12 @@
             let (result, _) = {
                 let scalar =
                     chip.load_private(layouter.namespace(|| "-1"), column, Some(scalar_val))?;
-                p.mul(layouter.namespace(|| "[-1]B"), &scalar)?
+                let scalar = ScalarVar::from_base(
+                    chip.clone(),
+                    layouter.namespace(|| "ScalarVar from_base"),
+                    &scalar,
+                )?;
+                p.mul(layouter.namespace(|| "[-1]B"), scalar)?
             };
             constrain_equal_non_id(
                 chip,