diff --git a/calculator/steenrod_calculator_wasm_bg.wasm b/calculator/steenrod_calculator_wasm_bg.wasm index e324a1c14..c7384d391 100644 Binary files a/calculator/steenrod_calculator_wasm_bg.wasm and b/calculator/steenrod_calculator_wasm_bg.wasm differ diff --git a/docs/algebra/adem_algebra/struct.AdemBasisElement.html b/docs/algebra/adem_algebra/struct.AdemBasisElement.html index 6686b227e..ffd27ea6f 100644 --- a/docs/algebra/adem_algebra/struct.AdemBasisElement.html +++ b/docs/algebra/adem_algebra/struct.AdemBasisElement.html @@ -50,7 +50,7 @@

Implementations§

source§

impl AdemBasisElement

source

fn iter_filtered(&self) -> impl Iterator<Item = PorBockstein> + '_

Returns an iterator over the element’s decomposition.

This returns alternating Bocksteins and Ps, but skipping any \beta^0 factors.

-
source

fn excess(&self, p: ValidPrime) -> u32

Trait Implementations§

source§

impl Clone for AdemBasisElement

source§

fn clone(&self) -> AdemBasisElement

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for AdemBasisElement

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for AdemBasisElement

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Hash for AdemBasisElement

source§

fn hash<H: Hasher>(&self, state: &mut H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where +

source

fn excess(&self, p: ValidPrime) -> u32

Trait Implementations§

source§

impl Clone for AdemBasisElement

source§

fn clone(&self) -> AdemBasisElement

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for AdemBasisElement

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for AdemBasisElement

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Hash for AdemBasisElement

source§

fn hash<H: Hasher>(&self, state: &mut H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq for AdemBasisElement

source§

fn eq(&self, other: &Self) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always diff --git a/docs/algebra/algebra/adem_algebra/struct.AdemBasisElement.html b/docs/algebra/algebra/adem_algebra/struct.AdemBasisElement.html index bcbb6c723..322da0ca7 100644 --- a/docs/algebra/algebra/adem_algebra/struct.AdemBasisElement.html +++ b/docs/algebra/algebra/adem_algebra/struct.AdemBasisElement.html @@ -50,7 +50,7 @@

Implementations§

source§

impl AdemBasisElement

source

fn iter_filtered(&self) -> impl Iterator<Item = PorBockstein> + '_

Returns an iterator over the element’s decomposition.

This returns alternating Bocksteins and Ps, but skipping any \beta^0 factors.

-
source

fn excess(&self, p: ValidPrime) -> u32

Trait Implementations§

source§

impl Clone for AdemBasisElement

source§

fn clone(&self) -> AdemBasisElement

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for AdemBasisElement

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for AdemBasisElement

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Hash for AdemBasisElement

source§

fn hash<H: Hasher>(&self, state: &mut H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where +

source

fn excess(&self, p: ValidPrime) -> u32

Trait Implementations§

source§

impl Clone for AdemBasisElement

source§

fn clone(&self) -> AdemBasisElement

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for AdemBasisElement

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for AdemBasisElement

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Hash for AdemBasisElement

source§

fn hash<H: Hasher>(&self, state: &mut H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq for AdemBasisElement

source§

fn eq(&self, other: &Self) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always diff --git a/docs/algebra/algebra/milnor_algebra/struct.Matrix2D.html b/docs/algebra/algebra/milnor_algebra/struct.Matrix2D.html index 5c1805ca0..99769dc38 100644 --- a/docs/algebra/algebra/milnor_algebra/struct.Matrix2D.html +++ b/docs/algebra/algebra/milnor_algebra/struct.Matrix2D.html @@ -26,7 +26,7 @@

Struct algebra::algebra::milnor_algebra::Matrix2D

source ·
struct Matrix2D {
     cols: usize,
     inner: PPart,
-}

Fields§

§cols: usize§inner: PPart

Implementations§

source§

impl Matrix2D

source

fn reset(&mut self, rows: usize, cols: usize)

source§

impl Matrix2D

source

fn with_capacity(rows: usize, cols: usize) -> Self

Trait Implementations§

source§

impl Debug for Matrix2D

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for Matrix2D

source§

fn default() -> Matrix2D

Returns the “default value” for a type. Read more
source§

impl Display for Matrix2D

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Index<usize> for Matrix2D

§

type Output = [u32]

The returned type after indexing.
source§

fn index(&self, row: usize) -> &Self::Output

Performs the indexing (container[index]) operation. Read more
source§

impl IndexMut<usize> for Matrix2D

source§

fn index_mut(&mut self, row: usize) -> &mut Self::Output

Performs the mutable indexing (container[index]) operation. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +}

Fields§

§cols: usize§inner: PPart

Implementations§

source§

impl Matrix2D

source

fn reset(&mut self, rows: usize, cols: usize)

source§

impl Matrix2D

source

fn with_capacity(rows: usize, cols: usize) -> Self

Trait Implementations§

source§

impl Debug for Matrix2D

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for Matrix2D

source§

fn default() -> Matrix2D

Returns the “default value” for a type. Read more
source§

impl Display for Matrix2D

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Index<usize> for Matrix2D

§

type Output = [u32]

The returned type after indexing.
source§

fn index(&self, row: usize) -> &Self::Output

Performs the indexing (container[index]) operation. Read more
source§

impl IndexMut<usize> for Matrix2D

source§

fn index_mut(&mut self, row: usize) -> &mut Self::Output

Performs the mutable indexing (container[index]) operation. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/docs/algebra/algebra/steenrod_algebra/enum.AlgebraType.html b/docs/algebra/algebra/steenrod_algebra/enum.AlgebraType.html index 545f59bcc..3412cd871 100644 --- a/docs/algebra/algebra/steenrod_algebra/enum.AlgebraType.html +++ b/docs/algebra/algebra/steenrod_algebra/enum.AlgebraType.html @@ -26,7 +26,7 @@

Enum algebra::algebra::steenrod_algebra::AlgebraType

source ·
pub enum AlgebraType {
     Adem,
     Milnor,
-}

Variants§

§

Adem

§

Milnor

Trait Implementations§

source§

impl Clone for AlgebraType

source§

fn clone(&self) -> AlgebraType

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for AlgebraType

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for AlgebraType

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl FromStr for AlgebraType

§

type Err = Error

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<Self, Self::Err>

Parses a string s to return a value of this type. Read more
source§

impl PartialEq for AlgebraType

source§

fn eq(&self, other: &AlgebraType) -> bool

This method tests for self and other values to be equal, and is used +}

Variants§

§

Adem

§

Milnor

Trait Implementations§

source§

impl Clone for AlgebraType

source§

fn clone(&self) -> AlgebraType

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for AlgebraType

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for AlgebraType

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl FromStr for AlgebraType

§

type Err = Error

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<Self, Self::Err>

Parses a string s to return a value of this type. Read more
source§

impl PartialEq for AlgebraType

source§

fn eq(&self, other: &AlgebraType) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl TryFrom<&str> for AlgebraType

§

type Error = Error

The type returned in the event of a conversion error.
source§

fn try_from(s: &str) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl Copy for AlgebraType

source§

impl Eq for AlgebraType

source§

impl StructuralPartialEq for AlgebraType

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where diff --git a/docs/algebra/enum.AlgebraType.html b/docs/algebra/enum.AlgebraType.html index 8171277f7..880be18da 100644 --- a/docs/algebra/enum.AlgebraType.html +++ b/docs/algebra/enum.AlgebraType.html @@ -26,7 +26,7 @@

Enum algebra::AlgebraType

source ·
pub enum AlgebraType {
     Adem,
     Milnor,
-}

Variants§

§

Adem

§

Milnor

Trait Implementations§

source§

impl Clone for AlgebraType

source§

fn clone(&self) -> AlgebraType

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for AlgebraType

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for AlgebraType

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl FromStr for AlgebraType

§

type Err = Error

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<Self, Self::Err>

Parses a string s to return a value of this type. Read more
source§

impl PartialEq for AlgebraType

source§

fn eq(&self, other: &AlgebraType) -> bool

This method tests for self and other values to be equal, and is used +}

Variants§

§

Adem

§

Milnor

Trait Implementations§

source§

impl Clone for AlgebraType

source§

fn clone(&self) -> AlgebraType

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for AlgebraType

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for AlgebraType

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl FromStr for AlgebraType

§

type Err = Error

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<Self, Self::Err>

Parses a string s to return a value of this type. Read more
source§

impl PartialEq for AlgebraType

source§

fn eq(&self, other: &AlgebraType) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl TryFrom<&str> for AlgebraType

§

type Error = Error

The type returned in the event of a conversion error.
source§

fn try_from(s: &str) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl Copy for AlgebraType

source§

impl Eq for AlgebraType

source§

impl StructuralPartialEq for AlgebraType

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where diff --git a/docs/algebra/module/module_trait/struct.ModuleFailedRelationError.html b/docs/algebra/module/module_trait/struct.ModuleFailedRelationError.html index 6d059f2f3..dfd003014 100644 --- a/docs/algebra/module/module_trait/struct.ModuleFailedRelationError.html +++ b/docs/algebra/module/module_trait/struct.ModuleFailedRelationError.html @@ -26,7 +26,7 @@
pub struct ModuleFailedRelationError {
     pub relation: String,
     pub value: String,
-}

Fields§

§relation: String§value: String

Trait Implementations§

source§

impl Debug for ModuleFailedRelationError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for ModuleFailedRelationError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for ModuleFailedRelationError

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +}

Fields§

§relation: String§value: String

Trait Implementations§

source§

impl Debug for ModuleFailedRelationError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for ModuleFailedRelationError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for ModuleFailedRelationError

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/docs/algebra/module/struct.ModuleFailedRelationError.html b/docs/algebra/module/struct.ModuleFailedRelationError.html index fdd77d175..3e1c2806f 100644 --- a/docs/algebra/module/struct.ModuleFailedRelationError.html +++ b/docs/algebra/module/struct.ModuleFailedRelationError.html @@ -26,7 +26,7 @@

Struct algebra::module::ModuleFailedRelationError

source ·
pub struct ModuleFailedRelationError {
     pub relation: String,
     pub value: String,
-}

Fields§

§relation: String§value: String

Trait Implementations§

source§

impl Debug for ModuleFailedRelationError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for ModuleFailedRelationError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for ModuleFailedRelationError

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +}

Fields§

§relation: String§value: String

Trait Implementations§

source§

impl Debug for ModuleFailedRelationError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for ModuleFailedRelationError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for ModuleFailedRelationError

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/docs/fp/all.html b/docs/fp/all.html index a0440a16f..687037534 100644 --- a/docs/fp/all.html +++ b/docs/fp/all.html @@ -23,4 +23,4 @@ }); -

List of all items

Structs

Enums

Traits

Macros

Functions

Type Aliases

Statics

Constants

\ No newline at end of file +

List of all items

Structs

Enums

Traits

Macros

Functions

Type Aliases

Statics

Constants

\ No newline at end of file diff --git a/docs/fp/field/element/struct.FieldElement.html b/docs/fp/field/element/struct.FieldElement.html index 148d75f67..db71c7646 100644 --- a/docs/fp/field/element/struct.FieldElement.html +++ b/docs/fp/field/element/struct.FieldElement.html @@ -42,15 +42,15 @@ is responsible for ensuring that the invariants of value hold.

Handling FieldElements in the API rather than the containers directly has the advantage of being sure at compile-time that the invariants hold.

-
source

pub fn field(&self) -> F

source

pub(crate) fn val(self) -> F::ElementContainer

source

pub fn inv(self) -> Option<Self>

source

pub fn frobenius(self) -> Self

Trait Implementations§

source§

impl<F: Field> Add for FieldElement<F>

§

type Output = FieldElement<F>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Self) -> Self::Output

Performs the + operation. Read more
source§

impl<F: Field> AddAssign for FieldElement<F>

source§

fn add_assign(&mut self, rhs: Self)

Performs the += operation. Read more
source§

impl<F: Clone + FieldInternal> Clone for FieldElement<F>
where +

source

pub fn field(&self) -> F

source

pub(crate) fn val(self) -> F::ElementContainer

source

pub fn inv(self) -> Option<Self>

source

pub fn frobenius(self) -> Self

Trait Implementations§

source§

impl<F: Field> Add for FieldElement<F>

§

type Output = FieldElement<F>

The resulting type after applying the + operator.
source§

fn add(self, rhs: Self) -> Self::Output

Performs the + operation. Read more
source§

impl<F: Field> AddAssign for FieldElement<F>

source§

fn add_assign(&mut self, rhs: Self)

Performs the += operation. Read more
source§

impl<F: Clone + FieldInternal> Clone for FieldElement<F>

source§

fn clone(&self) -> FieldElement<F>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<F: Debug + FieldInternal> Debug for FieldElement<F>
where - F::ElementContainer: Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<F: FieldInternal> Deref for FieldElement<F>

§

type Target = <F as FieldInternal>::ElementContainer

The resulting type after dereferencing.
source§

fn deref(&self) -> &Self::Target

Dereferences the value.
source§

impl<F: Field> Display for FieldElement<F>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<F: Field> Div for FieldElement<F>

§

type Output = Option<FieldElement<F>>

The resulting type after applying the / operator.
source§

fn div(self, rhs: Self) -> Self::Output

Performs the / operation. Read more
source§

impl<P: Prime> From<FieldElement<Fp<P>>> for u32

source§

fn from(element: FieldElement<Fp<P>>) -> Self

Converts to this type from the input type.
source§

impl<F: Hash + FieldInternal> Hash for FieldElement<F>
where + F::ElementContainer: Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<F: FieldInternal> Deref for FieldElement<F>

§

type Target = <F as FieldInternal>::ElementContainer

The resulting type after dereferencing.
source§

fn deref(&self) -> &Self::Target

Dereferences the value.
source§

impl<F: Field> Display for FieldElement<F>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<F: Field> Div for FieldElement<F>

§

type Output = Option<FieldElement<F>>

The resulting type after applying the / operator.
source§

fn div(self, rhs: Self) -> Self::Output

Performs the / operation. Read more
source§

impl<P: Prime> From<FieldElement<Fp<P>>> for u32

source§

fn from(element: FieldElement<Fp<P>>) -> Self

Converts to this type from the input type.
source§

impl<F: Hash + FieldInternal> Hash for FieldElement<F>

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl<F: Field> Mul for FieldElement<F>

§

type Output = FieldElement<F>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Self) -> Self::Output

Performs the * operation. Read more
source§

impl<F: Field> MulAssign for FieldElement<F>

source§

fn mul_assign(&mut self, rhs: Self)

Performs the *= operation. Read more
source§

impl<F: Field> Neg for FieldElement<F>

§

type Output = FieldElement<F>

The resulting type after applying the - operator.
source§

fn neg(self) -> Self::Output

Performs the unary - operation. Read more
source§

impl<F: PartialEq + FieldInternal> PartialEq for FieldElement<F>
where + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl<F: Field> Mul for FieldElement<F>

§

type Output = FieldElement<F>

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Self) -> Self::Output

Performs the * operation. Read more
source§

impl<F: Field> MulAssign for FieldElement<F>

source§

fn mul_assign(&mut self, rhs: Self)

Performs the *= operation. Read more
source§

impl<F: Field> Neg for FieldElement<F>

§

type Output = FieldElement<F>

The resulting type after applying the - operator.
source§

fn neg(self) -> Self::Output

Performs the unary - operation. Read more
source§

impl<F: PartialEq + FieldInternal> PartialEq for FieldElement<F>

source§

fn eq(&self, other: &FieldElement<F>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl<F: Field> Sub for FieldElement<F>

§

type Output = FieldElement<F>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Self) -> Self::Output

Performs the - operation. Read more
source§

impl<F: Field> SubAssign for FieldElement<F>

source§

fn sub_assign(&mut self, rhs: Self)

Performs the -= operation. Read more
source§

impl<F: Copy + FieldInternal> Copy for FieldElement<F>
where +sufficient, and should not be overridden without very good reason.

source§

impl<F: Field> Sub for FieldElement<F>

§

type Output = FieldElement<F>

The resulting type after applying the - operator.
source§

fn sub(self, rhs: Self) -> Self::Output

Performs the - operation. Read more
source§

impl<F: Field> SubAssign for FieldElement<F>

source§

fn sub_assign(&mut self, rhs: Self)

Performs the -= operation. Read more
source§

impl<F: Copy + FieldInternal> Copy for FieldElement<F>

source§

impl<F: Eq + FieldInternal> Eq for FieldElement<F>
where F::ElementContainer: Eq,

source§

impl<F: FieldInternal> StructuralPartialEq for FieldElement<F>

Auto Trait Implementations§

§

impl<F> Freeze for FieldElement<F>
where F: Freeze, diff --git a/docs/fp/field/field_internal/trait.FieldInternal.html b/docs/fp/field/field_internal/trait.FieldInternal.html index 134691ea0..092cac6ec 100644 --- a/docs/fp/field/field_internal/trait.FieldInternal.html +++ b/docs/fp/field/field_internal/trait.FieldInternal.html @@ -23,7 +23,7 @@ }); -

Trait fp::field::field_internal::FieldInternal

source ·
pub trait FieldInternal: Debug + Copy + PartialEq + Eq + Hash + Sized + MaybeArbitrary<()> {
+

Trait fp::field::field_internal::FieldInternal

source ·
pub trait FieldInternal: Debug + Copy + PartialEq + Eq + Hash + Sized + MaybeArbitrary<()> + 'static {
     type ElementContainer: FieldElementContainer;
 
 
Show 25 methods // Required methods diff --git a/docs/fp/matrix/constant.MAX_COLUMNS.html b/docs/fp/matrix/constant.MAX_COLUMNS.html new file mode 100644 index 000000000..e512df372 --- /dev/null +++ b/docs/fp/matrix/constant.MAX_COLUMNS.html @@ -0,0 +1,26 @@ +MAX_COLUMNS in fp::matrix - Rust + + + + + + +

Constant fp::matrix::MAX_COLUMNS

source ·
pub const MAX_COLUMNS: usize = 100;
\ No newline at end of file diff --git a/docs/fp/matrix/constant.MAX_DIM.html b/docs/fp/matrix/constant.MAX_DIM.html new file mode 100644 index 000000000..363f51513 --- /dev/null +++ b/docs/fp/matrix/constant.MAX_DIM.html @@ -0,0 +1,26 @@ +MAX_DIM in fp::matrix - Rust + + + + + + +

Constant fp::matrix::MAX_DIM

source ·
pub const MAX_DIM: usize = 100;
\ No newline at end of file diff --git a/docs/fp/matrix/constant.MAX_ROWS.html b/docs/fp/matrix/constant.MAX_ROWS.html new file mode 100644 index 000000000..e0049fc10 --- /dev/null +++ b/docs/fp/matrix/constant.MAX_ROWS.html @@ -0,0 +1,26 @@ +MAX_ROWS in fp::matrix - Rust + + + + + + +

Constant fp::matrix::MAX_ROWS

source ·
pub const MAX_ROWS: usize = 100;
\ No newline at end of file diff --git a/docs/fp/matrix/index.html b/docs/fp/matrix/index.html index 0e9e94c72..748779bd8 100644 --- a/docs/fp/matrix/index.html +++ b/docs/fp/matrix/index.html @@ -23,5 +23,5 @@ }); -

Module fp::matrix

source ·

Modules§

Structs§

\ No newline at end of file +

Module fp::matrix

source ·

Modules§

Structs§

Constants§

\ No newline at end of file diff --git a/docs/fp/matrix/matrix_inner/arbitrary/constant.MAX_COLUMNS.html b/docs/fp/matrix/matrix_inner/arbitrary/constant.MAX_COLUMNS.html new file mode 100644 index 000000000..a45c343e8 --- /dev/null +++ b/docs/fp/matrix/matrix_inner/arbitrary/constant.MAX_COLUMNS.html @@ -0,0 +1,26 @@ +MAX_COLUMNS in fp::matrix::matrix_inner::arbitrary - Rust + + + + + + +

Constant fp::matrix::matrix_inner::arbitrary::MAX_COLUMNS

source ·
pub const MAX_COLUMNS: usize = 100;
\ No newline at end of file diff --git a/docs/fp/matrix/matrix_inner/arbitrary/constant.MAX_ROWS.html b/docs/fp/matrix/matrix_inner/arbitrary/constant.MAX_ROWS.html new file mode 100644 index 000000000..0417117cd --- /dev/null +++ b/docs/fp/matrix/matrix_inner/arbitrary/constant.MAX_ROWS.html @@ -0,0 +1,26 @@ +MAX_ROWS in fp::matrix::matrix_inner::arbitrary - Rust + + + + + + +

Constant fp::matrix::matrix_inner::arbitrary::MAX_ROWS

source ·
pub const MAX_ROWS: usize = 100;
\ No newline at end of file diff --git a/docs/fp/matrix/matrix_inner/arbitrary/index.html b/docs/fp/matrix/matrix_inner/arbitrary/index.html new file mode 100644 index 000000000..c6372f253 --- /dev/null +++ b/docs/fp/matrix/matrix_inner/arbitrary/index.html @@ -0,0 +1,26 @@ +fp::matrix::matrix_inner::arbitrary - Rust + + + + + + +

Module fp::matrix::matrix_inner::arbitrary

source ·

Structs§

Constants§

\ No newline at end of file diff --git a/docs/fp/matrix/matrix_inner/arbitrary/sidebar-items.js b/docs/fp/matrix/matrix_inner/arbitrary/sidebar-items.js new file mode 100644 index 000000000..5980442d8 --- /dev/null +++ b/docs/fp/matrix/matrix_inner/arbitrary/sidebar-items.js @@ -0,0 +1 @@ +window.SIDEBAR_ITEMS = {"constant":["MAX_COLUMNS","MAX_ROWS"],"struct":["MatrixArbParams"]}; \ No newline at end of file diff --git a/docs/fp/matrix/matrix_inner/arbitrary/struct.MatrixArbParams.html b/docs/fp/matrix/matrix_inner/arbitrary/struct.MatrixArbParams.html new file mode 100644 index 000000000..02562d4cc --- /dev/null +++ b/docs/fp/matrix/matrix_inner/arbitrary/struct.MatrixArbParams.html @@ -0,0 +1,50 @@ +MatrixArbParams in fp::matrix::matrix_inner::arbitrary - Rust + + + + + + +

Struct fp::matrix::matrix_inner::arbitrary::MatrixArbParams

source ·
pub struct MatrixArbParams {
+    pub p: Option<ValidPrime>,
+    pub rows: BoxedStrategy<usize>,
+    pub columns: BoxedStrategy<usize>,
+}

Fields§

§p: Option<ValidPrime>§rows: BoxedStrategy<usize>§columns: BoxedStrategy<usize>

Trait Implementations§

source§

impl Clone for MatrixArbParams

source§

fn clone(&self) -> MatrixArbParams

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for MatrixArbParams

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for MatrixArbParams

source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where + T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+

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

+
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where + F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> ToOwned for T
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

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

fn clone_into(&self, target: &mut T)

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

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

\ No newline at end of file diff --git a/docs/fp/matrix/matrix_inner/index.html b/docs/fp/matrix/matrix_inner/index.html index ee405bc2c..0945b4400 100644 --- a/docs/fp/matrix/matrix_inner/index.html +++ b/docs/fp/matrix/matrix_inner/index.html @@ -23,4 +23,4 @@ }); -

Module fp::matrix::matrix_inner

source ·

Structs§

\ No newline at end of file +

Module fp::matrix::matrix_inner

source ·

Modules§

Structs§

\ No newline at end of file diff --git a/docs/fp/matrix/matrix_inner/sidebar-items.js b/docs/fp/matrix/matrix_inner/sidebar-items.js index 58f9c334c..17b4218f7 100644 --- a/docs/fp/matrix/matrix_inner/sidebar-items.js +++ b/docs/fp/matrix/matrix_inner/sidebar-items.js @@ -1 +1 @@ -window.SIDEBAR_ITEMS = {"struct":["AugmentedMatrix","Matrix","MatrixSliceMut"]}; \ No newline at end of file +window.SIDEBAR_ITEMS = {"mod":["arbitrary"],"struct":["AugmentedMatrix","Matrix","MatrixSliceMut"]}; \ No newline at end of file diff --git a/docs/fp/matrix/matrix_inner/struct.AugmentedMatrix.html b/docs/fp/matrix/matrix_inner/struct.AugmentedMatrix.html index 34796c5b3..fb3de0ee0 100644 --- a/docs/fp/matrix/matrix_inner/struct.AugmentedMatrix.html +++ b/docs/fp/matrix/matrix_inner/struct.AugmentedMatrix.html @@ -23,7 +23,7 @@ }); -

Fields§

§end: [usize; N]§start: [usize; N]§inner: Matrix

Implementations§

source§

impl<const N: usize> AugmentedMatrix<N>

source

pub fn new(p: ValidPrime, rows: usize, columns: [usize; N]) -> Self

source

pub fn new_with_capacity( +

Fields§

§end: [usize; N]§start: [usize; N]§inner: Matrix

Implementations§

source§

impl<const N: usize> AugmentedMatrix<N>

source

pub fn new(p: ValidPrime, rows: usize, columns: [usize; N]) -> Self

source

pub fn new_with_capacity( p: ValidPrime, rows: usize, columns: &[usize], row_capacity: usize, extra_column_capacity: usize, -) -> Self

source

pub fn segment(&mut self, start: usize, end: usize) -> MatrixSliceMut<'_>

source

pub fn row_segment_mut( +) -> Self

source

pub fn segment(&mut self, start: usize, end: usize) -> MatrixSliceMut<'_>

source

pub fn row_segment_mut( &mut self, i: usize, start: usize, end: usize, -) -> FpSliceMut<'_>

source

pub fn row_segment(&self, i: usize, start: usize, end: usize) -> FpSlice<'_>

source

pub fn into_matrix(self) -> Matrix

source

pub fn into_tail_segment( +) -> FpSliceMut<'_>

source

pub fn row_segment(&self, i: usize, start: usize, end: usize) -> FpSlice<'_>

source

pub fn into_matrix(self) -> Matrix

source

pub fn into_tail_segment( self, row_start: usize, row_end: usize, segment_start: usize, -) -> Matrix

source

pub fn compute_kernel(&self) -> Subspace

source

pub fn extend_column_dimension(&mut self, columns: usize)

source§

impl AugmentedMatrix<2>

source§

impl AugmentedMatrix<3>

source

pub fn drop_first(self) -> AugmentedMatrix<2>

source

pub fn compute_quasi_inverses(self) -> (QuasiInverse, QuasiInverse)

This function computes quasi-inverses for matrices A, B given a reduced row echelon form of +) -> Matrix

source

pub fn compute_kernel(&self) -> Subspace

source

pub fn extend_column_dimension(&mut self, columns: usize)

source§

impl AugmentedMatrix<2>

source§

impl AugmentedMatrix<3>

source

pub fn drop_first(self) -> AugmentedMatrix<2>

source

pub fn compute_quasi_inverses(self) -> (QuasiInverse, QuasiInverse)

This function computes quasi-inverses for matrices A, B given a reduced row echelon form of [A|0|B|0|I] such that A is surjective. Moreover, if Q is the quasi-inverse of A, it is guaranteed that the image of QB and B|_{ker A} are disjoint.

This takes ownership of the matrix since it heavily modifies the matrix. This is not @@ -252,7 +252,7 @@

§Example
let desired_result = FpVector::from_slice(p, &vec![3, 5, 1]); m.apply(result.as_slice_mut(), 1, v.as_slice()); assert_eq!(result, desired_result);
-
source

pub fn trim(&mut self, row_start: usize, row_end: usize, col_start: usize)

Trait Implementations§

source§

impl<const N: usize> Clone for AugmentedMatrix<N>

source§

fn clone(&self) -> AugmentedMatrix<N>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<const N: usize> Deref for AugmentedMatrix<N>

§

type Target = Matrix

The resulting type after dereferencing.
source§

fn deref(&self) -> &Matrix

Dereferences the value.
source§

impl<const N: usize> DerefMut for AugmentedMatrix<N>

source§

fn deref_mut(&mut self) -> &mut Matrix

Mutably dereferences the value.

Auto Trait Implementations§

§

impl<const N: usize> Freeze for AugmentedMatrix<N>

§

impl<const N: usize> RefUnwindSafe for AugmentedMatrix<N>

§

impl<const N: usize> Send for AugmentedMatrix<N>

§

impl<const N: usize> Sync for AugmentedMatrix<N>

§

impl<const N: usize> Unpin for AugmentedMatrix<N>

§

impl<const N: usize> UnwindSafe for AugmentedMatrix<N>

Blanket Implementations§

source§

impl<T> Any for T
where +

source

pub fn trim(&mut self, row_start: usize, row_end: usize, col_start: usize)

Trait Implementations§

source§

impl<const N: usize> Clone for AugmentedMatrix<N>

source§

fn clone(&self) -> AugmentedMatrix<N>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<const N: usize> Deref for AugmentedMatrix<N>

§

type Target = Matrix

The resulting type after dereferencing.
source§

fn deref(&self) -> &Matrix

Dereferences the value.
source§

impl<const N: usize> DerefMut for AugmentedMatrix<N>

source§

fn deref_mut(&mut self) -> &mut Matrix

Mutably dereferences the value.

Auto Trait Implementations§

§

impl<const N: usize> Freeze for AugmentedMatrix<N>

§

impl<const N: usize> RefUnwindSafe for AugmentedMatrix<N>

§

impl<const N: usize> Send for AugmentedMatrix<N>

§

impl<const N: usize> Sync for AugmentedMatrix<N>

§

impl<const N: usize> Unpin for AugmentedMatrix<N>

§

impl<const N: usize> UnwindSafe for AugmentedMatrix<N>

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where diff --git a/docs/fp/matrix/matrix_inner/struct.Matrix.html b/docs/fp/matrix/matrix_inner/struct.Matrix.html index 1c674bdd0..727f76e49 100644 --- a/docs/fp/matrix/matrix_inner/struct.Matrix.html +++ b/docs/fp/matrix/matrix_inner/struct.Matrix.html @@ -23,7 +23,7 @@ }); -

Fields§

§p: ValidPrime§columns: usize§vectors: Vec<FpVector>§pivots: Vec<isize>

The pivot columns of the matrix. pivots[n] is k if column n is the kth pivot column, and a negative number otherwise. Said negative number is often -1 but this is not guaranteed.

-

Implementations§

source§

impl Matrix

source

pub fn new(p: ValidPrime, rows: usize, columns: usize) -> Self

Produces a new matrix over F_p with the specified number of rows and columns, initialized +

Implementations§

source§

impl Matrix

source

pub fn arbitrary_rref_with(args: MatrixArbParams) -> impl Strategy<Value = Self>

Generate an arbitrary row-reduced matrix.

+

This is more interesting than just generating an arbitrary matrix and row-reducing. If +we pick a matrix uniformly at random in the space of all $n \times m$ matrices, it has a +very high probability of having full rank with all its pivots in the first $n$ columns. +This implies that, after projecting to the space of row-reduced matrices, the output is +very likely to be an identity matrix augmented by a random matrix. If $m$ is +significantly larger than $n$, this is only a tiny subspace of the space of all +row-reduced matrices.

+

While a search through all $n \times m$ matrices will also cover all row-reduced +matrices, in practice this space is so large that we only test a vanishingly small +fraction of it. Therefore, if a method that is sensitive to the pivot structure of the +input matrix is proptested using arbitrary_with, it is unlikely that the tests will +cover many matrices with interesting pivots, while those are the most likely to cause +bugs. This function attempts to generate a matrix that is chosen uniformly at random +directly in the space of all row-reduced matrices.

+

In practice, this is not quite right. There is no randomness in the code; instead we +generate a Strategy that samples from only the space of row-reduced matrices. Also, +depending on the parameters, the strategy may output matrices that are not all of the +same size or even over the same ground field, so using the word “space” is slightly +improper, mathematically speaking.

+
source

pub fn arbitrary_rref() -> impl Strategy<Value = Self>

source§

impl Matrix

source

pub fn new(p: ValidPrime, rows: usize, columns: usize) -> Self

Produces a new matrix over F_p with the specified number of rows and columns, initialized to the 0 matrix.

source

pub fn new_with_capacity( p: ValidPrime, @@ -50,7 +70,7 @@ data: &mut impl Read, ) -> Result<Self>

source

pub fn to_bytes(&self, data: &mut impl Write) -> Result<()>

source

pub(crate) fn write_pivot(v: &[isize], buffer: &mut impl Write) -> Result<()>

Read a vector of isize

source

pub(crate) fn read_pivot(dim: usize, data: &mut impl Read) -> Result<Vec<isize>>

Read a vector of isize of length dim.

-
source§

impl Matrix

source

pub fn prime(&self) -> ValidPrime

source

pub fn rows(&self) -> usize

Gets the number of rows in the matrix.

+
source§

impl Matrix

source

pub fn prime(&self) -> ValidPrime

source

pub fn rows(&self) -> usize

Gets the number of rows in the matrix.

source

pub fn columns(&self) -> usize

Gets the number of columns in the matrix.

source

pub fn initialize_pivots(&mut self)

Set the pivots to -1 in every entry. This is called by Matrix::row_reduce.

source

pub fn pivots(&self) -> &[isize]

source

pub fn pivots_mut(&mut self) -> &mut [isize]

source

pub fn from_rows(p: ValidPrime, rows: Vec<FpVector>, columns: usize) -> Self

Produces a Matrix from a vector of FpVectors. We pass in the number of columns because all @@ -76,9 +96,9 @@

§Example
row_end: usize, col_start: usize, col_end: usize, -) -> MatrixSliceMut<'_>

source

pub fn row(&self, row: usize) -> FpSlice<'_>

source

pub fn row_mut(&mut self, row: usize) -> FpSliceMut<'_>

source§

impl Matrix

source

pub fn iter(&self) -> Iter<'_, FpVector>

source

pub fn iter_mut(&mut self) -> IterMut<'_, FpVector>

source

pub fn maybe_par_iter_mut( +) -> MatrixSliceMut<'_>

source

pub fn row(&self, row: usize) -> FpSlice<'_>

source

pub fn row_mut(&mut self, row: usize) -> FpSliceMut<'_>

source§

impl Matrix

source

pub fn iter(&self) -> Iter<'_, FpVector>

source

pub fn iter_mut(&mut self) -> IterMut<'_, FpVector>

source

pub fn maybe_par_iter_mut( &mut self, -) -> impl MaybeIndexedParallelIterator<Item = &mut FpVector> + '_

source§

impl Matrix

source

pub fn safe_row_op(&mut self, target: usize, source: usize, c: u32)

A no-nonsense, safe, row operation. Adds c * self[source] to self[target].

+) -> impl MaybeIndexedParallelIterator<Item = &mut FpVector> + '_

source§

impl Matrix

source

pub fn safe_row_op(&mut self, target: usize, source: usize, c: u32)

A no-nonsense, safe, row operation. Adds c * self[source] to self[target].

source

pub unsafe fn row_op( &mut self, target: usize, @@ -132,7 +152,7 @@

§Example
m.row_reduce(); assert_eq!(m, Matrix::from_vec(p, &result));
-
source§

impl Matrix

source

pub fn find_first_row_in_block(&self, first_column: usize) -> usize

Given a row reduced matrix, find the first row whose pivot column is after (or at) +

source§

impl Matrix

source

pub fn find_first_row_in_block(&self, first_column: usize) -> usize

Given a row reduced matrix, find the first row whose pivot column is after (or at) first_column.

source

pub fn compute_quasi_inverse( &self, @@ -260,7 +280,11 @@

§Example
let desired_result = FpVector::from_slice(p, &vec![3, 5, 1]); m.apply(result.as_slice_mut(), 1, v.as_slice()); assert_eq!(result, desired_result);
-
source

pub fn trim(&mut self, row_start: usize, row_end: usize, col_start: usize)

Trait Implementations§

source§

impl AddAssign<&Matrix> for Matrix

source§

fn add_assign(&mut self, rhs: &Self)

Performs the += operation. Read more
source§

impl Clone for Matrix

source§

fn clone(&self) -> Matrix

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Matrix

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for Matrix

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

§Example
+
source

pub fn trim(&mut self, row_start: usize, row_end: usize, col_start: usize)

Trait Implementations§

source§

impl AddAssign<&Matrix> for Matrix

source§

fn add_assign(&mut self, rhs: &Self)

Performs the += operation. Read more
source§

impl Arbitrary for Matrix

§

type Parameters = MatrixArbParams

The type of parameters that arbitrary_with accepts for configuration +of the generated Strategy. Parameters must implement Default.
§

type Strategy = BoxedStrategy<Matrix>

The type of Strategy used to generate values of type Self.
source§

fn arbitrary_with(args: Self::Parameters) -> Self::Strategy

Generates a Strategy for producing arbitrary values of type the +implementing type (Self). The strategy is passed the arguments given +in args. Read more
§

fn arbitrary() -> Self::Strategy

Generates a Strategy for producing arbitrary values +of type the implementing type (Self). Read more
source§

impl Clone for Matrix

source§

fn clone(&self) -> Matrix

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Matrix

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for Matrix

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

§Example
let m = Matrix::from_vec(ValidPrime::new(2), &[vec![0, 1, 0], vec![1, 1, 0]]);
 assert_eq!(&format!("{m}"), "[\n    [0, 1, 0],\n    [1, 1, 0]\n]");
 assert_eq!(&format!("{m:#}"), "010\n110");
@@ -268,7 +292,7 @@
§Example
Vec<FpVector>: Index<I>,
source§

fn index(&self, i: I) -> &Self::Output

Returns the ith row of the matrix

§

type Output = <Vec<FpVector> as Index<I>>::Output

The returned type after indexing.
source§

impl<I> IndexMut<I> for Matrix
where Vec<FpVector>: IndexMut<I>,

source§

fn index_mut(&mut self, i: I) -> &mut Self::Output

Returns the ith row of the matrix

-
source§

impl<'a> IntoIterator for &'a Matrix

§

type IntoIter = Iter<'a, FpVector>

Which kind of iterator are we turning this into?
§

type Item = &'a FpVector

The type of the elements being iterated over.
source§

fn into_iter(self) -> Self::IntoIter

Creates an iterator from a value. Read more
source§

impl<'a> IntoIterator for &'a mut Matrix

§

type IntoIter = IterMut<'a, FpVector>

Which kind of iterator are we turning this into?
§

type Item = &'a mut FpVector

The type of the elements being iterated over.
source§

fn into_iter(self) -> Self::IntoIter

Creates an iterator from a value. Read more
source§

impl IntoIterator for Matrix

§

type IntoIter = IntoIter<FpVector>

Which kind of iterator are we turning this into?
§

type Item = FpVector

The type of the elements being iterated over.
source§

fn into_iter(self) -> Self::IntoIter

Creates an iterator from a value. Read more
source§

impl Mul for &Matrix

§

type Output = Matrix

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Self) -> Matrix

Performs the * operation. Read more
source§

impl MulAssign<u32> for Matrix

source§

fn mul_assign(&mut self, rhs: u32)

Performs the *= operation. Read more
source§

impl PartialEq for Matrix

source§

fn eq(&self, other: &Self) -> bool

This method tests for self and other values to be equal, and is used +
source§

impl<'a> IntoIterator for &'a Matrix

§

type IntoIter = Iter<'a, FpVector>

Which kind of iterator are we turning this into?
§

type Item = &'a FpVector

The type of the elements being iterated over.
source§

fn into_iter(self) -> Self::IntoIter

Creates an iterator from a value. Read more
source§

impl<'a> IntoIterator for &'a mut Matrix

§

type IntoIter = IterMut<'a, FpVector>

Which kind of iterator are we turning this into?
§

type Item = &'a mut FpVector

The type of the elements being iterated over.
source§

fn into_iter(self) -> Self::IntoIter

Creates an iterator from a value. Read more
source§

impl IntoIterator for Matrix

§

type IntoIter = IntoIter<FpVector>

Which kind of iterator are we turning this into?
§

type Item = FpVector

The type of the elements being iterated over.
source§

fn into_iter(self) -> Self::IntoIter

Creates an iterator from a value. Read more
source§

impl Mul for &Matrix

§

type Output = Matrix

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Self) -> Matrix

Performs the * operation. Read more
source§

impl MulAssign<u32> for Matrix

source§

fn mul_assign(&mut self, rhs: u32)

Performs the *= operation. Read more
source§

impl PartialEq for Matrix

source§

fn eq(&self, other: &Self) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Eq for Matrix

Auto Trait Implementations§

§

impl Freeze for Matrix

§

impl RefUnwindSafe for Matrix

§

impl Send for Matrix

§

impl Sync for Matrix

§

impl Unpin for Matrix

§

impl UnwindSafe for Matrix

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where diff --git a/docs/fp/matrix/matrix_inner/struct.MatrixSliceMut.html b/docs/fp/matrix/matrix_inner/struct.MatrixSliceMut.html index 2e89623fb..fc0192ae2 100644 --- a/docs/fp/matrix/matrix_inner/struct.MatrixSliceMut.html +++ b/docs/fp/matrix/matrix_inner/struct.MatrixSliceMut.html @@ -23,17 +23,17 @@ }); -

Struct fp::matrix::matrix_inner::MatrixSliceMut

source ·
pub struct MatrixSliceMut<'a> {
+

Struct fp::matrix::matrix_inner::MatrixSliceMut

source ·
pub struct MatrixSliceMut<'a> {
     vectors: &'a mut [FpVector],
     col_start: usize,
     col_end: usize,
-}

Fields§

§vectors: &'a mut [FpVector]§col_start: usize§col_end: usize

Implementations§

source§

impl<'a> MatrixSliceMut<'a>

source

pub fn columns(&self) -> usize

source

pub fn rows(&self) -> usize

source

pub fn row_slice<'b: 'a>( +}

Fields§

§vectors: &'a mut [FpVector]§col_start: usize§col_end: usize

Implementations§

source§

impl<'a> MatrixSliceMut<'a>

source

pub fn columns(&self) -> usize

source

pub fn rows(&self) -> usize

source

pub fn row_slice<'b: 'a>( &'b mut self, row_start: usize, row_end: usize, -) -> MatrixSliceMut<'b>

source

pub fn iter(&self) -> impl Iterator<Item = FpSlice<'_>> + '_

source

pub fn iter_mut(&mut self) -> impl Iterator<Item = FpSliceMut<'_>> + '_

source

pub fn maybe_par_iter_mut( +) -> MatrixSliceMut<'b>

source

pub fn iter(&self) -> impl Iterator<Item = FpSlice<'_>> + '_

source

pub fn iter_mut(&mut self) -> impl Iterator<Item = FpSliceMut<'_>> + '_

source

pub fn maybe_par_iter_mut( &mut self, -) -> impl MaybeIndexedParallelIterator<Item = FpSliceMut<'_>> + '_

source

pub fn row(&mut self, row: usize) -> FpSlice<'_>

source

pub fn row_mut(&mut self, row: usize) -> FpSliceMut<'_>

source

pub fn add_identity(&mut self)

source

pub fn add_masked(&mut self, other: &Matrix, mask: &[usize])

For each row, add the v[i]th entry of other to self.

+) -> impl MaybeIndexedParallelIterator<Item = FpSliceMut<'_>> + '_

source

pub fn row(&mut self, row: usize) -> FpSlice<'_>

source

pub fn row_mut(&mut self, row: usize) -> FpSliceMut<'_>

source

pub fn add_identity(&mut self)

source

pub fn add_masked(&mut self, other: &Matrix, mask: &[usize])

For each row, add the v[i]th entry of other to self.

Auto Trait Implementations§

§

impl<'a> Freeze for MatrixSliceMut<'a>

§

impl<'a> RefUnwindSafe for MatrixSliceMut<'a>

§

impl<'a> Send for MatrixSliceMut<'a>

§

impl<'a> Sync for MatrixSliceMut<'a>

§

impl<'a> Unpin for MatrixSliceMut<'a>

§

impl<'a> !UnwindSafe for MatrixSliceMut<'a>

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where diff --git a/docs/fp/matrix/sidebar-items.js b/docs/fp/matrix/sidebar-items.js index a2cbafb7c..386c90e4b 100644 --- a/docs/fp/matrix/sidebar-items.js +++ b/docs/fp/matrix/sidebar-items.js @@ -1 +1 @@ -window.SIDEBAR_ITEMS = {"mod":["affine","m4ri","matrix_inner","quasi_inverse","subquotient","subspace"],"struct":["AffineSubspace","AugmentedMatrix","Matrix","MatrixSliceMut","QuasiInverse","Subquotient","Subspace"]}; \ No newline at end of file +window.SIDEBAR_ITEMS = {"constant":["MAX_COLUMNS","MAX_DIM","MAX_ROWS"],"mod":["affine","m4ri","matrix_inner","quasi_inverse","subquotient","subspace"],"struct":["AffineSubspace","AugmentedMatrix","Matrix","MatrixArbParams","MatrixSliceMut","QuasiInverse","Subquotient","SubquotientArbParams","Subspace","SubspaceArbParams"]}; \ No newline at end of file diff --git a/docs/fp/matrix/struct.AugmentedMatrix.html b/docs/fp/matrix/struct.AugmentedMatrix.html index a095cbe0e..bd1b5e8e5 100644 --- a/docs/fp/matrix/struct.AugmentedMatrix.html +++ b/docs/fp/matrix/struct.AugmentedMatrix.html @@ -23,7 +23,7 @@ }); -

Fields§

§end: [usize; N]§start: [usize; N]§inner: Matrix

Implementations§

source§

impl<const N: usize> AugmentedMatrix<N>

source

pub fn new(p: ValidPrime, rows: usize, columns: [usize; N]) -> Self

source

pub fn new_with_capacity( +

Fields§

§end: [usize; N]§start: [usize; N]§inner: Matrix

Implementations§

source§

impl<const N: usize> AugmentedMatrix<N>

source

pub fn new(p: ValidPrime, rows: usize, columns: [usize; N]) -> Self

source

pub fn new_with_capacity( p: ValidPrime, rows: usize, columns: &[usize], row_capacity: usize, extra_column_capacity: usize, -) -> Self

source

pub fn segment(&mut self, start: usize, end: usize) -> MatrixSliceMut<'_>

source

pub fn row_segment_mut( +) -> Self

source

pub fn segment(&mut self, start: usize, end: usize) -> MatrixSliceMut<'_>

source

pub fn row_segment_mut( &mut self, i: usize, start: usize, end: usize, -) -> FpSliceMut<'_>

source

pub fn row_segment(&self, i: usize, start: usize, end: usize) -> FpSlice<'_>

source

pub fn into_matrix(self) -> Matrix

source

pub fn into_tail_segment( +) -> FpSliceMut<'_>

source

pub fn row_segment(&self, i: usize, start: usize, end: usize) -> FpSlice<'_>

source

pub fn into_matrix(self) -> Matrix

source

pub fn into_tail_segment( self, row_start: usize, row_end: usize, segment_start: usize, -) -> Matrix

source

pub fn compute_kernel(&self) -> Subspace

source

pub fn extend_column_dimension(&mut self, columns: usize)

source§

impl AugmentedMatrix<2>

source§

impl AugmentedMatrix<3>

source

pub fn drop_first(self) -> AugmentedMatrix<2>

source

pub fn compute_quasi_inverses(self) -> (QuasiInverse, QuasiInverse)

This function computes quasi-inverses for matrices A, B given a reduced row echelon form of +) -> Matrix

source

pub fn compute_kernel(&self) -> Subspace

source

pub fn extend_column_dimension(&mut self, columns: usize)

source§

impl AugmentedMatrix<2>

source§

impl AugmentedMatrix<3>

source

pub fn drop_first(self) -> AugmentedMatrix<2>

source

pub fn compute_quasi_inverses(self) -> (QuasiInverse, QuasiInverse)

This function computes quasi-inverses for matrices A, B given a reduced row echelon form of [A|0|B|0|I] such that A is surjective. Moreover, if Q is the quasi-inverse of A, it is guaranteed that the image of QB and B|_{ker A} are disjoint.

This takes ownership of the matrix since it heavily modifies the matrix. This is not @@ -252,7 +252,7 @@

§Example
let desired_result = FpVector::from_slice(p, &vec![3, 5, 1]); m.apply(result.as_slice_mut(), 1, v.as_slice()); assert_eq!(result, desired_result);
-
source

pub fn trim(&mut self, row_start: usize, row_end: usize, col_start: usize)

Trait Implementations§

source§

impl<const N: usize> Clone for AugmentedMatrix<N>

source§

fn clone(&self) -> AugmentedMatrix<N>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<const N: usize> Deref for AugmentedMatrix<N>

§

type Target = Matrix

The resulting type after dereferencing.
source§

fn deref(&self) -> &Matrix

Dereferences the value.
source§

impl<const N: usize> DerefMut for AugmentedMatrix<N>

source§

fn deref_mut(&mut self) -> &mut Matrix

Mutably dereferences the value.

Auto Trait Implementations§

§

impl<const N: usize> Freeze for AugmentedMatrix<N>

§

impl<const N: usize> RefUnwindSafe for AugmentedMatrix<N>

§

impl<const N: usize> Send for AugmentedMatrix<N>

§

impl<const N: usize> Sync for AugmentedMatrix<N>

§

impl<const N: usize> Unpin for AugmentedMatrix<N>

§

impl<const N: usize> UnwindSafe for AugmentedMatrix<N>

Blanket Implementations§

source§

impl<T> Any for T
where +

source

pub fn trim(&mut self, row_start: usize, row_end: usize, col_start: usize)

Trait Implementations§

source§

impl<const N: usize> Clone for AugmentedMatrix<N>

source§

fn clone(&self) -> AugmentedMatrix<N>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<const N: usize> Deref for AugmentedMatrix<N>

§

type Target = Matrix

The resulting type after dereferencing.
source§

fn deref(&self) -> &Matrix

Dereferences the value.
source§

impl<const N: usize> DerefMut for AugmentedMatrix<N>

source§

fn deref_mut(&mut self) -> &mut Matrix

Mutably dereferences the value.

Auto Trait Implementations§

§

impl<const N: usize> Freeze for AugmentedMatrix<N>

§

impl<const N: usize> RefUnwindSafe for AugmentedMatrix<N>

§

impl<const N: usize> Send for AugmentedMatrix<N>

§

impl<const N: usize> Sync for AugmentedMatrix<N>

§

impl<const N: usize> Unpin for AugmentedMatrix<N>

§

impl<const N: usize> UnwindSafe for AugmentedMatrix<N>

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where diff --git a/docs/fp/matrix/struct.Matrix.html b/docs/fp/matrix/struct.Matrix.html index c83f4984c..b08878d88 100644 --- a/docs/fp/matrix/struct.Matrix.html +++ b/docs/fp/matrix/struct.Matrix.html @@ -23,7 +23,7 @@ }); -

Fields§

§p: ValidPrime§columns: usize§vectors: Vec<FpVector>§pivots: Vec<isize>

The pivot columns of the matrix. pivots[n] is k if column n is the kth pivot column, and a negative number otherwise. Said negative number is often -1 but this is not guaranteed.

-

Implementations§

source§

impl Matrix

source

pub fn new(p: ValidPrime, rows: usize, columns: usize) -> Self

Produces a new matrix over F_p with the specified number of rows and columns, initialized +

Implementations§

source§

impl Matrix

source

pub fn arbitrary_rref_with(args: MatrixArbParams) -> impl Strategy<Value = Self>

Generate an arbitrary row-reduced matrix.

+

This is more interesting than just generating an arbitrary matrix and row-reducing. If +we pick a matrix uniformly at random in the space of all $n \times m$ matrices, it has a +very high probability of having full rank with all its pivots in the first $n$ columns. +This implies that, after projecting to the space of row-reduced matrices, the output is +very likely to be an identity matrix augmented by a random matrix. If $m$ is +significantly larger than $n$, this is only a tiny subspace of the space of all +row-reduced matrices.

+

While a search through all $n \times m$ matrices will also cover all row-reduced +matrices, in practice this space is so large that we only test a vanishingly small +fraction of it. Therefore, if a method that is sensitive to the pivot structure of the +input matrix is proptested using arbitrary_with, it is unlikely that the tests will +cover many matrices with interesting pivots, while those are the most likely to cause +bugs. This function attempts to generate a matrix that is chosen uniformly at random +directly in the space of all row-reduced matrices.

+

In practice, this is not quite right. There is no randomness in the code; instead we +generate a Strategy that samples from only the space of row-reduced matrices. Also, +depending on the parameters, the strategy may output matrices that are not all of the +same size or even over the same ground field, so using the word “space” is slightly +improper, mathematically speaking.

+
source

pub fn arbitrary_rref() -> impl Strategy<Value = Self>

source§

impl Matrix

source

pub fn new(p: ValidPrime, rows: usize, columns: usize) -> Self

Produces a new matrix over F_p with the specified number of rows and columns, initialized to the 0 matrix.

source

pub fn new_with_capacity( p: ValidPrime, @@ -50,7 +70,7 @@ data: &mut impl Read, ) -> Result<Self>

source

pub fn to_bytes(&self, data: &mut impl Write) -> Result<()>

source

pub(crate) fn write_pivot(v: &[isize], buffer: &mut impl Write) -> Result<()>

Read a vector of isize

source

pub(crate) fn read_pivot(dim: usize, data: &mut impl Read) -> Result<Vec<isize>>

Read a vector of isize of length dim.

-
source§

impl Matrix

source

pub fn prime(&self) -> ValidPrime

source

pub fn rows(&self) -> usize

Gets the number of rows in the matrix.

+
source§

impl Matrix

source

pub fn prime(&self) -> ValidPrime

source

pub fn rows(&self) -> usize

Gets the number of rows in the matrix.

source

pub fn columns(&self) -> usize

Gets the number of columns in the matrix.

source

pub fn initialize_pivots(&mut self)

Set the pivots to -1 in every entry. This is called by Matrix::row_reduce.

source

pub fn pivots(&self) -> &[isize]

source

pub fn pivots_mut(&mut self) -> &mut [isize]

source

pub fn from_rows(p: ValidPrime, rows: Vec<FpVector>, columns: usize) -> Self

Produces a Matrix from a vector of FpVectors. We pass in the number of columns because all @@ -76,9 +96,9 @@

§Example
row_end: usize, col_start: usize, col_end: usize, -) -> MatrixSliceMut<'_>
source

pub fn row(&self, row: usize) -> FpSlice<'_>

source

pub fn row_mut(&mut self, row: usize) -> FpSliceMut<'_>

source§

impl Matrix

source

pub fn iter(&self) -> Iter<'_, FpVector>

source

pub fn iter_mut(&mut self) -> IterMut<'_, FpVector>

source

pub fn maybe_par_iter_mut( +) -> MatrixSliceMut<'_>

source

pub fn row(&self, row: usize) -> FpSlice<'_>

source

pub fn row_mut(&mut self, row: usize) -> FpSliceMut<'_>

source§

impl Matrix

source

pub fn iter(&self) -> Iter<'_, FpVector>

source

pub fn iter_mut(&mut self) -> IterMut<'_, FpVector>

source

pub fn maybe_par_iter_mut( &mut self, -) -> impl MaybeIndexedParallelIterator<Item = &mut FpVector> + '_

source§

impl Matrix

source

pub fn safe_row_op(&mut self, target: usize, source: usize, c: u32)

A no-nonsense, safe, row operation. Adds c * self[source] to self[target].

+) -> impl MaybeIndexedParallelIterator<Item = &mut FpVector> + '_
source§

impl Matrix

source

pub fn safe_row_op(&mut self, target: usize, source: usize, c: u32)

A no-nonsense, safe, row operation. Adds c * self[source] to self[target].

source

pub unsafe fn row_op( &mut self, target: usize, @@ -132,7 +152,7 @@

§Example
m.row_reduce(); assert_eq!(m, Matrix::from_vec(p, &result));
-
source§

impl Matrix

source

pub fn find_first_row_in_block(&self, first_column: usize) -> usize

Given a row reduced matrix, find the first row whose pivot column is after (or at) +

source§

impl Matrix

source

pub fn find_first_row_in_block(&self, first_column: usize) -> usize

Given a row reduced matrix, find the first row whose pivot column is after (or at) first_column.

source

pub fn compute_quasi_inverse( &self, @@ -260,7 +280,11 @@

§Example
let desired_result = FpVector::from_slice(p, &vec![3, 5, 1]); m.apply(result.as_slice_mut(), 1, v.as_slice()); assert_eq!(result, desired_result);
-
source

pub fn trim(&mut self, row_start: usize, row_end: usize, col_start: usize)

Trait Implementations§

source§

impl AddAssign<&Matrix> for Matrix

source§

fn add_assign(&mut self, rhs: &Self)

Performs the += operation. Read more
source§

impl Clone for Matrix

source§

fn clone(&self) -> Matrix

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Matrix

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for Matrix

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

§Example
+
source

pub fn trim(&mut self, row_start: usize, row_end: usize, col_start: usize)

Trait Implementations§

source§

impl AddAssign<&Matrix> for Matrix

source§

fn add_assign(&mut self, rhs: &Self)

Performs the += operation. Read more
source§

impl Arbitrary for Matrix

§

type Parameters = MatrixArbParams

The type of parameters that arbitrary_with accepts for configuration +of the generated Strategy. Parameters must implement Default.
§

type Strategy = BoxedStrategy<Matrix>

The type of Strategy used to generate values of type Self.
source§

fn arbitrary_with(args: Self::Parameters) -> Self::Strategy

Generates a Strategy for producing arbitrary values of type the +implementing type (Self). The strategy is passed the arguments given +in args. Read more
§

fn arbitrary() -> Self::Strategy

Generates a Strategy for producing arbitrary values +of type the implementing type (Self). Read more
source§

impl Clone for Matrix

source§

fn clone(&self) -> Matrix

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Matrix

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for Matrix

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

§Example
let m = Matrix::from_vec(ValidPrime::new(2), &[vec![0, 1, 0], vec![1, 1, 0]]);
 assert_eq!(&format!("{m}"), "[\n    [0, 1, 0],\n    [1, 1, 0]\n]");
 assert_eq!(&format!("{m:#}"), "010\n110");
@@ -268,7 +292,7 @@
§Example
Vec<FpVector>: Index<I>,
source§

fn index(&self, i: I) -> &Self::Output

Returns the ith row of the matrix

§

type Output = <Vec<FpVector> as Index<I>>::Output

The returned type after indexing.
source§

impl<I> IndexMut<I> for Matrix
where Vec<FpVector>: IndexMut<I>,

source§

fn index_mut(&mut self, i: I) -> &mut Self::Output

Returns the ith row of the matrix

-
source§

impl<'a> IntoIterator for &'a Matrix

§

type IntoIter = Iter<'a, FpVector>

Which kind of iterator are we turning this into?
§

type Item = &'a FpVector

The type of the elements being iterated over.
source§

fn into_iter(self) -> Self::IntoIter

Creates an iterator from a value. Read more
source§

impl<'a> IntoIterator for &'a mut Matrix

§

type IntoIter = IterMut<'a, FpVector>

Which kind of iterator are we turning this into?
§

type Item = &'a mut FpVector

The type of the elements being iterated over.
source§

fn into_iter(self) -> Self::IntoIter

Creates an iterator from a value. Read more
source§

impl IntoIterator for Matrix

§

type IntoIter = IntoIter<FpVector>

Which kind of iterator are we turning this into?
§

type Item = FpVector

The type of the elements being iterated over.
source§

fn into_iter(self) -> Self::IntoIter

Creates an iterator from a value. Read more
source§

impl Mul for &Matrix

§

type Output = Matrix

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Self) -> Matrix

Performs the * operation. Read more
source§

impl MulAssign<u32> for Matrix

source§

fn mul_assign(&mut self, rhs: u32)

Performs the *= operation. Read more
source§

impl PartialEq for Matrix

source§

fn eq(&self, other: &Self) -> bool

This method tests for self and other values to be equal, and is used +
source§

impl<'a> IntoIterator for &'a Matrix

§

type IntoIter = Iter<'a, FpVector>

Which kind of iterator are we turning this into?
§

type Item = &'a FpVector

The type of the elements being iterated over.
source§

fn into_iter(self) -> Self::IntoIter

Creates an iterator from a value. Read more
source§

impl<'a> IntoIterator for &'a mut Matrix

§

type IntoIter = IterMut<'a, FpVector>

Which kind of iterator are we turning this into?
§

type Item = &'a mut FpVector

The type of the elements being iterated over.
source§

fn into_iter(self) -> Self::IntoIter

Creates an iterator from a value. Read more
source§

impl IntoIterator for Matrix

§

type IntoIter = IntoIter<FpVector>

Which kind of iterator are we turning this into?
§

type Item = FpVector

The type of the elements being iterated over.
source§

fn into_iter(self) -> Self::IntoIter

Creates an iterator from a value. Read more
source§

impl Mul for &Matrix

§

type Output = Matrix

The resulting type after applying the * operator.
source§

fn mul(self, rhs: Self) -> Matrix

Performs the * operation. Read more
source§

impl MulAssign<u32> for Matrix

source§

fn mul_assign(&mut self, rhs: u32)

Performs the *= operation. Read more
source§

impl PartialEq for Matrix

source§

fn eq(&self, other: &Self) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Eq for Matrix

Auto Trait Implementations§

§

impl Freeze for Matrix

§

impl RefUnwindSafe for Matrix

§

impl Send for Matrix

§

impl Sync for Matrix

§

impl Unpin for Matrix

§

impl UnwindSafe for Matrix

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where diff --git a/docs/fp/matrix/struct.MatrixArbParams.html b/docs/fp/matrix/struct.MatrixArbParams.html new file mode 100644 index 000000000..d23e44f19 --- /dev/null +++ b/docs/fp/matrix/struct.MatrixArbParams.html @@ -0,0 +1,50 @@ +MatrixArbParams in fp::matrix - Rust + + + + + + +

Struct fp::matrix::MatrixArbParams

source ·
pub struct MatrixArbParams {
+    pub p: Option<ValidPrime>,
+    pub rows: BoxedStrategy<usize>,
+    pub columns: BoxedStrategy<usize>,
+}

Fields§

§p: Option<ValidPrime>§rows: BoxedStrategy<usize>§columns: BoxedStrategy<usize>

Trait Implementations§

source§

impl Clone for MatrixArbParams

source§

fn clone(&self) -> MatrixArbParams

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for MatrixArbParams

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for MatrixArbParams

source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where + T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+

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

+
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where + F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> ToOwned for T
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

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

fn clone_into(&self, target: &mut T)

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

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

\ No newline at end of file diff --git a/docs/fp/matrix/struct.MatrixSliceMut.html b/docs/fp/matrix/struct.MatrixSliceMut.html index 15f0771ba..4d5e78a27 100644 --- a/docs/fp/matrix/struct.MatrixSliceMut.html +++ b/docs/fp/matrix/struct.MatrixSliceMut.html @@ -23,17 +23,17 @@ }); -

Struct fp::matrix::MatrixSliceMut

source ·
pub struct MatrixSliceMut<'a> {
+

Struct fp::matrix::MatrixSliceMut

source ·
pub struct MatrixSliceMut<'a> {
     vectors: &'a mut [FpVector],
     col_start: usize,
     col_end: usize,
-}

Fields§

§vectors: &'a mut [FpVector]§col_start: usize§col_end: usize

Implementations§

source§

impl<'a> MatrixSliceMut<'a>

source

pub fn columns(&self) -> usize

source

pub fn rows(&self) -> usize

source

pub fn row_slice<'b: 'a>( +}

Fields§

§vectors: &'a mut [FpVector]§col_start: usize§col_end: usize

Implementations§

source§

impl<'a> MatrixSliceMut<'a>

source

pub fn columns(&self) -> usize

source

pub fn rows(&self) -> usize

source

pub fn row_slice<'b: 'a>( &'b mut self, row_start: usize, row_end: usize, -) -> MatrixSliceMut<'b>

source

pub fn iter(&self) -> impl Iterator<Item = FpSlice<'_>> + '_

source

pub fn iter_mut(&mut self) -> impl Iterator<Item = FpSliceMut<'_>> + '_

source

pub fn maybe_par_iter_mut( +) -> MatrixSliceMut<'b>

source

pub fn iter(&self) -> impl Iterator<Item = FpSlice<'_>> + '_

source

pub fn iter_mut(&mut self) -> impl Iterator<Item = FpSliceMut<'_>> + '_

source

pub fn maybe_par_iter_mut( &mut self, -) -> impl MaybeIndexedParallelIterator<Item = FpSliceMut<'_>> + '_

source

pub fn row(&mut self, row: usize) -> FpSlice<'_>

source

pub fn row_mut(&mut self, row: usize) -> FpSliceMut<'_>

source

pub fn add_identity(&mut self)

source

pub fn add_masked(&mut self, other: &Matrix, mask: &[usize])

For each row, add the v[i]th entry of other to self.

+) -> impl MaybeIndexedParallelIterator<Item = FpSliceMut<'_>> + '_

source

pub fn row(&mut self, row: usize) -> FpSlice<'_>

source

pub fn row_mut(&mut self, row: usize) -> FpSliceMut<'_>

source

pub fn add_identity(&mut self)

source

pub fn add_masked(&mut self, other: &Matrix, mask: &[usize])

For each row, add the v[i]th entry of other to self.

Auto Trait Implementations§

§

impl<'a> Freeze for MatrixSliceMut<'a>

§

impl<'a> RefUnwindSafe for MatrixSliceMut<'a>

§

impl<'a> Send for MatrixSliceMut<'a>

§

impl<'a> Sync for MatrixSliceMut<'a>

§

impl<'a> Unpin for MatrixSliceMut<'a>

§

impl<'a> !UnwindSafe for MatrixSliceMut<'a>

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where diff --git a/docs/fp/matrix/struct.Subquotient.html b/docs/fp/matrix/struct.Subquotient.html index 1180a8a90..659ac8e01 100644 --- a/docs/fp/matrix/struct.Subquotient.html +++ b/docs/fp/matrix/struct.Subquotient.html @@ -23,11 +23,11 @@ }); -

Struct fp::matrix::Subquotient

source ·
pub struct Subquotient {
+

Struct fp::matrix::Subquotient

source ·
pub struct Subquotient {
     gens: Subspace,
     quotient: Subspace,
     dimension: usize,
-}

Fields§

§gens: Subspace§quotient: Subspace§dimension: usize

Implementations§

source§

impl Subquotient

source

pub fn new(p: ValidPrime, dim: usize) -> Self

Create a new subquotient of an ambient space of dimension dim. This defaults to the zero +}

Fields§

§gens: Subspace§quotient: Subspace§dimension: usize

Implementations§

source§

impl Subquotient

source

pub fn new(p: ValidPrime, dim: usize) -> Self

Create a new subquotient of an ambient space of dimension dim. This defaults to the zero subspace.

source

pub fn new_full(p: ValidPrime, dim: usize) -> Self

Create a new subquotient of an ambient space of dimension dim, where the subspace is the full subspace and quotient is trivial.

@@ -38,18 +38,22 @@
source

pub fn set_to_full(&mut self)

Set the subquotient to be the full ambient space quotiented by zero

source

pub fn zeros(&self) -> &Subspace

source

pub fn gens(&self) -> impl Iterator<Item = FpSlice<'_>>

source

pub fn quotient_dimension(&self) -> usize

source

pub fn subspace_dimension(&self) -> usize

The dimension of the subspace part of the subquotient.

source

pub fn subspace_gens(&self) -> impl Iterator<Item = FpSlice<'_>>

The generators of the subspace part of the subquotient.

-
source

pub fn complement_pivots(&self) -> impl Iterator<Item = usize> + '_

The pivot columns of the complement to the subspace

-
source

pub fn quotient(&mut self, elt: FpSlice<'_>)

source

pub fn dimension(&self) -> usize

source

pub fn ambient_dimension(&self) -> usize

source

pub fn prime(&self) -> ValidPrime

source

pub fn is_empty(&self) -> bool

source

pub fn clear_gens(&mut self)

source

pub fn add_gen(&mut self, gen: FpSlice<'_>)

source

pub fn reduce_matrix( +

source

pub fn complement_pivots(&self) -> impl Iterator<Item = usize> + '_

The pivot columns of the complement to the subspace

+
source

pub fn quotient(&mut self, elt: FpSlice<'_>)

source

pub fn dimension(&self) -> usize

source

pub fn ambient_dimension(&self) -> usize

source

pub fn prime(&self) -> ValidPrime

source

pub fn is_empty(&self) -> bool

source

pub fn clear_gens(&mut self)

source

pub fn add_gen(&mut self, gen: FpSlice<'_>)

source

pub fn reduce_matrix( matrix: &Matrix, source: &Self, target: &Self, -) -> Vec<Vec<u32>>

source

pub fn from_parts(sub: Subspace, quotient: Subspace) -> Self

Given a chain of subspaces quotient < sub in some ambient space, compute the subquotient +) -> Vec<Vec<u32>>

source

pub fn from_parts(sub: Subspace, quotient: Subspace) -> Self

Given a chain of subspaces quotient < sub in some ambient space, compute the subquotient sub/quotient. The answer is expressed as a list of basis vectors of sub whose image in sub/quotient forms a basis, and a basis vector of sub is described by its index in the list of basis vectors of sub (not the ambient space).

Note that the quotient argument does not need to be a subspace of the sub argument, nor do they need to be disjoint. Mathematically, this method constructs the space (sub + quotient) / quotient.

-
source

pub fn quotient_pivots(&self) -> &[isize]

Trait Implementations§

source§

impl Clone for Subquotient

source§

fn clone(&self) -> Subquotient

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Subquotient

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for Subquotient

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

source

pub fn quotient_pivots(&self) -> &[isize]

Trait Implementations§

source§

impl Arbitrary for Subquotient

§

type Parameters = SubquotientArbParams

The type of parameters that arbitrary_with accepts for configuration +of the generated Strategy. Parameters must implement Default.
§

type Strategy = BoxedStrategy<Subquotient>

The type of Strategy used to generate values of type Self.
source§

fn arbitrary_with(args: Self::Parameters) -> Self::Strategy

Generates a Strategy for producing arbitrary values of type the +implementing type (Self). The strategy is passed the arguments given +in args. Read more
§

fn arbitrary() -> Self::Strategy

Generates a Strategy for producing arbitrary values +of type the implementing type (Self). Read more
source§

impl Clone for Subquotient

source§

fn clone(&self) -> Subquotient

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Subquotient

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for Subquotient

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where diff --git a/docs/fp/matrix/struct.SubquotientArbParams.html b/docs/fp/matrix/struct.SubquotientArbParams.html new file mode 100644 index 000000000..8e649093b --- /dev/null +++ b/docs/fp/matrix/struct.SubquotientArbParams.html @@ -0,0 +1,49 @@ +SubquotientArbParams in fp::matrix - Rust + + + + + + +

Struct fp::matrix::SubquotientArbParams

source ·
pub struct SubquotientArbParams {
+    pub p: Option<ValidPrime>,
+    pub dim: BoxedStrategy<usize>,
+}

Fields§

§p: Option<ValidPrime>§dim: BoxedStrategy<usize>

Trait Implementations§

source§

impl Clone for SubquotientArbParams

source§

fn clone(&self) -> SubquotientArbParams

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for SubquotientArbParams

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for SubquotientArbParams

source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where + T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+

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

+
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where + F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> ToOwned for T
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

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

fn clone_into(&self, target: &mut T)

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

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

\ No newline at end of file diff --git a/docs/fp/matrix/struct.Subspace.html b/docs/fp/matrix/struct.Subspace.html index f0c55a968..2946c4456 100644 --- a/docs/fp/matrix/struct.Subspace.html +++ b/docs/fp/matrix/struct.Subspace.html @@ -23,7 +23,7 @@ }); -
-

Trait Implementations§

source§

impl Clone for Subspace

source§

fn clone(&self) -> Subspace

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Subspace

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Deref for Subspace

§

type Target = Matrix

The resulting type after dereferencing.
source§

fn deref(&self) -> &Self::Target

Dereferences the value.
source§

impl Display for Subspace

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

§Example
+

Trait Implementations§

source§

impl Arbitrary for Subspace

§

type Parameters = SubspaceArbParams

The type of parameters that arbitrary_with accepts for configuration +of the generated Strategy. Parameters must implement Default.
§

type Strategy = BoxedStrategy<Subspace>

The type of Strategy used to generate values of type Self.
source§

fn arbitrary_with(args: Self::Parameters) -> Self::Strategy

Generates a Strategy for producing arbitrary values of type the +implementing type (Self). The strategy is passed the arguments given +in args. Read more
§

fn arbitrary() -> Self::Strategy

Generates a Strategy for producing arbitrary values +of type the implementing type (Self). Read more
source§

impl Clone for Subspace

source§

fn clone(&self) -> Subspace

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Subspace

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Deref for Subspace

§

type Target = Matrix

The resulting type after dereferencing.
source§

fn deref(&self) -> &Self::Target

Dereferences the value.
source§

impl Display for Subspace

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

§Example
let subspace = Subspace::entire_space(TWO, 3);
 
 expect![[r#"
diff --git a/docs/fp/matrix/struct.SubspaceArbParams.html b/docs/fp/matrix/struct.SubspaceArbParams.html
new file mode 100644
index 000000000..115ed0dd5
--- /dev/null
+++ b/docs/fp/matrix/struct.SubspaceArbParams.html
@@ -0,0 +1,49 @@
+SubspaceArbParams in fp::matrix - Rust
+
+
+
+
+
+
+

Struct fp::matrix::SubspaceArbParams

source ·
pub struct SubspaceArbParams {
+    pub p: Option<ValidPrime>,
+    pub dim: BoxedStrategy<usize>,
+}

Fields§

§p: Option<ValidPrime>§dim: BoxedStrategy<usize>

Trait Implementations§

source§

impl Clone for SubspaceArbParams

source§

fn clone(&self) -> SubspaceArbParams

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for SubspaceArbParams

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for SubspaceArbParams

source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where + T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+

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

+
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where + F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> ToOwned for T
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

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

fn clone_into(&self, target: &mut T)

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

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

\ No newline at end of file diff --git a/docs/fp/matrix/subquotient/arbitrary/index.html b/docs/fp/matrix/subquotient/arbitrary/index.html new file mode 100644 index 000000000..2104bb0ca --- /dev/null +++ b/docs/fp/matrix/subquotient/arbitrary/index.html @@ -0,0 +1,26 @@ +fp::matrix::subquotient::arbitrary - Rust + + + + + + +

Module fp::matrix::subquotient::arbitrary

source ·

Re-exports§

  • pub use crate::matrix::subspace::arbitrary::MAX_DIM;

Structs§

\ No newline at end of file diff --git a/docs/fp/matrix/subquotient/arbitrary/sidebar-items.js b/docs/fp/matrix/subquotient/arbitrary/sidebar-items.js new file mode 100644 index 000000000..20ae0212f --- /dev/null +++ b/docs/fp/matrix/subquotient/arbitrary/sidebar-items.js @@ -0,0 +1 @@ +window.SIDEBAR_ITEMS = {"struct":["SubquotientArbParams"]}; \ No newline at end of file diff --git a/docs/fp/matrix/subquotient/arbitrary/struct.SubquotientArbParams.html b/docs/fp/matrix/subquotient/arbitrary/struct.SubquotientArbParams.html new file mode 100644 index 000000000..ed31aced1 --- /dev/null +++ b/docs/fp/matrix/subquotient/arbitrary/struct.SubquotientArbParams.html @@ -0,0 +1,49 @@ +SubquotientArbParams in fp::matrix::subquotient::arbitrary - Rust + + + + + + +

Struct fp::matrix::subquotient::arbitrary::SubquotientArbParams

source ·
pub struct SubquotientArbParams {
+    pub p: Option<ValidPrime>,
+    pub dim: BoxedStrategy<usize>,
+}

Fields§

§p: Option<ValidPrime>§dim: BoxedStrategy<usize>

Trait Implementations§

source§

impl Clone for SubquotientArbParams

source§

fn clone(&self) -> SubquotientArbParams

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for SubquotientArbParams

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for SubquotientArbParams

source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where + T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+

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

+
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where + F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> ToOwned for T
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

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

fn clone_into(&self, target: &mut T)

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

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

\ No newline at end of file diff --git a/docs/fp/matrix/subquotient/index.html b/docs/fp/matrix/subquotient/index.html index 7f8bffde8..477cd2afc 100644 --- a/docs/fp/matrix/subquotient/index.html +++ b/docs/fp/matrix/subquotient/index.html @@ -23,4 +23,4 @@ }); -

Module fp::matrix::subquotient

source ·

Structs§

\ No newline at end of file +

Module fp::matrix::subquotient

source ·

Modules§

Structs§

\ No newline at end of file diff --git a/docs/fp/matrix/subquotient/sidebar-items.js b/docs/fp/matrix/subquotient/sidebar-items.js index cea3c9e12..2631b7235 100644 --- a/docs/fp/matrix/subquotient/sidebar-items.js +++ b/docs/fp/matrix/subquotient/sidebar-items.js @@ -1 +1 @@ -window.SIDEBAR_ITEMS = {"struct":["Subquotient"]}; \ No newline at end of file +window.SIDEBAR_ITEMS = {"mod":["arbitrary"],"struct":["Subquotient"]}; \ No newline at end of file diff --git a/docs/fp/matrix/subquotient/struct.Subquotient.html b/docs/fp/matrix/subquotient/struct.Subquotient.html index 897205e78..97ff8ca02 100644 --- a/docs/fp/matrix/subquotient/struct.Subquotient.html +++ b/docs/fp/matrix/subquotient/struct.Subquotient.html @@ -23,11 +23,11 @@ }); -

Struct fp::matrix::subquotient::Subquotient

source ·
pub struct Subquotient {
+

Struct fp::matrix::subquotient::Subquotient

source ·
pub struct Subquotient {
     gens: Subspace,
     quotient: Subspace,
     dimension: usize,
-}

Fields§

§gens: Subspace§quotient: Subspace§dimension: usize

Implementations§

source§

impl Subquotient

source

pub fn new(p: ValidPrime, dim: usize) -> Self

Create a new subquotient of an ambient space of dimension dim. This defaults to the zero +}

Fields§

§gens: Subspace§quotient: Subspace§dimension: usize

Implementations§

source§

impl Subquotient

source

pub fn new(p: ValidPrime, dim: usize) -> Self

Create a new subquotient of an ambient space of dimension dim. This defaults to the zero subspace.

source

pub fn new_full(p: ValidPrime, dim: usize) -> Self

Create a new subquotient of an ambient space of dimension dim, where the subspace is the full subspace and quotient is trivial.

@@ -38,18 +38,22 @@
source

pub fn set_to_full(&mut self)

Set the subquotient to be the full ambient space quotiented by zero

source

pub fn zeros(&self) -> &Subspace

source

pub fn gens(&self) -> impl Iterator<Item = FpSlice<'_>>

source

pub fn quotient_dimension(&self) -> usize

source

pub fn subspace_dimension(&self) -> usize

The dimension of the subspace part of the subquotient.

source

pub fn subspace_gens(&self) -> impl Iterator<Item = FpSlice<'_>>

The generators of the subspace part of the subquotient.

-
source

pub fn complement_pivots(&self) -> impl Iterator<Item = usize> + '_

The pivot columns of the complement to the subspace

-
source

pub fn quotient(&mut self, elt: FpSlice<'_>)

source

pub fn dimension(&self) -> usize

source

pub fn ambient_dimension(&self) -> usize

source

pub fn prime(&self) -> ValidPrime

source

pub fn is_empty(&self) -> bool

source

pub fn clear_gens(&mut self)

source

pub fn add_gen(&mut self, gen: FpSlice<'_>)

source

pub fn reduce_matrix( +

source

pub fn complement_pivots(&self) -> impl Iterator<Item = usize> + '_

The pivot columns of the complement to the subspace

+
source

pub fn quotient(&mut self, elt: FpSlice<'_>)

source

pub fn dimension(&self) -> usize

source

pub fn ambient_dimension(&self) -> usize

source

pub fn prime(&self) -> ValidPrime

source

pub fn is_empty(&self) -> bool

source

pub fn clear_gens(&mut self)

source

pub fn add_gen(&mut self, gen: FpSlice<'_>)

source

pub fn reduce_matrix( matrix: &Matrix, source: &Self, target: &Self, -) -> Vec<Vec<u32>>

source

pub fn from_parts(sub: Subspace, quotient: Subspace) -> Self

Given a chain of subspaces quotient < sub in some ambient space, compute the subquotient +) -> Vec<Vec<u32>>

source

pub fn from_parts(sub: Subspace, quotient: Subspace) -> Self

Given a chain of subspaces quotient < sub in some ambient space, compute the subquotient sub/quotient. The answer is expressed as a list of basis vectors of sub whose image in sub/quotient forms a basis, and a basis vector of sub is described by its index in the list of basis vectors of sub (not the ambient space).

Note that the quotient argument does not need to be a subspace of the sub argument, nor do they need to be disjoint. Mathematically, this method constructs the space (sub + quotient) / quotient.

-
source

pub fn quotient_pivots(&self) -> &[isize]

Trait Implementations§

source§

impl Clone for Subquotient

source§

fn clone(&self) -> Subquotient

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Subquotient

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for Subquotient

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +

source

pub fn quotient_pivots(&self) -> &[isize]

Trait Implementations§

source§

impl Arbitrary for Subquotient

§

type Parameters = SubquotientArbParams

The type of parameters that arbitrary_with accepts for configuration +of the generated Strategy. Parameters must implement Default.
§

type Strategy = BoxedStrategy<Subquotient>

The type of Strategy used to generate values of type Self.
source§

fn arbitrary_with(args: Self::Parameters) -> Self::Strategy

Generates a Strategy for producing arbitrary values of type the +implementing type (Self). The strategy is passed the arguments given +in args. Read more
§

fn arbitrary() -> Self::Strategy

Generates a Strategy for producing arbitrary values +of type the implementing type (Self). Read more
source§

impl Clone for Subquotient

source§

fn clone(&self) -> Subquotient

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Subquotient

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for Subquotient

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where diff --git a/docs/fp/matrix/subspace/arbitrary/index.html b/docs/fp/matrix/subspace/arbitrary/index.html new file mode 100644 index 000000000..be2437a11 --- /dev/null +++ b/docs/fp/matrix/subspace/arbitrary/index.html @@ -0,0 +1,26 @@ +fp::matrix::subspace::arbitrary - Rust + + + + + + +

Module fp::matrix::subspace::arbitrary

source ·

Re-exports§

  • pub use crate::matrix::matrix_inner::arbitrary::MAX_COLUMNS as MAX_DIM;

Structs§

\ No newline at end of file diff --git a/docs/fp/matrix/subspace/arbitrary/sidebar-items.js b/docs/fp/matrix/subspace/arbitrary/sidebar-items.js new file mode 100644 index 000000000..971e72681 --- /dev/null +++ b/docs/fp/matrix/subspace/arbitrary/sidebar-items.js @@ -0,0 +1 @@ +window.SIDEBAR_ITEMS = {"struct":["SubspaceArbParams"]}; \ No newline at end of file diff --git a/docs/fp/matrix/subspace/arbitrary/struct.SubspaceArbParams.html b/docs/fp/matrix/subspace/arbitrary/struct.SubspaceArbParams.html new file mode 100644 index 000000000..a2a51ef86 --- /dev/null +++ b/docs/fp/matrix/subspace/arbitrary/struct.SubspaceArbParams.html @@ -0,0 +1,49 @@ +SubspaceArbParams in fp::matrix::subspace::arbitrary - Rust + + + + + + +

Struct fp::matrix::subspace::arbitrary::SubspaceArbParams

source ·
pub struct SubspaceArbParams {
+    pub p: Option<ValidPrime>,
+    pub dim: BoxedStrategy<usize>,
+}

Fields§

§p: Option<ValidPrime>§dim: BoxedStrategy<usize>

Trait Implementations§

source§

impl Clone for SubspaceArbParams

source§

fn clone(&self) -> SubspaceArbParams

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for SubspaceArbParams

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for SubspaceArbParams

source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where + T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+

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

+
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where + F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> ToOwned for T
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

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

fn clone_into(&self, target: &mut T)

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

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

\ No newline at end of file diff --git a/docs/fp/matrix/subspace/index.html b/docs/fp/matrix/subspace/index.html index ee5d51262..24c53dc20 100644 --- a/docs/fp/matrix/subspace/index.html +++ b/docs/fp/matrix/subspace/index.html @@ -23,4 +23,4 @@ }); -

Module fp::matrix::subspace

source ·

Structs§

\ No newline at end of file +

Module fp::matrix::subspace

source ·

Modules§

Structs§

\ No newline at end of file diff --git a/docs/fp/matrix/subspace/sidebar-items.js b/docs/fp/matrix/subspace/sidebar-items.js index 73e8afb52..b85b69dda 100644 --- a/docs/fp/matrix/subspace/sidebar-items.js +++ b/docs/fp/matrix/subspace/sidebar-items.js @@ -1 +1 @@ -window.SIDEBAR_ITEMS = {"struct":["Subspace"]}; \ No newline at end of file +window.SIDEBAR_ITEMS = {"mod":["arbitrary"],"struct":["Subspace"]}; \ No newline at end of file diff --git a/docs/fp/matrix/subspace/struct.Subspace.html b/docs/fp/matrix/subspace/struct.Subspace.html index a36f1edb7..9969ac96a 100644 --- a/docs/fp/matrix/subspace/struct.Subspace.html +++ b/docs/fp/matrix/subspace/struct.Subspace.html @@ -23,7 +23,7 @@ }); -
-

Trait Implementations§

source§

impl Clone for Subspace

source§

fn clone(&self) -> Subspace

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Subspace

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Deref for Subspace

§

type Target = Matrix

The resulting type after dereferencing.
source§

fn deref(&self) -> &Self::Target

Dereferences the value.
source§

impl Display for Subspace

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

§Example
+

Trait Implementations§

source§

impl Arbitrary for Subspace

§

type Parameters = SubspaceArbParams

The type of parameters that arbitrary_with accepts for configuration +of the generated Strategy. Parameters must implement Default.
§

type Strategy = BoxedStrategy<Subspace>

The type of Strategy used to generate values of type Self.
source§

fn arbitrary_with(args: Self::Parameters) -> Self::Strategy

Generates a Strategy for producing arbitrary values of type the +implementing type (Self). The strategy is passed the arguments given +in args. Read more
§

fn arbitrary() -> Self::Strategy

Generates a Strategy for producing arbitrary values +of type the implementing type (Self). Read more
source§

impl Clone for Subspace

source§

fn clone(&self) -> Subspace

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Subspace

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Deref for Subspace

§

type Target = Matrix

The resulting type after dereferencing.
source§

fn deref(&self) -> &Self::Target

Dereferences the value.
source§

impl Display for Subspace

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

§Example
let subspace = Subspace::entire_space(TWO, 3);
 
 expect![[r#"
diff --git a/docs/fp/prime/enum.PrimeError.html b/docs/fp/prime/enum.PrimeError.html
index 41cdcf820..0263703f7 100644
--- a/docs/fp/prime/enum.PrimeError.html
+++ b/docs/fp/prime/enum.PrimeError.html
@@ -26,7 +26,7 @@
 

Enum fp::prime::PrimeError

source ·
pub enum PrimeError {
     NotAnInteger(ParseIntError),
     InvalidPrime(u32),
-}

Variants§

§

NotAnInteger(ParseIntError)

§

InvalidPrime(u32)

Trait Implementations§

source§

impl Clone for PrimeError

source§

fn clone(&self) -> PrimeError

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for PrimeError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for PrimeError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl PartialEq for PrimeError

source§

fn eq(&self, other: &PrimeError) -> bool

This method tests for self and other values to be equal, and is used +}

Variants§

§

NotAnInteger(ParseIntError)

§

InvalidPrime(u32)

Trait Implementations§

source§

impl Clone for PrimeError

source§

fn clone(&self) -> PrimeError

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for PrimeError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for PrimeError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl PartialEq for PrimeError

source§

fn eq(&self, other: &PrimeError) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Eq for PrimeError

source§

impl StructuralPartialEq for PrimeError

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where diff --git a/docs/fp/prime/primes_generic/struct.P2.html b/docs/fp/prime/primes_generic/struct.P2.html index 09314ab1e..d46fc5910 100644 --- a/docs/fp/prime/primes_generic/struct.P2.html +++ b/docs/fp/prime/primes_generic/struct.P2.html @@ -23,21 +23,21 @@ }); -

Struct fp::prime::primes_generic::P2

source ·
pub struct P2;

Trait Implementations§

source§

impl Add<P2> for u32

§

type Output = u32

The resulting type after applying the + operator.
source§

fn add(self, other: P2) -> Self::Output

Performs the + operation. Read more
source§

impl Add<u32> for P2

§

type Output = u32

The resulting type after applying the + operator.
source§

fn add(self, other: u32) -> Self::Output

Performs the + operation. Read more
source§

impl Add for P2

§

type Output = u32

The resulting type after applying the + operator.
source§

fn add(self, other: P2) -> Self::Output

Performs the + operation. Read more
source§

impl AddAssign<P2> for u32

source§

fn add_assign(&mut self, other: P2)

Performs the += operation. Read more
source§

impl Arbitrary for P2

§

type Parameters = Option<NonZero<u32>>

The type of parameters that arbitrary_with accepts for configuration +

Struct fp::prime::primes_generic::P2

source ·
pub struct P2;

Trait Implementations§

source§

impl Add<P2> for u32

§

type Output = u32

The resulting type after applying the + operator.
source§

fn add(self, other: P2) -> Self::Output

Performs the + operation. Read more
source§

impl Add<u32> for P2

§

type Output = u32

The resulting type after applying the + operator.
source§

fn add(self, other: u32) -> Self::Output

Performs the + operation. Read more
source§

impl Add for P2

§

type Output = u32

The resulting type after applying the + operator.
source§

fn add(self, other: P2) -> Self::Output

Performs the + operation. Read more
source§

impl AddAssign<P2> for u32

source§

fn add_assign(&mut self, other: P2)

Performs the += operation. Read more
source§

impl Arbitrary for P2

§

type Parameters = Option<NonZero<u32>>

The type of parameters that arbitrary_with accepts for configuration of the generated Strategy. Parameters must implement Default.
§

type Strategy = Just<P2>

The type of Strategy used to generate values of type Self.
source§

fn arbitrary_with(_max: Self::Parameters) -> Self::Strategy

Generates a Strategy for producing arbitrary values of type the implementing type (Self). The strategy is passed the arguments given in args. Read more
§

fn arbitrary() -> Self::Strategy

Generates a Strategy for producing arbitrary values -of type the implementing type (Self). Read more
source§

impl Clone for P2

source§

fn clone(&self) -> P2

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for P2

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for P2

source§

fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where - D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for P2

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Div<P2> for u32

§

type Output = u32

The resulting type after applying the / operator.
source§

fn div(self, other: P2) -> Self::Output

Performs the / operation. Read more
source§

impl Div<u32> for P2

§

type Output = u32

The resulting type after applying the / operator.
source§

fn div(self, other: u32) -> Self::Output

Performs the / operation. Read more
source§

impl Div for P2

§

type Output = u32

The resulting type after applying the / operator.
source§

fn div(self, other: P2) -> Self::Output

Performs the / operation. Read more
source§

impl DivAssign<P2> for u32

source§

fn div_assign(&mut self, other: P2)

Performs the /= operation. Read more
source§

impl From<P2> for u32

source§

fn from(value: P2) -> u32

Converts to this type from the input type.
source§

impl Hash for P2

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where +of type the implementing type (Self). Read more

source§

impl Clone for P2

source§

fn clone(&self) -> P2

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for P2

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for P2

source§

fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where + D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for P2

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Div<P2> for u32

§

type Output = u32

The resulting type after applying the / operator.
source§

fn div(self, other: P2) -> Self::Output

Performs the / operation. Read more
source§

impl Div<u32> for P2

§

type Output = u32

The resulting type after applying the / operator.
source§

fn div(self, other: u32) -> Self::Output

Performs the / operation. Read more
source§

impl Div for P2

§

type Output = u32

The resulting type after applying the / operator.
source§

fn div(self, other: P2) -> Self::Output

Performs the / operation. Read more
source§

impl DivAssign<P2> for u32

source§

fn div_assign(&mut self, other: P2)

Performs the /= operation. Read more
source§

impl From<P2> for u32

source§

fn from(value: P2) -> u32

Converts to this type from the input type.
source§

impl Hash for P2

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl Mul<P2> for u32

§

type Output = u32

The resulting type after applying the * operator.
source§

fn mul(self, other: P2) -> Self::Output

Performs the * operation. Read more
source§

impl Mul<u32> for P2

§

type Output = u32

The resulting type after applying the * operator.
source§

fn mul(self, other: u32) -> Self::Output

Performs the * operation. Read more
source§

impl Mul for P2

§

type Output = u32

The resulting type after applying the * operator.
source§

fn mul(self, other: P2) -> Self::Output

Performs the * operation. Read more
source§

impl MulAssign<P2> for u32

source§

fn mul_assign(&mut self, other: P2)

Performs the *= operation. Read more
source§

impl PartialEq<u32> for P2

source§

fn eq(&self, other: &u32) -> bool

This method tests for self and other values to be equal, and is used + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl Mul<P2> for u32

§

type Output = u32

The resulting type after applying the * operator.
source§

fn mul(self, other: P2) -> Self::Output

Performs the * operation. Read more
source§

impl Mul<u32> for P2

§

type Output = u32

The resulting type after applying the * operator.
source§

fn mul(self, other: u32) -> Self::Output

Performs the * operation. Read more
source§

impl Mul for P2

§

type Output = u32

The resulting type after applying the * operator.
source§

fn mul(self, other: P2) -> Self::Output

Performs the * operation. Read more
source§

impl MulAssign<P2> for u32

source§

fn mul_assign(&mut self, other: P2)

Performs the *= operation. Read more
source§

impl PartialEq<u32> for P2

source§

fn eq(&self, other: &u32) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl PartialEq for P2

source§

fn eq(&self, other: &P2) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl PartialOrd<u32> for P2

source§

fn partial_cmp(&self, other: &u32) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= -operator. Read more
source§

impl Prime for P2

source§

fn as_i32(self) -> i32

source§

fn to_dyn(self) -> ValidPrime

source§

fn as_u32(self) -> u32

source§

fn as_usize(self) -> usize

source§

fn sum(self, n1: u32, n2: u32) -> u32

Computes the sum mod p. This takes care of overflow.
source§

fn product(self, n1: u32, n2: u32) -> u32

Computes the product mod p. This takes care of overflow.
source§

fn inverse(self, k: u32) -> u32

source§

fn pow(self, exp: u32) -> u32

source§

fn pow_mod(self, b: u32, e: u32) -> u32

source§

impl Rem<P2> for u32

§

type Output = u32

The resulting type after applying the % operator.
source§

fn rem(self, other: P2) -> Self::Output

Performs the % operation. Read more
source§

impl Rem<u32> for P2

§

type Output = u32

The resulting type after applying the % operator.
source§

fn rem(self, other: u32) -> Self::Output

Performs the % operation. Read more
source§

impl Rem for P2

§

type Output = u32

The resulting type after applying the % operator.
source§

fn rem(self, other: P2) -> Self::Output

Performs the % operation. Read more
source§

impl RemAssign<P2> for u32

source§

fn rem_assign(&mut self, other: P2)

Performs the %= operation. Read more
source§

impl Serialize for P2

source§

fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where - S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Shl<P2> for u32

§

type Output = u32

The resulting type after applying the << operator.
source§

fn shl(self, other: P2) -> Self::Output

Performs the << operation. Read more
source§

impl Shl<u32> for P2

§

type Output = u32

The resulting type after applying the << operator.
source§

fn shl(self, other: u32) -> Self::Output

Performs the << operation. Read more
source§

impl Shl for P2

§

type Output = u32

The resulting type after applying the << operator.
source§

fn shl(self, other: P2) -> Self::Output

Performs the << operation. Read more
source§

impl ShlAssign<P2> for u32

source§

fn shl_assign(&mut self, other: P2)

Performs the <<= operation. Read more
source§

impl Shr<P2> for u32

§

type Output = u32

The resulting type after applying the >> operator.
source§

fn shr(self, other: P2) -> Self::Output

Performs the >> operation. Read more
source§

impl Shr<u32> for P2

§

type Output = u32

The resulting type after applying the >> operator.
source§

fn shr(self, other: u32) -> Self::Output

Performs the >> operation. Read more
source§

impl Shr for P2

§

type Output = u32

The resulting type after applying the >> operator.
source§

fn shr(self, other: P2) -> Self::Output

Performs the >> operation. Read more
source§

impl ShrAssign<P2> for u32

source§

fn shr_assign(&mut self, other: P2)

Performs the >>= operation. Read more
source§

impl Sub<P2> for u32

§

type Output = u32

The resulting type after applying the - operator.
source§

fn sub(self, other: P2) -> Self::Output

Performs the - operation. Read more
source§

impl Sub<u32> for P2

§

type Output = u32

The resulting type after applying the - operator.
source§

fn sub(self, other: u32) -> Self::Output

Performs the - operation. Read more
source§

impl Sub for P2

§

type Output = u32

The resulting type after applying the - operator.
source§

fn sub(self, other: P2) -> Self::Output

Performs the - operation. Read more
source§

impl SubAssign<P2> for u32

source§

fn sub_assign(&mut self, other: P2)

Performs the -= operation. Read more
source§

impl TryFrom<u32> for P2

§

type Error = PrimeError

The type returned in the event of a conversion error.
source§

fn try_from(p: u32) -> Result<Self, PrimeError>

Performs the conversion.
source§

impl Copy for P2

source§

impl Eq for P2

source§

impl MaybeArbitrary<Option<NonZero<u32>>> for P2

source§

impl StructuralPartialEq for P2

Auto Trait Implementations§

§

impl Freeze for P2

§

impl RefUnwindSafe for P2

§

impl Send for P2

§

impl Sync for P2

§

impl Unpin for P2

§

impl UnwindSafe for P2

Blanket Implementations§

source§

impl<T> Any for T
where +operator. Read more

source§

impl Prime for P2

source§

fn as_i32(self) -> i32

source§

fn to_dyn(self) -> ValidPrime

source§

fn as_u32(self) -> u32

source§

fn as_usize(self) -> usize

source§

fn sum(self, n1: u32, n2: u32) -> u32

Computes the sum mod p. This takes care of overflow.
source§

fn product(self, n1: u32, n2: u32) -> u32

Computes the product mod p. This takes care of overflow.
source§

fn inverse(self, k: u32) -> u32

source§

fn pow(self, exp: u32) -> u32

source§

fn pow_mod(self, b: u32, e: u32) -> u32

source§

impl Rem<P2> for u32

§

type Output = u32

The resulting type after applying the % operator.
source§

fn rem(self, other: P2) -> Self::Output

Performs the % operation. Read more
source§

impl Rem<u32> for P2

§

type Output = u32

The resulting type after applying the % operator.
source§

fn rem(self, other: u32) -> Self::Output

Performs the % operation. Read more
source§

impl Rem for P2

§

type Output = u32

The resulting type after applying the % operator.
source§

fn rem(self, other: P2) -> Self::Output

Performs the % operation. Read more
source§

impl RemAssign<P2> for u32

source§

fn rem_assign(&mut self, other: P2)

Performs the %= operation. Read more
source§

impl Serialize for P2

source§

fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where + S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Shl<P2> for u32

§

type Output = u32

The resulting type after applying the << operator.
source§

fn shl(self, other: P2) -> Self::Output

Performs the << operation. Read more
source§

impl Shl<u32> for P2

§

type Output = u32

The resulting type after applying the << operator.
source§

fn shl(self, other: u32) -> Self::Output

Performs the << operation. Read more
source§

impl Shl for P2

§

type Output = u32

The resulting type after applying the << operator.
source§

fn shl(self, other: P2) -> Self::Output

Performs the << operation. Read more
source§

impl ShlAssign<P2> for u32

source§

fn shl_assign(&mut self, other: P2)

Performs the <<= operation. Read more
source§

impl Shr<P2> for u32

§

type Output = u32

The resulting type after applying the >> operator.
source§

fn shr(self, other: P2) -> Self::Output

Performs the >> operation. Read more
source§

impl Shr<u32> for P2

§

type Output = u32

The resulting type after applying the >> operator.
source§

fn shr(self, other: u32) -> Self::Output

Performs the >> operation. Read more
source§

impl Shr for P2

§

type Output = u32

The resulting type after applying the >> operator.
source§

fn shr(self, other: P2) -> Self::Output

Performs the >> operation. Read more
source§

impl ShrAssign<P2> for u32

source§

fn shr_assign(&mut self, other: P2)

Performs the >>= operation. Read more
source§

impl Sub<P2> for u32

§

type Output = u32

The resulting type after applying the - operator.
source§

fn sub(self, other: P2) -> Self::Output

Performs the - operation. Read more
source§

impl Sub<u32> for P2

§

type Output = u32

The resulting type after applying the - operator.
source§

fn sub(self, other: u32) -> Self::Output

Performs the - operation. Read more
source§

impl Sub for P2

§

type Output = u32

The resulting type after applying the - operator.
source§

fn sub(self, other: P2) -> Self::Output

Performs the - operation. Read more
source§

impl SubAssign<P2> for u32

source§

fn sub_assign(&mut self, other: P2)

Performs the -= operation. Read more
source§

impl TryFrom<u32> for P2

§

type Error = PrimeError

The type returned in the event of a conversion error.
source§

fn try_from(p: u32) -> Result<Self, PrimeError>

Performs the conversion.
source§

impl Copy for P2

source§

impl Eq for P2

source§

impl MaybeArbitrary<Option<NonZero<u32>>> for P2

source§

impl StructuralPartialEq for P2

Auto Trait Implementations§

§

impl Freeze for P2

§

impl RefUnwindSafe for P2

§

impl Send for P2

§

impl Sync for P2

§

impl Unpin for P2

§

impl UnwindSafe for P2

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where diff --git a/docs/fp/prime/primes_generic/struct.P3.html b/docs/fp/prime/primes_generic/struct.P3.html index 74ec81f65..8f46bf680 100644 --- a/docs/fp/prime/primes_generic/struct.P3.html +++ b/docs/fp/prime/primes_generic/struct.P3.html @@ -23,21 +23,21 @@ }); -

Struct fp::prime::primes_generic::P3

source ·
pub struct P3;

Trait Implementations§

source§

impl Add<P3> for u32

§

type Output = u32

The resulting type after applying the + operator.
source§

fn add(self, other: P3) -> Self::Output

Performs the + operation. Read more
source§

impl Add<u32> for P3

§

type Output = u32

The resulting type after applying the + operator.
source§

fn add(self, other: u32) -> Self::Output

Performs the + operation. Read more
source§

impl Add for P3

§

type Output = u32

The resulting type after applying the + operator.
source§

fn add(self, other: P3) -> Self::Output

Performs the + operation. Read more
source§

impl AddAssign<P3> for u32

source§

fn add_assign(&mut self, other: P3)

Performs the += operation. Read more
source§

impl Arbitrary for P3

§

type Parameters = Option<NonZero<u32>>

The type of parameters that arbitrary_with accepts for configuration +

Struct fp::prime::primes_generic::P3

source ·
pub struct P3;

Trait Implementations§

source§

impl Add<P3> for u32

§

type Output = u32

The resulting type after applying the + operator.
source§

fn add(self, other: P3) -> Self::Output

Performs the + operation. Read more
source§

impl Add<u32> for P3

§

type Output = u32

The resulting type after applying the + operator.
source§

fn add(self, other: u32) -> Self::Output

Performs the + operation. Read more
source§

impl Add for P3

§

type Output = u32

The resulting type after applying the + operator.
source§

fn add(self, other: P3) -> Self::Output

Performs the + operation. Read more
source§

impl AddAssign<P3> for u32

source§

fn add_assign(&mut self, other: P3)

Performs the += operation. Read more
source§

impl Arbitrary for P3

§

type Parameters = Option<NonZero<u32>>

The type of parameters that arbitrary_with accepts for configuration of the generated Strategy. Parameters must implement Default.
§

type Strategy = Just<P3>

The type of Strategy used to generate values of type Self.
source§

fn arbitrary_with(_max: Self::Parameters) -> Self::Strategy

Generates a Strategy for producing arbitrary values of type the implementing type (Self). The strategy is passed the arguments given in args. Read more
§

fn arbitrary() -> Self::Strategy

Generates a Strategy for producing arbitrary values of type the implementing type (Self). Read more
source§

impl Clone for P3

source§

fn clone(&self) -> P3

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for P3

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for P3

source§

fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where - D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for P3

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Div<P3> for u32

§

type Output = u32

The resulting type after applying the / operator.
source§

fn div(self, other: P3) -> Self::Output

Performs the / operation. Read more
source§

impl Div<u32> for P3

§

type Output = u32

The resulting type after applying the / operator.
source§

fn div(self, other: u32) -> Self::Output

Performs the / operation. Read more
source§

impl Div for P3

§

type Output = u32

The resulting type after applying the / operator.
source§

fn div(self, other: P3) -> Self::Output

Performs the / operation. Read more
source§

impl DivAssign<P3> for u32

source§

fn div_assign(&mut self, other: P3)

Performs the /= operation. Read more
source§

impl From<P3> for u32

source§

fn from(value: P3) -> u32

Converts to this type from the input type.
source§

impl Hash for P3

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where + D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for P3

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Div<P3> for u32

§

type Output = u32

The resulting type after applying the / operator.
source§

fn div(self, other: P3) -> Self::Output

Performs the / operation. Read more
source§

impl Div<u32> for P3

§

type Output = u32

The resulting type after applying the / operator.
source§

fn div(self, other: u32) -> Self::Output

Performs the / operation. Read more
source§

impl Div for P3

§

type Output = u32

The resulting type after applying the / operator.
source§

fn div(self, other: P3) -> Self::Output

Performs the / operation. Read more
source§

impl DivAssign<P3> for u32

source§

fn div_assign(&mut self, other: P3)

Performs the /= operation. Read more
source§

impl From<P3> for u32

source§

fn from(value: P3) -> u32

Converts to this type from the input type.
source§

impl Hash for P3

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl Mul<P3> for u32

§

type Output = u32

The resulting type after applying the * operator.
source§

fn mul(self, other: P3) -> Self::Output

Performs the * operation. Read more
source§

impl Mul<u32> for P3

§

type Output = u32

The resulting type after applying the * operator.
source§

fn mul(self, other: u32) -> Self::Output

Performs the * operation. Read more
source§

impl Mul for P3

§

type Output = u32

The resulting type after applying the * operator.
source§

fn mul(self, other: P3) -> Self::Output

Performs the * operation. Read more
source§

impl MulAssign<P3> for u32

source§

fn mul_assign(&mut self, other: P3)

Performs the *= operation. Read more
source§

impl PartialEq<u32> for P3

source§

fn eq(&self, other: &u32) -> bool

This method tests for self and other values to be equal, and is used -by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl PartialEq for P3

source§

fn eq(&self, other: &P3) -> bool

This method tests for self and other values to be equal, and is used + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl Mul<P3> for u32

§

type Output = u32

The resulting type after applying the * operator.
source§

fn mul(self, other: P3) -> Self::Output

Performs the * operation. Read more
source§

impl Mul<u32> for P3

§

type Output = u32

The resulting type after applying the * operator.
source§

fn mul(self, other: u32) -> Self::Output

Performs the * operation. Read more
source§

impl Mul for P3

§

type Output = u32

The resulting type after applying the * operator.
source§

fn mul(self, other: P3) -> Self::Output

Performs the * operation. Read more
source§

impl MulAssign<P3> for u32

source§

fn mul_assign(&mut self, other: P3)

Performs the *= operation. Read more
source§

impl PartialEq<u32> for P3

source§

fn eq(&self, other: &u32) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always +sufficient, and should not be overridden without very good reason.
source§

impl PartialEq for P3

source§

fn eq(&self, other: &P3) -> bool

This method tests for self and other values to be equal, and is used +by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl PartialOrd<u32> for P3

source§

fn partial_cmp(&self, other: &u32) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= -operator. Read more
source§

impl Prime for P3

source§

fn as_i32(self) -> i32

source§

fn to_dyn(self) -> ValidPrime

source§

fn as_u32(self) -> u32

source§

fn as_usize(self) -> usize

source§

fn sum(self, n1: u32, n2: u32) -> u32

Computes the sum mod p. This takes care of overflow.
source§

fn product(self, n1: u32, n2: u32) -> u32

Computes the product mod p. This takes care of overflow.
source§

fn inverse(self, k: u32) -> u32

source§

fn pow(self, exp: u32) -> u32

source§

fn pow_mod(self, b: u32, e: u32) -> u32

source§

impl Rem<P3> for u32

§

type Output = u32

The resulting type after applying the % operator.
source§

fn rem(self, other: P3) -> Self::Output

Performs the % operation. Read more
source§

impl Rem<u32> for P3

§

type Output = u32

The resulting type after applying the % operator.
source§

fn rem(self, other: u32) -> Self::Output

Performs the % operation. Read more
source§

impl Rem for P3

§

type Output = u32

The resulting type after applying the % operator.
source§

fn rem(self, other: P3) -> Self::Output

Performs the % operation. Read more
source§

impl RemAssign<P3> for u32

source§

fn rem_assign(&mut self, other: P3)

Performs the %= operation. Read more
source§

impl Serialize for P3

source§

fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where - S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Shl<P3> for u32

§

type Output = u32

The resulting type after applying the << operator.
source§

fn shl(self, other: P3) -> Self::Output

Performs the << operation. Read more
source§

impl Shl<u32> for P3

§

type Output = u32

The resulting type after applying the << operator.
source§

fn shl(self, other: u32) -> Self::Output

Performs the << operation. Read more
source§

impl Shl for P3

§

type Output = u32

The resulting type after applying the << operator.
source§

fn shl(self, other: P3) -> Self::Output

Performs the << operation. Read more
source§

impl ShlAssign<P3> for u32

source§

fn shl_assign(&mut self, other: P3)

Performs the <<= operation. Read more
source§

impl Shr<P3> for u32

§

type Output = u32

The resulting type after applying the >> operator.
source§

fn shr(self, other: P3) -> Self::Output

Performs the >> operation. Read more
source§

impl Shr<u32> for P3

§

type Output = u32

The resulting type after applying the >> operator.
source§

fn shr(self, other: u32) -> Self::Output

Performs the >> operation. Read more
source§

impl Shr for P3

§

type Output = u32

The resulting type after applying the >> operator.
source§

fn shr(self, other: P3) -> Self::Output

Performs the >> operation. Read more
source§

impl ShrAssign<P3> for u32

source§

fn shr_assign(&mut self, other: P3)

Performs the >>= operation. Read more
source§

impl Sub<P3> for u32

§

type Output = u32

The resulting type after applying the - operator.
source§

fn sub(self, other: P3) -> Self::Output

Performs the - operation. Read more
source§

impl Sub<u32> for P3

§

type Output = u32

The resulting type after applying the - operator.
source§

fn sub(self, other: u32) -> Self::Output

Performs the - operation. Read more
source§

impl Sub for P3

§

type Output = u32

The resulting type after applying the - operator.
source§

fn sub(self, other: P3) -> Self::Output

Performs the - operation. Read more
source§

impl SubAssign<P3> for u32

source§

fn sub_assign(&mut self, other: P3)

Performs the -= operation. Read more
source§

impl TryFrom<u32> for P3

§

type Error = PrimeError

The type returned in the event of a conversion error.
source§

fn try_from(p: u32) -> Result<Self, PrimeError>

Performs the conversion.
source§

impl Copy for P3

source§

impl Eq for P3

source§

impl MaybeArbitrary<Option<NonZero<u32>>> for P3

source§

impl StructuralPartialEq for P3

Auto Trait Implementations§

§

impl Freeze for P3

§

impl RefUnwindSafe for P3

§

impl Send for P3

§

impl Sync for P3

§

impl Unpin for P3

§

impl UnwindSafe for P3

Blanket Implementations§

source§

impl<T> Any for T
where +operator. Read more

source§

impl Prime for P3

source§

fn as_i32(self) -> i32

source§

fn to_dyn(self) -> ValidPrime

source§

fn as_u32(self) -> u32

source§

fn as_usize(self) -> usize

source§

fn sum(self, n1: u32, n2: u32) -> u32

Computes the sum mod p. This takes care of overflow.
source§

fn product(self, n1: u32, n2: u32) -> u32

Computes the product mod p. This takes care of overflow.
source§

fn inverse(self, k: u32) -> u32

source§

fn pow(self, exp: u32) -> u32

source§

fn pow_mod(self, b: u32, e: u32) -> u32

source§

impl Rem<P3> for u32

§

type Output = u32

The resulting type after applying the % operator.
source§

fn rem(self, other: P3) -> Self::Output

Performs the % operation. Read more
source§

impl Rem<u32> for P3

§

type Output = u32

The resulting type after applying the % operator.
source§

fn rem(self, other: u32) -> Self::Output

Performs the % operation. Read more
source§

impl Rem for P3

§

type Output = u32

The resulting type after applying the % operator.
source§

fn rem(self, other: P3) -> Self::Output

Performs the % operation. Read more
source§

impl RemAssign<P3> for u32

source§

fn rem_assign(&mut self, other: P3)

Performs the %= operation. Read more
source§

impl Serialize for P3

source§

fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where + S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Shl<P3> for u32

§

type Output = u32

The resulting type after applying the << operator.
source§

fn shl(self, other: P3) -> Self::Output

Performs the << operation. Read more
source§

impl Shl<u32> for P3

§

type Output = u32

The resulting type after applying the << operator.
source§

fn shl(self, other: u32) -> Self::Output

Performs the << operation. Read more
source§

impl Shl for P3

§

type Output = u32

The resulting type after applying the << operator.
source§

fn shl(self, other: P3) -> Self::Output

Performs the << operation. Read more
source§

impl ShlAssign<P3> for u32

source§

fn shl_assign(&mut self, other: P3)

Performs the <<= operation. Read more
source§

impl Shr<P3> for u32

§

type Output = u32

The resulting type after applying the >> operator.
source§

fn shr(self, other: P3) -> Self::Output

Performs the >> operation. Read more
source§

impl Shr<u32> for P3

§

type Output = u32

The resulting type after applying the >> operator.
source§

fn shr(self, other: u32) -> Self::Output

Performs the >> operation. Read more
source§

impl Shr for P3

§

type Output = u32

The resulting type after applying the >> operator.
source§

fn shr(self, other: P3) -> Self::Output

Performs the >> operation. Read more
source§

impl ShrAssign<P3> for u32

source§

fn shr_assign(&mut self, other: P3)

Performs the >>= operation. Read more
source§

impl Sub<P3> for u32

§

type Output = u32

The resulting type after applying the - operator.
source§

fn sub(self, other: P3) -> Self::Output

Performs the - operation. Read more
source§

impl Sub<u32> for P3

§

type Output = u32

The resulting type after applying the - operator.
source§

fn sub(self, other: u32) -> Self::Output

Performs the - operation. Read more
source§

impl Sub for P3

§

type Output = u32

The resulting type after applying the - operator.
source§

fn sub(self, other: P3) -> Self::Output

Performs the - operation. Read more
source§

impl SubAssign<P3> for u32

source§

fn sub_assign(&mut self, other: P3)

Performs the -= operation. Read more
source§

impl TryFrom<u32> for P3

§

type Error = PrimeError

The type returned in the event of a conversion error.
source§

fn try_from(p: u32) -> Result<Self, PrimeError>

Performs the conversion.
source§

impl Copy for P3

source§

impl Eq for P3

source§

impl MaybeArbitrary<Option<NonZero<u32>>> for P3

source§

impl StructuralPartialEq for P3

Auto Trait Implementations§

§

impl Freeze for P3

§

impl RefUnwindSafe for P3

§

impl Send for P3

§

impl Sync for P3

§

impl Unpin for P3

§

impl UnwindSafe for P3

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where diff --git a/docs/fp/prime/primes_generic/struct.P5.html b/docs/fp/prime/primes_generic/struct.P5.html index d2eeb4d50..68871a311 100644 --- a/docs/fp/prime/primes_generic/struct.P5.html +++ b/docs/fp/prime/primes_generic/struct.P5.html @@ -23,21 +23,21 @@ }); -

Struct fp::prime::primes_generic::P5

source ·
pub struct P5;

Trait Implementations§

source§

impl Add<P5> for u32

§

type Output = u32

The resulting type after applying the + operator.
source§

fn add(self, other: P5) -> Self::Output

Performs the + operation. Read more
source§

impl Add<u32> for P5

§

type Output = u32

The resulting type after applying the + operator.
source§

fn add(self, other: u32) -> Self::Output

Performs the + operation. Read more
source§

impl Add for P5

§

type Output = u32

The resulting type after applying the + operator.
source§

fn add(self, other: P5) -> Self::Output

Performs the + operation. Read more
source§

impl AddAssign<P5> for u32

source§

fn add_assign(&mut self, other: P5)

Performs the += operation. Read more
source§

impl Arbitrary for P5

§

type Parameters = Option<NonZero<u32>>

The type of parameters that arbitrary_with accepts for configuration +

Struct fp::prime::primes_generic::P5

source ·
pub struct P5;

Trait Implementations§

source§

impl Add<P5> for u32

§

type Output = u32

The resulting type after applying the + operator.
source§

fn add(self, other: P5) -> Self::Output

Performs the + operation. Read more
source§

impl Add<u32> for P5

§

type Output = u32

The resulting type after applying the + operator.
source§

fn add(self, other: u32) -> Self::Output

Performs the + operation. Read more
source§

impl Add for P5

§

type Output = u32

The resulting type after applying the + operator.
source§

fn add(self, other: P5) -> Self::Output

Performs the + operation. Read more
source§

impl AddAssign<P5> for u32

source§

fn add_assign(&mut self, other: P5)

Performs the += operation. Read more
source§

impl Arbitrary for P5

§

type Parameters = Option<NonZero<u32>>

The type of parameters that arbitrary_with accepts for configuration of the generated Strategy. Parameters must implement Default.
§

type Strategy = Just<P5>

The type of Strategy used to generate values of type Self.
source§

fn arbitrary_with(_max: Self::Parameters) -> Self::Strategy

Generates a Strategy for producing arbitrary values of type the implementing type (Self). The strategy is passed the arguments given in args. Read more
§

fn arbitrary() -> Self::Strategy

Generates a Strategy for producing arbitrary values of type the implementing type (Self). Read more
source§

impl Clone for P5

source§

fn clone(&self) -> P5

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for P5

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for P5

source§

fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where - D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for P5

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Div<P5> for u32

§

type Output = u32

The resulting type after applying the / operator.
source§

fn div(self, other: P5) -> Self::Output

Performs the / operation. Read more
source§

impl Div<u32> for P5

§

type Output = u32

The resulting type after applying the / operator.
source§

fn div(self, other: u32) -> Self::Output

Performs the / operation. Read more
source§

impl Div for P5

§

type Output = u32

The resulting type after applying the / operator.
source§

fn div(self, other: P5) -> Self::Output

Performs the / operation. Read more
source§

impl DivAssign<P5> for u32

source§

fn div_assign(&mut self, other: P5)

Performs the /= operation. Read more
source§

impl From<P5> for u32

source§

fn from(value: P5) -> u32

Converts to this type from the input type.
source§

impl Hash for P5

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where + D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for P5

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Div<P5> for u32

§

type Output = u32

The resulting type after applying the / operator.
source§

fn div(self, other: P5) -> Self::Output

Performs the / operation. Read more
source§

impl Div<u32> for P5

§

type Output = u32

The resulting type after applying the / operator.
source§

fn div(self, other: u32) -> Self::Output

Performs the / operation. Read more
source§

impl Div for P5

§

type Output = u32

The resulting type after applying the / operator.
source§

fn div(self, other: P5) -> Self::Output

Performs the / operation. Read more
source§

impl DivAssign<P5> for u32

source§

fn div_assign(&mut self, other: P5)

Performs the /= operation. Read more
source§

impl From<P5> for u32

source§

fn from(value: P5) -> u32

Converts to this type from the input type.
source§

impl Hash for P5

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl Mul<P5> for u32

§

type Output = u32

The resulting type after applying the * operator.
source§

fn mul(self, other: P5) -> Self::Output

Performs the * operation. Read more
source§

impl Mul<u32> for P5

§

type Output = u32

The resulting type after applying the * operator.
source§

fn mul(self, other: u32) -> Self::Output

Performs the * operation. Read more
source§

impl Mul for P5

§

type Output = u32

The resulting type after applying the * operator.
source§

fn mul(self, other: P5) -> Self::Output

Performs the * operation. Read more
source§

impl MulAssign<P5> for u32

source§

fn mul_assign(&mut self, other: P5)

Performs the *= operation. Read more
source§

impl PartialEq<u32> for P5

source§

fn eq(&self, other: &u32) -> bool

This method tests for self and other values to be equal, and is used + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl Mul<P5> for u32

§

type Output = u32

The resulting type after applying the * operator.
source§

fn mul(self, other: P5) -> Self::Output

Performs the * operation. Read more
source§

impl Mul<u32> for P5

§

type Output = u32

The resulting type after applying the * operator.
source§

fn mul(self, other: u32) -> Self::Output

Performs the * operation. Read more
source§

impl Mul for P5

§

type Output = u32

The resulting type after applying the * operator.
source§

fn mul(self, other: P5) -> Self::Output

Performs the * operation. Read more
source§

impl MulAssign<P5> for u32

source§

fn mul_assign(&mut self, other: P5)

Performs the *= operation. Read more
source§

impl PartialEq<u32> for P5

source§

fn eq(&self, other: &u32) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl PartialEq for P5

source§

fn eq(&self, other: &P5) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl PartialOrd<u32> for P5

source§

fn partial_cmp(&self, other: &u32) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= -operator. Read more
source§

impl Prime for P5

source§

fn as_i32(self) -> i32

source§

fn to_dyn(self) -> ValidPrime

source§

fn as_u32(self) -> u32

source§

fn as_usize(self) -> usize

source§

fn sum(self, n1: u32, n2: u32) -> u32

Computes the sum mod p. This takes care of overflow.
source§

fn product(self, n1: u32, n2: u32) -> u32

Computes the product mod p. This takes care of overflow.
source§

fn inverse(self, k: u32) -> u32

source§

fn pow(self, exp: u32) -> u32

source§

fn pow_mod(self, b: u32, e: u32) -> u32

source§

impl Rem<P5> for u32

§

type Output = u32

The resulting type after applying the % operator.
source§

fn rem(self, other: P5) -> Self::Output

Performs the % operation. Read more
source§

impl Rem<u32> for P5

§

type Output = u32

The resulting type after applying the % operator.
source§

fn rem(self, other: u32) -> Self::Output

Performs the % operation. Read more
source§

impl Rem for P5

§

type Output = u32

The resulting type after applying the % operator.
source§

fn rem(self, other: P5) -> Self::Output

Performs the % operation. Read more
source§

impl RemAssign<P5> for u32

source§

fn rem_assign(&mut self, other: P5)

Performs the %= operation. Read more
source§

impl Serialize for P5

source§

fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where - S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Shl<P5> for u32

§

type Output = u32

The resulting type after applying the << operator.
source§

fn shl(self, other: P5) -> Self::Output

Performs the << operation. Read more
source§

impl Shl<u32> for P5

§

type Output = u32

The resulting type after applying the << operator.
source§

fn shl(self, other: u32) -> Self::Output

Performs the << operation. Read more
source§

impl Shl for P5

§

type Output = u32

The resulting type after applying the << operator.
source§

fn shl(self, other: P5) -> Self::Output

Performs the << operation. Read more
source§

impl ShlAssign<P5> for u32

source§

fn shl_assign(&mut self, other: P5)

Performs the <<= operation. Read more
source§

impl Shr<P5> for u32

§

type Output = u32

The resulting type after applying the >> operator.
source§

fn shr(self, other: P5) -> Self::Output

Performs the >> operation. Read more
source§

impl Shr<u32> for P5

§

type Output = u32

The resulting type after applying the >> operator.
source§

fn shr(self, other: u32) -> Self::Output

Performs the >> operation. Read more
source§

impl Shr for P5

§

type Output = u32

The resulting type after applying the >> operator.
source§

fn shr(self, other: P5) -> Self::Output

Performs the >> operation. Read more
source§

impl ShrAssign<P5> for u32

source§

fn shr_assign(&mut self, other: P5)

Performs the >>= operation. Read more
source§

impl Sub<P5> for u32

§

type Output = u32

The resulting type after applying the - operator.
source§

fn sub(self, other: P5) -> Self::Output

Performs the - operation. Read more
source§

impl Sub<u32> for P5

§

type Output = u32

The resulting type after applying the - operator.
source§

fn sub(self, other: u32) -> Self::Output

Performs the - operation. Read more
source§

impl Sub for P5

§

type Output = u32

The resulting type after applying the - operator.
source§

fn sub(self, other: P5) -> Self::Output

Performs the - operation. Read more
source§

impl SubAssign<P5> for u32

source§

fn sub_assign(&mut self, other: P5)

Performs the -= operation. Read more
source§

impl TryFrom<u32> for P5

§

type Error = PrimeError

The type returned in the event of a conversion error.
source§

fn try_from(p: u32) -> Result<Self, PrimeError>

Performs the conversion.
source§

impl Copy for P5

source§

impl Eq for P5

source§

impl MaybeArbitrary<Option<NonZero<u32>>> for P5

source§

impl StructuralPartialEq for P5

Auto Trait Implementations§

§

impl Freeze for P5

§

impl RefUnwindSafe for P5

§

impl Send for P5

§

impl Sync for P5

§

impl Unpin for P5

§

impl UnwindSafe for P5

Blanket Implementations§

source§

impl<T> Any for T
where +operator. Read more

source§

impl Prime for P5

source§

fn as_i32(self) -> i32

source§

fn to_dyn(self) -> ValidPrime

source§

fn as_u32(self) -> u32

source§

fn as_usize(self) -> usize

source§

fn sum(self, n1: u32, n2: u32) -> u32

Computes the sum mod p. This takes care of overflow.
source§

fn product(self, n1: u32, n2: u32) -> u32

Computes the product mod p. This takes care of overflow.
source§

fn inverse(self, k: u32) -> u32

source§

fn pow(self, exp: u32) -> u32

source§

fn pow_mod(self, b: u32, e: u32) -> u32

source§

impl Rem<P5> for u32

§

type Output = u32

The resulting type after applying the % operator.
source§

fn rem(self, other: P5) -> Self::Output

Performs the % operation. Read more
source§

impl Rem<u32> for P5

§

type Output = u32

The resulting type after applying the % operator.
source§

fn rem(self, other: u32) -> Self::Output

Performs the % operation. Read more
source§

impl Rem for P5

§

type Output = u32

The resulting type after applying the % operator.
source§

fn rem(self, other: P5) -> Self::Output

Performs the % operation. Read more
source§

impl RemAssign<P5> for u32

source§

fn rem_assign(&mut self, other: P5)

Performs the %= operation. Read more
source§

impl Serialize for P5

source§

fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where + S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Shl<P5> for u32

§

type Output = u32

The resulting type after applying the << operator.
source§

fn shl(self, other: P5) -> Self::Output

Performs the << operation. Read more
source§

impl Shl<u32> for P5

§

type Output = u32

The resulting type after applying the << operator.
source§

fn shl(self, other: u32) -> Self::Output

Performs the << operation. Read more
source§

impl Shl for P5

§

type Output = u32

The resulting type after applying the << operator.
source§

fn shl(self, other: P5) -> Self::Output

Performs the << operation. Read more
source§

impl ShlAssign<P5> for u32

source§

fn shl_assign(&mut self, other: P5)

Performs the <<= operation. Read more
source§

impl Shr<P5> for u32

§

type Output = u32

The resulting type after applying the >> operator.
source§

fn shr(self, other: P5) -> Self::Output

Performs the >> operation. Read more
source§

impl Shr<u32> for P5

§

type Output = u32

The resulting type after applying the >> operator.
source§

fn shr(self, other: u32) -> Self::Output

Performs the >> operation. Read more
source§

impl Shr for P5

§

type Output = u32

The resulting type after applying the >> operator.
source§

fn shr(self, other: P5) -> Self::Output

Performs the >> operation. Read more
source§

impl ShrAssign<P5> for u32

source§

fn shr_assign(&mut self, other: P5)

Performs the >>= operation. Read more
source§

impl Sub<P5> for u32

§

type Output = u32

The resulting type after applying the - operator.
source§

fn sub(self, other: P5) -> Self::Output

Performs the - operation. Read more
source§

impl Sub<u32> for P5

§

type Output = u32

The resulting type after applying the - operator.
source§

fn sub(self, other: u32) -> Self::Output

Performs the - operation. Read more
source§

impl Sub for P5

§

type Output = u32

The resulting type after applying the - operator.
source§

fn sub(self, other: P5) -> Self::Output

Performs the - operation. Read more
source§

impl SubAssign<P5> for u32

source§

fn sub_assign(&mut self, other: P5)

Performs the -= operation. Read more
source§

impl TryFrom<u32> for P5

§

type Error = PrimeError

The type returned in the event of a conversion error.
source§

fn try_from(p: u32) -> Result<Self, PrimeError>

Performs the conversion.
source§

impl Copy for P5

source§

impl Eq for P5

source§

impl MaybeArbitrary<Option<NonZero<u32>>> for P5

source§

impl StructuralPartialEq for P5

Auto Trait Implementations§

§

impl Freeze for P5

§

impl RefUnwindSafe for P5

§

impl Send for P5

§

impl Sync for P5

§

impl Unpin for P5

§

impl UnwindSafe for P5

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where diff --git a/docs/fp/prime/primes_generic/struct.P7.html b/docs/fp/prime/primes_generic/struct.P7.html index 1c6c47903..bf1cecec9 100644 --- a/docs/fp/prime/primes_generic/struct.P7.html +++ b/docs/fp/prime/primes_generic/struct.P7.html @@ -23,21 +23,21 @@ }); -

Struct fp::prime::primes_generic::P7

source ·
pub struct P7;

Trait Implementations§

source§

impl Add<P7> for u32

§

type Output = u32

The resulting type after applying the + operator.
source§

fn add(self, other: P7) -> Self::Output

Performs the + operation. Read more
source§

impl Add<u32> for P7

§

type Output = u32

The resulting type after applying the + operator.
source§

fn add(self, other: u32) -> Self::Output

Performs the + operation. Read more
source§

impl Add for P7

§

type Output = u32

The resulting type after applying the + operator.
source§

fn add(self, other: P7) -> Self::Output

Performs the + operation. Read more
source§

impl AddAssign<P7> for u32

source§

fn add_assign(&mut self, other: P7)

Performs the += operation. Read more
source§

impl Arbitrary for P7

§

type Parameters = Option<NonZero<u32>>

The type of parameters that arbitrary_with accepts for configuration +

Struct fp::prime::primes_generic::P7

source ·
pub struct P7;

Trait Implementations§

source§

impl Add<P7> for u32

§

type Output = u32

The resulting type after applying the + operator.
source§

fn add(self, other: P7) -> Self::Output

Performs the + operation. Read more
source§

impl Add<u32> for P7

§

type Output = u32

The resulting type after applying the + operator.
source§

fn add(self, other: u32) -> Self::Output

Performs the + operation. Read more
source§

impl Add for P7

§

type Output = u32

The resulting type after applying the + operator.
source§

fn add(self, other: P7) -> Self::Output

Performs the + operation. Read more
source§

impl AddAssign<P7> for u32

source§

fn add_assign(&mut self, other: P7)

Performs the += operation. Read more
source§

impl Arbitrary for P7

§

type Parameters = Option<NonZero<u32>>

The type of parameters that arbitrary_with accepts for configuration of the generated Strategy. Parameters must implement Default.
§

type Strategy = Just<P7>

The type of Strategy used to generate values of type Self.
source§

fn arbitrary_with(_max: Self::Parameters) -> Self::Strategy

Generates a Strategy for producing arbitrary values of type the implementing type (Self). The strategy is passed the arguments given in args. Read more
§

fn arbitrary() -> Self::Strategy

Generates a Strategy for producing arbitrary values of type the implementing type (Self). Read more
source§

impl Clone for P7

source§

fn clone(&self) -> P7

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for P7

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for P7

source§

fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where - D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for P7

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Div<P7> for u32

§

type Output = u32

The resulting type after applying the / operator.
source§

fn div(self, other: P7) -> Self::Output

Performs the / operation. Read more
source§

impl Div<u32> for P7

§

type Output = u32

The resulting type after applying the / operator.
source§

fn div(self, other: u32) -> Self::Output

Performs the / operation. Read more
source§

impl Div for P7

§

type Output = u32

The resulting type after applying the / operator.
source§

fn div(self, other: P7) -> Self::Output

Performs the / operation. Read more
source§

impl DivAssign<P7> for u32

source§

fn div_assign(&mut self, other: P7)

Performs the /= operation. Read more
source§

impl From<P7> for u32

source§

fn from(value: P7) -> u32

Converts to this type from the input type.
source§

impl Hash for P7

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where + D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for P7

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Div<P7> for u32

§

type Output = u32

The resulting type after applying the / operator.
source§

fn div(self, other: P7) -> Self::Output

Performs the / operation. Read more
source§

impl Div<u32> for P7

§

type Output = u32

The resulting type after applying the / operator.
source§

fn div(self, other: u32) -> Self::Output

Performs the / operation. Read more
source§

impl Div for P7

§

type Output = u32

The resulting type after applying the / operator.
source§

fn div(self, other: P7) -> Self::Output

Performs the / operation. Read more
source§

impl DivAssign<P7> for u32

source§

fn div_assign(&mut self, other: P7)

Performs the /= operation. Read more
source§

impl From<P7> for u32

source§

fn from(value: P7) -> u32

Converts to this type from the input type.
source§

impl Hash for P7

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl Mul<P7> for u32

§

type Output = u32

The resulting type after applying the * operator.
source§

fn mul(self, other: P7) -> Self::Output

Performs the * operation. Read more
source§

impl Mul<u32> for P7

§

type Output = u32

The resulting type after applying the * operator.
source§

fn mul(self, other: u32) -> Self::Output

Performs the * operation. Read more
source§

impl Mul for P7

§

type Output = u32

The resulting type after applying the * operator.
source§

fn mul(self, other: P7) -> Self::Output

Performs the * operation. Read more
source§

impl MulAssign<P7> for u32

source§

fn mul_assign(&mut self, other: P7)

Performs the *= operation. Read more
source§

impl PartialEq<u32> for P7

source§

fn eq(&self, other: &u32) -> bool

This method tests for self and other values to be equal, and is used + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl Mul<P7> for u32

§

type Output = u32

The resulting type after applying the * operator.
source§

fn mul(self, other: P7) -> Self::Output

Performs the * operation. Read more
source§

impl Mul<u32> for P7

§

type Output = u32

The resulting type after applying the * operator.
source§

fn mul(self, other: u32) -> Self::Output

Performs the * operation. Read more
source§

impl Mul for P7

§

type Output = u32

The resulting type after applying the * operator.
source§

fn mul(self, other: P7) -> Self::Output

Performs the * operation. Read more
source§

impl MulAssign<P7> for u32

source§

fn mul_assign(&mut self, other: P7)

Performs the *= operation. Read more
source§

impl PartialEq<u32> for P7

source§

fn eq(&self, other: &u32) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl PartialEq for P7

source§

fn eq(&self, other: &P7) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl PartialOrd<u32> for P7

source§

fn partial_cmp(&self, other: &u32) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= -operator. Read more
source§

impl Prime for P7

source§

fn as_i32(self) -> i32

source§

fn to_dyn(self) -> ValidPrime

source§

fn as_u32(self) -> u32

source§

fn as_usize(self) -> usize

source§

fn sum(self, n1: u32, n2: u32) -> u32

Computes the sum mod p. This takes care of overflow.
source§

fn product(self, n1: u32, n2: u32) -> u32

Computes the product mod p. This takes care of overflow.
source§

fn inverse(self, k: u32) -> u32

source§

fn pow(self, exp: u32) -> u32

source§

fn pow_mod(self, b: u32, e: u32) -> u32

source§

impl Rem<P7> for u32

§

type Output = u32

The resulting type after applying the % operator.
source§

fn rem(self, other: P7) -> Self::Output

Performs the % operation. Read more
source§

impl Rem<u32> for P7

§

type Output = u32

The resulting type after applying the % operator.
source§

fn rem(self, other: u32) -> Self::Output

Performs the % operation. Read more
source§

impl Rem for P7

§

type Output = u32

The resulting type after applying the % operator.
source§

fn rem(self, other: P7) -> Self::Output

Performs the % operation. Read more
source§

impl RemAssign<P7> for u32

source§

fn rem_assign(&mut self, other: P7)

Performs the %= operation. Read more
source§

impl Serialize for P7

source§

fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where - S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Shl<P7> for u32

§

type Output = u32

The resulting type after applying the << operator.
source§

fn shl(self, other: P7) -> Self::Output

Performs the << operation. Read more
source§

impl Shl<u32> for P7

§

type Output = u32

The resulting type after applying the << operator.
source§

fn shl(self, other: u32) -> Self::Output

Performs the << operation. Read more
source§

impl Shl for P7

§

type Output = u32

The resulting type after applying the << operator.
source§

fn shl(self, other: P7) -> Self::Output

Performs the << operation. Read more
source§

impl ShlAssign<P7> for u32

source§

fn shl_assign(&mut self, other: P7)

Performs the <<= operation. Read more
source§

impl Shr<P7> for u32

§

type Output = u32

The resulting type after applying the >> operator.
source§

fn shr(self, other: P7) -> Self::Output

Performs the >> operation. Read more
source§

impl Shr<u32> for P7

§

type Output = u32

The resulting type after applying the >> operator.
source§

fn shr(self, other: u32) -> Self::Output

Performs the >> operation. Read more
source§

impl Shr for P7

§

type Output = u32

The resulting type after applying the >> operator.
source§

fn shr(self, other: P7) -> Self::Output

Performs the >> operation. Read more
source§

impl ShrAssign<P7> for u32

source§

fn shr_assign(&mut self, other: P7)

Performs the >>= operation. Read more
source§

impl Sub<P7> for u32

§

type Output = u32

The resulting type after applying the - operator.
source§

fn sub(self, other: P7) -> Self::Output

Performs the - operation. Read more
source§

impl Sub<u32> for P7

§

type Output = u32

The resulting type after applying the - operator.
source§

fn sub(self, other: u32) -> Self::Output

Performs the - operation. Read more
source§

impl Sub for P7

§

type Output = u32

The resulting type after applying the - operator.
source§

fn sub(self, other: P7) -> Self::Output

Performs the - operation. Read more
source§

impl SubAssign<P7> for u32

source§

fn sub_assign(&mut self, other: P7)

Performs the -= operation. Read more
source§

impl TryFrom<u32> for P7

§

type Error = PrimeError

The type returned in the event of a conversion error.
source§

fn try_from(p: u32) -> Result<Self, PrimeError>

Performs the conversion.
source§

impl Copy for P7

source§

impl Eq for P7

source§

impl MaybeArbitrary<Option<NonZero<u32>>> for P7

source§

impl StructuralPartialEq for P7

Auto Trait Implementations§

§

impl Freeze for P7

§

impl RefUnwindSafe for P7

§

impl Send for P7

§

impl Sync for P7

§

impl Unpin for P7

§

impl UnwindSafe for P7

Blanket Implementations§

source§

impl<T> Any for T
where +operator. Read more

source§

impl Prime for P7

source§

fn as_i32(self) -> i32

source§

fn to_dyn(self) -> ValidPrime

source§

fn as_u32(self) -> u32

source§

fn as_usize(self) -> usize

source§

fn sum(self, n1: u32, n2: u32) -> u32

Computes the sum mod p. This takes care of overflow.
source§

fn product(self, n1: u32, n2: u32) -> u32

Computes the product mod p. This takes care of overflow.
source§

fn inverse(self, k: u32) -> u32

source§

fn pow(self, exp: u32) -> u32

source§

fn pow_mod(self, b: u32, e: u32) -> u32

source§

impl Rem<P7> for u32

§

type Output = u32

The resulting type after applying the % operator.
source§

fn rem(self, other: P7) -> Self::Output

Performs the % operation. Read more
source§

impl Rem<u32> for P7

§

type Output = u32

The resulting type after applying the % operator.
source§

fn rem(self, other: u32) -> Self::Output

Performs the % operation. Read more
source§

impl Rem for P7

§

type Output = u32

The resulting type after applying the % operator.
source§

fn rem(self, other: P7) -> Self::Output

Performs the % operation. Read more
source§

impl RemAssign<P7> for u32

source§

fn rem_assign(&mut self, other: P7)

Performs the %= operation. Read more
source§

impl Serialize for P7

source§

fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where + S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Shl<P7> for u32

§

type Output = u32

The resulting type after applying the << operator.
source§

fn shl(self, other: P7) -> Self::Output

Performs the << operation. Read more
source§

impl Shl<u32> for P7

§

type Output = u32

The resulting type after applying the << operator.
source§

fn shl(self, other: u32) -> Self::Output

Performs the << operation. Read more
source§

impl Shl for P7

§

type Output = u32

The resulting type after applying the << operator.
source§

fn shl(self, other: P7) -> Self::Output

Performs the << operation. Read more
source§

impl ShlAssign<P7> for u32

source§

fn shl_assign(&mut self, other: P7)

Performs the <<= operation. Read more
source§

impl Shr<P7> for u32

§

type Output = u32

The resulting type after applying the >> operator.
source§

fn shr(self, other: P7) -> Self::Output

Performs the >> operation. Read more
source§

impl Shr<u32> for P7

§

type Output = u32

The resulting type after applying the >> operator.
source§

fn shr(self, other: u32) -> Self::Output

Performs the >> operation. Read more
source§

impl Shr for P7

§

type Output = u32

The resulting type after applying the >> operator.
source§

fn shr(self, other: P7) -> Self::Output

Performs the >> operation. Read more
source§

impl ShrAssign<P7> for u32

source§

fn shr_assign(&mut self, other: P7)

Performs the >>= operation. Read more
source§

impl Sub<P7> for u32

§

type Output = u32

The resulting type after applying the - operator.
source§

fn sub(self, other: P7) -> Self::Output

Performs the - operation. Read more
source§

impl Sub<u32> for P7

§

type Output = u32

The resulting type after applying the - operator.
source§

fn sub(self, other: u32) -> Self::Output

Performs the - operation. Read more
source§

impl Sub for P7

§

type Output = u32

The resulting type after applying the - operator.
source§

fn sub(self, other: P7) -> Self::Output

Performs the - operation. Read more
source§

impl SubAssign<P7> for u32

source§

fn sub_assign(&mut self, other: P7)

Performs the -= operation. Read more
source§

impl TryFrom<u32> for P7

§

type Error = PrimeError

The type returned in the event of a conversion error.
source§

fn try_from(p: u32) -> Result<Self, PrimeError>

Performs the conversion.
source§

impl Copy for P7

source§

impl Eq for P7

source§

impl MaybeArbitrary<Option<NonZero<u32>>> for P7

source§

impl StructuralPartialEq for P7

Auto Trait Implementations§

§

impl Freeze for P7

§

impl RefUnwindSafe for P7

§

impl Send for P7

§

impl Sync for P7

§

impl Unpin for P7

§

impl UnwindSafe for P7

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where diff --git a/docs/fp/prime/primes_generic/struct.ValidPrime.html b/docs/fp/prime/primes_generic/struct.ValidPrime.html index 4924b859a..23a644250 100644 --- a/docs/fp/prime/primes_generic/struct.ValidPrime.html +++ b/docs/fp/prime/primes_generic/struct.ValidPrime.html @@ -25,21 +25,21 @@

Struct fp::prime::primes_generic::ValidPrime

source ·
pub struct ValidPrime {
     p: u32,
-}

Fields§

§p: u32

Implementations§

source§

impl ValidPrime

source

pub const fn new(p: u32) -> Self

source

pub const fn new_unchecked(p: u32) -> Self

Trait Implementations§

source§

impl Add<ValidPrime> for u32

§

type Output = u32

The resulting type after applying the + operator.
source§

fn add(self, other: ValidPrime) -> Self::Output

Performs the + operation. Read more
source§

impl Add<u32> for ValidPrime

§

type Output = u32

The resulting type after applying the + operator.
source§

fn add(self, other: u32) -> Self::Output

Performs the + operation. Read more
source§

impl Add for ValidPrime

§

type Output = u32

The resulting type after applying the + operator.
source§

fn add(self, other: ValidPrime) -> Self::Output

Performs the + operation. Read more
source§

impl AddAssign<ValidPrime> for u32

source§

fn add_assign(&mut self, other: ValidPrime)

Performs the += operation. Read more
source§

impl Arbitrary for ValidPrime

source§

fn arbitrary_with(max: Self::Parameters) -> Self::Strategy

An arbitrary ValidPrime in the range 2..(1 << 24), plus the largest prime that we +}

Fields§

§p: u32

Implementations§

source§

impl ValidPrime

source

pub const fn new(p: u32) -> Self

source

pub const fn new_unchecked(p: u32) -> Self

Trait Implementations§

source§

impl Add<ValidPrime> for u32

§

type Output = u32

The resulting type after applying the + operator.
source§

fn add(self, other: ValidPrime) -> Self::Output

Performs the + operation. Read more
source§

impl Add<u32> for ValidPrime

§

type Output = u32

The resulting type after applying the + operator.
source§

fn add(self, other: u32) -> Self::Output

Performs the + operation. Read more
source§

impl Add for ValidPrime

§

type Output = u32

The resulting type after applying the + operator.
source§

fn add(self, other: ValidPrime) -> Self::Output

Performs the + operation. Read more
source§

impl AddAssign<ValidPrime> for u32

source§

fn add_assign(&mut self, other: ValidPrime)

Performs the += operation. Read more
source§

impl Arbitrary for ValidPrime

source§

fn arbitrary_with(max: Self::Parameters) -> Self::Strategy

An arbitrary ValidPrime in the range 2..(1 << 24), plus the largest prime that we support. If max is specified, the primes are restricted to be less than max.

§

type Parameters = Option<NonZero<u32>>

The type of parameters that arbitrary_with accepts for configuration of the generated Strategy. Parameters must implement Default.
§

type Strategy = Select<ValidPrime>

The type of Strategy used to generate values of type Self.
§

fn arbitrary() -> Self::Strategy

Generates a Strategy for producing arbitrary values of type the implementing type (Self). Read more
source§

impl Clone for ValidPrime

source§

fn clone(&self) -> ValidPrime

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for ValidPrime

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for ValidPrime

source§

fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where - D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for ValidPrime

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Div<ValidPrime> for u32

§

type Output = u32

The resulting type after applying the / operator.
source§

fn div(self, other: ValidPrime) -> Self::Output

Performs the / operation. Read more
source§

impl Div<u32> for ValidPrime

§

type Output = u32

The resulting type after applying the / operator.
source§

fn div(self, other: u32) -> Self::Output

Performs the / operation. Read more
source§

impl Div for ValidPrime

§

type Output = u32

The resulting type after applying the / operator.
source§

fn div(self, other: ValidPrime) -> Self::Output

Performs the / operation. Read more
source§

impl DivAssign<ValidPrime> for u32

source§

fn div_assign(&mut self, other: ValidPrime)

Performs the /= operation. Read more
source§

impl From<ValidPrime> for u32

source§

fn from(value: ValidPrime) -> u32

Converts to this type from the input type.
source§

impl FromStr for ValidPrime

§

type Err = PrimeError

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<Self, Self::Err>

Parses a string s to return a value of this type. Read more
source§

impl Hash for ValidPrime

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where + D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for ValidPrime

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Div<ValidPrime> for u32

§

type Output = u32

The resulting type after applying the / operator.
source§

fn div(self, other: ValidPrime) -> Self::Output

Performs the / operation. Read more
source§

impl Div<u32> for ValidPrime

§

type Output = u32

The resulting type after applying the / operator.
source§

fn div(self, other: u32) -> Self::Output

Performs the / operation. Read more
source§

impl Div for ValidPrime

§

type Output = u32

The resulting type after applying the / operator.
source§

fn div(self, other: ValidPrime) -> Self::Output

Performs the / operation. Read more
source§

impl DivAssign<ValidPrime> for u32

source§

fn div_assign(&mut self, other: ValidPrime)

Performs the /= operation. Read more
source§

impl From<ValidPrime> for u32

source§

fn from(value: ValidPrime) -> u32

Converts to this type from the input type.
source§

impl FromStr for ValidPrime

§

type Err = PrimeError

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<Self, Self::Err>

Parses a string s to return a value of this type. Read more
source§

impl Hash for ValidPrime

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl Mul<ValidPrime> for u32

§

type Output = u32

The resulting type after applying the * operator.
source§

fn mul(self, other: ValidPrime) -> Self::Output

Performs the * operation. Read more
source§

impl Mul<u32> for ValidPrime

§

type Output = u32

The resulting type after applying the * operator.
source§

fn mul(self, other: u32) -> Self::Output

Performs the * operation. Read more
source§

impl Mul for ValidPrime

§

type Output = u32

The resulting type after applying the * operator.
source§

fn mul(self, other: ValidPrime) -> Self::Output

Performs the * operation. Read more
source§

impl MulAssign<ValidPrime> for u32

source§

fn mul_assign(&mut self, other: ValidPrime)

Performs the *= operation. Read more
source§

impl PartialEq<u32> for ValidPrime

source§

fn eq(&self, other: &u32) -> bool

This method tests for self and other values to be equal, and is used + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl Mul<ValidPrime> for u32

§

type Output = u32

The resulting type after applying the * operator.
source§

fn mul(self, other: ValidPrime) -> Self::Output

Performs the * operation. Read more
source§

impl Mul<u32> for ValidPrime

§

type Output = u32

The resulting type after applying the * operator.
source§

fn mul(self, other: u32) -> Self::Output

Performs the * operation. Read more
source§

impl Mul for ValidPrime

§

type Output = u32

The resulting type after applying the * operator.
source§

fn mul(self, other: ValidPrime) -> Self::Output

Performs the * operation. Read more
source§

impl MulAssign<ValidPrime> for u32

source§

fn mul_assign(&mut self, other: ValidPrime)

Performs the *= operation. Read more
source§

impl PartialEq<u32> for ValidPrime

source§

fn eq(&self, other: &u32) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl PartialEq for ValidPrime

source§

fn eq(&self, other: &ValidPrime) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl PartialOrd<u32> for ValidPrime

source§

fn partial_cmp(&self, other: &u32) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= -operator. Read more
source§

impl Prime for ValidPrime

source§

fn as_i32(self) -> i32

source§

fn to_dyn(self) -> Self

source§

fn as_u32(self) -> u32

source§

fn as_usize(self) -> usize

source§

fn sum(self, n1: u32, n2: u32) -> u32

Computes the sum mod p. This takes care of overflow.
source§

fn product(self, n1: u32, n2: u32) -> u32

Computes the product mod p. This takes care of overflow.
source§

fn inverse(self, k: u32) -> u32

source§

fn pow(self, exp: u32) -> u32

source§

fn pow_mod(self, b: u32, e: u32) -> u32

source§

impl Rem<ValidPrime> for u32

§

type Output = u32

The resulting type after applying the % operator.
source§

fn rem(self, other: ValidPrime) -> Self::Output

Performs the % operation. Read more
source§

impl Rem<u32> for ValidPrime

§

type Output = u32

The resulting type after applying the % operator.
source§

fn rem(self, other: u32) -> Self::Output

Performs the % operation. Read more
source§

impl Rem for ValidPrime

§

type Output = u32

The resulting type after applying the % operator.
source§

fn rem(self, other: ValidPrime) -> Self::Output

Performs the % operation. Read more
source§

impl RemAssign<ValidPrime> for u32

source§

fn rem_assign(&mut self, other: ValidPrime)

Performs the %= operation. Read more
source§

impl Serialize for ValidPrime

source§

fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where - S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Shl<ValidPrime> for u32

§

type Output = u32

The resulting type after applying the << operator.
source§

fn shl(self, other: ValidPrime) -> Self::Output

Performs the << operation. Read more
source§

impl Shl<u32> for ValidPrime

§

type Output = u32

The resulting type after applying the << operator.
source§

fn shl(self, other: u32) -> Self::Output

Performs the << operation. Read more
source§

impl Shl for ValidPrime

§

type Output = u32

The resulting type after applying the << operator.
source§

fn shl(self, other: ValidPrime) -> Self::Output

Performs the << operation. Read more
source§

impl ShlAssign<ValidPrime> for u32

source§

fn shl_assign(&mut self, other: ValidPrime)

Performs the <<= operation. Read more
source§

impl Shr<ValidPrime> for u32

§

type Output = u32

The resulting type after applying the >> operator.
source§

fn shr(self, other: ValidPrime) -> Self::Output

Performs the >> operation. Read more
source§

impl Shr<u32> for ValidPrime

§

type Output = u32

The resulting type after applying the >> operator.
source§

fn shr(self, other: u32) -> Self::Output

Performs the >> operation. Read more
source§

impl Shr for ValidPrime

§

type Output = u32

The resulting type after applying the >> operator.
source§

fn shr(self, other: ValidPrime) -> Self::Output

Performs the >> operation. Read more
source§

impl ShrAssign<ValidPrime> for u32

source§

fn shr_assign(&mut self, other: ValidPrime)

Performs the >>= operation. Read more
source§

impl Sub<ValidPrime> for u32

§

type Output = u32

The resulting type after applying the - operator.
source§

fn sub(self, other: ValidPrime) -> Self::Output

Performs the - operation. Read more
source§

impl Sub<u32> for ValidPrime

§

type Output = u32

The resulting type after applying the - operator.
source§

fn sub(self, other: u32) -> Self::Output

Performs the - operation. Read more
source§

impl Sub for ValidPrime

§

type Output = u32

The resulting type after applying the - operator.
source§

fn sub(self, other: ValidPrime) -> Self::Output

Performs the - operation. Read more
source§

impl SubAssign<ValidPrime> for u32

source§

fn sub_assign(&mut self, other: ValidPrime)

Performs the -= operation. Read more
source§

impl TryFrom<u32> for ValidPrime

§

type Error = PrimeError

The type returned in the event of a conversion error.
source§

fn try_from(p: u32) -> Result<Self, PrimeError>

Performs the conversion.
source§

impl Copy for ValidPrime

source§

impl Eq for ValidPrime

source§

impl MaybeArbitrary<Option<NonZero<u32>>> for ValidPrime

source§

impl StructuralPartialEq for ValidPrime

Auto Trait Implementations§

§

impl Freeze for ValidPrime

§

impl RefUnwindSafe for ValidPrime

§

impl Send for ValidPrime

§

impl Sync for ValidPrime

§

impl Unpin for ValidPrime

§

impl UnwindSafe for ValidPrime

Blanket Implementations§

source§

impl<T> Any for T
where +operator. Read more

source§

impl Prime for ValidPrime

source§

fn as_i32(self) -> i32

source§

fn to_dyn(self) -> Self

source§

fn as_u32(self) -> u32

source§

fn as_usize(self) -> usize

source§

fn sum(self, n1: u32, n2: u32) -> u32

Computes the sum mod p. This takes care of overflow.
source§

fn product(self, n1: u32, n2: u32) -> u32

Computes the product mod p. This takes care of overflow.
source§

fn inverse(self, k: u32) -> u32

source§

fn pow(self, exp: u32) -> u32

source§

fn pow_mod(self, b: u32, e: u32) -> u32

source§

impl Rem<ValidPrime> for u32

§

type Output = u32

The resulting type after applying the % operator.
source§

fn rem(self, other: ValidPrime) -> Self::Output

Performs the % operation. Read more
source§

impl Rem<u32> for ValidPrime

§

type Output = u32

The resulting type after applying the % operator.
source§

fn rem(self, other: u32) -> Self::Output

Performs the % operation. Read more
source§

impl Rem for ValidPrime

§

type Output = u32

The resulting type after applying the % operator.
source§

fn rem(self, other: ValidPrime) -> Self::Output

Performs the % operation. Read more
source§

impl RemAssign<ValidPrime> for u32

source§

fn rem_assign(&mut self, other: ValidPrime)

Performs the %= operation. Read more
source§

impl Serialize for ValidPrime

source§

fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where + S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Shl<ValidPrime> for u32

§

type Output = u32

The resulting type after applying the << operator.
source§

fn shl(self, other: ValidPrime) -> Self::Output

Performs the << operation. Read more
source§

impl Shl<u32> for ValidPrime

§

type Output = u32

The resulting type after applying the << operator.
source§

fn shl(self, other: u32) -> Self::Output

Performs the << operation. Read more
source§

impl Shl for ValidPrime

§

type Output = u32

The resulting type after applying the << operator.
source§

fn shl(self, other: ValidPrime) -> Self::Output

Performs the << operation. Read more
source§

impl ShlAssign<ValidPrime> for u32

source§

fn shl_assign(&mut self, other: ValidPrime)

Performs the <<= operation. Read more
source§

impl Shr<ValidPrime> for u32

§

type Output = u32

The resulting type after applying the >> operator.
source§

fn shr(self, other: ValidPrime) -> Self::Output

Performs the >> operation. Read more
source§

impl Shr<u32> for ValidPrime

§

type Output = u32

The resulting type after applying the >> operator.
source§

fn shr(self, other: u32) -> Self::Output

Performs the >> operation. Read more
source§

impl Shr for ValidPrime

§

type Output = u32

The resulting type after applying the >> operator.
source§

fn shr(self, other: ValidPrime) -> Self::Output

Performs the >> operation. Read more
source§

impl ShrAssign<ValidPrime> for u32

source§

fn shr_assign(&mut self, other: ValidPrime)

Performs the >>= operation. Read more
source§

impl Sub<ValidPrime> for u32

§

type Output = u32

The resulting type after applying the - operator.
source§

fn sub(self, other: ValidPrime) -> Self::Output

Performs the - operation. Read more
source§

impl Sub<u32> for ValidPrime

§

type Output = u32

The resulting type after applying the - operator.
source§

fn sub(self, other: u32) -> Self::Output

Performs the - operation. Read more
source§

impl Sub for ValidPrime

§

type Output = u32

The resulting type after applying the - operator.
source§

fn sub(self, other: ValidPrime) -> Self::Output

Performs the - operation. Read more
source§

impl SubAssign<ValidPrime> for u32

source§

fn sub_assign(&mut self, other: ValidPrime)

Performs the -= operation. Read more
source§

impl TryFrom<u32> for ValidPrime

§

type Error = PrimeError

The type returned in the event of a conversion error.
source§

fn try_from(p: u32) -> Result<Self, PrimeError>

Performs the conversion.
source§

impl Copy for ValidPrime

source§

impl Eq for ValidPrime

source§

impl MaybeArbitrary<Option<NonZero<u32>>> for ValidPrime

source§

impl StructuralPartialEq for ValidPrime

Auto Trait Implementations§

§

impl Freeze for ValidPrime

§

impl RefUnwindSafe for ValidPrime

§

impl Send for ValidPrime

§

impl Sync for ValidPrime

§

impl Unpin for ValidPrime

§

impl UnwindSafe for ValidPrime

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where diff --git a/docs/fp/vector/arbitrary/constant.MAX_LEN.html b/docs/fp/vector/arbitrary/constant.MAX_LEN.html new file mode 100644 index 000000000..b814b1e03 --- /dev/null +++ b/docs/fp/vector/arbitrary/constant.MAX_LEN.html @@ -0,0 +1,26 @@ +MAX_LEN in fp::vector::arbitrary - Rust + + + + + + +

Constant fp::vector::arbitrary::MAX_LEN

source ·
pub const MAX_LEN: usize = 10_000;
\ No newline at end of file diff --git a/docs/fp/vector/arbitrary/index.html b/docs/fp/vector/arbitrary/index.html new file mode 100644 index 000000000..1f974bc0d --- /dev/null +++ b/docs/fp/vector/arbitrary/index.html @@ -0,0 +1,26 @@ +fp::vector::arbitrary - Rust + + + + + + +

Module fp::vector::arbitrary

source ·

Structs§

Constants§

\ No newline at end of file diff --git a/docs/fp/vector/arbitrary/sidebar-items.js b/docs/fp/vector/arbitrary/sidebar-items.js new file mode 100644 index 000000000..1764ba9d5 --- /dev/null +++ b/docs/fp/vector/arbitrary/sidebar-items.js @@ -0,0 +1 @@ +window.SIDEBAR_ITEMS = {"constant":["MAX_LEN"],"struct":["FqVectorArbParams"]}; \ No newline at end of file diff --git a/docs/fp/vector/arbitrary/struct.FqVectorArbParams.html b/docs/fp/vector/arbitrary/struct.FqVectorArbParams.html new file mode 100644 index 000000000..f20ee0c31 --- /dev/null +++ b/docs/fp/vector/arbitrary/struct.FqVectorArbParams.html @@ -0,0 +1,51 @@ +FqVectorArbParams in fp::vector::arbitrary - Rust + + + + + + +

Struct fp::vector::arbitrary::FqVectorArbParams

source ·
pub struct FqVectorArbParams<F> {
+    pub fq: Option<F>,
+    pub len: BoxedStrategy<usize>,
+}

Fields§

§fq: Option<F>§len: BoxedStrategy<usize>

Trait Implementations§

source§

impl<F: Clone> Clone for FqVectorArbParams<F>

source§

fn clone(&self) -> FqVectorArbParams<F>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<F: Debug> Debug for FqVectorArbParams<F>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<F> Default for FqVectorArbParams<F>

source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

§

impl<F> Freeze for FqVectorArbParams<F>
where + F: Freeze,

§

impl<F> !RefUnwindSafe for FqVectorArbParams<F>

§

impl<F> !Send for FqVectorArbParams<F>

§

impl<F> !Sync for FqVectorArbParams<F>

§

impl<F> Unpin for FqVectorArbParams<F>
where + F: Unpin,

§

impl<F> !UnwindSafe for FqVectorArbParams<F>

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where + T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+

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

+
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where + F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> ToOwned for T
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

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

fn clone_into(&self, target: &mut T)

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

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

\ No newline at end of file diff --git a/docs/fp/vector/enum.FpSlice.html b/docs/fp/vector/enum.FpSlice.html index ea272a147..e2e651bbe 100644 --- a/docs/fp/vector/enum.FpSlice.html +++ b/docs/fp/vector/enum.FpSlice.html @@ -33,7 +33,7 @@
let v = FpVector::from_slice(ValidPrime::new(2), &[0, 1, 0]);
 assert_eq!(&format!("{v}"), "[0, 1, 0]");
 assert_eq!(&format!("{v:#}"), "010");
-

source§

impl<'a, 'b> From<&'a FpSlice<'b>> for FpSlice<'a>

source§

fn from(slice: &'a FpSlice<'b>) -> Self

Converts to this type from the input type.
source§

impl<'a, 'b> From<&'a FpSliceMut<'b>> for FpSlice<'a>

source§

fn from(slice: &'a FpSliceMut<'b>) -> Self

Converts to this type from the input type.
source§

impl<'a> From<&'a FpVector> for FpSlice<'a>

source§

fn from(v: &'a FpVector) -> Self

Converts to this type from the input type.
source§

impl<'a> Copy for FpSlice<'a>

Auto Trait Implementations§

§

impl<'a> Freeze for FpSlice<'a>

§

impl<'a> RefUnwindSafe for FpSlice<'a>

§

impl<'a> Send for FpSlice<'a>

§

impl<'a> Sync for FpSlice<'a>

§

impl<'a> Unpin for FpSlice<'a>

§

impl<'a> UnwindSafe for FpSlice<'a>

Blanket Implementations§

source§

impl<T> Any for T
where +

source§

impl<'a, 'b> From<&'a FpSlice<'b>> for FpSlice<'a>

source§

fn from(slice: &'a FpSlice<'b>) -> Self

Converts to this type from the input type.
source§

impl<'a, 'b> From<&'a FpSliceMut<'b>> for FpSlice<'a>

source§

fn from(slice: &'a FpSliceMut<'b>) -> Self

Converts to this type from the input type.
source§

impl<'a> From<&'a FpVector> for FpSlice<'a>

source§

fn from(v: &'a FpVector) -> Self

Converts to this type from the input type.
source§

impl<'a> Copy for FpSlice<'a>

Auto Trait Implementations§

§

impl<'a> Freeze for FpSlice<'a>

§

impl<'a> RefUnwindSafe for FpSlice<'a>

§

impl<'a> Send for FpSlice<'a>

§

impl<'a> Sync for FpSlice<'a>

§

impl<'a> Unpin for FpSlice<'a>

§

impl<'a> UnwindSafe for FpSlice<'a>

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where diff --git a/docs/fp/vector/enum.FpSliceMut.html b/docs/fp/vector/enum.FpSliceMut.html index 97face3a1..39c582af7 100644 --- a/docs/fp/vector/enum.FpSliceMut.html +++ b/docs/fp/vector/enum.FpSliceMut.html @@ -35,7 +35,7 @@ coeff: u32, left: FpSlice<'_>, right: FpSlice<'_>, -)

Trait Implementations§

source§

impl<'a> Debug for FpSliceMut<'a>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'a, 'b> From<&'a FpSliceMut<'b>> for FpSlice<'a>

source§

fn from(slice: &'a FpSliceMut<'b>) -> Self

Converts to this type from the input type.
source§

impl<'a, 'b> From<&'a mut FpSliceMut<'b>> for FpSliceMut<'a>

source§

fn from(slice: &'a mut FpSliceMut<'b>) -> Self

Converts to this type from the input type.
source§

impl<'a> From<&'a mut FpVector> for FpSliceMut<'a>

source§

fn from(v: &'a mut FpVector) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

§

impl<'a> Freeze for FpSliceMut<'a>

§

impl<'a> RefUnwindSafe for FpSliceMut<'a>

§

impl<'a> Send for FpSliceMut<'a>

§

impl<'a> Sync for FpSliceMut<'a>

§

impl<'a> Unpin for FpSliceMut<'a>

§

impl<'a> !UnwindSafe for FpSliceMut<'a>

Blanket Implementations§

source§

impl<T> Any for T
where +)

Trait Implementations§

source§

impl<'a> Debug for FpSliceMut<'a>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'a, 'b> From<&'a FpSliceMut<'b>> for FpSlice<'a>

source§

fn from(slice: &'a FpSliceMut<'b>) -> Self

Converts to this type from the input type.
source§

impl<'a, 'b> From<&'a mut FpSliceMut<'b>> for FpSliceMut<'a>

source§

fn from(slice: &'a mut FpSliceMut<'b>) -> Self

Converts to this type from the input type.
source§

impl<'a> From<&'a mut FpVector> for FpSliceMut<'a>

source§

fn from(v: &'a mut FpVector) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

§

impl<'a> Freeze for FpSliceMut<'a>

§

impl<'a> RefUnwindSafe for FpSliceMut<'a>

§

impl<'a> Send for FpSliceMut<'a>

§

impl<'a> Sync for FpSliceMut<'a>

§

impl<'a> Unpin for FpSliceMut<'a>

§

impl<'a> !UnwindSafe for FpSliceMut<'a>

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/docs/fp/vector/enum.FpVector.html b/docs/fp/vector/enum.FpVector.html index 87782c950..ceb1b8566 100644 --- a/docs/fp/vector/enum.FpVector.html +++ b/docs/fp/vector/enum.FpVector.html @@ -33,13 +33,13 @@ p: P, len: usize, data: &mut impl Read, -) -> Result<Self>
source

pub fn to_bytes(&self, buffer: &mut impl Write) -> Result<()>

source

pub fn from_slice<P: Prime>(p: P, slice: &[u32]) -> Self

source

pub(crate) fn num_limbs(p: ValidPrime, len: usize) -> usize

source

pub(crate) fn padded_len(p: ValidPrime, len: usize) -> usize

Trait Implementations§

source§

impl AddAssign<&FpVector> for FpVector

source§

fn add_assign(&mut self, other: &Self)

Performs the += operation. Read more
source§

impl Clone for FpVector

source§

fn clone(&self) -> FpVector

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for FpVector

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for FpVector

source§

fn deserialize<D>(_deserializer: D) -> Result<Self, D::Error>
where - D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for FpVector

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'a> From<&'a FpVector> for FpSlice<'a>

source§

fn from(v: &'a FpVector) -> Self

Converts to this type from the input type.
source§

impl From<&FpVector> for Vec<u32>

source§

fn from(v: &FpVector) -> Self

Converts to this type from the input type.
source§

impl<'a> From<&'a mut FpVector> for FpSliceMut<'a>

source§

fn from(v: &'a mut FpVector) -> Self

Converts to this type from the input type.
source§

impl<'a> From<FqVector<Fp<P2>>> for FpVector

source§

fn from(x: FqVector<Fp<P2>>) -> Self

Converts to this type from the input type.
source§

impl<'a> From<FqVector<Fp<P3>>> for FpVector

source§

fn from(x: FqVector<Fp<P3>>) -> Self

Converts to this type from the input type.
source§

impl<'a> From<FqVector<Fp<P5>>> for FpVector

source§

fn from(x: FqVector<Fp<P5>>) -> Self

Converts to this type from the input type.
source§

impl<'a> From<FqVector<Fp<P7>>> for FpVector

source§

fn from(x: FqVector<Fp<P7>>) -> Self

Converts to this type from the input type.
source§

impl<'a> From<FqVector<Fp<ValidPrime>>> for FpVector

source§

fn from(x: FqVector<Fp<ValidPrime>>) -> Self

Converts to this type from the input type.
source§

impl Hash for FpVector

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where +) -> Result<Self>

source

pub fn to_bytes(&self, buffer: &mut impl Write) -> Result<()>

source

pub fn from_slice<P: Prime>(p: P, slice: &[u32]) -> Self

source

pub(crate) fn num_limbs(p: ValidPrime, len: usize) -> usize

source

pub(crate) fn padded_len(p: ValidPrime, len: usize) -> usize

Trait Implementations§

source§

impl AddAssign<&FpVector> for FpVector

source§

fn add_assign(&mut self, other: &Self)

Performs the += operation. Read more
source§

impl Clone for FpVector

source§

fn clone(&self) -> FpVector

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for FpVector

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for FpVector

source§

fn deserialize<D>(_deserializer: D) -> Result<Self, D::Error>
where + D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for FpVector

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'a> From<&'a FpVector> for FpSlice<'a>

source§

fn from(v: &'a FpVector) -> Self

Converts to this type from the input type.
source§

impl From<&FpVector> for Vec<u32>

source§

fn from(v: &FpVector) -> Self

Converts to this type from the input type.
source§

impl<'a> From<&'a mut FpVector> for FpSliceMut<'a>

source§

fn from(v: &'a mut FpVector) -> Self

Converts to this type from the input type.
source§

impl<'a> From<FqVector<Fp<P2>>> for FpVector

source§

fn from(x: FqVector<Fp<P2>>) -> Self

Converts to this type from the input type.
source§

impl<'a> From<FqVector<Fp<P3>>> for FpVector

source§

fn from(x: FqVector<Fp<P3>>) -> Self

Converts to this type from the input type.
source§

impl<'a> From<FqVector<Fp<P5>>> for FpVector

source§

fn from(x: FqVector<Fp<P5>>) -> Self

Converts to this type from the input type.
source§

impl<'a> From<FqVector<Fp<P7>>> for FpVector

source§

fn from(x: FqVector<Fp<P7>>) -> Self

Converts to this type from the input type.
source§

impl<'a> From<FqVector<Fp<ValidPrime>>> for FpVector

source§

fn from(x: FqVector<Fp<ValidPrime>>) -> Self

Converts to this type from the input type.
source§

impl Hash for FpVector

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl<'a> IntoIterator for &'a FpVector

§

type IntoIter = FpVectorIterator<'a>

Which kind of iterator are we turning this into?
§

type Item = u32

The type of the elements being iterated over.
source§

fn into_iter(self) -> Self::IntoIter

Creates an iterator from a value. Read more
source§

impl PartialEq for FpVector

source§

fn eq(&self, other: &FpVector) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Serialize for FpVector

source§

fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where - S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl<'a> TryInto<&'a mut FqVector<Fp<P2>>> for &'a mut FpVector

§

type Error = ()

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<&'a mut FqVector<Fp<P2>>, Self::Error>

Performs the conversion.
source§

impl<'a> TryInto<&'a mut FqVector<Fp<P3>>> for &'a mut FpVector

§

type Error = ()

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<&'a mut FqVector<Fp<P3>>, Self::Error>

Performs the conversion.
source§

impl<'a> TryInto<&'a mut FqVector<Fp<P5>>> for &'a mut FpVector

§

type Error = ()

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<&'a mut FqVector<Fp<P5>>, Self::Error>

Performs the conversion.
source§

impl<'a> TryInto<&'a mut FqVector<Fp<P7>>> for &'a mut FpVector

§

type Error = ()

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<&'a mut FqVector<Fp<P7>>, Self::Error>

Performs the conversion.
source§

impl<'a> TryInto<&'a mut FqVector<Fp<ValidPrime>>> for &'a mut FpVector

§

type Error = ()

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<&'a mut FqVector<Fp<ValidPrime>>, Self::Error>

Performs the conversion.
source§

impl Eq for FpVector

source§

impl StructuralPartialEq for FpVector

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl<'a> TryInto<&'a mut FqVector<Fp<P2>>> for &'a mut FpVector

§

type Error = ()

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<&'a mut FqVector<Fp<P2>>, Self::Error>

Performs the conversion.
source§

impl<'a> TryInto<&'a mut FqVector<Fp<P3>>> for &'a mut FpVector

§

type Error = ()

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<&'a mut FqVector<Fp<P3>>, Self::Error>

Performs the conversion.
source§

impl<'a> TryInto<&'a mut FqVector<Fp<P5>>> for &'a mut FpVector

§

type Error = ()

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<&'a mut FqVector<Fp<P5>>, Self::Error>

Performs the conversion.
source§

impl<'a> TryInto<&'a mut FqVector<Fp<P7>>> for &'a mut FpVector

§

type Error = ()

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<&'a mut FqVector<Fp<P7>>, Self::Error>

Performs the conversion.
source§

impl<'a> TryInto<&'a mut FqVector<Fp<ValidPrime>>> for &'a mut FpVector

§

type Error = ()

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<&'a mut FqVector<Fp<ValidPrime>>, Self::Error>

Performs the conversion.
source§

impl Eq for FpVector

source§

impl StructuralPartialEq for FpVector

Auto Trait Implementations§

§

impl Freeze for FpVector

§

impl RefUnwindSafe for FpVector

§

impl Send for FpVector

§

impl Sync for FpVector

§

impl Unpin for FpVector

§

impl UnwindSafe for FpVector

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where diff --git a/docs/fp/vector/fp_wrapper/enum.FpSlice.html b/docs/fp/vector/fp_wrapper/enum.FpSlice.html index 64cf19cf6..671ebeb94 100644 --- a/docs/fp/vector/fp_wrapper/enum.FpSlice.html +++ b/docs/fp/vector/fp_wrapper/enum.FpSlice.html @@ -33,7 +33,7 @@
let v = FpVector::from_slice(ValidPrime::new(2), &[0, 1, 0]);
 assert_eq!(&format!("{v}"), "[0, 1, 0]");
 assert_eq!(&format!("{v:#}"), "010");
-

source§

impl<'a, 'b> From<&'a FpSlice<'b>> for FpSlice<'a>

source§

fn from(slice: &'a FpSlice<'b>) -> Self

Converts to this type from the input type.
source§

impl<'a, 'b> From<&'a FpSliceMut<'b>> for FpSlice<'a>

source§

fn from(slice: &'a FpSliceMut<'b>) -> Self

Converts to this type from the input type.
source§

impl<'a> From<&'a FpVector> for FpSlice<'a>

source§

fn from(v: &'a FpVector) -> Self

Converts to this type from the input type.
source§

impl<'a> Copy for FpSlice<'a>

Auto Trait Implementations§

§

impl<'a> Freeze for FpSlice<'a>

§

impl<'a> RefUnwindSafe for FpSlice<'a>

§

impl<'a> Send for FpSlice<'a>

§

impl<'a> Sync for FpSlice<'a>

§

impl<'a> Unpin for FpSlice<'a>

§

impl<'a> UnwindSafe for FpSlice<'a>

Blanket Implementations§

source§

impl<T> Any for T
where +

source§

impl<'a, 'b> From<&'a FpSlice<'b>> for FpSlice<'a>

source§

fn from(slice: &'a FpSlice<'b>) -> Self

Converts to this type from the input type.
source§

impl<'a, 'b> From<&'a FpSliceMut<'b>> for FpSlice<'a>

source§

fn from(slice: &'a FpSliceMut<'b>) -> Self

Converts to this type from the input type.
source§

impl<'a> From<&'a FpVector> for FpSlice<'a>

source§

fn from(v: &'a FpVector) -> Self

Converts to this type from the input type.
source§

impl<'a> Copy for FpSlice<'a>

Auto Trait Implementations§

§

impl<'a> Freeze for FpSlice<'a>

§

impl<'a> RefUnwindSafe for FpSlice<'a>

§

impl<'a> Send for FpSlice<'a>

§

impl<'a> Sync for FpSlice<'a>

§

impl<'a> Unpin for FpSlice<'a>

§

impl<'a> UnwindSafe for FpSlice<'a>

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where diff --git a/docs/fp/vector/fp_wrapper/enum.FpSliceMut.html b/docs/fp/vector/fp_wrapper/enum.FpSliceMut.html index fa75bc0f0..e59659d99 100644 --- a/docs/fp/vector/fp_wrapper/enum.FpSliceMut.html +++ b/docs/fp/vector/fp_wrapper/enum.FpSliceMut.html @@ -35,7 +35,7 @@ coeff: u32, left: FpSlice<'_>, right: FpSlice<'_>, -)

Trait Implementations§

source§

impl<'a> Debug for FpSliceMut<'a>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'a, 'b> From<&'a FpSliceMut<'b>> for FpSlice<'a>

source§

fn from(slice: &'a FpSliceMut<'b>) -> Self

Converts to this type from the input type.
source§

impl<'a, 'b> From<&'a mut FpSliceMut<'b>> for FpSliceMut<'a>

source§

fn from(slice: &'a mut FpSliceMut<'b>) -> Self

Converts to this type from the input type.
source§

impl<'a> From<&'a mut FpVector> for FpSliceMut<'a>

source§

fn from(v: &'a mut FpVector) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

§

impl<'a> Freeze for FpSliceMut<'a>

§

impl<'a> RefUnwindSafe for FpSliceMut<'a>

§

impl<'a> Send for FpSliceMut<'a>

§

impl<'a> Sync for FpSliceMut<'a>

§

impl<'a> Unpin for FpSliceMut<'a>

§

impl<'a> !UnwindSafe for FpSliceMut<'a>

Blanket Implementations§

source§

impl<T> Any for T
where +)

Trait Implementations§

source§

impl<'a> Debug for FpSliceMut<'a>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'a, 'b> From<&'a FpSliceMut<'b>> for FpSlice<'a>

source§

fn from(slice: &'a FpSliceMut<'b>) -> Self

Converts to this type from the input type.
source§

impl<'a, 'b> From<&'a mut FpSliceMut<'b>> for FpSliceMut<'a>

source§

fn from(slice: &'a mut FpSliceMut<'b>) -> Self

Converts to this type from the input type.
source§

impl<'a> From<&'a mut FpVector> for FpSliceMut<'a>

source§

fn from(v: &'a mut FpVector) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

§

impl<'a> Freeze for FpSliceMut<'a>

§

impl<'a> RefUnwindSafe for FpSliceMut<'a>

§

impl<'a> Send for FpSliceMut<'a>

§

impl<'a> Sync for FpSliceMut<'a>

§

impl<'a> Unpin for FpSliceMut<'a>

§

impl<'a> !UnwindSafe for FpSliceMut<'a>

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/docs/fp/vector/fp_wrapper/enum.FpVector.html b/docs/fp/vector/fp_wrapper/enum.FpVector.html index 7b0407e74..596afef21 100644 --- a/docs/fp/vector/fp_wrapper/enum.FpVector.html +++ b/docs/fp/vector/fp_wrapper/enum.FpVector.html @@ -33,13 +33,13 @@ p: P, len: usize, data: &mut impl Read, -) -> Result<Self>
source

pub fn to_bytes(&self, buffer: &mut impl Write) -> Result<()>

source

pub fn from_slice<P: Prime>(p: P, slice: &[u32]) -> Self

source

pub(crate) fn num_limbs(p: ValidPrime, len: usize) -> usize

source

pub(crate) fn padded_len(p: ValidPrime, len: usize) -> usize

Trait Implementations§

source§

impl AddAssign<&FpVector> for FpVector

source§

fn add_assign(&mut self, other: &Self)

Performs the += operation. Read more
source§

impl Clone for FpVector

source§

fn clone(&self) -> FpVector

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for FpVector

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for FpVector

source§

fn deserialize<D>(_deserializer: D) -> Result<Self, D::Error>
where - D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for FpVector

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'a> From<&'a FpVector> for FpSlice<'a>

source§

fn from(v: &'a FpVector) -> Self

Converts to this type from the input type.
source§

impl From<&FpVector> for Vec<u32>

source§

fn from(v: &FpVector) -> Self

Converts to this type from the input type.
source§

impl<'a> From<&'a mut FpVector> for FpSliceMut<'a>

source§

fn from(v: &'a mut FpVector) -> Self

Converts to this type from the input type.
source§

impl<'a> From<FqVector<Fp<P2>>> for FpVector

source§

fn from(x: FqVector<Fp<P2>>) -> Self

Converts to this type from the input type.
source§

impl<'a> From<FqVector<Fp<P3>>> for FpVector

source§

fn from(x: FqVector<Fp<P3>>) -> Self

Converts to this type from the input type.
source§

impl<'a> From<FqVector<Fp<P5>>> for FpVector

source§

fn from(x: FqVector<Fp<P5>>) -> Self

Converts to this type from the input type.
source§

impl<'a> From<FqVector<Fp<P7>>> for FpVector

source§

fn from(x: FqVector<Fp<P7>>) -> Self

Converts to this type from the input type.
source§

impl<'a> From<FqVector<Fp<ValidPrime>>> for FpVector

source§

fn from(x: FqVector<Fp<ValidPrime>>) -> Self

Converts to this type from the input type.
source§

impl Hash for FpVector

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where +) -> Result<Self>

source

pub fn to_bytes(&self, buffer: &mut impl Write) -> Result<()>

source

pub fn from_slice<P: Prime>(p: P, slice: &[u32]) -> Self

source

pub(crate) fn num_limbs(p: ValidPrime, len: usize) -> usize

source

pub(crate) fn padded_len(p: ValidPrime, len: usize) -> usize

Trait Implementations§

source§

impl AddAssign<&FpVector> for FpVector

source§

fn add_assign(&mut self, other: &Self)

Performs the += operation. Read more
source§

impl Clone for FpVector

source§

fn clone(&self) -> FpVector

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for FpVector

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de> Deserialize<'de> for FpVector

source§

fn deserialize<D>(_deserializer: D) -> Result<Self, D::Error>
where + D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for FpVector

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'a> From<&'a FpVector> for FpSlice<'a>

source§

fn from(v: &'a FpVector) -> Self

Converts to this type from the input type.
source§

impl From<&FpVector> for Vec<u32>

source§

fn from(v: &FpVector) -> Self

Converts to this type from the input type.
source§

impl<'a> From<&'a mut FpVector> for FpSliceMut<'a>

source§

fn from(v: &'a mut FpVector) -> Self

Converts to this type from the input type.
source§

impl<'a> From<FqVector<Fp<P2>>> for FpVector

source§

fn from(x: FqVector<Fp<P2>>) -> Self

Converts to this type from the input type.
source§

impl<'a> From<FqVector<Fp<P3>>> for FpVector

source§

fn from(x: FqVector<Fp<P3>>) -> Self

Converts to this type from the input type.
source§

impl<'a> From<FqVector<Fp<P5>>> for FpVector

source§

fn from(x: FqVector<Fp<P5>>) -> Self

Converts to this type from the input type.
source§

impl<'a> From<FqVector<Fp<P7>>> for FpVector

source§

fn from(x: FqVector<Fp<P7>>) -> Self

Converts to this type from the input type.
source§

impl<'a> From<FqVector<Fp<ValidPrime>>> for FpVector

source§

fn from(x: FqVector<Fp<ValidPrime>>) -> Self

Converts to this type from the input type.
source§

impl Hash for FpVector

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl<'a> IntoIterator for &'a FpVector

§

type IntoIter = FpVectorIterator<'a>

Which kind of iterator are we turning this into?
§

type Item = u32

The type of the elements being iterated over.
source§

fn into_iter(self) -> Self::IntoIter

Creates an iterator from a value. Read more
source§

impl PartialEq for FpVector

source§

fn eq(&self, other: &FpVector) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Serialize for FpVector

source§

fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where - S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl<'a> TryInto<&'a mut FqVector<Fp<P2>>> for &'a mut FpVector

§

type Error = ()

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<&'a mut FqVector<Fp<P2>>, Self::Error>

Performs the conversion.
source§

impl<'a> TryInto<&'a mut FqVector<Fp<P3>>> for &'a mut FpVector

§

type Error = ()

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<&'a mut FqVector<Fp<P3>>, Self::Error>

Performs the conversion.
source§

impl<'a> TryInto<&'a mut FqVector<Fp<P5>>> for &'a mut FpVector

§

type Error = ()

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<&'a mut FqVector<Fp<P5>>, Self::Error>

Performs the conversion.
source§

impl<'a> TryInto<&'a mut FqVector<Fp<P7>>> for &'a mut FpVector

§

type Error = ()

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<&'a mut FqVector<Fp<P7>>, Self::Error>

Performs the conversion.
source§

impl<'a> TryInto<&'a mut FqVector<Fp<ValidPrime>>> for &'a mut FpVector

§

type Error = ()

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<&'a mut FqVector<Fp<ValidPrime>>, Self::Error>

Performs the conversion.
source§

impl Eq for FpVector

source§

impl StructuralPartialEq for FpVector

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl<'a> TryInto<&'a mut FqVector<Fp<P2>>> for &'a mut FpVector

§

type Error = ()

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<&'a mut FqVector<Fp<P2>>, Self::Error>

Performs the conversion.
source§

impl<'a> TryInto<&'a mut FqVector<Fp<P3>>> for &'a mut FpVector

§

type Error = ()

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<&'a mut FqVector<Fp<P3>>, Self::Error>

Performs the conversion.
source§

impl<'a> TryInto<&'a mut FqVector<Fp<P5>>> for &'a mut FpVector

§

type Error = ()

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<&'a mut FqVector<Fp<P5>>, Self::Error>

Performs the conversion.
source§

impl<'a> TryInto<&'a mut FqVector<Fp<P7>>> for &'a mut FpVector

§

type Error = ()

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<&'a mut FqVector<Fp<P7>>, Self::Error>

Performs the conversion.
source§

impl<'a> TryInto<&'a mut FqVector<Fp<ValidPrime>>> for &'a mut FpVector

§

type Error = ()

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<&'a mut FqVector<Fp<ValidPrime>>, Self::Error>

Performs the conversion.
source§

impl Eq for FpVector

source§

impl StructuralPartialEq for FpVector

Auto Trait Implementations§

§

impl Freeze for FpVector

§

impl RefUnwindSafe for FpVector

§

impl Send for FpVector

§

impl Sync for FpVector

§

impl Unpin for FpVector

§

impl UnwindSafe for FpVector

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where diff --git a/docs/fp/vector/impl_fqvector/arbitrary/constant.MAX_LEN.html b/docs/fp/vector/impl_fqvector/arbitrary/constant.MAX_LEN.html new file mode 100644 index 000000000..cb8139be7 --- /dev/null +++ b/docs/fp/vector/impl_fqvector/arbitrary/constant.MAX_LEN.html @@ -0,0 +1,26 @@ +MAX_LEN in fp::vector::impl_fqvector::arbitrary - Rust + + + + + + +

Constant fp::vector::impl_fqvector::arbitrary::MAX_LEN

source ·
pub const MAX_LEN: usize = 10_000;
\ No newline at end of file diff --git a/docs/fp/vector/impl_fqvector/arbitrary/index.html b/docs/fp/vector/impl_fqvector/arbitrary/index.html new file mode 100644 index 000000000..6f61d39a0 --- /dev/null +++ b/docs/fp/vector/impl_fqvector/arbitrary/index.html @@ -0,0 +1,26 @@ +fp::vector::impl_fqvector::arbitrary - Rust + + + + + + +

Module fp::vector::impl_fqvector::arbitrary

source ·

Structs§

Constants§

\ No newline at end of file diff --git a/docs/fp/vector/impl_fqvector/arbitrary/sidebar-items.js b/docs/fp/vector/impl_fqvector/arbitrary/sidebar-items.js new file mode 100644 index 000000000..1764ba9d5 --- /dev/null +++ b/docs/fp/vector/impl_fqvector/arbitrary/sidebar-items.js @@ -0,0 +1 @@ +window.SIDEBAR_ITEMS = {"constant":["MAX_LEN"],"struct":["FqVectorArbParams"]}; \ No newline at end of file diff --git a/docs/fp/vector/impl_fqvector/arbitrary/struct.FqVectorArbParams.html b/docs/fp/vector/impl_fqvector/arbitrary/struct.FqVectorArbParams.html new file mode 100644 index 000000000..7327991de --- /dev/null +++ b/docs/fp/vector/impl_fqvector/arbitrary/struct.FqVectorArbParams.html @@ -0,0 +1,51 @@ +FqVectorArbParams in fp::vector::impl_fqvector::arbitrary - Rust + + + + + + +

Struct fp::vector::impl_fqvector::arbitrary::FqVectorArbParams

source ·
pub struct FqVectorArbParams<F> {
+    pub fq: Option<F>,
+    pub len: BoxedStrategy<usize>,
+}

Fields§

§fq: Option<F>§len: BoxedStrategy<usize>

Trait Implementations§

source§

impl<F: Clone> Clone for FqVectorArbParams<F>

source§

fn clone(&self) -> FqVectorArbParams<F>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<F: Debug> Debug for FqVectorArbParams<F>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<F> Default for FqVectorArbParams<F>

source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

§

impl<F> Freeze for FqVectorArbParams<F>
where + F: Freeze,

§

impl<F> !RefUnwindSafe for FqVectorArbParams<F>

§

impl<F> !Send for FqVectorArbParams<F>

§

impl<F> !Sync for FqVectorArbParams<F>

§

impl<F> Unpin for FqVectorArbParams<F>
where + F: Unpin,

§

impl<F> !UnwindSafe for FqVectorArbParams<F>

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where + T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+

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

+
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> +if into_left is true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where + F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> +if into_left(&self) returns true. +Converts self into a Right variant of Either<Self, Self> +otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> ToOwned for T
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

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

fn clone_into(&self, target: &mut T)

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

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

\ No newline at end of file diff --git a/docs/fp/vector/impl_fqvector/index.html b/docs/fp/vector/impl_fqvector/index.html index 3d7fa83ee..e422dfca2 100644 --- a/docs/fp/vector/impl_fqvector/index.html +++ b/docs/fp/vector/impl_fqvector/index.html @@ -23,4 +23,4 @@ }); -

Module fp::vector::impl_fqvector

source ·
\ No newline at end of file +

Module fp::vector::impl_fqvector

source ·

Modules§

\ No newline at end of file diff --git a/docs/fp/vector/impl_fqvector/sidebar-items.js b/docs/fp/vector/impl_fqvector/sidebar-items.js index 5244ce01c..893391fea 100644 --- a/docs/fp/vector/impl_fqvector/sidebar-items.js +++ b/docs/fp/vector/impl_fqvector/sidebar-items.js @@ -1 +1 @@ -window.SIDEBAR_ITEMS = {}; \ No newline at end of file +window.SIDEBAR_ITEMS = {"mod":["arbitrary"]}; \ No newline at end of file diff --git a/docs/fp/vector/index.html b/docs/fp/vector/index.html index a87d6c30f..3937a0e93 100644 --- a/docs/fp/vector/index.html +++ b/docs/fp/vector/index.html @@ -23,7 +23,7 @@ }); -

Module fp::vector

source ·

Re-exports§

Modules§

  • fp_wrapper 🔒
    This module provides convenience wrappers around the contents of crate::vector::inner in the +

    Module fp::vector

    source ·

    Re-exports§

    Modules§

    Enums§

    \ No newline at end of file diff --git a/docs/fp/vector/inner/struct.FqSlice.html b/docs/fp/vector/inner/struct.FqSlice.html index 4c7a4a5a1..f6929ee9c 100644 --- a/docs/fp/vector/inner/struct.FqSlice.html +++ b/docs/fp/vector/inner/struct.FqSlice.html @@ -36,7 +36,7 @@ slice of width 0 at the start of an FpVector. This should be a very rare edge case. Dealing with the underflow properly would probably require using saturating_sub or something of that nature, and that has a nontrivial (10%) performance hit.

    -

source

pub(super) fn min_limb_mask(&self) -> u64

source

pub(super) fn max_limb_mask(&self) -> u64

source

pub(super) fn limb_masks(&self) -> (u64, u64)

Trait Implementations§

source§

impl<'a, F: Clone + Field> Clone for FqSlice<'a, F>

source§

fn clone(&self) -> FqSlice<'a, F>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<'a, F: Debug + Field> Debug for FqSlice<'a, F>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<F: Field> Display for FqSlice<'_, F>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

§Example
+
source

pub(super) fn min_limb_mask(&self) -> u64

source

pub(super) fn max_limb_mask(&self) -> u64

source

pub(super) fn limb_masks(&self) -> (u64, u64)

Trait Implementations§

source§

impl<'a, F: Clone + Field> Clone for FqSlice<'a, F>

source§

fn clone(&self) -> FqSlice<'a, F>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<'a, F: Debug + Field> Debug for FqSlice<'a, F>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<F: Field> Display for FqSlice<'_, F>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

§Example
let fq = SmallFq::new(P2, 3);
 let v = FqVector::from_slice(fq, &[fq.zero(), fq.one(), fq.a(), fq.a() * fq.a()]);
 assert_eq!(&format!("{v}"), "[0, 1, a, a^2]");
diff --git a/docs/fp/vector/inner/struct.FqVector.html b/docs/fp/vector/inner/struct.FqVector.html
index 2050abbdb..4dafd8cbf 100644
--- a/docs/fp/vector/inner/struct.FqVector.html
+++ b/docs/fp/vector/inner/struct.FqVector.html
@@ -23,7 +23,7 @@
     });
 
 
-

Struct fp::vector::inner::FqVector

source ·
pub struct FqVector<F: Field> {
+

Struct fp::vector::inner::FqVector

source ·
pub struct FqVector<F: Field> {
     pub(super) fq: F,
     pub(super) len: usize,
     pub(super) limbs: Vec<u64>,
@@ -80,11 +80,15 @@
     rest: &mut [T],
 ) -> bool
where for<'a> &'a mut T: TryInto<&'a mut Self>,
source

pub fn first_nonzero(&self) -> Option<(usize, FieldElement<F>)>

Find the index and value of the first non-zero entry of the vector. None if the vector is zero.

-
source

pub fn density(&self) -> f32

Trait Implementations§

source§

impl<F: Clone + Field> Clone for FqVector<F>

source§

fn clone(&self) -> FqVector<F>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<F: Debug + Field> Debug for FqVector<F>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<F: Field> Display for FqVector<F>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'a, F: Field> From<&'a FqVector<F>> for FqSlice<'a, F>

source§

fn from(v: &'a FqVector<F>) -> Self

Converts to this type from the input type.
source§

impl<F: Field> From<&FqVector<F>> for Vec<FieldElement<F>>

source§

fn from(vec: &FqVector<F>) -> Self

Converts to this type from the input type.
source§

impl<'a, F: Field> From<&'a mut FqVector<F>> for FqSliceMut<'a, F>

source§

fn from(v: &'a mut FqVector<F>) -> Self

Converts to this type from the input type.
source§

impl<T: AsRef<[FieldElement<F>]>, F: Field> From<(F, T)> for FqVector<F>

source§

fn from(data: (F, T)) -> Self

Converts to this type from the input type.
source§

impl<'a> From<FqVector<Fp<P2>>> for FpVector

source§

fn from(x: FqVector<Fp<P2>>) -> Self

Converts to this type from the input type.
source§

impl<'a> From<FqVector<Fp<P3>>> for FpVector

source§

fn from(x: FqVector<Fp<P3>>) -> Self

Converts to this type from the input type.
source§

impl<'a> From<FqVector<Fp<P5>>> for FpVector

source§

fn from(x: FqVector<Fp<P5>>) -> Self

Converts to this type from the input type.
source§

impl<'a> From<FqVector<Fp<P7>>> for FpVector

source§

fn from(x: FqVector<Fp<P7>>) -> Self

Converts to this type from the input type.
source§

impl<'a> From<FqVector<Fp<ValidPrime>>> for FpVector

source§

fn from(x: FqVector<Fp<ValidPrime>>) -> Self

Converts to this type from the input type.
source§

impl<F: Hash + Field> Hash for FqVector<F>

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where +

source

pub fn density(&self) -> f32

Trait Implementations§

source§

impl<F: Field> Arbitrary for FqVector<F>

§

type Parameters = FqVectorArbParams<F>

The type of parameters that arbitrary_with accepts for configuration +of the generated Strategy. Parameters must implement Default.
§

type Strategy = BoxedStrategy<FqVector<F>>

The type of Strategy used to generate values of type Self.
source§

fn arbitrary_with(args: Self::Parameters) -> Self::Strategy

Generates a Strategy for producing arbitrary values of type the +implementing type (Self). The strategy is passed the arguments given +in args. Read more
§

fn arbitrary() -> Self::Strategy

Generates a Strategy for producing arbitrary values +of type the implementing type (Self). Read more
source§

impl<F: Clone + Field> Clone for FqVector<F>

source§

fn clone(&self) -> FqVector<F>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<F: Debug + Field> Debug for FqVector<F>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<F: Field> Display for FqVector<F>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'a, F: Field> From<&'a FqVector<F>> for FqSlice<'a, F>

source§

fn from(v: &'a FqVector<F>) -> Self

Converts to this type from the input type.
source§

impl<F: Field> From<&FqVector<F>> for Vec<FieldElement<F>>

source§

fn from(vec: &FqVector<F>) -> Self

Converts to this type from the input type.
source§

impl<'a, F: Field> From<&'a mut FqVector<F>> for FqSliceMut<'a, F>

source§

fn from(v: &'a mut FqVector<F>) -> Self

Converts to this type from the input type.
source§

impl<T: AsRef<[FieldElement<F>]>, F: Field> From<(F, T)> for FqVector<F>

source§

fn from(data: (F, T)) -> Self

Converts to this type from the input type.
source§

impl<'a> From<FqVector<Fp<P2>>> for FpVector

source§

fn from(x: FqVector<Fp<P2>>) -> Self

Converts to this type from the input type.
source§

impl<'a> From<FqVector<Fp<P3>>> for FpVector

source§

fn from(x: FqVector<Fp<P3>>) -> Self

Converts to this type from the input type.
source§

impl<'a> From<FqVector<Fp<P5>>> for FpVector

source§

fn from(x: FqVector<Fp<P5>>) -> Self

Converts to this type from the input type.
source§

impl<'a> From<FqVector<Fp<P7>>> for FpVector

source§

fn from(x: FqVector<Fp<P7>>) -> Self

Converts to this type from the input type.
source§

impl<'a> From<FqVector<Fp<ValidPrime>>> for FpVector

source§

fn from(x: FqVector<Fp<ValidPrime>>) -> Self

Converts to this type from the input type.
source§

impl<F: Hash + Field> Hash for FqVector<F>

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl<F: PartialEq + Field> PartialEq for FqVector<F>

source§

fn eq(&self, other: &FqVector<F>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl<'a> TryInto<&'a mut FqVector<Fp<P2>>> for &'a mut FpVector

§

type Error = ()

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<&'a mut FqVector<Fp<P2>>, Self::Error>

Performs the conversion.
source§

impl<'a> TryInto<&'a mut FqVector<Fp<P3>>> for &'a mut FpVector

§

type Error = ()

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<&'a mut FqVector<Fp<P3>>, Self::Error>

Performs the conversion.
source§

impl<'a> TryInto<&'a mut FqVector<Fp<P5>>> for &'a mut FpVector

§

type Error = ()

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<&'a mut FqVector<Fp<P5>>, Self::Error>

Performs the conversion.
source§

impl<'a> TryInto<&'a mut FqVector<Fp<P7>>> for &'a mut FpVector

§

type Error = ()

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<&'a mut FqVector<Fp<P7>>, Self::Error>

Performs the conversion.
source§

impl<'a> TryInto<&'a mut FqVector<Fp<ValidPrime>>> for &'a mut FpVector

§

type Error = ()

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<&'a mut FqVector<Fp<ValidPrime>>, Self::Error>

Performs the conversion.
source§

impl<F: Eq + Field> Eq for FqVector<F>

source§

impl<F: Field> StructuralPartialEq for FqVector<F>

Auto Trait Implementations§

§

impl<F> Freeze for FqVector<F>
where +sufficient, and should not be overridden without very good reason.

source§

impl<'a> TryInto<&'a mut FqVector<Fp<P2>>> for &'a mut FpVector

§

type Error = ()

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<&'a mut FqVector<Fp<P2>>, Self::Error>

Performs the conversion.
source§

impl<'a> TryInto<&'a mut FqVector<Fp<P3>>> for &'a mut FpVector

§

type Error = ()

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<&'a mut FqVector<Fp<P3>>, Self::Error>

Performs the conversion.
source§

impl<'a> TryInto<&'a mut FqVector<Fp<P5>>> for &'a mut FpVector

§

type Error = ()

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<&'a mut FqVector<Fp<P5>>, Self::Error>

Performs the conversion.
source§

impl<'a> TryInto<&'a mut FqVector<Fp<P7>>> for &'a mut FpVector

§

type Error = ()

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<&'a mut FqVector<Fp<P7>>, Self::Error>

Performs the conversion.
source§

impl<'a> TryInto<&'a mut FqVector<Fp<ValidPrime>>> for &'a mut FpVector

§

type Error = ()

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<&'a mut FqVector<Fp<ValidPrime>>, Self::Error>

Performs the conversion.
source§

impl<F: Eq + Field> Eq for FqVector<F>

source§

impl<F: Field> StructuralPartialEq for FqVector<F>

Auto Trait Implementations§

§

impl<F> Freeze for FqVector<F>
where F: Freeze,

§

impl<F> RefUnwindSafe for FqVector<F>
where F: RefUnwindSafe,

§

impl<F> Send for FqVector<F>
where F: Send,

§

impl<F> Sync for FqVector<F>
where diff --git a/docs/fp/vector/sidebar-items.js b/docs/fp/vector/sidebar-items.js index 9c561d61d..2c0a8695b 100644 --- a/docs/fp/vector/sidebar-items.js +++ b/docs/fp/vector/sidebar-items.js @@ -1 +1 @@ -window.SIDEBAR_ITEMS = {"enum":["FpSlice","FpSliceMut","FpVector","FpVectorIterator","FpVectorNonZeroIterator"],"mod":["fp_wrapper","impl_fqslice","impl_fqslicemut","impl_fqvector","inner","iter"]}; \ No newline at end of file +window.SIDEBAR_ITEMS = {"enum":["FpSlice","FpSliceMut","FpVector","FpVectorIterator","FpVectorNonZeroIterator"],"mod":["arbitrary","fp_wrapper","impl_fqslice","impl_fqslicemut","impl_fqvector","inner","iter"]}; \ No newline at end of file diff --git a/docs/once/struct.OnceVec.html b/docs/once/struct.OnceVec.html index c6587981c..1a06d1779 100644 --- a/docs/once/struct.OnceVec.html +++ b/docs/once/struct.OnceVec.html @@ -171,7 +171,7 @@
§Example
for (i, &n) in v.iter().enumerate() { assert_eq!(n, i + 5); }
-

Trait Implementations§

source§

impl<T: Clone> Clone for OnceVec<T>

source§

fn clone(&self) -> Self

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<T: Debug> Debug for OnceVec<T>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<T> Default for OnceVec<T>

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl<T> Drop for OnceVec<T>

source§

fn drop(&mut self)

Executes the destructor for this type. Read more
source§

impl<T> Index<u32> for OnceVec<T>

§

type Output = T

The returned type after indexing.
source§

fn index(&self, index: u32) -> &T

Performs the indexing (container[index]) operation. Read more
source§

impl<T> Index<usize> for OnceVec<T>

§

type Output = T

The returned type after indexing.
source§

fn index(&self, index: usize) -> &T

Performs the indexing (container[index]) operation. Read more
source§

impl<T> IndexMut<u32> for OnceVec<T>

source§

fn index_mut(&mut self, index: u32) -> &mut T

Performs the mutable indexing (container[index]) operation. Read more
source§

impl<T> IndexMut<usize> for OnceVec<T>

source§

fn index_mut(&mut self, index: usize) -> &mut T

Performs the mutable indexing (container[index]) operation. Read more
source§

impl<T> PartialEq for OnceVec<T>
where +

Trait Implementations§

source§

impl<T: Clone> Clone for OnceVec<T>

source§

fn clone(&self) -> Self

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<T: Debug> Debug for OnceVec<T>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<T> Default for OnceVec<T>

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl<T> Drop for OnceVec<T>

source§

fn drop(&mut self)

Executes the destructor for this type. Read more
source§

impl<T> Index<u32> for OnceVec<T>

§

type Output = T

The returned type after indexing.
source§

fn index(&self, index: u32) -> &T

Performs the indexing (container[index]) operation. Read more
source§

impl<T> Index<usize> for OnceVec<T>

§

type Output = T

The returned type after indexing.
source§

fn index(&self, index: usize) -> &T

Performs the indexing (container[index]) operation. Read more
source§

impl<T> IndexMut<u32> for OnceVec<T>

source§

fn index_mut(&mut self, index: u32) -> &mut T

Performs the mutable indexing (container[index]) operation. Read more
source§

impl<T> IndexMut<usize> for OnceVec<T>

source§

fn index_mut(&mut self, index: usize) -> &mut T

Performs the mutable indexing (container[index]) operation. Read more
source§

impl<T> PartialEq for OnceVec<T>
where T: PartialEq,

source§

fn eq(&self, other: &Self) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<T> Eq for OnceVec<T>
where diff --git a/docs/search-index.js b/docs/search-index.js index 5d9dbce82..085b6770c 100644 --- a/docs/search-index.js +++ b/docs/search-index.js @@ -1,16 +1,16 @@ var searchIndex = new Map(JSON.parse('[\ -["algebra",{"t":"PFPKKGKPPFKPFPKKKFFGGKKCMCMOOMMOOCMMMMMOMMMQOOOOMMCMMMOOOCMCHOOOMMMMMMOOCOMMOMMOOMMMCCOOOFKFPPGMOOOOOOOOOOOOEEEEEEEEEEEEEEEEECCCCCCCCCFKFPPGNMNNNNONONONNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNONONNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNONNNNNNNNNNNNNOONNNONHNNNNNNNNNNNNNNNONNNKKKKMMMMNNMMMNNMNNMNNNNMNNMMMNNMNNNNMNNNNMKMMSFSFSNHNNNNNNNNNNNNNONNOHNNONNNNNNNNNOONOOOONHNNNNNNNNHFNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNSOFFKFIFIFIFNONNNONONNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNONNNNNNNNNNNNNOOONNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNOONNNNNNNNNNNONMNONNNNNNNNNNNNNNNNNNNNNNNOOOOONNONNNNONOOHONONNNNNNONNNNNNNNNNNNNNNNNNNNONNNNNNNNNNSRIFKMHHNNONNNMMMNNNNNMOMNNMQNNONQNOKFFMNNNNNNNNNMNONNNNNNNNNNNOMMNNNNMNNNNNONNNNNNNNNNONNNNNNNNNNOMMMMMNNNNNNNNNNONNPPFGPPPPGGKNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNQNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNONNMNNNNNNNNNNNNNNNNNNNNNNNSFFHOOHOOOOOOOHHFOOFKFFIFIFOOOOOOOOOOOOMOOOOOOOOOOOOOORFFIFFKFFFFFEFFIKMOMOOOOOOOOOMOCOOOMOCCCOOOOOOOOOOOOOOOCCOOOOOMOMOOOOOCOOOOOOOOOOCOOOCOOOCOCOCOOCMFFNOOONNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNFNNNONNNONNNNNNNNNNNNNNNNNNNNNNNOONNNNNONNNNNNNNNNNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNONNNNONOONNNNONNNOONONNNNNNNNNNIFFFFINNNNOOOOOONNNNNNNNNNNNNONNNNNNNNNNNNNONNNNNNNOOOOONOOOOONOOONNNNNNNNNNNNNNNNNOOOOOOONNOOONOONONONNNNNNNNNNNNNNNNNNNFNNONONNNNNNNNNNNNNNNONONNNNNIFFFKKFFFRRIKNNMNNMOOOOOOOCCCNNCMNOOOOONOOOOOOONOOOOOONNOOOOOCOOMOOOOOOOMOOOOOOMIFINNNNNNNNNNNOOONNNNNNNNOOONNNOOONOOONNNNOOONOOONNNNOOONOOONNNNNFNNNNNNNNONNNNNNNNONNNOONNONNNONONNNNNNFNNNNONNNNNNNNONONNNNNFNNNNNNNNNNONNNOONNNONONONNNNFFNNNNNNNNNNNNNNOONNNNNNNNOONNONNNNNNNNNNRKFNNNNNNMMMNNNNNNMNNNNNNNNNNMNNNNMNNONNNNNNONFNNNNONNNNNNNNNNNNNNONNNNNNNONONNNNNFFNNONNNNNOOHHNNNNNNNNNNNNNNNNNNNNNNOONNOONNNNNNNNNNNNNIHCNHFNNNNNNNNNNNNNNNNNONNNNNNNNONNNNNNNFNNNNNONNNNNNNNNNNONNNNNONNNNNNNKMRFKMOMMMMOMMOOFONNNNNNNNNNNNNNNNNNNONNNNNNNNNNPGGPPGPIIPPPPPPPPHHHHNNNNNNHNNNNNNNNNNHNNNNNNHNNNNNNHNNNNNNNNNHHHHHHHHNNNNNNNNNNNNNNNN","n":["Adem","AdemAlgebra","AdemAlgebra","AdemAlgebraT","Algebra","AlgebraType","Bialgebra","BorrowAdem","BorrowMilnor","Field","GeneratedAlgebra","Milnor","MilnorAlgebra","MilnorAlgebra","MilnorAlgebraT","MuAlgebra","PolynomialAlgebra","PolynomialAlgebraMonomial","PolynomialAlgebraTableEntry","SteenrodAlgebra","SteenrodAlgebraBorrow","SteenrodAlgebraT","UnstableAlgebra","adem_algebra","adem_algebra","algebra","basis_element_from_string","basis_element_to_index_map","basis_element_to_index_map","basis_element_to_string","basis_table","basis_table","basis_table","combinatorics","compute_basis","compute_generating_set","coproduct","decompose","decompose_basis_element","degree","dimension","dimension_unstable","dimension_unstable","dispatch_algebra","even_basis_table","excess_table","excess_table","ext","exterior_generators_in_degree","exterior_monomials","field","frobenius_on_generator","generating_relations","generators","generic","generic","index_to_monomial","milnor_algebra","milnor_algebra","module","module_gens_from_json","monomial_to_index","multiplication_table","multiplication_table","multiply_basis_element_by_element_unstable","multiply_basis_elements","multiply_basis_elements_unstable","multiply_basis_elements_unstable","multiply_element_by_basis_element_unstable","multiply_element_by_element_unstable","p","p","pair_algebra","poly","polynomial_generators_in_degree","polynomial_monomials","ppart_table","prime","prime","prime","profile","repr_ext_generator","repr_poly_generator","steenrod_algebra","steenrod_evaluator","steenrod_parser","unstable_enabled","unstable_enabled","valid","AdemAlgebra","AdemAlgebraT","AdemBasisElement","Bockstein","P","PorBockstein","adem_algebra","basis_element_to_index_map","basis_table","bocksteins","degree","even_basis_table","excess_table","generic","multiplication_table","p","p_or_sq","ps","unstable_enabled","AdemAlgebra","AdemAlgebraT","Algebra","AlgebraType","Bialgebra","Field","GeneratedAlgebra","MilnorAlgebra","MilnorAlgebraT","MuAlgebra","PolynomialAlgebra","PolynomialAlgebraMonomial","PolynomialAlgebraTableEntry","SteenrodAlgebra","SteenrodAlgebraBorrow","SteenrodAlgebraT","UnstableAlgebra","adem_algebra","algebra_trait","bialgebra_trait","combinatorics","field","milnor_algebra","pair_algebra","polynomial_algebra","steenrod_algebra","AdemAlgebra","AdemAlgebraT","AdemBasisElement","Bockstein","P","PorBockstein","a_multiply","adem_algebra","adem_algebra","basis_element_from_index","basis_element_from_string","basis_element_to_index","basis_element_to_index_map","basis_element_to_string","basis_table","beps_pn","bocksteins","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","clone_to_uninit","compute_basis","coproduct","decompose","decompose_basis_element","decompose_basis_element_2","decompose_basis_element_generic","default_filtration_one_products","degree","deref","deref","deref","deref_mut","deref_mut","deref_mut","dimension","dimension_unstable","dimension_unstable","dimension_unstable","drop","drop","drop","element_from_bytes","element_is_zero","element_to_bytes","eq","equivalent","equivalent","equivalent","equivalent","even_basis_table","excess","excess_table","finalize_element","fmt","fmt","fmt","fmt","from","from","from","generate_basis2","generate_basis_element_to_index_map","generate_basis_even","generate_basis_generic","generate_excess_table","generate_multiplication_table_2","generate_multiplication_table_2_step","generate_multiplication_table_generic","generate_multiplication_table_generic_step","generating_relations","generator_to_string","generators","generic","generic","hash","init","init","init","into","into","into","iter_filtered","magic","make_mono_admissible","make_mono_admissible_2","make_mono_admissible_generic","multiplication_table","multiply_basis_element_by_element_unstable","multiply_basis_element_by_element_unstable","multiply_basis_elements","multiply_basis_elements_unstable","multiply_basis_elements_unstable","multiply_basis_elements_unstable","multiply_element_by_basis_element_unstable","multiply_element_by_basis_element_unstable","multiply_element_by_element_unstable","multiply_element_by_element_unstable","multiply_inner","new","new_pair_element","p","p_or_sq","p_tilde","prefix","prime","ps","q","shift_vec","sigma_multiply_basis","tail_of_basis_element_to_index","to_owned","to_string","to_string","try_basis_element_to_index","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","unstable_enabled","vzip","vzip","vzip","Algebra","GeneratedAlgebra","MuAlgebra","UnstableAlgebra","basis_element_from_string","basis_element_to_string","compute_basis","decompose_basis_element","default_filtration_one_products","default_filtration_one_products","dimension","dimension_unstable","dimension_unstable","element_to_string","element_to_string","generating_relations","generator_to_string","generator_to_string","generators","magic","magic","multiply_basis_element_by_element","multiply_basis_element_by_element","multiply_basis_element_by_element_unstable","multiply_basis_element_by_element_unstable","multiply_basis_element_by_element_unstable","multiply_basis_elements","multiply_basis_elements_unstable","multiply_basis_elements_unstable","multiply_element_by_basis_element","multiply_element_by_basis_element","multiply_element_by_basis_element_unstable","multiply_element_by_basis_element_unstable","multiply_element_by_basis_element_unstable","multiply_element_by_element","multiply_element_by_element","multiply_element_by_element_unstable","multiply_element_by_element_unstable","multiply_element_by_element_unstable","prefix","prefix","prime","Bialgebra","coproduct","decompose","MAX_XI_TAU","PartitionIterator","TAU_DEGREES","TruncatedPolynomialMonomialBasis","XI_DEGREES","add_gens_and_calculate_parts","adem_relation_coefficient","borrow","borrow","borrow_mut","borrow_mut","deref","deref","deref_mut","deref_mut","drop","drop","from","from","gen_deg_idx_to_internal_idx","gen_degrees","generators","generators_up_to_degree","gens","inadmissible_pairs","init","init","initial","internal_idx_to_gen_deg","into","into","into_iter","multiunzip","multiunzip","new","new","next","p","partition","parts","parts","parts","parts_by_max","remaining","search","tau_degrees","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","xi_degrees","Field","basis_element_from_string","basis_element_to_string","borrow","borrow_mut","compute_basis","coproduct","decompose","default_filtration_one_products","deref","deref_mut","dimension","dimension_unstable","drop","element_to_string","fmt","from","init","into","multiply_basis_element_by_element_unstable","multiply_basis_elements","multiply_basis_elements_unstable","multiply_element_by_basis_element_unstable","multiply_element_by_element_unstable","new","prime","prime","to_string","try_from","try_into","type_id","vzip","ALLOCATION","M","Matrix2D","MilnorAlgebra","MilnorAlgebraT","MilnorBasisElement","MilnorHashMap","MilnorProfile","PPart","PPartAllocation","PPartEntry","PPartMultiplier","a_multiply","ans","basis_element_from_index","basis_element_from_string","basis_element_to_index","basis_element_to_index_map","basis_element_to_string","basis_table","beps_pn","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","clone_into","clone_to_uninit","cols","cols","compute_basis","compute_degree","compute_ppart","coproduct","decompose","decompose_basis_element","decompose_basis_element_ppart","decompose_basis_element_qpart","default","default","default","default","default_filtration_one_products","degree","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","diag_num","diagonal","diagonal","dimension","dimension_unstable","dimension_unstable","dimension_unstable","drop","drop","drop","drop","drop","drop","element_from_bytes","element_is_zero","element_to_bytes","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","excess","excess_table","finalize_element","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from_p","generate_basis_2","generate_basis_generic","generate_excess_table","generating_relations","generator_to_string","generators","generic","generic","get_p_part","hash","increment_p_part","index","index_mut","init","init","init","init","init","init","init","inner","into","into","into","into","into","into","into_allocation","into_iter","is_an","is_trivial","is_valid","m","magic","milnor_algebra","milnor_algebra","multiplication_table","multiply","multiply_basis_by_element","multiply_basis_by_element_with_allocation","multiply_basis_element_by_element","multiply_basis_element_by_element_unstable","multiply_basis_element_by_element_unstable","multiply_basis_elements","multiply_basis_elements_unstable","multiply_basis_elements_unstable","multiply_basis_elements_unstable","multiply_element_by_basis_element_unstable","multiply_element_by_basis_element_unstable","multiply_element_by_element","multiply_element_by_element_unstable","multiply_element_by_element_unstable","multiply_qpart","multiply_with_allocation","new","new_from_allocation","new_pair_element","new_with_profile","next","next_val","p","p","p_part","p_part","p_part","p_tilde","ppart_table","ppart_table","prefix","prime","prime","profile","profile","q","q_part","q_part","q_part_default","r","reset","rows","serialize","sigma_multiply_basis","to_owned","to_string","to_string","to_string","truncated","try_basis_element_to_index","try_beps_pn","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","unstable_enabled","update","vzip","vzip","vzip","vzip","vzip","vzip","with_capacity","with_capacity","with_local","AY_CACHE","Element","HashMap","MilnorPairElement","PairAlgebra","a_multiply","a_y_cached","a_y_inner","borrow","borrow_mut","degree","deref","deref_mut","drop","element_from_bytes","element_is_zero","element_to_bytes","finalize_element","finalize_element","from","init","into","new_pair_element","ones","p_tilde","sigma_multiply","sigma_multiply","sigma_multiply_basis","sub","try_from","try_into","twos","type_id","unsub","vzip","ys","PolynomialAlgebra","PolynomialAlgebraMonomial","PolynomialAlgebraTableEntry","basis_table","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","clone_to_uninit","compute_basis_step","compute_basis_step","compute_generating_set","default","degree","deref","deref","deref_mut","deref_mut","drop","drop","eq","equivalent","equivalent","equivalent","equivalent","ext","exterior_generators_in_degree","exterior_monomials","fmt","fmt","frobenius_monomial","frobenius_monomial","frobenius_on_generator","from","from","hash","index_to_monomial","index_to_monomial","index_to_monomial","init","init","into","into","max_computed_degree","max_computed_degree","min_degree","min_degree","monomial_to_index","monomial_to_index","monomial_to_index","multiply_monomial_by_polynomial","multiply_monomial_by_polynomial","multiply_monomials","multiply_monomials","multiply_polynomial_by_monomial","multiply_polynomial_by_monomial","multiply_polynomials","multiply_polynomials","new","new","poly","polynomial_generators_in_degree","polynomial_monomials","prime","repr_ext_generator","repr_poly_generator","set_monomial_degree","set_monomial_degree","to_owned","to_string","try_from","try_from","try_into","try_into","type_id","type_id","valid","vzip","vzip","Adem","AdemAlgebra","AlgebraSpec","AlgebraType","BorrowAdem","BorrowMilnor","Milnor","MilnorAlgebra","SteenrodAlgebra","SteenrodAlgebraBorrow","SteenrodAlgebraT","a_multiply","adem_algebra","algebra","basis_element_from_string","basis_element_to_string","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","clone_to_uninit","clone_to_uninit","compute_basis","coproduct","decompose","decompose_basis_element","default_filtration_one_products","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","dimension","dimension_unstable","dimension_unstable","dimension_unstable","dispatch_steenrod","drop","drop","drop","drop","element_from_bytes","element_is_zero","element_to_bytes","element_to_string","eq","equivalent","equivalent","equivalent","equivalent","finalize_element","fmt","fmt","fmt","fmt","from","from","from","from","from_json","from_str","generating_relations","generator_to_string","generators","init","init","init","init","into","into","into","into","magic","milnor_algebra","multiply_basis_element_by_element","multiply_basis_element_by_element_unstable","multiply_basis_element_by_element_unstable","multiply_basis_element_by_element_unstable","multiply_basis_elements","multiply_basis_elements_unstable","multiply_basis_elements_unstable","multiply_basis_elements_unstable","multiply_element_by_basis_element","multiply_element_by_basis_element_unstable","multiply_element_by_basis_element_unstable","multiply_element_by_basis_element_unstable","multiply_element_by_element","multiply_element_by_element_unstable","multiply_element_by_element_unstable","multiply_element_by_element_unstable","new_pair_element","p","p_tilde","prefix","prime","profile","sigma_multiply","sigma_multiply_basis","steenrod_algebra","steenrod_algebra","to_owned","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","MAX_XI_TAU","PartitionIterator","TruncatedPolynomialMonomialBasis","adem_relation_coefficient","gen_degrees","gens","inadmissible_pairs","initial","p","partition","parts","parts","parts_by_max","remaining","tau_degrees","xi_degrees","Field","prime","M","MilnorAlgebra","MilnorAlgebraT","MilnorBasisElement","MilnorProfile","PPart","PPartAllocation","PPartEntry","PPartMultiplier","ans","basis_element_to_index_map","basis_table","cols","degree","diag_num","diagonal","diagonal","excess_table","generic","init","m","milnor_algebra","multiplication_table","p","p","p_part","p_part","p_part","ppart_table","profile","q_part","q_part","r","rows","truncated","unstable_enabled","Algebra","FDModule","FPModule","FreeModule","GeneratorData","HomModule","Module","ModuleFailedRelationError","MuFreeModule","OperationGeneratorPair","QuotientModule","RealProjectiveSpace","SteenrodModule","SuspensionModule","TensorModule","UnstableFreeModule","ZeroModule","act_on_basis","actions","algebra","algebra","algebra","algebra","algebra","algebra","algebra","basis_element_to_opgen","basis_element_to_opgen","basis_element_to_opgen","basis_element_to_string","basis_list","block_structure","block_structures","block_structures","clear_bottom","dimension","end","finite_dimensional_module","finitely_presented_module","free_module","gen_deg","gen_deg_idx_to_internal_idx","gen_deg_idx_to_internal_idx","gen_deg_idx_to_internal_idx","gen_names","gen_names","gen_names","gen_names","generator_degree","generator_index","generator_to_index","generator_to_index","generator_to_index","generators","graded_dimension","hom_module","homomorphism","index_table","inner","left","map","max","max_computed_degree","min","min_degree","min_degree","min_degree","min_degree","min_degree","module","module_trait","name","name","name","name","name","num_gens","num_gens","num_gens","operation_degree","operation_index","quotient_module","relation","relations","right","rpn","shift","source","start","steenrod_module","subspaces","suspension_module","target","tensor_module","truncation","value","zero_module","zero_module","BlockStructure","GeneratorBasisEltPair","add_block","basis_element_to_block_idx","basis_index","blocks","borrow","borrow","borrow_mut","borrow_mut","deref","deref","deref_mut","deref_mut","drop","drop","fmt","fmt","from","from","generator_basis_elt_to_index","generator_degree","generator_index","generator_to_block","index_to_generator_basis_elt","init","init","into","into","new","total_dimension","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","FiniteDimensionalModule","act_on_basis","action","action_mut","actions","actions_to_json","add_generator","algebra","algebra","allocate_actions","basis_element_to_string","borrow","borrow_mut","check_validity","clone","clone_into","clone_to_uninit","compute_basis","deref","deref_mut","dimension","drop","eq","equivalent","equivalent","equivalent","equivalent","extend_actions","fmt","from","from","from_json","gen_names","graded_dimension","init","into","max_computed_degree","max_degree","min_degree","name","new","parse_action","set_action","set_basis_element_name","string_to_basis_element","test_equal","to_json","to_owned","to_string","try_from","try_into","type_id","vzip","zero_module","FPMIndexTable","FinitelyPresentedModule","act_on_basis","add_generators","add_relations","algebra","basis_element_to_string","borrow","borrow","borrow_mut","borrow_mut","compute_basis","deref","deref","deref_mut","deref_mut","dimension","drop","drop","eq","equivalent","equivalent","equivalent","equivalent","fmt","fp_idx_to_gen_idx","fp_idx_to_gen_idx","from","from","from_json","gen_idx_to_fp_idx","gen_idx_to_fp_idx","generators","generators","index_table","init","init","into","into","map","max_computed_degree","max_generator_degree","min_degree","min_degree","name","new","relations","to_string","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","zero_module","FreeModule","GeneratorData","MuFreeModule","OffsetIterator","OperationGeneratorPair","UnstableFreeModule","act","act_on_basis","add_generators","algebra","algebra","algebra","algebra","basis_element_to_opgen","basis_element_to_opgen","basis_element_to_opgen","basis_element_to_string","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","clone_to_uninit","compute_basis","degree","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","dimension","drop","drop","drop","drop","end","extend_by_zero","fmt","fmt","from","from","from","from","gen_deg","gen_deg","gen_deg_idx_to_internal_idx","gen_deg_idx_to_internal_idx","gen_deg_idx_to_internal_idx","gen_names","gen_names","gen_names","gen_names","generator_degree","generator_index","generator_offset","generator_to_index","generator_to_index","generator_to_index","index_to_op_gen","init","init","init","init","internal_generator_offset","into","into","into","into","into_iter","iter_gen_offsets","iter_gens","iter_slices","max_computed_degree","max_generator_degree","min_degree","min_degree","min_degree","min_degree","module","name","name","name","new","next","num_gens","num_gens","num_gens","number_of_gens_in_degree","offset","operation_degree","operation_generator_to_index","operation_index","slice_vector","start","to_owned","to_string","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","zero_module","HomModule","act_on_basis","algebra","algebra","basis_element_to_string","block_structures","borrow","borrow_mut","compute_basis","deref","deref_mut","dimension","drop","fmt","from","init","into","max_computed_degree","min_degree","new","source","source","target","target","to_string","try_from","try_into","type_id","vzip","FreeModuleHomomorphism","FullModuleHomomorphism","GenericZeroHomomorphism","HomPullback","IdentityHomomorphism","ModuleHomomorphism","MuFreeModuleHomomorphism","QuotientHomomorphism","QuotientHomomorphismSource","Source","Target","UnstableFreeModuleHomomorphism","ZeroHomomorphism","apply","apply_quasi_inverse","apply_to_basis_element","auxiliary_data","compute_auxiliary_data_through_degree","degree_shift","degree_shift","degree_shift","degree_shift","degree_shift","degree_shift","f","f","free_module_homomorphism","full_module_homomorphism","generic_zero_homomorphism","get_matrix","get_partial_matrix","hom_pullback","identity_homomorphism","image","images","images","images","images","images","kernel","kernels","kernels","kernels","kernels","kernels","map","matrices","min_degree","min_degree","min_degree","min_degree","outputs","outputs","outputs","prime","quasi_inverse","quasi_inverses","quasi_inverses","quasi_inverses","quasi_inverses","quasi_inverses","quotient_homomorphism","s","s","source","source","source","source","source","source","source","t","target","target","target","target","target","target","target","zero_homomorphism","FreeModuleHomomorphism","MuFreeModuleHomomorphism","UnstableFreeModuleHomomorphism","add_generators_from_big_vector","add_generators_from_matrix_rows","add_generators_from_rows","add_generators_from_rows_ooo","apply_to_basis_element","apply_to_generator","borrow","borrow_mut","compute_auxiliary_data_through_degree","degree_shift","degree_shift","degree_shift","degree_shift","degree_shift","deref","deref_mut","differential_density","drop","extend_by_zero","from","hom_k","image","images","images","images","init","into","kernel","kernels","kernels","kernels","min_degree","min_degree","min_degree","min_degree","new","next_degree","ooo_outputs","output","outputs","outputs","outputs","quasi_inverse","quasi_inverses","quasi_inverses","quasi_inverses","set_image","set_kernel","set_quasi_inverse","source","source","source","source","target","target","target","target","try_from","try_into","type_id","vzip","zero_homomorphism","FullModuleHomomorphism","apply_to_basis_element","borrow","borrow_mut","clone","clone_into","clone_to_uninit","compute_auxiliary_data_through_degree","degree_shift","degree_shift","deref","deref_mut","drop","from","from","from_matrices","identity_homomorphism","image","images","init","into","kernel","kernels","matrices","new","quasi_inverse","quasi_inverses","replace_source","replace_target","source","source","target","target","to_owned","try_from","try_into","type_id","vzip","zero_homomorphism","GenericZeroHomomorphism","apply_to_basis_element","borrow","borrow_mut","degree_shift","degree_shift","deref","deref_mut","drop","from","init","into","new","source","source","target","target","try_from","try_into","type_id","vzip","zero_homomorphism","HomPullback","apply_to_basis_element","borrow","borrow_mut","compute_auxiliary_data_through_degree","degree_shift","deref","deref_mut","drop","from","image","images","init","into","kernel","kernels","map","min_degree","new","quasi_inverse","quasi_inverses","source","source","target","target","try_from","try_into","type_id","vzip","QuotientHomomorphism","QuotientHomomorphismSource","apply_to_basis_element","apply_to_basis_element","borrow","borrow","borrow_mut","borrow_mut","degree_shift","degree_shift","deref","deref","deref_mut","deref_mut","drop","drop","f","f","from","from","init","init","into","into","new","new","s","s","source","source","t","target","target","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","Algebra","Module","ModuleFailedRelationError","act","act","act_by_element","act_by_element","act_by_element_on_basis","act_by_element_on_basis","act_on_basis","algebra","basis_element_to_string","borrow","borrow_mut","compute_basis","compute_basis","deref","deref_mut","dimension","drop","element_to_string","element_to_string","fmt","fmt","from","init","into","is_unit","is_unit","max_computed_degree","max_degree","max_degree","max_generator_degree","max_generator_degree","min_degree","prime","prime","relation","to_string","total_dimension","total_dimension","try_from","try_into","type_id","value","vzip","QuotientModule","act_on_basis","act_on_original_basis","algebra","basis_element_to_string","basis_list","borrow","borrow_mut","deref","deref_mut","dimension","drop","flush","fmt","from","init","into","max_computed_degree","max_degree","min_degree","module","new","old_basis_to_new","quotient","quotient_all","quotient_basis_elements","quotient_vectors","reduce","subspaces","to_string","truncation","try_from","try_into","type_id","vzip","zero_module","RPSpec","RealProjectiveSpace","act_on_basis","algebra","algebra","basis_element_to_string","borrow","borrow","borrow_mut","borrow_mut","clear_bottom","clear_bottom","coef_adem","coef_milnor","deref","deref","deref_mut","deref_mut","deserialize","dimension","drop","drop","eq","equivalent","equivalent","equivalent","equivalent","fmt","fmt","from","from","from_json","init","init","into","into","max","max","max_computed_degree","max_degree","min","min","min_degree","new","to_json","to_string","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","zero_module","SteenrodModule","from_json","json","zero_module","from_json","SuspensionModule","act","act_by_element","act_by_element_on_basis","act_on_basis","algebra","basis_element_to_string","borrow","borrow_mut","compute_basis","deref","deref_mut","dimension","drop","element_to_string","fmt","from","init","inner","into","is_unit","max_computed_degree","max_degree","max_generator_degree","min_degree","new","prime","shift","to_string","total_dimension","try_from","try_into","type_id","vzip","zero_module","TensorModule","act","act_helper","act_on_basis","algebra","basis_element_to_string","block_structures","borrow","borrow_mut","compute_basis","deref","deref_mut","dimension","drop","fmt","from","init","into","left","max_computed_degree","max_degree","min_degree","new","offset","right","seek_module_num","to_string","try_from","try_into","type_id","vzip","zero_module","ZeroModule","zero_module","Element","MilnorPairElement","PairAlgebra","a_multiply","degree","element_from_bytes","element_is_zero","element_to_bytes","new_pair_element","ones","p_tilde","sigma_multiply_basis","twos","ys","SteenrodEvaluator","adem","adem_q","adem_to_milnor","adem_to_milnor_on_basis","borrow","borrow_mut","compute_basis","deref","deref_mut","dimension","drop","evaluate_algebra_adem","evaluate_algebra_milnor","evaluate_algebra_node","evaluate_basis_element","evaluate_module_adem","evaluate_p_or_b_list","from","init","into","milnor","milnor_to_adem","milnor_to_adem_on_basis","milnor_to_adem_on_basis_2","milnor_to_adem_on_basis_generic","new","prime","try_from","try_into","type_id","vzip","AList","AlgebraBasisElt","AlgebraNode","BasisElt","Bockstein","BocksteinOrSq","Err","IResult","ModuleNode","Ok","P","PList","Product","Q","Scalar","Sq","Sum","algebra_expr","algebra_factor","algebra_generator","algebra_term","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","brackets","clone","clone","clone","clone_into","clone_into","clone_into","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","convert_error","deref","deref","deref","deref_mut","deref_mut","deref_mut","digits","drop","drop","drop","fmt","fmt","fmt","fold_separated","from","from","from","init","init","init","into","into","into","module_expr","module_generator","module_term","p_or_sq","parse_algebra","parse_module","scalar","space","to_adem_basis_elt","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip"],"q":[[0,"algebra"],[89,"algebra::adem_algebra"],[108,"algebra::algebra"],[134,"algebra::algebra::adem_algebra"],[267,"algebra::algebra::algebra_trait"],[309,"algebra::algebra::bialgebra_trait"],[312,"algebra::algebra::combinatorics"],[367,"algebra::algebra::field"],[399,"algebra::algebra::milnor_algebra"],[625,"algebra::algebra::pair_algebra"],[661,"algebra::algebra::polynomial_algebra"],[742,"algebra::algebra::steenrod_algebra"],[874,"algebra::combinatorics"],[890,"algebra::field"],[892,"algebra::milnor_algebra"],[928,"algebra::module"],[1026,"algebra::module::block_structure"],[1065,"algebra::module::finite_dimensional_module"],[1119,"algebra::module::finitely_presented_module"],[1176,"algebra::module::free_module"],[1297,"algebra::module::hom_module"],[1326,"algebra::module::homomorphism"],[1406,"algebra::module::homomorphism::free_module_homomorphism"],[1471,"algebra::module::homomorphism::full_module_homomorphism"],[1510,"algebra::module::homomorphism::generic_zero_homomorphism"],[1532,"algebra::module::homomorphism::hom_pullback"],[1561,"algebra::module::homomorphism::quotient_homomorphism"],[1602,"algebra::module::module_trait"],[1648,"algebra::module::quotient_module"],[1684,"algebra::module::rpn"],[1739,"algebra::module::steenrod_module"],[1743,"algebra::module::steenrod_module::json"],[1744,"algebra::module::suspension_module"],[1779,"algebra::module::tensor_module"],[1811,"algebra::module::zero_module"],[1813,"algebra::pair_algebra"],[1827,"algebra::steenrod_evaluator"],[1859,"algebra::steenrod_parser"],[1945,"core::option"],[1946,"alloc::string"],[1947,"once"],[1948,"alloc::vec"],[1949,"serde_json::value"],[1950,"bivec"],[1951,"anyhow"],[1952,"core::ops::function"],[1953,"fp::vector::fp_wrapper"],[1954,"fp::prime::primes_generic"],[1955,"std::io::error"],[1956,"std::io"],[1957,"core::fmt"],[1958,"core::hash"],[1959,"core::iter::traits::iterator"],[1960,"core::result"],[1961,"core::any"],[1962,"serde::de"],[1963,"serde::ser"],[1964,"core::marker"],[1965,"alloc::sync"],[1966,"core::ops::range"],[1967,"fp::matrix::subspace"],[1968,"fp::matrix::quasi_inverse"],[1969,"fp::matrix::matrix_inner"],[1970,"alloc::collections::btree::map"],[1971,"nom::error"],[1972,"nom::internal"],[1973,"core::str::traits"],[1974,"core::clone"]],"i":[69,0,68,0,0,0,0,33,33,0,0,69,0,68,0,0,0,0,0,0,0,0,0,0,1,0,4,3,23,4,11,3,23,0,4,11,15,15,17,67,4,19,20,0,3,3,23,67,11,11,0,11,17,17,3,23,12,0,22,0,0,12,3,23,20,4,19,20,20,20,3,23,0,67,11,11,23,4,11,52,23,11,11,32,0,0,3,23,67,0,0,0,42,42,0,1,3,3,34,34,3,3,3,3,3,34,34,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,42,42,0,3,1,3,3,3,3,3,3,3,3,34,3,34,42,3,34,42,34,34,34,3,3,3,3,3,3,3,34,3,34,42,3,34,42,3,3,3,3,3,34,42,3,3,3,34,34,34,34,34,3,34,3,3,3,34,34,42,3,34,42,3,3,3,3,3,3,3,3,3,3,3,3,3,3,34,3,34,42,3,34,42,34,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,34,3,3,3,34,3,0,3,3,34,3,34,3,3,34,42,3,34,42,3,34,42,3,3,34,42,0,0,0,0,4,4,4,17,4,4,4,19,20,4,4,17,17,17,17,4,4,4,4,20,19,19,4,19,20,4,4,20,19,19,4,4,20,19,19,4,4,4,0,15,15,0,0,0,0,0,21,0,21,51,21,51,21,51,21,51,21,51,21,51,21,21,21,21,21,0,21,51,51,21,21,51,51,51,51,21,51,51,21,51,21,21,51,21,51,51,0,21,51,21,51,21,51,21,51,0,0,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,0,60,0,0,0,0,0,0,0,0,0,0,23,60,23,23,23,23,23,23,23,23,60,55,53,56,57,23,60,55,53,56,57,53,53,53,53,60,56,23,53,23,23,23,23,23,23,55,53,56,57,23,53,23,60,55,53,56,57,23,60,55,53,56,57,55,60,60,57,23,23,23,23,23,60,55,53,56,57,23,23,23,55,53,55,55,55,55,53,53,53,53,53,23,23,23,55,53,53,56,56,23,60,55,53,56,57,53,23,23,23,23,23,23,23,23,55,53,23,56,56,23,60,55,53,56,57,60,56,23,60,55,53,56,57,60,60,55,55,55,57,23,22,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,60,23,23,60,60,23,60,55,53,57,23,23,23,23,23,60,23,23,23,55,53,0,60,56,60,55,23,53,23,53,56,55,23,23,23,60,55,53,56,57,23,60,55,53,56,57,23,60,55,53,56,57,23,60,23,60,55,53,56,57,56,57,57,0,64,0,0,0,64,0,0,127,127,127,127,127,127,64,64,64,64,64,127,127,127,64,127,64,64,64,64,0,127,127,127,127,0,127,127,0,0,0,11,67,12,67,12,67,67,67,11,11,11,12,67,67,12,67,12,67,12,67,67,67,67,67,67,11,11,67,67,11,11,11,67,12,67,11,11,12,67,12,67,12,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,67,12,67,11,11,11,11,11,11,11,67,67,67,12,67,12,67,12,67,67,12,69,68,0,0,33,33,69,68,0,0,0,68,68,70,68,68,33,68,69,70,33,68,69,70,69,69,69,69,68,68,68,68,68,33,68,69,70,33,68,69,70,70,68,68,68,68,0,33,68,69,70,68,68,68,68,69,69,69,69,69,68,68,69,69,70,33,68,69,70,68,69,68,68,68,33,68,69,70,33,68,69,70,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,70,68,68,68,70,68,68,32,68,69,68,69,33,68,69,69,70,33,68,68,68,69,70,33,68,69,70,33,68,69,70,0,0,0,0,21,21,0,51,21,51,21,51,21,51,0,0,0,52,60,0,0,0,0,0,0,0,0,60,23,23,60,53,60,60,57,23,23,60,57,22,23,23,60,55,53,57,23,23,55,53,60,60,55,23,72,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,72,78,72,78,81,128,82,108,88,81,128,82,72,106,0,88,112,108,72,86,0,0,0,86,81,128,82,78,81,128,82,83,83,81,128,82,80,78,0,0,80,111,112,80,108,72,108,72,80,81,128,82,106,0,78,80,81,128,82,81,128,82,83,83,0,79,80,112,0,111,88,86,0,106,0,88,0,106,79,0,74,0,0,75,75,76,75,76,75,76,75,76,75,76,75,76,75,76,75,76,75,75,76,76,75,75,76,75,76,75,75,75,76,75,76,75,76,75,76,75,0,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,0,0,80,80,80,80,80,129,80,129,80,80,129,80,129,80,80,129,80,80,80,80,80,80,80,80,129,129,80,80,80,129,80,80,80,129,80,129,80,80,80,80,80,80,80,80,80,80,129,80,129,80,129,80,129,80,80,0,0,0,0,0,0,82,82,82,82,81,128,82,81,128,82,82,82,86,87,83,82,86,87,83,83,83,83,82,87,82,86,87,83,82,86,87,83,82,82,86,87,83,86,82,82,83,82,86,87,83,86,87,81,128,82,82,81,128,82,83,83,82,81,128,82,82,82,86,87,83,82,82,86,87,83,87,82,82,82,82,82,82,81,128,82,87,81,128,82,82,87,81,128,82,82,87,83,82,83,82,86,83,82,82,86,87,83,82,86,87,83,82,86,87,83,82,86,87,83,82,0,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,0,0,0,0,0,0,0,0,0,91,91,0,0,91,91,91,91,91,91,103,130,98,100,101,104,105,0,0,0,91,91,0,96,91,103,130,98,100,102,91,103,130,98,100,102,102,100,91,103,130,98,103,130,98,91,91,103,130,98,100,102,0,104,105,91,103,130,98,100,101,102,104,91,103,130,98,100,101,102,97,0,0,0,98,98,98,98,98,98,98,98,98,98,98,103,130,98,98,98,98,98,98,98,98,98,103,130,98,98,98,98,103,130,98,98,103,130,98,98,98,98,98,103,130,98,98,103,130,98,98,98,98,98,103,130,98,98,103,130,98,98,98,98,98,98,0,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,0,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,0,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,0,0,104,105,104,105,104,105,104,105,104,105,104,105,104,105,104,105,104,105,104,105,104,105,104,105,104,105,104,105,104,104,105,104,105,104,105,104,105,104,105,72,0,0,72,72,72,72,72,72,72,72,72,79,79,72,72,79,79,72,79,72,72,79,79,79,79,79,72,72,72,72,72,72,72,72,72,72,79,79,72,72,79,79,79,79,79,0,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,0,0,108,108,108,108,108,109,108,109,108,109,0,0,108,109,108,109,109,108,108,109,108,108,108,108,108,108,109,108,109,108,108,109,108,109,108,109,108,108,108,109,108,108,108,108,108,109,108,109,108,109,108,109,108,0,0,0,110,0,0,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,0,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,0,74,64,0,0,64,127,64,64,64,64,127,64,64,127,127,0,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,115,0,0,114,117,0,131,0,0,131,115,115,114,115,114,117,114,0,0,0,0,115,114,117,115,114,117,0,115,114,117,115,114,117,115,114,117,117,0,115,114,117,115,114,117,0,115,114,117,115,114,117,0,115,114,117,115,114,117,115,114,117,0,0,0,0,0,0,0,0,117,115,114,117,115,114,117,115,114,117,115,114,117,115,114,117],"f":"````````````````````````{{{d{b}}}{{d{f}}}}`{{{d{h}}{d{j}}}{{Ab{{A`{ln}}}}}}``{{{d{h}}ln}Ad}{{{d{Af}}}{{d{{Aj{Ah}}}}}}```{{{d{h}}l}Al}{{{d{Af}}l}Al}{{{d{An}}ln}{{B`{{A`{lnln}}}}}}{{{d{An}}ln}{{B`{{A`{ln}}}}}}{{{d{Bb}}ln}{{B`{{A`{Bd{A`{ln}}{A`{ln}}}}}}}}`{{{d{h}}l}n}{{{d{Bf}}ll}n}{{{d{Bh}}ll}n}`````{{{d{Af}}l}n}{{{d{Af}}}{{d{Bj}}}}`{{{d{Af}}ln}{{Ab{n}}}}{{{d{Bb}}l}{{B`{{B`{{A`{Bd{A`{ln}}{A`{ln}}}}}}}}}}{{{d{Bb}}l}{{B`{n}}}}````{{{d{Bl}}}{{d{Bn}}}}`{{{d{C`}}}{{A`{{Cb{n}}{Cb{{B`{Ad}}}}{`{{Ch{{d{j}}}{{Cd{{Cf{{A`{ln}}}}}}}}}}}}}}```{{{d{Bh}}CjBdlnlCll}Al}{{{d{h}}CjBdlnln}Al}{{{d{Bf}}CjBdlnlnl}Al}{{{d{Bh}}CjBdlnlnl}Al}{{{d{Bh}}CjBdlCllnl}Al}{{{d{Bh}}CjBdlCllCll}Al}````<;`{{{d{h}}}Cn}{{{d{Af}}}Cn}``{{{d{Af}}ln}Ad}{{{d{Af}}ln}{{A`{AdBd}}}}{{{d{D`}}}Db}```````````{{{d{b}}}{{d{f}}}}````````````````````````````````````````````{{{d{f}}CjBdlCll{d{c}}}Al{}}1{{{d{f}}}{{d{f}}}}{{{d{f}}ln}{{d{Dd}}}}{{{d{f}}{d{j}}}{{Ab{{A`{ln}}}}}}{{{d{f}}{d{Dd}}}n}`{{{d{f}}ln}Ad}`{{{d{f}}BdBd}{{A`{ln}}}}`{{{d{c}}}{{d{e}}}{}{}}00{{{d{Dfc}}}{{d{Dfe}}}{}{}}00{{{d{Dd}}}Dd}{{{d{c}}{d{Dfe}}}Al{}{}}{{{d{c}}}Al{}}{{{d{f}}l}Al}{{{d{f}}ln}{{B`{{A`{lnln}}}}}}{{{d{f}}ln}{{B`{{A`{ln}}}}}}{{{d{f}}ln}{{B`{{A`{Bd{A`{ln}}{A`{ln}}}}}}}}00{{{d{f}}}{{B`{{A`{Adln}}}}}}`{n{{d{c}}}{}}00{n{{d{Dfc}}}{}}00{{{d{f}}l}n}{{{d{c}}ll}n{}}{{{d{f}}ll}n}1{nAl}00{{{d{f}}l{d{Dfc}}}{{Dh{e}}}Dj{}}{{{d{c}}}Dl{}}{{{d{f}}{d{c}}{d{Dfe}}}{{Dh{Al}}}{}Dn}{{{d{Dd}}{d{Dd}}}Dl}{{{d{c}}{d{e}}}Dl{}{}}000`{{{d{Dd}}Cn}Bd}`{{{d{Dfc}}}Al{}}{{{d{f}}{d{DfE`}}}Eb}{{{d{Dd}}{d{DfE`}}}Eb}0{{{d{Ed}}{d{DfE`}}}Eb}{cc{}}00{{{d{f}}l}Al}00000{{{d{f}}{d{{Eh{{B`{Ef}}}}}}lln}Ef}10{{{d{f}}l}{{B`{{B`{{A`{Bd{A`{ln}}{A`{ln}}}}}}}}}}{{{d{f}}ln}Ad}{{{d{f}}l}{{B`{n}}}}{{{d{f}}}Dl}`{{{d{Dd}}{d{Dfc}}}AlEj}{{}n}00{ce{}{}}00{{{d{Dd}}}{{`{{En{}{{El{Ed}}}}}}}}{{{d{f}}}Bd}{{{d{f}}CjBd{d{DfDd}}l}Al}{{{d{f}}Cj{d{DfDd}}lllDl}Al}{{{d{f}}CjBd{d{DfDd}}lllDl}Al}`{{{d{c}}CjBdlnlCll}Al{}}0{{{d{f}}CjBdlnln}Al}{{{d{f}}CjBdlnlnl}Al}{{{d{c}}CjBdlnlnl}Al{}}0{{{d{c}}CjBdlCllnl}Al{}}0{{{d{c}}CjBdlCllCll}Al{}}03{{CnDl}f}{{{d{f}}l}c{}}``{{{d{f}}}n}{{{d{f}}}{{d{j}}}}{{{d{f}}}Cn}`{{{d{f}}}l}{{{d{Df{B`{c}}}}F`}Al{}}{{{d{f}}{d{Dfc}}Bdlnln}Al{}}{{{d{f}}{d{DfDd}}BdBd}n}{{{d{c}}}e{}{}}{{{d{c}}}Ad{}}0{{{d{f}}{d{Dd}}}{{Ab{n}}}}{c{{Fb{e}}}{}{}}00000{{{d{c}}}Fd{}}00`{ce{}{}}00````{{{d{h}}{d{j}}}{{Ab{{A`{ln}}}}}}{{{d{h}}ln}Ad}{{{d{h}}l}Al}{{{d{Bb}}ln}{{B`{{A`{Bd{A`{ln}}{A`{ln}}}}}}}}{{{d{h}}}{{B`{{A`{Adln}}}}}}0{{{d{h}}l}n}{{{d{Bf}}ll}n}{{{d{Bh}}ll}n}{{{d{h}}lCl}Ad}0{{{d{Bb}}l}{{B`{{B`{{A`{Bd{A`{ln}}{A`{ln}}}}}}}}}}{{{d{Bb}}ln}Ad}0{{{d{Bb}}l}{{B`{n}}}}{{{d{h}}}Bd}0{{{d{h}}CjBdlnlCl}Al}0{{{d{Bh}}CjBdlnlCll}Al}{{{d{Bf}}CjBdlnlCll}Al}0{{{d{h}}CjBdlnln}Al}{{{d{Bf}}CjBdlnlnl}Al}{{{d{Bh}}CjBdlnlnl}Al}{{{d{h}}CjBdlClln}Al}0{{{d{Bh}}CjBdlCllnl}Al}{{{d{Bf}}CjBdlCllnl}Al}0{{{d{h}}CjBdlCllCl}Al}0{{{d{Bh}}CjBdlCllCll}Al}{{{d{Bf}}CjBdlCllCll}Al}0{{{d{h}}}{{d{j}}}}0{{{d{h}}}Cn}`{{{d{An}}ln}{{B`{{A`{lnln}}}}}}{{{d{An}}ln}{{B`{{A`{ln}}}}}}`````{{{d{Bj}}ln}Al}{{CnBdBdBdBdBd}Bd}{{{d{c}}}{{d{e}}}{}{}}0{{{d{Dfc}}}{{d{Dfe}}}{}{}}0{n{{d{c}}}{}}0{n{{d{Dfc}}}{}}0{nAl}0{cc{}}0{{{d{Bj}}ln}n}`{{{d{Bj}}l}n}0`{{CnDll}{{B`{{A`{BdBdBd}}}}}}{{}n}0`{{{d{Bj}}n}{{A`{ln}}}}{ce{}{}}00{c{{A`{eg}}}{}{}{}}0{CnBj}{{lBd{d{{Eh{l}}}}}Ff}{{{d{DfFf}}}{{Ab{c}}}{}}``{{{d{Bj}}l}{{d{{B`{Ef}}}}}}````{{{d{DfFf}}}Dl}{Cn{{d{{Eh{l}}}}}}{c{{Fb{e}}}{}{}}000{{{d{c}}}Fd{}}0992`{{{d{Fh}}{d{j}}}{{Ab{{A`{ln}}}}}}{{{d{Fh}}ln}Ad}{{{d{c}}}{{d{e}}}{}{}}{{{d{Dfc}}}{{d{Dfe}}}{}{}}{{{d{Fh}}l}Al}{{{d{Fh}}ln}{{B`{{A`{lnln}}}}}}{{{d{Fh}}ln}{{B`{{A`{ln}}}}}}{{{d{Fh}}}{{B`{{A`{Adln}}}}}}{n{{d{c}}}{}}{n{{d{Dfc}}}{}}{{{d{Fh}}l}n}{{{d{c}}ll}n{}}{nAl}{{{d{Fh}}lCl}Ad}{{{d{Fh}}{d{DfE`}}}Eb}{cc{}}{{}n}{ce{}{}}{{{d{c}}CjBdlnlCll}Al{}}{{{d{Fh}}CjBdlnln}Al}{{{d{c}}CjBdlnlnl}Al{}}{{{d{c}}CjBdlCllnl}Al{}}{{{d{c}}CjBdlCllCll}Al{}}{CnFh}{{{d{Fh}}}Cn}`{{{d{c}}}Ad{}}{c{{Fb{e}}}{}{}}0{{{d{c}}}Fd{}}:````````````{{{d{Bn}}CjBdlCll{d{c}}}Al{}}`{{{d{Bn}}ln}{{d{Fj}}}}{{{d{Bn}}{d{j}}}{{Ab{{A`{ln}}}}}}{{{d{Bn}}{d{Fj}}}n}`{{{d{Bn}}ln}Ad}`{{{d{Bn}}BdFl}{{A`{ln}}}}{{{d{c}}}{{d{e}}}{}{}}00000{{{d{Dfc}}}{{d{Dfe}}}{}{}}00000{{{d{Fj}}}Fj}{{{d{c}}{d{Dfe}}}Al{}{}}{{{d{Fj}}{d{DfFj}}}Al}{{{d{c}}}Al{}}``{{{d{Bn}}l}Al}{{{d{DfFj}}Cn}Al}1{{{d{Bn}}ln}{{B`{{A`{lnln}}}}}}{{{d{Bn}}ln}{{B`{{A`{ln}}}}}}{{{d{Bn}}ln}{{B`{{A`{Bd{A`{ln}}{A`{ln}}}}}}}}00{{}Fn}{{}Fj}{{}G`}{{}Gb}{{{d{Bn}}}{{B`{{A`{Adln}}}}}}`{n{{d{c}}}{}}00000{n{{d{Dfc}}}{}}00000{c{{Fb{Fn}}}Gd}```{{{d{Bn}}l}n}{{{d{c}}ll}n{}}{{{d{Bn}}ll}n}1{nAl}00000{{{d{Bn}}l{d{Dfc}}}{{Dh{e}}}Dj{}}{{{d{c}}}Dl{}}{{{d{Bn}}{d{c}}{d{Dfe}}}{{Dh{Al}}}{}Dn}{{{d{Fn}}{d{Fn}}}Dl}{{{d{Fj}}{d{Fj}}}Dl}{{{d{c}}{d{e}}}Dl{}{}}0000000{{{d{Fj}}Cn}Bd}`{{{d{Dfc}}}Al{}}{{{d{Bn}}{d{DfE`}}}Eb}{{{d{Fn}}{d{DfE`}}}Eb}{{{d{Fj}}{d{DfE`}}}Eb}0{{{d{G`}}{d{DfE`}}}Eb}0{cc{}}00000{{Gfl}Fj}{{{d{Bn}}l}Al}00{{{d{Bn}}l}{{B`{{B`{{A`{Bd{A`{ln}}{A`{ln}}}}}}}}}}{{{d{Bn}}ln}Ad}{{{d{Bn}}l}{{B`{n}}}}{{{d{Bn}}}Dl}`{{{d{Fn}}n}Fl}{{{d{Fj}}{d{Dfc}}}AlEj}{{{d{DfGf}}{d{{Eh{Fl}}}}}Dl}{{{d{G`}}n}{{d{c}}}{}}{{{d{DfG`}}n}{{d{Dfc}}}{}}{{}n}00000``{ce{}{}}00000{GhGb}1{{{d{Fn}}Dl}Dl}{{{d{Fn}}}Dl}0`{{{d{Bn}}}Bd}{{{d{Bl}}}{{d{Bn}}}}{{{d{Bn}}}{{d{Bn}}}}`{{{d{Bn}}CjBd{d{Fj}}{d{Fj}}}Al}{{{d{Bn}}CjBd{d{Fj}}lCl}Al}{{{d{Bn}}CjBd{d{Fj}}lClGb}Gb}{{{d{Bn}}CjBdlnlCl}Al}{{{d{c}}CjBdlnlCll}Al{}}0{{{d{Bn}}CjBdlnln}Al}{{{d{Bn}}CjBdlnlnl}Al}{{{d{c}}CjBdlnlnl}Al{}}0{{{d{c}}CjBdlCllnl}Al{}}0{{{d{Bn}}CjBdlCllCl}Al}{{{d{c}}CjBdlCllCll}Al{}}0{{{d{Bn}}{d{Fj}}Bd}{{B`{{A`{BdFj}}}}}}{{{d{Bn}}CjBd{d{Fj}}{d{Fj}}lGb}Gb}{{CnDl}Bn}{{Cn{d{Gf}}{d{Gf}}GbBdl}Gh}{{{d{Bn}}l}c{}}{{CnFnDl}Bn}{{{d{DfGh}}}{{Ab{Bd}}}}{{{d{Gh}}FlFlFl}Fl}`````{{{d{Bn}}}n}{{{d{Bn}}l}{{d{{Eh{Gf}}}}}}`{{{d{Bn}}}{{d{j}}}}{{{d{Bn}}}Cn}{{{d{Gh}}}Cn}{{{d{Bn}}}{{d{Fn}}}}`{{{d{Bn}}}l}``{{}Bd}`{{{d{DfG`}}nn}Al}`{{{d{Fn}}c}FbGj}{{{d{Bn}}{d{Dfc}}Bdlnln}Al{}}{{{d{c}}}e{}{}}{{{d{c}}}Ad{}}00`{{{d{Bn}}{d{Fj}}}{{Ab{n}}}}{{{d{Bn}}BdFl}{{Ab{{A`{ln}}}}}}{c{{Fb{e}}}{}{}}00000000000{{{d{c}}}Fd{}}00000`{{{d{DfGh}}}Dl}{ce{}{}}00000{{nn}G`}{nGb}{cAl{{Gl{Gb}{{Cd{Gb}}}}}}`````{{{d{{H`{}{{Gn{c}}}}}}CjBdlCll{d{c}}}Al{HbHd}}{{{d{Bn}}{d{Fj}}nnc}Al{{Gl{{d{Ef}}}}}}{{{d{Bn}}{d{Fj}}nn}Ef}{{{d{c}}}{{d{e}}}{}{}}{{{d{Dfc}}}{{d{Dfe}}}{}{}}`{n{{d{c}}}{}}{n{{d{Dfc}}}{}}{nAl}{{{d{{H`{}{{Gn{c}}}}}}l{d{Dfe}}}{{Dh{c}}}{HbHd}Dj}{{{d{c}}}Dl{}}{{{d{{H`{}{{Gn{c}}}}}}{d{c}}{d{Dfe}}}{{Dh{Al}}}{HbHd}Dn}{{{d{Dfc}}}Al{}}0{cc{}}{{}n}{ce{}{}}{{{d{{H`{}{{Gn{c}}}}}}l}c{HbHd}}`{{{d{{H`{}{{Gn{c}}}}}}}n{HbHd}}{{{d{{H`{}{{Gn{c}}}}}}{d{Dfc}}BdlCllCl}Al{HbHd}}0{{{d{{H`{}{{Gn{c}}}}}}{d{Dfc}}Bdlnln}Al{HbHd}}`{c{{Fb{e}}}{}{}}0`{{{d{c}}}Fd{}}`6````{{{d{Af}}}{{d{{Aj{Ah}}}}}}{{{d{c}}}{{d{e}}}{}{}}0{{{d{Dfc}}}{{d{Dfe}}}{}{}}0{{{d{Hf}}}Hf}{{{d{c}}{d{Dfe}}}Al{}{}}{{{d{c}}}Al{}}{{{d{Af}}l}Al}00{{}Ah}`{n{{d{c}}}{}}0{n{{d{Dfc}}}{}}0{nAl}0{{{d{Hf}}{d{Hf}}}Dl}{{{d{c}}{d{e}}}Dl{}{}}000`{{{d{Af}}l}n}{{{d{Af}}}{{d{Bj}}}}{{{d{Hf}}{d{DfE`}}}Eb}0{{{d{Af}}{d{DfEf}}{d{Ef}}}Al}0{{{d{Af}}ln}{{Ab{n}}}}{cc{}}0{{{d{Hf}}{d{Dfc}}}AlEj}{{{d{Af}}ln}{{d{Hf}}}}0`{{}n}0{ce{}{}}0{{{d{Af}}}l}000{{{d{Af}}{d{Hf}}}n}0`{{{d{Af}}{d{DfEf}}Bd{d{Hf}}l{d{Ef}}}Al}0{{{d{Af}}{d{DfHf}}{d{Hf}}}{{Ab{Bd}}}}0{{{d{Af}}{d{DfEf}}Bdl{d{Ef}}{d{Hf}}}Al}0{{{d{Af}}{d{DfEf}}Bdl{d{Ef}}l{d{Ef}}}Al}0{CnHf}{{}Ah}`{{{d{Af}}l}n}{{{d{Af}}}{{d{Bj}}}}{{{d{Af}}}Cn}{{{d{Af}}ln}Ad}{{{d{Af}}ln}{{A`{AdBd}}}}{{{d{Af}}{d{DfHf}}l}Al}0{{{d{c}}}e{}{}}{{{d{c}}}Ad{}}{c{{Fb{e}}}{}{}}000{{{d{c}}}Fd{}}0`{ce{}{}}0```````````{{{d{Hh}}CjBdlCll{d{c}}}Al{}}{{{d{c}}}{{d{f}}}{}}`{{{d{Hh}}{d{j}}}{{Ab{{A`{ln}}}}}}{{{d{Hh}}ln}Ad}{{{d{c}}}{{d{e}}}{}{}}000{{{d{Dfc}}}{{d{Dfe}}}{}{}}000{{{d{Hj}}}Hj}{{{d{c}}{d{Dfe}}}Al{}{}}{{{d{c}}}Al{}}0{{{d{Hh}}l}Al}{{{d{Hh}}ln}{{B`{{A`{lnln}}}}}}{{{d{Hh}}ln}{{B`{{A`{ln}}}}}}{{{d{Hh}}ln}{{B`{{A`{Bd{A`{ln}}{A`{ln}}}}}}}}{{{d{Hh}}}{{B`{{A`{Adln}}}}}}{n{{d{c}}}{}}000{n{{d{Dfc}}}{}}000{c{{Fb{Hl}}}Gd}{{{d{Hh}}l}n}{{{d{c}}ll}n{}}{{{d{Hh}}ll}n}1`{nAl}000{{{d{Hh}}l{d{Dfc}}}{{Dh{e}}}Dj{}}{{{d{c}}}Dl{}}{{{d{Hh}}{d{c}}{d{Dfe}}}{{Dh{Al}}}{}Dn}{{{d{Hh}}lCl}Ad}{{{d{Hj}}{d{Hj}}}Dl}{{{d{c}}{d{e}}}Dl{}{}}000{{{d{Dfc}}}Al{}}{{{d{Hh}}{d{DfE`}}}Eb}{{{d{Hj}}{d{DfE`}}}Eb}0{{{d{Hl}}{d{DfE`}}}Eb}{cc{}}000{{{d{C`}}HjDl}{{Cf{Hh}}}}{{{d{j}}}{{Fb{Hjc}}}{}}{{{d{Hh}}l}{{B`{{B`{{A`{Bd{A`{ln}}{A`{ln}}}}}}}}}}{{{d{Hh}}ln}Ad}{{{d{Hh}}l}{{B`{n}}}}{{}n}000{ce{}{}}000{{{d{Hh}}}Bd}{{{d{c}}}{{d{Bn}}}{}}{{{d{Hh}}CjBdlnlCl}Al}{{{d{c}}CjBdlnlCll}Al{}}{{{d{Hh}}CjBdlnlCll}Al}1{{{d{Hh}}CjBdlnln}Al}{{{d{Hh}}CjBdlnlnl}Al}{{{d{c}}CjBdlnlnl}Al{}}0{{{d{Hh}}CjBdlClln}Al}{{{d{Hh}}CjBdlCllnl}Al}{{{d{c}}CjBdlCllnl}Al{}}0{{{d{Hh}}CjBdlCllCl}Al}{{{d{c}}CjBdlCllCll}Al{}}0{{{d{Hh}}CjBdlCllCll}Al}{{{d{Hh}}l}c{}}`{{{d{Hh}}}n}{{{d{Hh}}}{{d{j}}}}{{{d{Hh}}}Cn}`{{{d{Hh}}{d{Dfc}}BdlCllCl}Al{}}{{{d{Hh}}{d{Dfc}}Bdlnln}Al{}}{{{d{D`}}}Db}{{{d{Hh}}}Db}{{{d{c}}}e{}{}}{{{d{c}}}Ad{}}0{c{{Fb{e}}}{}{}}0{{{d{j}}}{{Fb{Hjc}}}{}}111{{{d{Hh}}}{{Fb{{d{Bn}}c}}}{}}{{{d{Hh}}}{{Fb{{d{f}}c}}}{}}333{{{d{c}}}Fd{}}000{ce{}{}}000```{{CnBdBdBdBdBd}Bd}``{{CnDll}{{B`{{A`{BdBdBd}}}}}}```````{Cn{{d{{Eh{l}}}}}}0```````````````````````{{{d{Bl}}}{{d{Bn}}}}```````````````````````````````{{{d{{I`{}{{Hn{c}}}}}}CjBdlnln}Alh}`{{{d{{I`{}{{Hn{c}}}}}}}{{Ib{c}}}h}`````````{{{d{{I`{}{{Hn{c}}}}}}ln}Adh}`````{{{d{{I`{}{{Hn{c}}}}}}l}nh}``````````````````````````{{{d{{I`{}{{Hn{c}}}}}}}lh}`0````````````````````````````````{{{Ib{c}}l}Id{}}``{{{d{If}}CjBdlnCl}Al}```{{{d{c}}}{{d{e}}}{}{}}0{{{d{Dfc}}}{{d{Dfe}}}{}{}}0{n{{d{c}}}{}}0{n{{d{Dfc}}}{}}0{nAl}0{{{d{Ih}}{d{DfE`}}}Eb}{{{d{If}}{d{DfE`}}}Eb}{cc{}}0{{{d{If}}lnn}n}``{{{d{If}}ln}{{Ij{n}}}}{{{d{If}}n}{{d{Ih}}}}{{}n}0{ce{}{}}0{{{d{{Cb{{B`{n}}}}}}}If}{{{d{If}}}n}{c{{Fb{e}}}{}{}}000{{{d{c}}}Fd{}}044`{{{d{{Il{c}}}}CjBdlnln}Alh}{{{d{{Il{c}}}}lnln}{{d{Ef}}}h}{{{d{Df{Il{c}}}}lnln}{{d{DfEf}}}h}`{{{d{{Il{c}}}}}C`Bb}{{{d{Df{Il{c}}}}lAd}Alh}{{{d{{Il{c}}}}}{{Ib{e}}}h{}}`{{{d{{Ib{c}}}}{d{{Cb{n}}}}}{{Cb{{Cb{{B`{{B`{Ef}}}}}}}}}h}{{{d{{Il{c}}}}ln}Adh}{{{d{c}}}{{d{e}}}{}{}}{{{d{Dfc}}}{{d{Dfe}}}{}{}}{{{d{{Il{c}}}}ll}{{Fb{AlIn}}}Bb}{{{d{{Il{c}}}}}{{Il{c}}}h}{{{d{c}}{d{Dfe}}}Al{}{}}{{{d{c}}}Al{}}{{{d{{Il{c}}}}l}Alh}{n{{d{c}}}{}}{n{{d{Dfc}}}{}}{{{d{{Il{c}}}}l}nh}{nAl}{{{d{{Il{c}}}}{d{{Il{c}}}}}Dlh}{{{d{c}}{d{e}}}Dl{}{}}000{{{d{Df{Il{c}}}}ll}AlBb}{{{d{{Il{c}}}}{d{DfE`}}}Ebh}{cc{}}{{{d{c}}}IlI`}{{{Ib{c}}{d{C`}}}{{Cf{{Il{c}}}}}Bb}``{{}n}{ce{}{}}{{{d{{Il{c}}}}}lh}{{{d{{Il{c}}}}}{{Ab{l}}}h}1`{{{Ib{c}}Ad{Cb{n}}}{{Il{c}}}h}{{{d{Df{Il{c}}}}e{d{j}}Dl}{{Cf{Al}}}Bb{{Ch{{d{j}}}{{Cd{{Cf{{A`{ln}}}}}}}}}}{{{d{Df{Il{c}}}}lnln{d{{Eh{Bd}}}}}Alh}{{{d{Df{Il{c}}}}lnAd}Alh}{{{d{{Il{c}}}}{d{j}}}{{Ab{{A`{ln}}}}}h}{{{d{{Il{c}}}}{d{{Il{c}}}}}{{Fb{AlAd}}}h}{{{d{{Il{c}}}}{d{DfC`}}}AlBb}{{{d{c}}}e{}{}}{{{d{c}}}Ad{}}{c{{Fb{e}}}{}{}}0{{{d{c}}}Fd{}}={{{Ib{c}}l}{{Il{c}}}h}``{{{d{{J`{c}}}}CjBdlnln}Alh}{{{d{Df{J`{c}}}}l{B`{Ad}}}Alh}{{{d{Df{J`{c}}}}l{B`{Ef}}}Alh}{{{d{{J`{c}}}}}{{Ib{c}}}h}{{{d{{J`{c}}}}ln}Adh}{{{d{c}}}{{d{e}}}{}{}}0{{{d{Dfc}}}{{d{Dfe}}}{}{}}0{{{d{{J`{c}}}}l}Alh}{n{{d{c}}}{}}0{n{{d{Dfc}}}{}}0{{{d{{J`{c}}}}l}nh}{nAl}0{{{d{{J`{c}}}}{d{{J`{c}}}}}Dlh}{{{d{c}}{d{e}}}Dl{}{}}000{{{d{{J`{c}}}}{d{DfE`}}}Ebh}{{{d{{J`{c}}}}ln}nh}`{cc{}}0{{{Ib{c}}{d{C`}}}{{Cf{{J`{c}}}}}h}{{{d{{J`{c}}}}ln}F`h}`{{{d{{J`{c}}}}}{{Ib{{Jb{c}}}}}h}``{{}n}0{ce{}{}}0`{{{d{{J`{c}}}}}lh}{{{d{{J`{c}}}}}{{Ab{l}}}h}1``{{{Ib{c}}Adl}{{J`{c}}}h}`{{{d{c}}}Ad{}}{c{{Fb{e}}}{}{}}000{{{d{c}}}Fd{}}066{{{Ib{c}}l}{{J`{c}}}h}``````{{{d{{Jd{c}}}}CjBdlnlCl}AlBh}{{{d{{Jd{c}}}}CjBdlnln}AlBh}{{{d{{Jd{c}}}}ln{Ab{{B`{Ad}}}}}AlBh}{{{d{{Jd{c}}}}}{{Ib{c}}}Bh}``````{{{d{{Jd{c}}}}ln}AdBh}{{{d{c}}}{{d{e}}}{}{}}000{{{d{Dfc}}}{{d{Dfe}}}{}{}}000{{{d{Jf}}}Jf}{{{d{c}}{d{Dfe}}}Al{}{}}{{{d{c}}}Al{}}{{{d{{Jd{c}}}}l}AlBh}`{n{{d{c}}}{}}000{n{{d{Dfc}}}{}}000{{{d{{Jd{c}}}}l}nBh}{nAl}000`4{{{d{{Jd{c}}}}{d{DfE`}}}EbBh}{{{d{Jf}}{d{DfE`}}}Eb}{cc{}}000`````{{{d{{Jd{c}}}}}{{d{{Jh{{B`{Ad}}}}}}}Bh}`````{{{d{{Jd{c}}}}lln}nBh}```{{{d{{Jd{c}}}}ln}{{d{Jf}}}Bh}{{}n}000{{{d{{Jd{c}}}}ln}nBh}{ce{}{}}0000{{{d{{Jd{c}}}}{Jj{l}}}{{`{{En{}{{El{Jl}}}}}}}Bh}{{{d{{Jd{c}}}}l}{{`{{En{}{{El{{A`{ln}}}}}}}}}Bh}{{{d{{Jd{c}}}}lCl}{{`{{En{}{{El{{A`{lnlCl}}}}}}}}}Bh}{{{d{{Jd{c}}}}}lBh}{{{d{{Jd{c}}}}}{{Ab{l}}}Bh}1```````{{{Ib{c}}Adl}{{Jd{c}}}Bh}{{{d{Df{Jn{ce}}}}}{{Ab{g}}}Bh{{En{}{{El{l}}}}}{}}```{{{d{{Jd{c}}}}l}nBh}``{{{d{{Jd{c}}}}lnln}nBh}`{{{d{{Jd{c}}}}llnCl}ClBh}`{{{d{c}}}e{}{}}{{{d{c}}}Ad{}}{c{{Fb{e}}}{}{}}0000000{{{d{c}}}Fd{}}000>>>>{{{Ib{c}}l}{{Jd{c}}}Bh}`{{{d{{K`{c}}}}CjBdlnln}AlI`}{{{d{{K`{c}}}}}{{Ib{e}}}I`{}}`{{{d{{K`{c}}}}ln}AdI`}`{{{d{c}}}{{d{e}}}{}{}}{{{d{Dfc}}}{{d{Dfe}}}{}{}}{{{d{{K`{c}}}}l}AlI`}{n{{d{c}}}{}}{n{{d{Dfc}}}{}}{{{d{{K`{c}}}}l}nI`}{nAl}{{{d{{K`{c}}}}{d{DfE`}}}EbI`}{cc{}}{{}n}{ce{}{}}{{{d{{K`{c}}}}}lI`}0{{{Ib{Jb}}{Ib{c}}}{{K`{c}}}I`}{{{d{{K`{c}}}}}{{Ib{Jb}}}I`}`{{{d{{K`{c}}}}}{{Ib{c}}}I`}`{{{d{c}}}Ad{}}{c{{Fb{e}}}{}{}}0{{{d{c}}}Fd{}}7`````````````{{{d{{Kf{}{{Kb{c}}{Kd{e}}}}}}CjBdlCl}AlI`{{I`{}{{Hn{}}}}}}{{{d{{Kf{}{{Kb{c}}{Kd{e}}}}}}CjlCl}DlI`{{I`{}{{Hn{}}}}}}{{{d{{Kf{}{{Kb{c}}{Kd{e}}}}}}CjBdln}AlI`{{I`{}{{Hn{}}}}}}{{{d{{Kf{}{{Kb{c}}{Kd{e}}}}}}l}{{A`{KhKhKj}}}I`{{I`{}{{Hn{}}}}}}{{{d{{Kf{}{{Kb{c}}{Kd{e}}}}}}l}AlI`{{I`{}{{Hn{}}}}}}{{{d{{Kf{}{{Kb{c}}{Kd{e}}}}}}}lI`{{I`{}{{Hn{}}}}}}``````````{{{d{{Kf{}{{Kb{c}}{Kd{e}}}}}}Kll}AlI`{{I`{}{{Hn{}}}}}}{{{d{{Kf{}{{Kb{c}}{Kd{e}}}}}}l{d{{Eh{n}}}}}KnI`{{I`{}{{Hn{}}}}}}`{{{Ib{c}}}L`I`}{{{d{{Kf{}{{Kb{c}}{Kd{e}}}}}}l}{{Ab{{d{Kh}}}}}I`{{I`{}{{Hn{}}}}}}`````0```````4``````{{{d{{Kf{}{{Kb{c}}{Kd{e}}}}}}}CnI`{{I`{}{{Hn{}}}}}}{{{d{{Kf{}{{Kb{c}}{Kd{e}}}}}}l}{{Ab{{d{Kj}}}}}I`{{I`{}{{Hn{}}}}}}````````{{{d{{Kf{}{{Kb{c}}{Kd{e}}}}}}}{{Ib{c}}}I`{{I`{}{{Hn{}}}}}}```````{{{d{{Kf{}{{Kb{c}}{Kd{e}}}}}}}{{Ib{e}}}I`{{I`{}{{Hn{}}}}}}``````{{{Ib{c}}{Ib{e}}l}LbI`{{I`{}{{Hn{}}}}}}```{{{d{{Ld{c}}}}lCl}AlI`}{{{d{{Ld{c}}}}lKl}AlI`}{{{d{{Ld{c}}}}l{B`{Ef}}}AlI`}{{{d{{Ld{c}}}}l{B`{Ef}}}{{Ij{l}}}I`}{{{d{{Ld{c}}}}CjBdln}AlI`}{{{d{{Ld{c}}}}{d{DfEf}}Bdln}AlI`}{{{d{c}}}{{d{e}}}{}{}}{{{d{Dfc}}}{{d{Dfe}}}{}{}}{{{d{{Ld{c}}}}l}AlI`}{{{d{{Ld{c}}}}}lI`}0```{n{{d{c}}}{}}{n{{d{Dfc}}}{}}{{{d{{Ld{c}}}}l}LfI`}{nAl}5{cc{}}{{{d{{Ld{{Jd{c}}}}}}l}{{B`{{B`{Bd}}}}}Bh}{{{d{{Ld{c}}}}l}{{Ab{{d{Kh}}}}}I`}```{{}n}{ce{}{}}2```9```{{{Ib{Jd}}{Ib{c}}l}{{Ld{c}}}I`}:{{{d{{Ld{c}}}}}{{B`{l}}}I`}{{{d{{Ld{c}}}}ln}{{d{Ef}}}I`}```{{{d{{Ld{c}}}}l}{{Ab{{d{Kj}}}}}I`}```{{{d{{Ld{c}}}}l{Ab{Kh}}}AlI`}0{{{d{{Ld{c}}}}l{Ab{Kj}}}AlI`}{{{d{{Ld{c}}}}}{{Ib{e}}}I`{}}```0```{c{{Fb{e}}}{}{}}0{{{d{c}}}Fd{}}98`{{{d{{Lh{ce}}}}CjBdln}AlI`{{I`{}{{Hn{}}}}}}{{{d{c}}}{{d{e}}}{}{}}{{{d{Dfc}}}{{d{Dfe}}}{}{}}{{{d{{Lh{ce}}}}}{{Lh{ce}}}I`{{I`{}{{Hn{}}}}}}{{{d{c}}{d{Dfe}}}Al{}{}}{{{d{c}}}Al{}}{{{d{{Lh{ce}}}}l}AlI`{{I`{}{{Hn{}}}}}}{{{d{{Lh{ce}}}}}lI`{{I`{}{{Hn{}}}}}}`{n{{d{c}}}{}}{n{{d{Dfc}}}{}}{nAl}{{{d{i}}}{{Lh{eg}}}h{{I`{}{{Hn{c}}}}}{{I`{}{{Hn{c}}}}}{{Kf{}{{Kb{e}}{Kd{g}}}}}}{cc{}}{{{Ib{e}}{Ib{g}}l{Cb{Kn}}}{{Lh{eg}}}h{{I`{}{{Hn{c}}}}}{{I`{}{{Hn{c}}}}}}{{{Ib{c}}}{{Lh{cc}}}I`}{{{d{{Lh{ce}}}}l}{{Ab{{d{Kh}}}}}I`{{I`{}{{Hn{}}}}}}`{{}n}{ce{}{}}2``{{{Ib{e}}{Ib{g}}l}{{Lh{eg}}}h{{I`{}{{Hn{c}}}}}{{I`{}{{Hn{c}}}}}}{{{d{{Lh{ce}}}}l}{{Ab{{d{Kj}}}}}I`{{I`{}{{Hn{}}}}}}`{{{Lh{eg}}{Ib{i}}}{{Lh{ig}}}h{{I`{}{{Hn{c}}}}}{{I`{}{{Hn{c}}}}}{{I`{}{{Hn{c}}}}}}{{{Lh{eg}}{Ib{i}}}{{Lh{ei}}}h{{I`{}{{Hn{c}}}}}{{I`{}{{Hn{c}}}}}{{I`{}{{Hn{c}}}}}}{{{d{{Lh{ce}}}}}{{Ib{g}}}I`{{I`{}{{Hn{}}}}}{}}`0`{{{d{c}}}e{}{}}{c{{Fb{e}}}{}{}}0{{{d{c}}}Fd{}}8{{{Ib{c}}{Ib{e}}l}{{Lh{ce}}}I`{{I`{}{{Hn{}}}}}}`{{{d{{Lj{ce}}}}CjBdln}AlI`{{I`{}{{Hn{}}}}}}{{{d{c}}}{{d{e}}}{}{}}{{{d{Dfc}}}{{d{Dfe}}}{}{}}{{{d{{Lj{ce}}}}}lI`{{I`{}{{Hn{}}}}}}`{n{{d{c}}}{}}{n{{d{Dfc}}}{}}{nAl}{cc{}}{{}n}{ce{}{}}{{{Ib{c}}{Ib{e}}l}{{Lj{ce}}}I`{{I`{}{{Hn{}}}}}}{{{d{{Lj{ce}}}}}{{Ib{g}}}I`{{I`{}{{Hn{}}}}}{}}`0`>>=21`{{{d{{Ll{c}}}}CjBdln}AlI`};:{{{d{{Ll{c}}}}l}AlI`}{{{d{{Ll{c}}}}}lI`}:987{{{d{{Ll{c}}}}l}{{Ab{{d{Kh}}}}}I`}`760``1{{{Ib{{K`{c}}}}{Ib{{K`{c}}}}{Ib{{Ln{Jb}}}}}{{Ll{c}}}I`}{{{d{{Ll{c}}}}l}{{Ab{{d{Kj}}}}}I`}`{{{d{{Ll{c}}}}}{{Ib{e}}}I`{}}`0`{c{{Fb{e}}}{}{}}0{{{d{c}}}Fd{}};``{{{d{{M`{c}}}}CjBdln}AlKf}{{{d{{Mb{c}}}}CjBdln}AlKf}{{{d{c}}}{{d{e}}}{}{}}0{{{d{Dfc}}}{{d{Dfe}}}{}{}}0{{{d{{M`{c}}}}}lKf}{{{d{{Mb{c}}}}}lKf}{n{{d{c}}}{}}0{n{{d{Dfc}}}{}}0{nAl}0``{cc{}}0{{}n}0{ce{}{}}0{{{Ib{c}}{Ib{Md}}{Ib{Md}}}{{M`{c}}}Kf}{{{Ib{c}}{Ib{Md}}}{{Mb{c}}}Kf}``{{{d{{M`{c}}}}}{{Ib{e}}}Kf{}}{{{d{{Mb{c}}}}}{{Ib{e}}}Kf{}}`10{c{{Fb{e}}}{}{}}000{{{d{c}}}Fd{}}066```{{{d{{I`{}{{Hn{c}}}}}}CjBdlnlCl}Alh}0{{{d{{I`{}{{Hn{c}}}}}}CjBdlCllCl}Alh}0{{{d{{I`{}{{Hn{c}}}}}}CjBdlClln}Alh}0{{{d{{I`{}{{Hn{c}}}}}}CjBdlnln}Alh}{{{d{{I`{}{{Hn{c}}}}}}}{{Ib{c}}}h}{{{d{{I`{}{{Hn{c}}}}}}ln}Adh}{{{d{c}}}{{d{e}}}{}{}}{{{d{Dfc}}}{{d{Dfe}}}{}{}}{{{d{{I`{}{{Hn{c}}}}}}l}Alh}0{n{{d{c}}}{}}{n{{d{Dfc}}}{}}{{{d{{I`{}{{Hn{c}}}}}}l}nh}{nAl}{{{d{{I`{}{{Hn{c}}}}}}lCl}Adh}0{{{d{In}}{d{DfE`}}}Eb}0{cc{}}{{}n}{ce{}{}}{{{d{{I`{}{{Hn{c}}}}}}}Dlh}0{{{d{{I`{}{{Hn{c}}}}}}}lh}{{{d{{I`{}{{Hn{c}}}}}}}{{Ab{l}}}h}0001{{{d{{I`{}{{Hn{c}}}}}}}Cnh}0`{{{d{c}}}Ad{}}{{{d{{I`{}{{Hn{c}}}}}}}nh}0{c{{Fb{e}}}{}{}}0{{{d{c}}}Fd{}}`8`{{{d{{Md{c}}}}CjBdlnln}AlI`}0{{{d{{Md{c}}}}}{{Ib{e}}}I`{}}{{{d{{Md{c}}}}ln}AdI`}`{{{d{c}}}{{d{e}}}{}{}}{{{d{Dfc}}}{{d{Dfe}}}{}{}}{n{{d{c}}}{}}{n{{d{Dfc}}}{}}{{{d{{Md{c}}}}l}nI`}{nAl}{{{d{Df{Md{c}}}}l}AlI`}{{{d{{Md{c}}}}{d{DfE`}}}EbI`}{cc{}}{{}n}{ce{}{}}{{{d{{Md{c}}}}}lI`}{{{d{{Md{c}}}}}{{Ab{l}}}I`}1`{{{Ib{c}}l}{{Md{c}}}I`}{{{d{{Md{c}}}}lCjCl}AlI`}{{{d{Df{Md{c}}}}lCl}AlI`}9{{{d{Df{Md{c}}}}le}AlI`{{En{}{{El{n}}}}}}{{{d{Df{Md{c}}}}le}AlI`{{Mf{Cj}{{Cd{{Ab{Al}}}}}}}}{{{d{{Md{c}}}}lCj}AlI`}`{{{d{c}}}Ad{}}`{c{{Fb{e}}}{}{}}0{{{d{c}}}Fd{}};{{Ibl}{{Md{c}}}Id}``{{{d{{Mh{c}}}}CjBdlnln}Alh}{{{d{{Mh{c}}}}}{{Ib{c}}}h}`{{{d{{Mh{c}}}}ln}Adh}{{{d{c}}}{{d{e}}}{}{}}0{{{d{Dfc}}}{{d{Dfe}}}{}{}}0``{{{d{f}}lnl}Dl}{{{d{Bn}}lnl}Dl}{n{{d{c}}}{}}0{n{{d{Dfc}}}{}}0{c{{Fb{Mj}}}Gd}{{{d{{Mh{c}}}}l}nh}{nAl}0{{{d{{Mh{c}}}}{d{{Mh{c}}}}}Dlh}{{{d{c}}{d{e}}}Dl{}{}}000{{{d{{Mh{c}}}}{d{DfE`}}}Ebh}{{{d{Mj}}{d{DfE`}}}Eb}{cc{}}0{{{Ib{c}}{d{C`}}}{{Cf{{Mh{c}}}}}h}{{}n}0{ce{}{}}0``{{{d{{Mh{c}}}}}lh}{{{d{{Mh{c}}}}}{{Ab{l}}}h}``1{{{Ib{c}}l{Ab{l}}Dl}{{Mh{c}}}h}{{{d{{Mh{c}}}}{d{DfC`}}}Alh}{{{d{c}}}Ad{}}{c{{Fb{e}}}{}{}}000{{{d{c}}}Fd{}}077{{{Ib{c}}l}{{Mh{c}}}h}`{{{Ib{Hh}}{d{C`}}}{{Cf{Ml}}}}`{{{Ib{Hh}}l}Ml}1`{{{d{{Mn{c}}}}CjBdlnlCl}AlI`}{{{d{{Mn{c}}}}CjBdlCllCl}AlI`}{{{d{{Mn{c}}}}CjBdlClln}AlI`}{{{d{{Mn{c}}}}CjBdlnln}AlI`}{{{d{{Mn{c}}}}}{{Ib{e}}}I`{}}{{{d{{Mn{c}}}}ln}AdI`}{{{d{c}}}{{d{e}}}{}{}}{{{d{Dfc}}}{{d{Dfe}}}{}{}}{{{d{{Mn{c}}}}l}AlI`}{n{{d{c}}}{}}{n{{d{Dfc}}}{}}{{{d{{Mn{c}}}}l}nI`}{nAl}{{{d{{Mn{c}}}}lCl}AdI`}{{{d{{Mn{c}}}}{d{DfE`}}}EbI`}{cc{}}{{}n}`{ce{}{}}{{{d{{Mn{c}}}}}DlI`}{{{d{{Mn{c}}}}}lI`}{{{d{{Mn{c}}}}}{{Ab{l}}}I`}01{{{Ib{c}}l}{{Mn{c}}}I`}{{{d{{Mn{c}}}}}CnI`}`{{{d{c}}}Ad{}}{{{d{{Mn{c}}}}}nI`}{c{{Fb{e}}}{}{}}0{{{d{c}}}Fd{}}9{{{Ib{c}}l}{{Mn{e}}}{}Id}`{{{d{{N`{eg}}}}CjBdlnlCl}Al{hAn}{{I`{}{{Hn{c}}}}}{{I`{}{{Hn{c}}}}}}0{{{d{{N`{eg}}}}CjBdlnln}Al{hAn}{{I`{}{{Hn{c}}}}}{{I`{}{{Hn{c}}}}}}{{{d{{N`{eg}}}}}{{Ib{c}}}{hAn}{{I`{}{{Hn{c}}}}}{{I`{}{{Hn{c}}}}}}{{{d{{N`{eg}}}}ln}Ad{hAn}{{I`{}{{Hn{c}}}}}{{I`{}{{Hn{c}}}}}}`{{{d{c}}}{{d{e}}}{}{}}{{{d{Dfc}}}{{d{Dfe}}}{}{}}{{{d{{N`{eg}}}}l}Al{hAn}{{I`{}{{Hn{c}}}}}{{I`{}{{Hn{c}}}}}}{n{{d{c}}}{}}{n{{d{Dfc}}}{}}{{{d{{N`{eg}}}}l}n{hAn}{{I`{}{{Hn{c}}}}}{{I`{}{{Hn{c}}}}}}{nAl}{{{d{{N`{ce}}}}{d{DfE`}}}EbI`{{I`{}{{Hn{}}}}}}{cc{}}{{}n}{ce{}{}}`{{{d{{N`{eg}}}}}l{hAn}{{I`{}{{Hn{c}}}}}{{I`{}{{Hn{c}}}}}}{{{d{{N`{eg}}}}}{{Ab{l}}}{hAn}{{I`{}{{Hn{c}}}}}{{I`{}{{Hn{c}}}}}}1{{{Ib{e}}{Ib{g}}}{{N`{eg}}}{hAn}{{I`{}{{Hn{c}}}}}{{I`{}{{Hn{c}}}}}}{{{d{{N`{eg}}}}ll}n{hAn}{{I`{}{{Hn{c}}}}}{{I`{}{{Hn{c}}}}}}`{{{d{{N`{eg}}}}ln}l{hAn}{{I`{}{{Hn{c}}}}}{{I`{}{{Hn{c}}}}}}{{{d{c}}}Ad{}}{c{{Fb{e}}}{}{}}0{{{d{c}}}Fd{}}8{{{Ib{c}}l}{{N`{eg}}}{hAn}{{I`{}{{Hn{c}}}}Id}{{I`{}{{Hn{c}}}}Id}}`{{{Ib{c}}l}Id{}}```{{{d{{H`{}{{Gn{c}}}}}}CjBdlCll{d{c}}}Al{HbHd}}`{{{d{{H`{}{{Gn{c}}}}}}l{d{Dfe}}}{{Dh{c}}}{HbHd}Dj}{{{d{c}}}Dl{}}{{{d{{H`{}{{Gn{c}}}}}}{d{c}}{d{Dfe}}}{{Dh{Al}}}{HbHd}Dn}{{{d{{H`{}{{Gn{c}}}}}}l}c{HbHd}}`{{{d{{H`{}{{Gn{c}}}}}}}n{HbHd}}{{{d{{H`{}{{Gn{c}}}}}}{d{Dfc}}Bdlnln}Al{HbHd}}````{{{d{Nb}}{d{DfEf}}BdBd}Al}{{{d{Nb}}{d{DfEf}}Bdl{d{Ef}}}Al}{{{d{Nb}}{d{DfEf}}Bdln}Al}{{{d{c}}}{{d{e}}}{}{}}{{{d{Dfc}}}{{d{Dfe}}}{}{}}{{{d{Nb}}l}Al}{n{{d{c}}}{}}{n{{d{Dfc}}}{}}{{{d{Nb}}l}n}{nAl}{{{d{Nb}}{d{j}}}{{Cf{{A`{lEf}}}}}}0{{{d{Nb}}{Ab{l}}Nd}{{Cf{{A`{lEf}}}}}}{{{d{Nb}}{Ab{l}}Nf}{{Cf{{A`{lEf}}}}}}{{{d{Nb}}{d{j}}}{{Cf{{Nh{Ad{A`{lEf}}}}}}}}{{{d{Nb}}{d{{Eh{Nj}}}}}{{A`{lEf}}}}{cc{}}{{}n}{ce{}{}}`{{{d{Nb}}{d{DfEf}}Bdl{d{Ef}}}Al}{{{d{Nb}}{d{DfEf}}Bdln}Al}00{CnNb}{{{d{Nb}}}Cn}{c{{Fb{e}}}{}{}}0{{{d{c}}}Fd{}}6`````````````````{{{d{j}}}{{Nn{{d{j}}Nd{Nl{{d{j}}}}}}}}0{{{d{j}}}{{Nn{{d{j}}Nf{Nl{{d{j}}}}}}}}1{{{d{c}}}{{d{e}}}{}{}}00{{{d{Dfc}}}{{d{Dfe}}}{}{}}00{g{{`{{Mf{{d{j}}}{{Cd{{Nn{{d{j}}ce}}}}}}}}}{}{{O`{{d{j}}}}}{{Ob{{d{j}}ce}}}}{{{d{Nf}}}Nf}{{{d{Nd}}}Nd}{{{d{Nj}}}Nj}{{{d{c}}{d{Dfe}}}Al{}{}}00{{{d{c}}}Al{}}000{{{d{j}}}{{`{{Gl{{Od{{Nl{{d{j}}}}}}}{{Cd{Of}}}}}}}}{n{{d{c}}}{}}00{n{{d{Dfc}}}{}}00{{{d{j}}}{{Nn{{d{j}}c{Nl{{d{j}}}}}}}{OhOj}}{nAl}00{{{d{Nf}}{d{DfE`}}}Eb}{{{d{Nd}}{d{DfE`}}}Eb}{{{d{Nj}}{d{DfE`}}}Eb}{{imo}{{`{{Mf{c}{{Cd{{Nn{ckg}}}}}}}}}Ol{}{}{{Ob{ceg}}}{}{{Ob{ckg}}}{{Mf{kk}{{Cd{k}}}}}}{cc{}}00{{}n}00{ce{}{}}00{{{d{j}}}{{Nn{{d{j}}{B`{{A`{NdAd}}}}{Nl{{d{j}}}}}}}}{{{d{j}}}{{Nn{{d{j}}Ad{Nl{{d{j}}}}}}}}1{{{d{j}}}{{Nn{{d{j}}{d{j}}{Nl{{d{j}}}}}}}}{{{d{j}}}{{Cf{Nd}}}}{{{d{j}}}{{Cf{{B`{{A`{NdAd}}}}}}}}{{{d{j}}}{{Nn{{d{j}}l{Nl{{d{j}}}}}}}}{g{{`{{Mf{{d{j}}}{{Cd{{Nn{{d{j}}ce}}}}}}}}}{}{{O`{{d{j}}}}}{{Ob{{d{j}}ce}}}}{{Njl}Dd}{{{d{c}}}e{}{}}00{c{{Fb{e}}}{}{}}00000{{{d{c}}}Fd{}}00;;;","D":"BKj","p":[[10,"AdemAlgebraT",134],[1,"reference"],[5,"AdemAlgebra",134],[10,"Algebra",267],[1,"str"],[1,"i32"],[1,"usize"],[1,"tuple"],[6,"Option",1945],[5,"String",1946],[10,"PolynomialAlgebra",661],[5,"PolynomialAlgebraTableEntry",661],[5,"OnceVec",1947],[1,"unit"],[10,"Bialgebra",309],[5,"Vec",1948],[10,"GeneratedAlgebra",267],[1,"u32"],[10,"UnstableAlgebra",267],[10,"MuAlgebra",267],[5,"TruncatedPolynomialMonomialBasis",312],[10,"MilnorAlgebraT",399],[5,"MilnorAlgebra",399],[6,"Value",1949],[5,"BiVec",1950],[17,"Output"],[8,"Result",1951],[10,"Fn",1952],[6,"FpSliceMut",1953],[6,"FpSlice",1953],[5,"ValidPrime",1954],[10,"SteenrodAlgebraT",742],[6,"SteenrodAlgebraBorrow",742],[5,"AdemBasisElement",134],[0,"mut"],[8,"Result",1955],[10,"Read",1956],[1,"bool"],[10,"Write",1956],[5,"Formatter",1957],[8,"Result",1957],[6,"PorBockstein",134],[6,"FpVector",1953],[1,"slice"],[10,"Hasher",1958],[17,"Item"],[10,"Iterator",1959],[1,"isize"],[6,"Result",1960],[5,"TypeId",1961],[5,"PartitionIterator",312],[5,"Field",367],[5,"MilnorBasisElement",399],[8,"PPartEntry",399],[5,"MilnorProfile",399],[5,"Matrix2D",399],[5,"PPartAllocation",399],[10,"Deserializer",1962],[8,"PPart",399],[5,"PPartMultiplier",399],[10,"Serializer",1963],[10,"FnOnce",1952],[17,"Element"],[10,"PairAlgebra",625],[10,"Send",1964],[10,"Sync",1964],[5,"PolynomialAlgebraMonomial",661],[6,"SteenrodAlgebra",742],[6,"AlgebraType",742],[5,"AlgebraSpec",742],[17,"Algebra"],[10,"Module",1602],[5,"Arc",1965],[10,"ZeroModule",1811],[5,"BlockStructure",1026],[5,"GeneratorBasisEltPair",1026],[5,"Range",1966],[5,"FiniteDimensionalModule",1065],[5,"ModuleFailedRelationError",1602],[5,"FinitelyPresentedModule",1119],[8,"FreeModule",1176],[5,"MuFreeModule",1176],[5,"OperationGeneratorPair",1176],[5,"OnceBiVec",1947],[1,"array"],[5,"GeneratorData",1176],[5,"OffsetIterator",1176],[5,"HomModule",1297],[17,"Source"],[17,"Target"],[10,"ModuleHomomorphism",1326],[5,"Subspace",1967],[5,"QuasiInverse",1968],[5,"MatrixSliceMut",1969],[5,"Matrix",1969],[10,"IdentityHomomorphism",1326],[10,"ZeroHomomorphism",1326],[5,"MuFreeModuleHomomorphism",1406],[1,"f32"],[5,"FullModuleHomomorphism",1471],[5,"GenericZeroHomomorphism",1510],[5,"HomPullback",1532],[8,"FreeModuleHomomorphism",1406],[5,"QuotientHomomorphism",1561],[5,"QuotientHomomorphismSource",1561],[5,"QuotientModule",1648],[10,"FnMut",1952],[5,"RealProjectiveSpace",1684],[5,"RPSpec",1684],[8,"SteenrodModule",1739],[5,"SuspensionModule",1744],[5,"TensorModule",1779],[5,"SteenrodEvaluator",1827],[6,"AlgebraNode",1859],[6,"AlgebraBasisElt",1859],[5,"BTreeMap",1970],[6,"BocksteinOrSq",1859],[5,"VerboseError",1971],[8,"IResult",1972],[10,"ParseError",1971],[10,"Parser",1972],[6,"Err",1972],[5,"Error",1951],[10,"FromStr",1973],[10,"Copy",1964],[10,"Clone",1974],[5,"MilnorPairElement",625],[8,"UnstableFreeModule",1176],[5,"FPMIndexTable",1119],[8,"UnstableFreeModuleHomomorphism",1406],[8,"IResult",1859]],"r":[[1,134],[3,134],[4,267],[5,742],[6,309],[9,367],[10,267],[12,399],[14,399],[15,267],[16,661],[17,661],[18,661],[19,742],[20,742],[21,742],[22,267],[23,108],[33,108],[50,108],[57,108],[72,108],[89,134],[90,134],[91,134],[94,134],[108,134],[109,134],[110,267],[111,742],[112,309],[113,367],[114,267],[115,399],[116,399],[117,267],[118,661],[119,661],[120,661],[121,742],[122,742],[123,742],[124,267],[874,312],[875,312],[876,312],[877,312],[880,312],[888,312],[889,312],[890,367],[893,399],[894,399],[895,399],[896,399],[897,399],[898,399],[899,399],[900,399],[931,1176],[932,1176],[933,1297],[934,1602],[935,1602],[936,1176],[937,1176],[938,1648],[939,1684],[940,1739],[941,1744],[942,1779],[943,1176],[944,1811],[1326,1406],[1327,1471],[1328,1510],[1329,1532],[1332,1406],[1333,1561],[1334,1561],[1337,1406],[1740,1743],[1814,625],[1815,625]],"b":[[194,"impl-Debug-for-AdemBasisElement"],[195,"impl-Display-for-AdemBasisElement"],[496,"impl-Debug-for-MilnorBasisElement"],[497,"impl-Display-for-MilnorBasisElement"],[498,"impl-Display-for-Matrix2D"],[499,"impl-Debug-for-Matrix2D"],[691,"impl-Display-for-PolynomialAlgebraMonomial"],[692,"impl-Debug-for-PolynomialAlgebraMonomial"],[804,"impl-Display-for-AlgebraType"],[805,"impl-Debug-for-AlgebraType"],[861,"impl-TryInto%3C%26MilnorAlgebra%3E-for-%26SteenrodAlgebra"],[862,"impl-TryInto%3C%26AdemAlgebra%3E-for-%26SteenrodAlgebra"],[1418,"impl-MuFreeModuleHomomorphism%3CU,+M%3E"],[1419,"impl-ModuleHomomorphism-for-MuFreeModuleHomomorphism%3CU,+M%3E"],[1624,"impl-Debug-for-ModuleFailedRelationError"],[1625,"impl-Display-for-ModuleFailedRelationError"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAADwGwQABAAAAAwAAAAYAAAAIAAEADAADABEABgAZAAAAHwAAACIAAAAkAAAAKAAAACoACAA0AAAANwAHAEEAAABDAAEARwABAEoAAgBPAAYAVwACAF0AAQBgAAAAZQACAGkAAABsABEAfwACAIMAAACFAAEAigABAI0ABQCUAAAAlgAAAJgADwCpABwAyQAHANMABwDfAAEA4gAAAOQACgDwAAEA8wACAPcAAAD5ABIADwEAABcBAQAjAQAAJwEBADkBAQA8AQAAPgELAEwBAABOAQEAUQEEAFgBCgBkAQsAcQEOAIEBAACDAQQAiQEMAJcBAQCaAQYAogEAAKUBEgC5ATQA7wEFAPsBCgAHAgkAFwIBABoCAAAcAgMAIQIVADgCAQA7AgIAQAIFAEcCCgBTAhQAaQIGAHECAQB0AgEAegIIAIYCAACJAgAAjgIqALsCBQDDAmQALAMIADkDNQBxAwUAeAMCAHwDBgCEAwIAiQMJAJQDAQCXAwEAmgMAAJwDAgCgAwUAqAMAAKoDAACtAwYAtQMIAMADAwDFAwQAzQMFANYDCADgAwAA4gMDAOcDEwD8AwIAAAQCAAQEAAAGBA4AGAQBABwEAQAgBAsALgQYAEkEAwBOBCwAfQQHAIcEEwCcBCsAzAQBANEEBQDbBAQA5QQAAOkEEwD+BBMAEwUMACEFAAAjBQwAMQUAADMFAAA1BQcAQAUBAEUFBgBOBQ4AXgUkAIQFAACGBQYAkAUEAJcFBACdBQkAqAUXAMEFDADPBQQA1QUBANgFAgDdBRIA8QUAAPMFCQD+BQcABwYCAAsGIAAuBgEAMgYRAEUGAABIBgQATwYBAFMGAQBWBgAAWQYBAFwGAABoBggAcgYDAHcGBwCABgAAggYCAIYGBACMBgAAjgYAAJAGBQCXBhoAtAYCALkGJwDiBgEA5QYdAAQHAAAGBw8AFwcAABoHAwAfBwAAIgcDACcHAAApBwoANQcAADcHAAA5BxAASwcBAE4HEABgBxgAfAcCAIIHBgCKBw8A"}],\ +["algebra",{"t":"PFPKKGKPPFKPFPKKKFFGGKKCMCMOOMMOOCMMMMMOMMMQOOOOMMCMMMOOOCMCHOOOMMMMMMOOCOMMOMMOOMMMCCOOOFKFPPGMOOOOOOOOOOOOEEEEEEEEEEEEEEEEECCCCCCCCCFKFPPGNMNNNNONONONNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNONONNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNONNNNNNNNNNNNNOONNNONHNNNNNNNNNNNNNNNONNNKKKKMMMMNNMMMNNMNNMNNNNMNNMMMNNMNNNNMNNNNMKMMSFSFSNHNNNNNNNNNNNNNONNOHNNONNNNNNNNNOONOOOONHNNNNNNNNHFNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNSOFFKFIFIFIFNONNNONONNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNONNNNNNNNNNNNNOOONNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNOONNNNNNNNNNNONMNONNNNNNNNNNNNNNNNNNNNNNNOOOOONNONNNNONOOHONONNNNNNONNNNNNNNNNNNNNNNNNNNONNNNNNNNNNSRIFKMHHNNONNNMMMNNNNNMOMNNMQNNONQNOKFFMNNNNNNNNNMNONNNNNNNNNNNOMMNNNNMNNNNNONNNNNNNNNNONNNNNNNNNNOMMMMMNNNNNNNNNNONNPPFGPPPPGGKNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNQNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNONNMNNNNNNNNNNNNNNNNNNNNNNNSFFHOOHOOOOOOOHHFOOFKFFIFIFOOOOOOOOOOOOMOOOOOOOOOOOOOORFFIFFKFFFFFEFFIKMOMOOOOOOOOOMOCOOOMOCCCOOOOOOOOOOOOOOOCCOOOOOMOMOOOOOCOOOOOOOOOOCOOOCOOOCOCOCOOCMFFNOOONNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNFNNNONNNONNNNNNNNNNNNNNNNNNNNNNNOONNNNNONNNNNNNNNNNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNONNNNONOONNNNONNNOONONNNNNNNNNNIFFFFINNNNOOOOOONNNNNNNNNNNNNONNNNNNNNNNNNNONNNNNNNOOOOONOOOOONOOONNNNNNNNNNNNNNNNNOOOOOOONNOOONOONONONNNNNNNNNNNNNNNNNNNFNNONONNNNNNNNNNNNNNNONONNNNNIFFFKKFFFRRIKNNMNNMOOOOOOOCCCNNCMNOOOOONOOOOOOONOOOOOONNOOOOOCOOMOOOOOOOMOOOOOOMIFINNNNNNNNNNNOOONNNNNNNNOOONNNOOONOOONNNNOOONOOONNNNOOONOOONNNNNFNNNNNNNNONNNNNNNNONNNOONNONNNONONNNNNNFNNNNONNNNNNNNONONNNNNFNNNNNNNNNNONNNOONNNONONONNNNFFNNNNNNNNNNNNNNOONNNNNNNNOONNONNNNNNNNNNRKFNNNNNNMMMNNNNNNMNNNNNNNNNNMNNNNMNNONNNNNNONFNNNNONNNNNNNNNNNNNNONNNNNNNONONNNNNFFNNONNNNNOOHHNNNNNNNNNNNNNNNNNNNNNNOONNOONNNNNNNNNNNNNIHCNHFNNNNNNNNNNNNNNNNNONNNNNNNNONNNNNNNFNNNNNONNNNNNNNNNNONNNNNONNNNNNNKMRFKMOMMMMOMMOOFONNNNNNNNNNNNNNNNNNNONNNNNNNNNNPGGPPGPIIPPPPPPPPHHHHNNNNNNHNNNNNNNNNNHNNNNNNHNNNNNNHNNNNNNNNNHHHHHHHHNNNNNNNNNNNNNNNN","n":["Adem","AdemAlgebra","AdemAlgebra","AdemAlgebraT","Algebra","AlgebraType","Bialgebra","BorrowAdem","BorrowMilnor","Field","GeneratedAlgebra","Milnor","MilnorAlgebra","MilnorAlgebra","MilnorAlgebraT","MuAlgebra","PolynomialAlgebra","PolynomialAlgebraMonomial","PolynomialAlgebraTableEntry","SteenrodAlgebra","SteenrodAlgebraBorrow","SteenrodAlgebraT","UnstableAlgebra","adem_algebra","adem_algebra","algebra","basis_element_from_string","basis_element_to_index_map","basis_element_to_index_map","basis_element_to_string","basis_table","basis_table","basis_table","combinatorics","compute_basis","compute_generating_set","coproduct","decompose","decompose_basis_element","degree","dimension","dimension_unstable","dimension_unstable","dispatch_algebra","even_basis_table","excess_table","excess_table","ext","exterior_generators_in_degree","exterior_monomials","field","frobenius_on_generator","generating_relations","generators","generic","generic","index_to_monomial","milnor_algebra","milnor_algebra","module","module_gens_from_json","monomial_to_index","multiplication_table","multiplication_table","multiply_basis_element_by_element_unstable","multiply_basis_elements","multiply_basis_elements_unstable","multiply_basis_elements_unstable","multiply_element_by_basis_element_unstable","multiply_element_by_element_unstable","p","p","pair_algebra","poly","polynomial_generators_in_degree","polynomial_monomials","ppart_table","prime","prime","prime","profile","repr_ext_generator","repr_poly_generator","steenrod_algebra","steenrod_evaluator","steenrod_parser","unstable_enabled","unstable_enabled","valid","AdemAlgebra","AdemAlgebraT","AdemBasisElement","Bockstein","P","PorBockstein","adem_algebra","basis_element_to_index_map","basis_table","bocksteins","degree","even_basis_table","excess_table","generic","multiplication_table","p","p_or_sq","ps","unstable_enabled","AdemAlgebra","AdemAlgebraT","Algebra","AlgebraType","Bialgebra","Field","GeneratedAlgebra","MilnorAlgebra","MilnorAlgebraT","MuAlgebra","PolynomialAlgebra","PolynomialAlgebraMonomial","PolynomialAlgebraTableEntry","SteenrodAlgebra","SteenrodAlgebraBorrow","SteenrodAlgebraT","UnstableAlgebra","adem_algebra","algebra_trait","bialgebra_trait","combinatorics","field","milnor_algebra","pair_algebra","polynomial_algebra","steenrod_algebra","AdemAlgebra","AdemAlgebraT","AdemBasisElement","Bockstein","P","PorBockstein","a_multiply","adem_algebra","adem_algebra","basis_element_from_index","basis_element_from_string","basis_element_to_index","basis_element_to_index_map","basis_element_to_string","basis_table","beps_pn","bocksteins","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","clone_to_uninit","compute_basis","coproduct","decompose","decompose_basis_element","decompose_basis_element_2","decompose_basis_element_generic","default_filtration_one_products","degree","deref","deref","deref","deref_mut","deref_mut","deref_mut","dimension","dimension_unstable","dimension_unstable","dimension_unstable","drop","drop","drop","element_from_bytes","element_is_zero","element_to_bytes","eq","equivalent","equivalent","equivalent","equivalent","even_basis_table","excess","excess_table","finalize_element","fmt","fmt","fmt","fmt","from","from","from","generate_basis2","generate_basis_element_to_index_map","generate_basis_even","generate_basis_generic","generate_excess_table","generate_multiplication_table_2","generate_multiplication_table_2_step","generate_multiplication_table_generic","generate_multiplication_table_generic_step","generating_relations","generator_to_string","generators","generic","generic","hash","init","init","init","into","into","into","iter_filtered","magic","make_mono_admissible","make_mono_admissible_2","make_mono_admissible_generic","multiplication_table","multiply_basis_element_by_element_unstable","multiply_basis_element_by_element_unstable","multiply_basis_elements","multiply_basis_elements_unstable","multiply_basis_elements_unstable","multiply_basis_elements_unstable","multiply_element_by_basis_element_unstable","multiply_element_by_basis_element_unstable","multiply_element_by_element_unstable","multiply_element_by_element_unstable","multiply_inner","new","new_pair_element","p","p_or_sq","p_tilde","prefix","prime","ps","q","shift_vec","sigma_multiply_basis","tail_of_basis_element_to_index","to_owned","to_string","to_string","try_basis_element_to_index","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","unstable_enabled","vzip","vzip","vzip","Algebra","GeneratedAlgebra","MuAlgebra","UnstableAlgebra","basis_element_from_string","basis_element_to_string","compute_basis","decompose_basis_element","default_filtration_one_products","default_filtration_one_products","dimension","dimension_unstable","dimension_unstable","element_to_string","element_to_string","generating_relations","generator_to_string","generator_to_string","generators","magic","magic","multiply_basis_element_by_element","multiply_basis_element_by_element","multiply_basis_element_by_element_unstable","multiply_basis_element_by_element_unstable","multiply_basis_element_by_element_unstable","multiply_basis_elements","multiply_basis_elements_unstable","multiply_basis_elements_unstable","multiply_element_by_basis_element","multiply_element_by_basis_element","multiply_element_by_basis_element_unstable","multiply_element_by_basis_element_unstable","multiply_element_by_basis_element_unstable","multiply_element_by_element","multiply_element_by_element","multiply_element_by_element_unstable","multiply_element_by_element_unstable","multiply_element_by_element_unstable","prefix","prefix","prime","Bialgebra","coproduct","decompose","MAX_XI_TAU","PartitionIterator","TAU_DEGREES","TruncatedPolynomialMonomialBasis","XI_DEGREES","add_gens_and_calculate_parts","adem_relation_coefficient","borrow","borrow","borrow_mut","borrow_mut","deref","deref","deref_mut","deref_mut","drop","drop","from","from","gen_deg_idx_to_internal_idx","gen_degrees","generators","generators_up_to_degree","gens","inadmissible_pairs","init","init","initial","internal_idx_to_gen_deg","into","into","into_iter","multiunzip","multiunzip","new","new","next","p","partition","parts","parts","parts","parts_by_max","remaining","search","tau_degrees","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","xi_degrees","Field","basis_element_from_string","basis_element_to_string","borrow","borrow_mut","compute_basis","coproduct","decompose","default_filtration_one_products","deref","deref_mut","dimension","dimension_unstable","drop","element_to_string","fmt","from","init","into","multiply_basis_element_by_element_unstable","multiply_basis_elements","multiply_basis_elements_unstable","multiply_element_by_basis_element_unstable","multiply_element_by_element_unstable","new","prime","prime","to_string","try_from","try_into","type_id","vzip","ALLOCATION","M","Matrix2D","MilnorAlgebra","MilnorAlgebraT","MilnorBasisElement","MilnorHashMap","MilnorProfile","PPart","PPartAllocation","PPartEntry","PPartMultiplier","a_multiply","ans","basis_element_from_index","basis_element_from_string","basis_element_to_index","basis_element_to_index_map","basis_element_to_string","basis_table","beps_pn","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","clone_into","clone_to_uninit","cols","cols","compute_basis","compute_degree","compute_ppart","coproduct","decompose","decompose_basis_element","decompose_basis_element_ppart","decompose_basis_element_qpart","default","default","default","default","default_filtration_one_products","degree","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","diag_num","diagonal","diagonal","dimension","dimension_unstable","dimension_unstable","dimension_unstable","drop","drop","drop","drop","drop","drop","element_from_bytes","element_is_zero","element_to_bytes","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","excess","excess_table","finalize_element","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from_p","generate_basis_2","generate_basis_generic","generate_excess_table","generating_relations","generator_to_string","generators","generic","generic","get_p_part","hash","increment_p_part","index","index_mut","init","init","init","init","init","init","init","inner","into","into","into","into","into","into","into_allocation","into_iter","is_an","is_trivial","is_valid","m","magic","milnor_algebra","milnor_algebra","multiplication_table","multiply","multiply_basis_by_element","multiply_basis_by_element_with_allocation","multiply_basis_element_by_element","multiply_basis_element_by_element_unstable","multiply_basis_element_by_element_unstable","multiply_basis_elements","multiply_basis_elements_unstable","multiply_basis_elements_unstable","multiply_basis_elements_unstable","multiply_element_by_basis_element_unstable","multiply_element_by_basis_element_unstable","multiply_element_by_element","multiply_element_by_element_unstable","multiply_element_by_element_unstable","multiply_qpart","multiply_with_allocation","new","new_from_allocation","new_pair_element","new_with_profile","next","next_val","p","p","p_part","p_part","p_part","p_tilde","ppart_table","ppart_table","prefix","prime","prime","profile","profile","q","q_part","q_part","q_part_default","r","reset","rows","serialize","sigma_multiply_basis","to_owned","to_string","to_string","to_string","truncated","try_basis_element_to_index","try_beps_pn","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","unstable_enabled","update","vzip","vzip","vzip","vzip","vzip","vzip","with_capacity","with_capacity","with_local","AY_CACHE","Element","HashMap","MilnorPairElement","PairAlgebra","a_multiply","a_y_cached","a_y_inner","borrow","borrow_mut","degree","deref","deref_mut","drop","element_from_bytes","element_is_zero","element_to_bytes","finalize_element","finalize_element","from","init","into","new_pair_element","ones","p_tilde","sigma_multiply","sigma_multiply","sigma_multiply_basis","sub","try_from","try_into","twos","type_id","unsub","vzip","ys","PolynomialAlgebra","PolynomialAlgebraMonomial","PolynomialAlgebraTableEntry","basis_table","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","clone_to_uninit","compute_basis_step","compute_basis_step","compute_generating_set","default","degree","deref","deref","deref_mut","deref_mut","drop","drop","eq","equivalent","equivalent","equivalent","equivalent","ext","exterior_generators_in_degree","exterior_monomials","fmt","fmt","frobenius_monomial","frobenius_monomial","frobenius_on_generator","from","from","hash","index_to_monomial","index_to_monomial","index_to_monomial","init","init","into","into","max_computed_degree","max_computed_degree","min_degree","min_degree","monomial_to_index","monomial_to_index","monomial_to_index","multiply_monomial_by_polynomial","multiply_monomial_by_polynomial","multiply_monomials","multiply_monomials","multiply_polynomial_by_monomial","multiply_polynomial_by_monomial","multiply_polynomials","multiply_polynomials","new","new","poly","polynomial_generators_in_degree","polynomial_monomials","prime","repr_ext_generator","repr_poly_generator","set_monomial_degree","set_monomial_degree","to_owned","to_string","try_from","try_from","try_into","try_into","type_id","type_id","valid","vzip","vzip","Adem","AdemAlgebra","AlgebraSpec","AlgebraType","BorrowAdem","BorrowMilnor","Milnor","MilnorAlgebra","SteenrodAlgebra","SteenrodAlgebraBorrow","SteenrodAlgebraT","a_multiply","adem_algebra","algebra","basis_element_from_string","basis_element_to_string","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","clone_to_uninit","clone_to_uninit","compute_basis","coproduct","decompose","decompose_basis_element","default_filtration_one_products","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","dimension","dimension_unstable","dimension_unstable","dimension_unstable","dispatch_steenrod","drop","drop","drop","drop","element_from_bytes","element_is_zero","element_to_bytes","element_to_string","eq","equivalent","equivalent","equivalent","equivalent","finalize_element","fmt","fmt","fmt","fmt","from","from","from","from","from_json","from_str","generating_relations","generator_to_string","generators","init","init","init","init","into","into","into","into","magic","milnor_algebra","multiply_basis_element_by_element","multiply_basis_element_by_element_unstable","multiply_basis_element_by_element_unstable","multiply_basis_element_by_element_unstable","multiply_basis_elements","multiply_basis_elements_unstable","multiply_basis_elements_unstable","multiply_basis_elements_unstable","multiply_element_by_basis_element","multiply_element_by_basis_element_unstable","multiply_element_by_basis_element_unstable","multiply_element_by_basis_element_unstable","multiply_element_by_element","multiply_element_by_element_unstable","multiply_element_by_element_unstable","multiply_element_by_element_unstable","new_pair_element","p","p_tilde","prefix","prime","profile","sigma_multiply","sigma_multiply_basis","steenrod_algebra","steenrod_algebra","to_owned","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","MAX_XI_TAU","PartitionIterator","TruncatedPolynomialMonomialBasis","adem_relation_coefficient","gen_degrees","gens","inadmissible_pairs","initial","p","partition","parts","parts","parts_by_max","remaining","tau_degrees","xi_degrees","Field","prime","M","MilnorAlgebra","MilnorAlgebraT","MilnorBasisElement","MilnorProfile","PPart","PPartAllocation","PPartEntry","PPartMultiplier","ans","basis_element_to_index_map","basis_table","cols","degree","diag_num","diagonal","diagonal","excess_table","generic","init","m","milnor_algebra","multiplication_table","p","p","p_part","p_part","p_part","ppart_table","profile","q_part","q_part","r","rows","truncated","unstable_enabled","Algebra","FDModule","FPModule","FreeModule","GeneratorData","HomModule","Module","ModuleFailedRelationError","MuFreeModule","OperationGeneratorPair","QuotientModule","RealProjectiveSpace","SteenrodModule","SuspensionModule","TensorModule","UnstableFreeModule","ZeroModule","act_on_basis","actions","algebra","algebra","algebra","algebra","algebra","algebra","algebra","basis_element_to_opgen","basis_element_to_opgen","basis_element_to_opgen","basis_element_to_string","basis_list","block_structure","block_structures","block_structures","clear_bottom","dimension","end","finite_dimensional_module","finitely_presented_module","free_module","gen_deg","gen_deg_idx_to_internal_idx","gen_deg_idx_to_internal_idx","gen_deg_idx_to_internal_idx","gen_names","gen_names","gen_names","gen_names","generator_degree","generator_index","generator_to_index","generator_to_index","generator_to_index","generators","graded_dimension","hom_module","homomorphism","index_table","inner","left","map","max","max_computed_degree","min","min_degree","min_degree","min_degree","min_degree","min_degree","module","module_trait","name","name","name","name","name","num_gens","num_gens","num_gens","operation_degree","operation_index","quotient_module","relation","relations","right","rpn","shift","source","start","steenrod_module","subspaces","suspension_module","target","tensor_module","truncation","value","zero_module","zero_module","BlockStructure","GeneratorBasisEltPair","add_block","basis_element_to_block_idx","basis_index","blocks","borrow","borrow","borrow_mut","borrow_mut","deref","deref","deref_mut","deref_mut","drop","drop","fmt","fmt","from","from","generator_basis_elt_to_index","generator_degree","generator_index","generator_to_block","index_to_generator_basis_elt","init","init","into","into","new","total_dimension","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","FiniteDimensionalModule","act_on_basis","action","action_mut","actions","actions_to_json","add_generator","algebra","algebra","allocate_actions","basis_element_to_string","borrow","borrow_mut","check_validity","clone","clone_into","clone_to_uninit","compute_basis","deref","deref_mut","dimension","drop","eq","equivalent","equivalent","equivalent","equivalent","extend_actions","fmt","from","from","from_json","gen_names","graded_dimension","init","into","max_computed_degree","max_degree","min_degree","name","new","parse_action","set_action","set_basis_element_name","string_to_basis_element","test_equal","to_json","to_owned","to_string","try_from","try_into","type_id","vzip","zero_module","FPMIndexTable","FinitelyPresentedModule","act_on_basis","add_generators","add_relations","algebra","basis_element_to_string","borrow","borrow","borrow_mut","borrow_mut","compute_basis","deref","deref","deref_mut","deref_mut","dimension","drop","drop","eq","equivalent","equivalent","equivalent","equivalent","fmt","fp_idx_to_gen_idx","fp_idx_to_gen_idx","from","from","from_json","gen_idx_to_fp_idx","gen_idx_to_fp_idx","generators","generators","index_table","init","init","into","into","map","max_computed_degree","max_generator_degree","min_degree","min_degree","name","new","relations","to_string","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","zero_module","FreeModule","GeneratorData","MuFreeModule","OffsetIterator","OperationGeneratorPair","UnstableFreeModule","act","act_on_basis","add_generators","algebra","algebra","algebra","algebra","basis_element_to_opgen","basis_element_to_opgen","basis_element_to_opgen","basis_element_to_string","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","clone_to_uninit","compute_basis","degree","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","dimension","drop","drop","drop","drop","end","extend_by_zero","fmt","fmt","from","from","from","from","gen_deg","gen_deg","gen_deg_idx_to_internal_idx","gen_deg_idx_to_internal_idx","gen_deg_idx_to_internal_idx","gen_names","gen_names","gen_names","gen_names","generator_degree","generator_index","generator_offset","generator_to_index","generator_to_index","generator_to_index","index_to_op_gen","init","init","init","init","internal_generator_offset","into","into","into","into","into_iter","iter_gen_offsets","iter_gens","iter_slices","max_computed_degree","max_generator_degree","min_degree","min_degree","min_degree","min_degree","module","name","name","name","new","next","num_gens","num_gens","num_gens","number_of_gens_in_degree","offset","operation_degree","operation_generator_to_index","operation_index","slice_vector","start","to_owned","to_string","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","zero_module","HomModule","act_on_basis","algebra","algebra","basis_element_to_string","block_structures","borrow","borrow_mut","compute_basis","deref","deref_mut","dimension","drop","fmt","from","init","into","max_computed_degree","min_degree","new","source","source","target","target","to_string","try_from","try_into","type_id","vzip","FreeModuleHomomorphism","FullModuleHomomorphism","GenericZeroHomomorphism","HomPullback","IdentityHomomorphism","ModuleHomomorphism","MuFreeModuleHomomorphism","QuotientHomomorphism","QuotientHomomorphismSource","Source","Target","UnstableFreeModuleHomomorphism","ZeroHomomorphism","apply","apply_quasi_inverse","apply_to_basis_element","auxiliary_data","compute_auxiliary_data_through_degree","degree_shift","degree_shift","degree_shift","degree_shift","degree_shift","degree_shift","f","f","free_module_homomorphism","full_module_homomorphism","generic_zero_homomorphism","get_matrix","get_partial_matrix","hom_pullback","identity_homomorphism","image","images","images","images","images","images","kernel","kernels","kernels","kernels","kernels","kernels","map","matrices","min_degree","min_degree","min_degree","min_degree","outputs","outputs","outputs","prime","quasi_inverse","quasi_inverses","quasi_inverses","quasi_inverses","quasi_inverses","quasi_inverses","quotient_homomorphism","s","s","source","source","source","source","source","source","source","t","target","target","target","target","target","target","target","zero_homomorphism","FreeModuleHomomorphism","MuFreeModuleHomomorphism","UnstableFreeModuleHomomorphism","add_generators_from_big_vector","add_generators_from_matrix_rows","add_generators_from_rows","add_generators_from_rows_ooo","apply_to_basis_element","apply_to_generator","borrow","borrow_mut","compute_auxiliary_data_through_degree","degree_shift","degree_shift","degree_shift","degree_shift","degree_shift","deref","deref_mut","differential_density","drop","extend_by_zero","from","hom_k","image","images","images","images","init","into","kernel","kernels","kernels","kernels","min_degree","min_degree","min_degree","min_degree","new","next_degree","ooo_outputs","output","outputs","outputs","outputs","quasi_inverse","quasi_inverses","quasi_inverses","quasi_inverses","set_image","set_kernel","set_quasi_inverse","source","source","source","source","target","target","target","target","try_from","try_into","type_id","vzip","zero_homomorphism","FullModuleHomomorphism","apply_to_basis_element","borrow","borrow_mut","clone","clone_into","clone_to_uninit","compute_auxiliary_data_through_degree","degree_shift","degree_shift","deref","deref_mut","drop","from","from","from_matrices","identity_homomorphism","image","images","init","into","kernel","kernels","matrices","new","quasi_inverse","quasi_inverses","replace_source","replace_target","source","source","target","target","to_owned","try_from","try_into","type_id","vzip","zero_homomorphism","GenericZeroHomomorphism","apply_to_basis_element","borrow","borrow_mut","degree_shift","degree_shift","deref","deref_mut","drop","from","init","into","new","source","source","target","target","try_from","try_into","type_id","vzip","zero_homomorphism","HomPullback","apply_to_basis_element","borrow","borrow_mut","compute_auxiliary_data_through_degree","degree_shift","deref","deref_mut","drop","from","image","images","init","into","kernel","kernels","map","min_degree","new","quasi_inverse","quasi_inverses","source","source","target","target","try_from","try_into","type_id","vzip","QuotientHomomorphism","QuotientHomomorphismSource","apply_to_basis_element","apply_to_basis_element","borrow","borrow","borrow_mut","borrow_mut","degree_shift","degree_shift","deref","deref","deref_mut","deref_mut","drop","drop","f","f","from","from","init","init","into","into","new","new","s","s","source","source","t","target","target","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","Algebra","Module","ModuleFailedRelationError","act","act","act_by_element","act_by_element","act_by_element_on_basis","act_by_element_on_basis","act_on_basis","algebra","basis_element_to_string","borrow","borrow_mut","compute_basis","compute_basis","deref","deref_mut","dimension","drop","element_to_string","element_to_string","fmt","fmt","from","init","into","is_unit","is_unit","max_computed_degree","max_degree","max_degree","max_generator_degree","max_generator_degree","min_degree","prime","prime","relation","to_string","total_dimension","total_dimension","try_from","try_into","type_id","value","vzip","QuotientModule","act_on_basis","act_on_original_basis","algebra","basis_element_to_string","basis_list","borrow","borrow_mut","deref","deref_mut","dimension","drop","flush","fmt","from","init","into","max_computed_degree","max_degree","min_degree","module","new","old_basis_to_new","quotient","quotient_all","quotient_basis_elements","quotient_vectors","reduce","subspaces","to_string","truncation","try_from","try_into","type_id","vzip","zero_module","RPSpec","RealProjectiveSpace","act_on_basis","algebra","algebra","basis_element_to_string","borrow","borrow","borrow_mut","borrow_mut","clear_bottom","clear_bottom","coef_adem","coef_milnor","deref","deref","deref_mut","deref_mut","deserialize","dimension","drop","drop","eq","equivalent","equivalent","equivalent","equivalent","fmt","fmt","from","from","from_json","init","init","into","into","max","max","max_computed_degree","max_degree","min","min","min_degree","new","to_json","to_string","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","zero_module","SteenrodModule","from_json","json","zero_module","from_json","SuspensionModule","act","act_by_element","act_by_element_on_basis","act_on_basis","algebra","basis_element_to_string","borrow","borrow_mut","compute_basis","deref","deref_mut","dimension","drop","element_to_string","fmt","from","init","inner","into","is_unit","max_computed_degree","max_degree","max_generator_degree","min_degree","new","prime","shift","to_string","total_dimension","try_from","try_into","type_id","vzip","zero_module","TensorModule","act","act_helper","act_on_basis","algebra","basis_element_to_string","block_structures","borrow","borrow_mut","compute_basis","deref","deref_mut","dimension","drop","fmt","from","init","into","left","max_computed_degree","max_degree","min_degree","new","offset","right","seek_module_num","to_string","try_from","try_into","type_id","vzip","zero_module","ZeroModule","zero_module","Element","MilnorPairElement","PairAlgebra","a_multiply","degree","element_from_bytes","element_is_zero","element_to_bytes","new_pair_element","ones","p_tilde","sigma_multiply_basis","twos","ys","SteenrodEvaluator","adem","adem_q","adem_to_milnor","adem_to_milnor_on_basis","borrow","borrow_mut","compute_basis","deref","deref_mut","dimension","drop","evaluate_algebra_adem","evaluate_algebra_milnor","evaluate_algebra_node","evaluate_basis_element","evaluate_module_adem","evaluate_p_or_b_list","from","init","into","milnor","milnor_to_adem","milnor_to_adem_on_basis","milnor_to_adem_on_basis_2","milnor_to_adem_on_basis_generic","new","prime","try_from","try_into","type_id","vzip","AList","AlgebraBasisElt","AlgebraNode","BasisElt","Bockstein","BocksteinOrSq","Err","IResult","ModuleNode","Ok","P","PList","Product","Q","Scalar","Sq","Sum","algebra_expr","algebra_factor","algebra_generator","algebra_term","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","brackets","clone","clone","clone","clone_into","clone_into","clone_into","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","convert_error","deref","deref","deref","deref_mut","deref_mut","deref_mut","digits","drop","drop","drop","fmt","fmt","fmt","fold_separated","from","from","from","init","init","init","into","into","into","module_expr","module_generator","module_term","p_or_sq","parse_algebra","parse_module","scalar","space","to_adem_basis_elt","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip"],"q":[[0,"algebra"],[89,"algebra::adem_algebra"],[108,"algebra::algebra"],[134,"algebra::algebra::adem_algebra"],[267,"algebra::algebra::algebra_trait"],[309,"algebra::algebra::bialgebra_trait"],[312,"algebra::algebra::combinatorics"],[367,"algebra::algebra::field"],[399,"algebra::algebra::milnor_algebra"],[625,"algebra::algebra::pair_algebra"],[661,"algebra::algebra::polynomial_algebra"],[742,"algebra::algebra::steenrod_algebra"],[874,"algebra::combinatorics"],[890,"algebra::field"],[892,"algebra::milnor_algebra"],[928,"algebra::module"],[1026,"algebra::module::block_structure"],[1065,"algebra::module::finite_dimensional_module"],[1119,"algebra::module::finitely_presented_module"],[1176,"algebra::module::free_module"],[1297,"algebra::module::hom_module"],[1326,"algebra::module::homomorphism"],[1406,"algebra::module::homomorphism::free_module_homomorphism"],[1471,"algebra::module::homomorphism::full_module_homomorphism"],[1510,"algebra::module::homomorphism::generic_zero_homomorphism"],[1532,"algebra::module::homomorphism::hom_pullback"],[1561,"algebra::module::homomorphism::quotient_homomorphism"],[1602,"algebra::module::module_trait"],[1648,"algebra::module::quotient_module"],[1684,"algebra::module::rpn"],[1739,"algebra::module::steenrod_module"],[1743,"algebra::module::steenrod_module::json"],[1744,"algebra::module::suspension_module"],[1779,"algebra::module::tensor_module"],[1811,"algebra::module::zero_module"],[1813,"algebra::pair_algebra"],[1827,"algebra::steenrod_evaluator"],[1859,"algebra::steenrod_parser"],[1945,"core::option"],[1946,"alloc::string"],[1947,"once"],[1948,"alloc::vec"],[1949,"serde_json::value"],[1950,"bivec"],[1951,"anyhow"],[1952,"core::ops::function"],[1953,"fp::vector::fp_wrapper"],[1954,"fp::prime::primes_generic"],[1955,"std::io::error"],[1956,"std::io"],[1957,"core::fmt"],[1958,"core::hash"],[1959,"core::iter::traits::iterator"],[1960,"core::result"],[1961,"core::any"],[1962,"serde::de"],[1963,"serde::ser"],[1964,"core::marker"],[1965,"alloc::sync"],[1966,"core::ops::range"],[1967,"fp::matrix::subspace"],[1968,"fp::matrix::quasi_inverse"],[1969,"fp::matrix::matrix_inner"],[1970,"alloc::collections::btree::map"],[1971,"nom::error"],[1972,"nom::internal"],[1973,"core::str::traits"],[1974,"core::clone"]],"i":[69,0,68,0,0,0,0,33,33,0,0,69,0,68,0,0,0,0,0,0,0,0,0,0,1,0,4,3,23,4,11,3,23,0,4,11,15,15,17,67,4,19,20,0,3,3,23,67,11,11,0,11,17,17,3,23,12,0,22,0,0,12,3,23,20,4,19,20,20,20,3,23,0,67,11,11,23,4,11,52,23,11,11,32,0,0,3,23,67,0,0,0,42,42,0,1,3,3,34,34,3,3,3,3,3,34,34,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,42,42,0,3,1,3,3,3,3,3,3,3,3,34,3,34,42,3,34,42,34,34,34,3,3,3,3,3,3,3,34,3,34,42,3,34,42,3,3,3,3,3,34,42,3,3,3,34,34,34,34,34,3,34,3,3,3,34,34,42,3,34,42,3,3,3,3,3,3,3,3,3,3,3,3,3,3,34,3,34,42,3,34,42,34,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,34,3,3,3,34,3,0,3,3,34,3,34,3,3,34,42,3,34,42,3,34,42,3,3,34,42,0,0,0,0,4,4,4,17,4,4,4,19,20,4,4,17,17,17,17,4,4,4,4,20,19,19,4,19,20,4,4,20,19,19,4,4,20,19,19,4,4,4,0,15,15,0,0,0,0,0,21,0,21,51,21,51,21,51,21,51,21,51,21,51,21,21,21,21,21,0,21,51,51,21,21,51,51,51,51,21,51,51,21,51,21,21,51,21,51,51,0,21,51,21,51,21,51,21,51,0,0,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,0,60,0,0,0,0,0,0,0,0,0,0,23,60,23,23,23,23,23,23,23,23,60,55,53,56,57,23,60,55,53,56,57,53,53,53,53,60,56,23,53,23,23,23,23,23,23,55,53,56,57,23,53,23,60,55,53,56,57,23,60,55,53,56,57,55,60,60,57,23,23,23,23,23,60,55,53,56,57,23,23,23,55,53,55,55,55,55,53,53,53,53,53,23,23,23,55,53,53,56,56,23,60,55,53,56,57,53,23,23,23,23,23,23,23,23,55,53,23,56,56,23,60,55,53,56,57,60,56,23,60,55,53,56,57,60,60,55,55,55,57,23,22,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,60,23,23,60,60,23,60,55,53,57,23,23,23,23,23,60,23,23,23,55,53,0,60,56,60,55,23,53,23,53,56,55,23,23,23,60,55,53,56,57,23,60,55,53,56,57,23,60,55,53,56,57,23,60,23,60,55,53,56,57,56,57,57,0,64,0,0,0,64,0,0,127,127,127,127,127,127,64,64,64,64,64,127,127,127,64,127,64,64,64,64,0,127,127,127,127,0,127,127,0,0,0,11,67,12,67,12,67,67,67,11,11,11,12,67,67,12,67,12,67,12,67,67,67,67,67,67,11,11,67,67,11,11,11,67,12,67,11,11,12,67,12,67,12,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,67,12,67,11,11,11,11,11,11,11,67,67,67,12,67,12,67,12,67,67,12,69,68,0,0,33,33,69,68,0,0,0,68,68,70,68,68,33,68,69,70,33,68,69,70,69,69,69,69,68,68,68,68,68,33,68,69,70,33,68,69,70,70,68,68,68,68,0,33,68,69,70,68,68,68,68,69,69,69,69,69,68,68,69,69,70,33,68,69,70,68,69,68,68,68,33,68,69,70,33,68,69,70,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,68,70,68,68,68,70,68,68,32,68,69,68,69,33,68,69,69,70,33,68,68,68,69,70,33,68,69,70,33,68,69,70,0,0,0,0,21,21,0,51,21,51,21,51,21,51,0,0,0,52,60,0,0,0,0,0,0,0,0,60,23,23,60,53,60,60,57,23,23,60,57,22,23,23,60,55,53,57,23,23,55,53,60,60,55,23,72,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,72,78,72,78,81,128,82,108,88,81,128,82,72,106,0,88,112,108,72,86,0,0,0,86,81,128,82,78,81,128,82,83,83,81,128,82,80,78,0,0,80,111,112,80,108,72,108,72,80,81,128,82,106,0,78,80,81,128,82,81,128,82,83,83,0,79,80,112,0,111,88,86,0,106,0,88,0,106,79,0,74,0,0,75,75,76,75,76,75,76,75,76,75,76,75,76,75,76,75,76,75,75,76,76,75,75,76,75,76,75,75,75,76,75,76,75,76,75,76,75,0,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,0,0,80,80,80,80,80,129,80,129,80,80,129,80,129,80,80,129,80,80,80,80,80,80,80,80,129,129,80,80,80,129,80,80,80,129,80,129,80,80,80,80,80,80,80,80,80,80,129,80,129,80,129,80,129,80,80,0,0,0,0,0,0,82,82,82,82,81,128,82,81,128,82,82,82,86,87,83,82,86,87,83,83,83,83,82,87,82,86,87,83,82,86,87,83,82,82,86,87,83,86,82,82,83,82,86,87,83,86,87,81,128,82,82,81,128,82,83,83,82,81,128,82,82,82,86,87,83,82,82,86,87,83,87,82,82,82,82,82,82,81,128,82,87,81,128,82,82,87,81,128,82,82,87,83,82,83,82,86,83,82,82,86,87,83,82,86,87,83,82,86,87,83,82,86,87,83,82,0,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,0,0,0,0,0,0,0,0,0,91,91,0,0,91,91,91,91,91,91,103,130,98,100,101,104,105,0,0,0,91,91,0,96,91,103,130,98,100,102,91,103,130,98,100,102,102,100,91,103,130,98,103,130,98,91,91,103,130,98,100,102,0,104,105,91,103,130,98,100,101,102,104,91,103,130,98,100,101,102,97,0,0,0,98,98,98,98,98,98,98,98,98,98,98,103,130,98,98,98,98,98,98,98,98,98,103,130,98,98,98,98,103,130,98,98,103,130,98,98,98,98,98,103,130,98,98,103,130,98,98,98,98,98,103,130,98,98,103,130,98,98,98,98,98,98,0,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,0,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,0,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,0,0,104,105,104,105,104,105,104,105,104,105,104,105,104,105,104,105,104,105,104,105,104,105,104,105,104,105,104,105,104,104,105,104,105,104,105,104,105,104,105,72,0,0,72,72,72,72,72,72,72,72,72,79,79,72,72,79,79,72,79,72,72,79,79,79,79,79,72,72,72,72,72,72,72,72,72,72,79,79,72,72,79,79,79,79,79,0,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,0,0,108,108,108,108,108,109,108,109,108,109,0,0,108,109,108,109,109,108,108,109,108,108,108,108,108,108,109,108,109,108,108,109,108,109,108,109,108,108,108,109,108,108,108,108,108,109,108,109,108,109,108,109,108,0,0,0,110,0,0,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,0,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,0,74,64,0,0,64,127,64,64,64,64,127,64,64,127,127,0,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,115,0,0,114,117,0,131,0,0,131,115,115,114,115,114,117,114,0,0,0,0,115,114,117,115,114,117,0,115,114,117,115,114,117,115,114,117,117,0,115,114,117,115,114,117,0,115,114,117,115,114,117,0,115,114,117,115,114,117,115,114,117,0,0,0,0,0,0,0,0,117,115,114,117,115,114,117,115,114,117,115,114,117,115,114,117],"f":"````````````````````````{{{d{b}}}{{d{f}}}}`{{{d{h}}{d{j}}}{{Ab{{A`{ln}}}}}}``{{{d{h}}ln}Ad}{{{d{Af}}}{{d{{Aj{Ah}}}}}}```{{{d{h}}l}Al}{{{d{Af}}l}Al}{{{d{An}}ln}{{B`{{A`{lnln}}}}}}{{{d{An}}ln}{{B`{{A`{ln}}}}}}{{{d{Bb}}ln}{{B`{{A`{Bd{A`{ln}}{A`{ln}}}}}}}}`{{{d{h}}l}n}{{{d{Bf}}ll}n}{{{d{Bh}}ll}n}`````{{{d{Af}}l}n}{{{d{Af}}}{{d{Bj}}}}`{{{d{Af}}ln}{{Ab{n}}}}{{{d{Bb}}l}{{B`{{B`{{A`{Bd{A`{ln}}{A`{ln}}}}}}}}}}{{{d{Bb}}l}{{B`{n}}}}````{{{d{Bl}}}{{d{Bn}}}}`{{{d{C`}}}{{A`{{Cb{n}}{Cb{{B`{Ad}}}}{`{{Ch{{d{j}}}{{Cd{{Cf{{A`{ln}}}}}}}}}}}}}}```{{{d{Bh}}CjBdlnlCll}Al}{{{d{h}}CjBdlnln}Al}{{{d{Bf}}CjBdlnlnl}Al}{{{d{Bh}}CjBdlnlnl}Al}{{{d{Bh}}CjBdlCllnl}Al}{{{d{Bh}}CjBdlCllCll}Al}````<;`{{{d{h}}}Cn}{{{d{Af}}}Cn}``{{{d{Af}}ln}Ad}{{{d{Af}}ln}{{A`{AdBd}}}}{{{d{D`}}}Db}```````````{{{d{b}}}{{d{f}}}}````````````````````````````````````````````{{{d{f}}CjBdlCll{d{c}}}Al{}}1{{{d{f}}}{{d{f}}}}{{{d{f}}ln}{{d{Dd}}}}{{{d{f}}{d{j}}}{{Ab{{A`{ln}}}}}}{{{d{f}}{d{Dd}}}n}`{{{d{f}}ln}Ad}`{{{d{f}}BdBd}{{A`{ln}}}}`{{{d{c}}}{{d{e}}}{}{}}00{{{d{Dfc}}}{{d{Dfe}}}{}{}}00{{{d{Dd}}}Dd}{{{d{c}}{d{Dfe}}}Al{}{}}{{{d{c}}}Al{}}{{{d{f}}l}Al}{{{d{f}}ln}{{B`{{A`{lnln}}}}}}{{{d{f}}ln}{{B`{{A`{ln}}}}}}{{{d{f}}ln}{{B`{{A`{Bd{A`{ln}}{A`{ln}}}}}}}}00{{{d{f}}}{{B`{{A`{Adln}}}}}}`{n{{d{c}}}{}}00{n{{d{Dfc}}}{}}00{{{d{f}}l}n}{{{d{c}}ll}n{}}{{{d{f}}ll}n}1{nAl}00{{{d{f}}l{d{Dfc}}}{{Dh{e}}}Dj{}}{{{d{c}}}Dl{}}{{{d{f}}{d{c}}{d{Dfe}}}{{Dh{Al}}}{}Dn}{{{d{Dd}}{d{Dd}}}Dl}{{{d{c}}{d{e}}}Dl{}{}}000`{{{d{Dd}}Cn}Bd}`{{{d{Dfc}}}Al{}}{{{d{f}}{d{DfE`}}}Eb}{{{d{Dd}}{d{DfE`}}}Eb}0{{{d{Ed}}{d{DfE`}}}Eb}{cc{}}00{{{d{f}}l}Al}00000{{{d{f}}{d{{Eh{{B`{Ef}}}}}}lln}Ef}10{{{d{f}}l}{{B`{{B`{{A`{Bd{A`{ln}}{A`{ln}}}}}}}}}}{{{d{f}}ln}Ad}{{{d{f}}l}{{B`{n}}}}{{{d{f}}}Dl}`{{{d{Dd}}{d{Dfc}}}AlEj}{{}n}00{ce{}{}}00{{{d{Dd}}}{{`{{En{}{{El{Ed}}}}}}}}{{{d{f}}}Bd}{{{d{f}}CjBd{d{DfDd}}l}Al}{{{d{f}}Cj{d{DfDd}}lllDl}Al}{{{d{f}}CjBd{d{DfDd}}lllDl}Al}`{{{d{c}}CjBdlnlCll}Al{}}0{{{d{f}}CjBdlnln}Al}{{{d{c}}CjBdlnlnl}Al{}}{{{d{f}}CjBdlnlnl}Al}1{{{d{c}}CjBdlCllnl}Al{}}0{{{d{c}}CjBdlCllCll}Al{}}02{{CnDl}f}{{{d{f}}l}c{}}``{{{d{f}}}n}{{{d{f}}}{{d{j}}}}{{{d{f}}}Cn}`{{{d{f}}}l}{{{d{Df{B`{c}}}}F`}Al{}}{{{d{f}}{d{Dfc}}Bdlnln}Al{}}{{{d{f}}{d{DfDd}}BdBd}n}{{{d{c}}}e{}{}}{{{d{c}}}Ad{}}0{{{d{f}}{d{Dd}}}{{Ab{n}}}}{c{{Fb{e}}}{}{}}00000{{{d{c}}}Fd{}}00`{ce{}{}}00````{{{d{h}}{d{j}}}{{Ab{{A`{ln}}}}}}{{{d{h}}ln}Ad}{{{d{h}}l}Al}{{{d{Bb}}ln}{{B`{{A`{Bd{A`{ln}}{A`{ln}}}}}}}}{{{d{h}}}{{B`{{A`{Adln}}}}}}0{{{d{h}}l}n}{{{d{Bf}}ll}n}{{{d{Bh}}ll}n}{{{d{h}}lCl}Ad}0{{{d{Bb}}l}{{B`{{B`{{A`{Bd{A`{ln}}{A`{ln}}}}}}}}}}{{{d{Bb}}ln}Ad}0{{{d{Bb}}l}{{B`{n}}}}{{{d{h}}}Bd}0{{{d{h}}CjBdlnlCl}Al}0{{{d{Bh}}CjBdlnlCll}Al}{{{d{Bf}}CjBdlnlCll}Al}0{{{d{h}}CjBdlnln}Al}{{{d{Bf}}CjBdlnlnl}Al}{{{d{Bh}}CjBdlnlnl}Al}{{{d{h}}CjBdlClln}Al}0{{{d{Bh}}CjBdlCllnl}Al}{{{d{Bf}}CjBdlCllnl}Al}0{{{d{h}}CjBdlCllCl}Al}0{{{d{Bh}}CjBdlCllCll}Al}{{{d{Bf}}CjBdlCllCll}Al}0{{{d{h}}}{{d{j}}}}0{{{d{h}}}Cn}`{{{d{An}}ln}{{B`{{A`{lnln}}}}}}{{{d{An}}ln}{{B`{{A`{ln}}}}}}`````{{{d{Bj}}ln}Al}{{CnBdBdBdBdBd}Bd}{{{d{c}}}{{d{e}}}{}{}}0{{{d{Dfc}}}{{d{Dfe}}}{}{}}0{n{{d{c}}}{}}0{n{{d{Dfc}}}{}}0{nAl}0{cc{}}0{{{d{Bj}}ln}n}`{{{d{Bj}}l}n}0`{{CnDll}{{B`{{A`{BdBdBd}}}}}}{{}n}0`{{{d{Bj}}n}{{A`{ln}}}}{ce{}{}}00{c{{A`{eg}}}{}{}{}}0{CnBj}{{lBd{d{{Eh{l}}}}}Ff}{{{d{DfFf}}}{{Ab{c}}}{}}``{{{d{Bj}}l}{{d{{B`{Ef}}}}}}````{{{d{DfFf}}}Dl}{Cn{{d{{Eh{l}}}}}}{c{{Fb{e}}}{}{}}000{{{d{c}}}Fd{}}0992`{{{d{Fh}}{d{j}}}{{Ab{{A`{ln}}}}}}{{{d{Fh}}ln}Ad}{{{d{c}}}{{d{e}}}{}{}}{{{d{Dfc}}}{{d{Dfe}}}{}{}}{{{d{Fh}}l}Al}{{{d{Fh}}ln}{{B`{{A`{lnln}}}}}}{{{d{Fh}}ln}{{B`{{A`{ln}}}}}}{{{d{Fh}}}{{B`{{A`{Adln}}}}}}{n{{d{c}}}{}}{n{{d{Dfc}}}{}}{{{d{Fh}}l}n}{{{d{c}}ll}n{}}{nAl}{{{d{Fh}}lCl}Ad}{{{d{Fh}}{d{DfE`}}}Eb}{cc{}}{{}n}{ce{}{}}{{{d{c}}CjBdlnlCll}Al{}}{{{d{Fh}}CjBdlnln}Al}{{{d{c}}CjBdlnlnl}Al{}}{{{d{c}}CjBdlCllnl}Al{}}{{{d{c}}CjBdlCllCll}Al{}}{CnFh}{{{d{Fh}}}Cn}`{{{d{c}}}Ad{}}{c{{Fb{e}}}{}{}}0{{{d{c}}}Fd{}}:````````````{{{d{Bn}}CjBdlCll{d{c}}}Al{}}`{{{d{Bn}}ln}{{d{Fj}}}}{{{d{Bn}}{d{j}}}{{Ab{{A`{ln}}}}}}{{{d{Bn}}{d{Fj}}}n}`{{{d{Bn}}ln}Ad}`{{{d{Bn}}BdFl}{{A`{ln}}}}{{{d{c}}}{{d{e}}}{}{}}00000{{{d{Dfc}}}{{d{Dfe}}}{}{}}00000{{{d{Fj}}}Fj}{{{d{c}}{d{Dfe}}}Al{}{}}{{{d{Fj}}{d{DfFj}}}Al}{{{d{c}}}Al{}}``{{{d{Bn}}l}Al}{{{d{DfFj}}Cn}Al}1{{{d{Bn}}ln}{{B`{{A`{lnln}}}}}}{{{d{Bn}}ln}{{B`{{A`{ln}}}}}}{{{d{Bn}}ln}{{B`{{A`{Bd{A`{ln}}{A`{ln}}}}}}}}00{{}Fn}{{}Fj}{{}G`}{{}Gb}{{{d{Bn}}}{{B`{{A`{Adln}}}}}}`{n{{d{c}}}{}}00000{n{{d{Dfc}}}{}}00000{c{{Fb{Fn}}}Gd}```{{{d{Bn}}l}n}{{{d{c}}ll}n{}}0{{{d{Bn}}ll}n}{nAl}00000{{{d{Bn}}l{d{Dfc}}}{{Dh{e}}}Dj{}}{{{d{c}}}Dl{}}{{{d{Bn}}{d{c}}{d{Dfe}}}{{Dh{Al}}}{}Dn}{{{d{Fn}}{d{Fn}}}Dl}{{{d{Fj}}{d{Fj}}}Dl}{{{d{c}}{d{e}}}Dl{}{}}0000000{{{d{Fj}}Cn}Bd}`{{{d{Dfc}}}Al{}}{{{d{Bn}}{d{DfE`}}}Eb}{{{d{Fn}}{d{DfE`}}}Eb}{{{d{Fj}}{d{DfE`}}}Eb}0{{{d{G`}}{d{DfE`}}}Eb}0{cc{}}00000{{Gfl}Fj}{{{d{Bn}}l}Al}00{{{d{Bn}}l}{{B`{{B`{{A`{Bd{A`{ln}}{A`{ln}}}}}}}}}}{{{d{Bn}}ln}Ad}{{{d{Bn}}l}{{B`{n}}}}{{{d{Bn}}}Dl}`{{{d{Fn}}n}Fl}{{{d{Fj}}{d{Dfc}}}AlEj}{{{d{DfGf}}{d{{Eh{Fl}}}}}Dl}{{{d{G`}}n}{{d{c}}}{}}{{{d{DfG`}}n}{{d{Dfc}}}{}}{{}n}00000``{ce{}{}}00000{GhGb}1{{{d{Fn}}Dl}Dl}{{{d{Fn}}}Dl}0`{{{d{Bn}}}Bd}{{{d{Bl}}}{{d{Bn}}}}{{{d{Bn}}}{{d{Bn}}}}`{{{d{Bn}}CjBd{d{Fj}}{d{Fj}}}Al}{{{d{Bn}}CjBd{d{Fj}}lCl}Al}{{{d{Bn}}CjBd{d{Fj}}lClGb}Gb}{{{d{Bn}}CjBdlnlCl}Al}{{{d{c}}CjBdlnlCll}Al{}}0{{{d{Bn}}CjBdlnln}Al}{{{d{Bn}}CjBdlnlnl}Al}{{{d{c}}CjBdlnlnl}Al{}}0{{{d{c}}CjBdlCllnl}Al{}}0{{{d{Bn}}CjBdlCllCl}Al}{{{d{c}}CjBdlCllCll}Al{}}0{{{d{Bn}}{d{Fj}}Bd}{{B`{{A`{BdFj}}}}}}{{{d{Bn}}CjBd{d{Fj}}{d{Fj}}lGb}Gb}{{CnDl}Bn}{{Cn{d{Gf}}{d{Gf}}GbBdl}Gh}{{{d{Bn}}l}c{}}{{CnFnDl}Bn}{{{d{DfGh}}}{{Ab{Bd}}}}{{{d{Gh}}FlFlFl}Fl}`````{{{d{Bn}}}n}{{{d{Bn}}l}{{d{{Eh{Gf}}}}}}`{{{d{Bn}}}{{d{j}}}}{{{d{Bn}}}Cn}{{{d{Gh}}}Cn}{{{d{Bn}}}{{d{Fn}}}}`{{{d{Bn}}}l}``{{}Bd}`{{{d{DfG`}}nn}Al}`{{{d{Fn}}c}FbGj}{{{d{Bn}}{d{Dfc}}Bdlnln}Al{}}{{{d{c}}}e{}{}}{{{d{c}}}Ad{}}00`{{{d{Bn}}{d{Fj}}}{{Ab{n}}}}{{{d{Bn}}BdFl}{{Ab{{A`{ln}}}}}}{c{{Fb{e}}}{}{}}00000000000{{{d{c}}}Fd{}}00000`{{{d{DfGh}}}Dl}{ce{}{}}00000{{nn}G`}{nGb}{cAl{{Gl{Gb}{{Cd{Gb}}}}}}`````{{{d{{H`{}{{Gn{c}}}}}}CjBdlCll{d{c}}}Al{HbHd}}{{{d{Bn}}{d{Fj}}nnc}Al{{Gl{{d{Ef}}}}}}{{{d{Bn}}{d{Fj}}nn}Ef}{{{d{c}}}{{d{e}}}{}{}}{{{d{Dfc}}}{{d{Dfe}}}{}{}}`{n{{d{c}}}{}}{n{{d{Dfc}}}{}}{nAl}{{{d{{H`{}{{Gn{c}}}}}}l{d{Dfe}}}{{Dh{c}}}{HbHd}Dj}{{{d{c}}}Dl{}}{{{d{{H`{}{{Gn{c}}}}}}{d{c}}{d{Dfe}}}{{Dh{Al}}}{HbHd}Dn}{{{d{Dfc}}}Al{}}0{cc{}}{{}n}{ce{}{}}{{{d{{H`{}{{Gn{c}}}}}}l}c{HbHd}}`{{{d{{H`{}{{Gn{c}}}}}}}n{HbHd}}{{{d{{H`{}{{Gn{c}}}}}}{d{Dfc}}BdlCllCl}Al{HbHd}}0{{{d{{H`{}{{Gn{c}}}}}}{d{Dfc}}Bdlnln}Al{HbHd}}`{c{{Fb{e}}}{}{}}0`{{{d{c}}}Fd{}}`6````{{{d{Af}}}{{d{{Aj{Ah}}}}}}{{{d{c}}}{{d{e}}}{}{}}0{{{d{Dfc}}}{{d{Dfe}}}{}{}}0{{{d{Hf}}}Hf}{{{d{c}}{d{Dfe}}}Al{}{}}{{{d{c}}}Al{}}{{{d{Af}}l}Al}00{{}Ah}`{n{{d{c}}}{}}0{n{{d{Dfc}}}{}}0{nAl}0{{{d{Hf}}{d{Hf}}}Dl}{{{d{c}}{d{e}}}Dl{}{}}000`{{{d{Af}}l}n}{{{d{Af}}}{{d{Bj}}}}{{{d{Hf}}{d{DfE`}}}Eb}0{{{d{Af}}{d{DfEf}}{d{Ef}}}Al}0{{{d{Af}}ln}{{Ab{n}}}}{cc{}}0{{{d{Hf}}{d{Dfc}}}AlEj}{{{d{Af}}ln}{{d{Hf}}}}0`{{}n}0{ce{}{}}0{{{d{Af}}}l}000{{{d{Af}}{d{Hf}}}n}0`{{{d{Af}}{d{DfEf}}Bd{d{Hf}}l{d{Ef}}}Al}0{{{d{Af}}{d{DfHf}}{d{Hf}}}{{Ab{Bd}}}}0{{{d{Af}}{d{DfEf}}Bdl{d{Ef}}{d{Hf}}}Al}0{{{d{Af}}{d{DfEf}}Bdl{d{Ef}}l{d{Ef}}}Al}0{CnHf}{{}Ah}`{{{d{Af}}l}n}{{{d{Af}}}{{d{Bj}}}}{{{d{Af}}}Cn}{{{d{Af}}ln}Ad}{{{d{Af}}ln}{{A`{AdBd}}}}{{{d{Af}}{d{DfHf}}l}Al}0{{{d{c}}}e{}{}}{{{d{c}}}Ad{}}{c{{Fb{e}}}{}{}}000{{{d{c}}}Fd{}}0`{ce{}{}}0```````````{{{d{Hh}}CjBdlCll{d{c}}}Al{}}{{{d{c}}}{{d{f}}}{}}`{{{d{Hh}}{d{j}}}{{Ab{{A`{ln}}}}}}{{{d{Hh}}ln}Ad}{{{d{c}}}{{d{e}}}{}{}}000{{{d{Dfc}}}{{d{Dfe}}}{}{}}000{{{d{Hj}}}Hj}{{{d{c}}{d{Dfe}}}Al{}{}}{{{d{c}}}Al{}}0{{{d{Hh}}l}Al}{{{d{Hh}}ln}{{B`{{A`{lnln}}}}}}{{{d{Hh}}ln}{{B`{{A`{ln}}}}}}{{{d{Hh}}ln}{{B`{{A`{Bd{A`{ln}}{A`{ln}}}}}}}}{{{d{Hh}}}{{B`{{A`{Adln}}}}}}{n{{d{c}}}{}}000{n{{d{Dfc}}}{}}000{c{{Fb{Hl}}}Gd}{{{d{Hh}}l}n}{{{d{Hh}}ll}n}{{{d{c}}ll}n{}}0`{nAl}000{{{d{Hh}}l{d{Dfc}}}{{Dh{e}}}Dj{}}{{{d{c}}}Dl{}}{{{d{Hh}}{d{c}}{d{Dfe}}}{{Dh{Al}}}{}Dn}{{{d{Hh}}lCl}Ad}{{{d{Hj}}{d{Hj}}}Dl}{{{d{c}}{d{e}}}Dl{}{}}000{{{d{Dfc}}}Al{}}{{{d{Hh}}{d{DfE`}}}Eb}{{{d{Hj}}{d{DfE`}}}Eb}0{{{d{Hl}}{d{DfE`}}}Eb}{cc{}}000{{{d{C`}}HjDl}{{Cf{Hh}}}}{{{d{j}}}{{Fb{Hjc}}}{}}{{{d{Hh}}l}{{B`{{B`{{A`{Bd{A`{ln}}{A`{ln}}}}}}}}}}{{{d{Hh}}ln}Ad}{{{d{Hh}}l}{{B`{n}}}}{{}n}000{ce{}{}}000{{{d{Hh}}}Bd}{{{d{c}}}{{d{Bn}}}{}}{{{d{Hh}}CjBdlnlCl}Al}{{{d{c}}CjBdlnlCll}Al{}}0{{{d{Hh}}CjBdlnlCll}Al}{{{d{Hh}}CjBdlnln}Al}{{{d{c}}CjBdlnlnl}Al{}}{{{d{Hh}}CjBdlnlnl}Al}1{{{d{Hh}}CjBdlClln}Al}{{{d{c}}CjBdlCllnl}Al{}}0{{{d{Hh}}CjBdlCllnl}Al}{{{d{Hh}}CjBdlCllCl}Al}{{{d{Hh}}CjBdlCllCll}Al}{{{d{c}}CjBdlCllCll}Al{}}0{{{d{Hh}}l}c{}}`{{{d{Hh}}}n}{{{d{Hh}}}{{d{j}}}}{{{d{Hh}}}Cn}`{{{d{Hh}}{d{Dfc}}BdlCllCl}Al{}}{{{d{Hh}}{d{Dfc}}Bdlnln}Al{}}{{{d{D`}}}Db}{{{d{Hh}}}Db}{{{d{c}}}e{}{}}{{{d{c}}}Ad{}}0{c{{Fb{e}}}{}{}}0{{{d{j}}}{{Fb{Hjc}}}{}}111{{{d{Hh}}}{{Fb{{d{Bn}}c}}}{}}2{{{d{Hh}}}{{Fb{{d{f}}c}}}{}}33{{{d{c}}}Fd{}}000{ce{}{}}000```{{CnBdBdBdBdBd}Bd}``{{CnDll}{{B`{{A`{BdBdBd}}}}}}```````{Cn{{d{{Eh{l}}}}}}0```````````````````````{{{d{Bl}}}{{d{Bn}}}}```````````````````````````````{{{d{{I`{}{{Hn{c}}}}}}CjBdlnln}Alh}`{{{d{{I`{}{{Hn{c}}}}}}}{{Ib{c}}}h}`````````{{{d{{I`{}{{Hn{c}}}}}}ln}Adh}`````{{{d{{I`{}{{Hn{c}}}}}}l}nh}``````````````````````````{{{d{{I`{}{{Hn{c}}}}}}}lh}`0````````````````````````````````{{{Ib{c}}l}Id{}}``{{{d{If}}CjBdlnCl}Al}```{{{d{c}}}{{d{e}}}{}{}}0{{{d{Dfc}}}{{d{Dfe}}}{}{}}0{n{{d{c}}}{}}0{n{{d{Dfc}}}{}}0{nAl}0{{{d{Ih}}{d{DfE`}}}Eb}{{{d{If}}{d{DfE`}}}Eb}{cc{}}0{{{d{If}}lnn}n}``{{{d{If}}ln}{{Ij{n}}}}{{{d{If}}n}{{d{Ih}}}}{{}n}0{ce{}{}}0{{{d{{Cb{{B`{n}}}}}}}If}{{{d{If}}}n}{c{{Fb{e}}}{}{}}000{{{d{c}}}Fd{}}044`{{{d{{Il{c}}}}CjBdlnln}Alh}{{{d{{Il{c}}}}lnln}{{d{Ef}}}h}{{{d{Df{Il{c}}}}lnln}{{d{DfEf}}}h}`{{{d{{Il{c}}}}}C`Bb}{{{d{Df{Il{c}}}}lAd}Alh}{{{d{{Il{c}}}}}{{Ib{e}}}h{}}`{{{d{{Ib{c}}}}{d{{Cb{n}}}}}{{Cb{{Cb{{B`{{B`{Ef}}}}}}}}}h}{{{d{{Il{c}}}}ln}Adh}{{{d{c}}}{{d{e}}}{}{}}{{{d{Dfc}}}{{d{Dfe}}}{}{}}{{{d{{Il{c}}}}ll}{{Fb{AlIn}}}Bb}{{{d{{Il{c}}}}}{{Il{c}}}h}{{{d{c}}{d{Dfe}}}Al{}{}}{{{d{c}}}Al{}}{{{d{{Il{c}}}}l}Alh}{n{{d{c}}}{}}{n{{d{Dfc}}}{}}{{{d{{Il{c}}}}l}nh}{nAl}{{{d{{Il{c}}}}{d{{Il{c}}}}}Dlh}{{{d{c}}{d{e}}}Dl{}{}}000{{{d{Df{Il{c}}}}ll}AlBb}{{{d{{Il{c}}}}{d{DfE`}}}Ebh}{{{d{c}}}IlI`}{cc{}}{{{Ib{c}}{d{C`}}}{{Cf{{Il{c}}}}}Bb}``{{}n}{ce{}{}}{{{d{{Il{c}}}}}lh}{{{d{{Il{c}}}}}{{Ab{l}}}h}1`{{{Ib{c}}Ad{Cb{n}}}{{Il{c}}}h}{{{d{Df{Il{c}}}}e{d{j}}Dl}{{Cf{Al}}}Bb{{Ch{{d{j}}}{{Cd{{Cf{{A`{ln}}}}}}}}}}{{{d{Df{Il{c}}}}lnln{d{{Eh{Bd}}}}}Alh}{{{d{Df{Il{c}}}}lnAd}Alh}{{{d{{Il{c}}}}{d{j}}}{{Ab{{A`{ln}}}}}h}{{{d{{Il{c}}}}{d{{Il{c}}}}}{{Fb{AlAd}}}h}{{{d{{Il{c}}}}{d{DfC`}}}AlBb}{{{d{c}}}e{}{}}{{{d{c}}}Ad{}}{c{{Fb{e}}}{}{}}0{{{d{c}}}Fd{}}={{{Ib{c}}l}{{Il{c}}}h}``{{{d{{J`{c}}}}CjBdlnln}Alh}{{{d{Df{J`{c}}}}l{B`{Ad}}}Alh}{{{d{Df{J`{c}}}}l{B`{Ef}}}Alh}{{{d{{J`{c}}}}}{{Ib{c}}}h}{{{d{{J`{c}}}}ln}Adh}{{{d{c}}}{{d{e}}}{}{}}0{{{d{Dfc}}}{{d{Dfe}}}{}{}}0{{{d{{J`{c}}}}l}Alh}{n{{d{c}}}{}}0{n{{d{Dfc}}}{}}0{{{d{{J`{c}}}}l}nh}{nAl}0{{{d{{J`{c}}}}{d{{J`{c}}}}}Dlh}{{{d{c}}{d{e}}}Dl{}{}}000{{{d{{J`{c}}}}{d{DfE`}}}Ebh}{{{d{{J`{c}}}}ln}nh}`{cc{}}0{{{Ib{c}}{d{C`}}}{{Cf{{J`{c}}}}}h}{{{d{{J`{c}}}}ln}F`h}`{{{d{{J`{c}}}}}{{Ib{{Jb{c}}}}}h}``{{}n}0{ce{}{}}0`{{{d{{J`{c}}}}}lh}{{{d{{J`{c}}}}}{{Ab{l}}}h}1``{{{Ib{c}}Adl}{{J`{c}}}h}`{{{d{c}}}Ad{}}{c{{Fb{e}}}{}{}}000{{{d{c}}}Fd{}}066{{{Ib{c}}l}{{J`{c}}}h}``````{{{d{{Jd{c}}}}CjBdlnlCl}AlBh}{{{d{{Jd{c}}}}CjBdlnln}AlBh}{{{d{{Jd{c}}}}ln{Ab{{B`{Ad}}}}}AlBh}{{{d{{Jd{c}}}}}{{Ib{c}}}Bh}``````{{{d{{Jd{c}}}}ln}AdBh}{{{d{c}}}{{d{e}}}{}{}}000{{{d{Dfc}}}{{d{Dfe}}}{}{}}000{{{d{Jf}}}Jf}{{{d{c}}{d{Dfe}}}Al{}{}}{{{d{c}}}Al{}}{{{d{{Jd{c}}}}l}AlBh}`{n{{d{c}}}{}}000{n{{d{Dfc}}}{}}000{{{d{{Jd{c}}}}l}nBh}{nAl}000`4{{{d{{Jd{c}}}}{d{DfE`}}}EbBh}{{{d{Jf}}{d{DfE`}}}Eb}{cc{}}000`````{{{d{{Jd{c}}}}}{{d{{Jh{{B`{Ad}}}}}}}Bh}`````{{{d{{Jd{c}}}}lln}nBh}```{{{d{{Jd{c}}}}ln}{{d{Jf}}}Bh}{{}n}000{{{d{{Jd{c}}}}ln}nBh}{ce{}{}}0000{{{d{{Jd{c}}}}{Jj{l}}}{{`{{En{}{{El{Jl}}}}}}}Bh}{{{d{{Jd{c}}}}l}{{`{{En{}{{El{{A`{ln}}}}}}}}}Bh}{{{d{{Jd{c}}}}lCl}{{`{{En{}{{El{{A`{lnlCl}}}}}}}}}Bh}{{{d{{Jd{c}}}}}lBh}{{{d{{Jd{c}}}}}{{Ab{l}}}Bh}1```````{{{Ib{c}}Adl}{{Jd{c}}}Bh}{{{d{Df{Jn{ce}}}}}{{Ab{g}}}Bh{{En{}{{El{l}}}}}{}}```{{{d{{Jd{c}}}}l}nBh}``{{{d{{Jd{c}}}}lnln}nBh}`{{{d{{Jd{c}}}}llnCl}ClBh}`{{{d{c}}}e{}{}}{{{d{c}}}Ad{}}{c{{Fb{e}}}{}{}}0000000{{{d{c}}}Fd{}}000>>>>{{{Ib{c}}l}{{Jd{c}}}Bh}`{{{d{{K`{c}}}}CjBdlnln}AlI`}{{{d{{K`{c}}}}}{{Ib{e}}}I`{}}`{{{d{{K`{c}}}}ln}AdI`}`{{{d{c}}}{{d{e}}}{}{}}{{{d{Dfc}}}{{d{Dfe}}}{}{}}{{{d{{K`{c}}}}l}AlI`}{n{{d{c}}}{}}{n{{d{Dfc}}}{}}{{{d{{K`{c}}}}l}nI`}{nAl}{{{d{{K`{c}}}}{d{DfE`}}}EbI`}{cc{}}{{}n}{ce{}{}}{{{d{{K`{c}}}}}lI`}0{{{Ib{Jb}}{Ib{c}}}{{K`{c}}}I`}{{{d{{K`{c}}}}}{{Ib{Jb}}}I`}`{{{d{{K`{c}}}}}{{Ib{c}}}I`}`{{{d{c}}}Ad{}}{c{{Fb{e}}}{}{}}0{{{d{c}}}Fd{}}7`````````````{{{d{{Kf{}{{Kb{c}}{Kd{e}}}}}}CjBdlCl}AlI`{{I`{}{{Hn{}}}}}}{{{d{{Kf{}{{Kb{c}}{Kd{e}}}}}}CjlCl}DlI`{{I`{}{{Hn{}}}}}}{{{d{{Kf{}{{Kb{c}}{Kd{e}}}}}}CjBdln}AlI`{{I`{}{{Hn{}}}}}}{{{d{{Kf{}{{Kb{c}}{Kd{e}}}}}}l}{{A`{KhKhKj}}}I`{{I`{}{{Hn{}}}}}}{{{d{{Kf{}{{Kb{c}}{Kd{e}}}}}}l}AlI`{{I`{}{{Hn{}}}}}}{{{d{{Kf{}{{Kb{c}}{Kd{e}}}}}}}lI`{{I`{}{{Hn{}}}}}}``````````{{{d{{Kf{}{{Kb{c}}{Kd{e}}}}}}Kll}AlI`{{I`{}{{Hn{}}}}}}{{{d{{Kf{}{{Kb{c}}{Kd{e}}}}}}l{d{{Eh{n}}}}}KnI`{{I`{}{{Hn{}}}}}}`{{{Ib{c}}}L`I`}{{{d{{Kf{}{{Kb{c}}{Kd{e}}}}}}l}{{Ab{{d{Kh}}}}}I`{{I`{}{{Hn{}}}}}}`````0```````4``````{{{d{{Kf{}{{Kb{c}}{Kd{e}}}}}}}CnI`{{I`{}{{Hn{}}}}}}{{{d{{Kf{}{{Kb{c}}{Kd{e}}}}}}l}{{Ab{{d{Kj}}}}}I`{{I`{}{{Hn{}}}}}}````````{{{d{{Kf{}{{Kb{c}}{Kd{e}}}}}}}{{Ib{c}}}I`{{I`{}{{Hn{}}}}}}```````{{{d{{Kf{}{{Kb{c}}{Kd{e}}}}}}}{{Ib{e}}}I`{{I`{}{{Hn{}}}}}}``````{{{Ib{c}}{Ib{e}}l}LbI`{{I`{}{{Hn{}}}}}}```{{{d{{Ld{c}}}}lCl}AlI`}{{{d{{Ld{c}}}}lKl}AlI`}{{{d{{Ld{c}}}}l{B`{Ef}}}AlI`}{{{d{{Ld{c}}}}l{B`{Ef}}}{{Ij{l}}}I`}{{{d{{Ld{c}}}}CjBdln}AlI`}{{{d{{Ld{c}}}}{d{DfEf}}Bdln}AlI`}{{{d{c}}}{{d{e}}}{}{}}{{{d{Dfc}}}{{d{Dfe}}}{}{}}{{{d{{Ld{c}}}}l}AlI`}{{{d{{Ld{c}}}}}lI`}0```{n{{d{c}}}{}}{n{{d{Dfc}}}{}}{{{d{{Ld{c}}}}l}LfI`}{nAl}5{cc{}}{{{d{{Ld{{Jd{c}}}}}}l}{{B`{{B`{Bd}}}}}Bh}{{{d{{Ld{c}}}}l}{{Ab{{d{Kh}}}}}I`}```{{}n}{ce{}{}}2```9```{{{Ib{Jd}}{Ib{c}}l}{{Ld{c}}}I`}:{{{d{{Ld{c}}}}}{{B`{l}}}I`}{{{d{{Ld{c}}}}ln}{{d{Ef}}}I`}```{{{d{{Ld{c}}}}l}{{Ab{{d{Kj}}}}}I`}```{{{d{{Ld{c}}}}l{Ab{Kh}}}AlI`}0{{{d{{Ld{c}}}}l{Ab{Kj}}}AlI`}{{{d{{Ld{c}}}}}{{Ib{e}}}I`{}}```0```{c{{Fb{e}}}{}{}}0{{{d{c}}}Fd{}}98`{{{d{{Lh{ce}}}}CjBdln}AlI`{{I`{}{{Hn{}}}}}}{{{d{c}}}{{d{e}}}{}{}}{{{d{Dfc}}}{{d{Dfe}}}{}{}}{{{d{{Lh{ce}}}}}{{Lh{ce}}}I`{{I`{}{{Hn{}}}}}}{{{d{c}}{d{Dfe}}}Al{}{}}{{{d{c}}}Al{}}{{{d{{Lh{ce}}}}l}AlI`{{I`{}{{Hn{}}}}}}{{{d{{Lh{ce}}}}}lI`{{I`{}{{Hn{}}}}}}`{n{{d{c}}}{}}{n{{d{Dfc}}}{}}{nAl}{{{d{i}}}{{Lh{eg}}}h{{I`{}{{Hn{c}}}}}{{I`{}{{Hn{c}}}}}{{Kf{}{{Kb{e}}{Kd{g}}}}}}{cc{}}{{{Ib{e}}{Ib{g}}l{Cb{Kn}}}{{Lh{eg}}}h{{I`{}{{Hn{c}}}}}{{I`{}{{Hn{c}}}}}}{{{Ib{c}}}{{Lh{cc}}}I`}{{{d{{Lh{ce}}}}l}{{Ab{{d{Kh}}}}}I`{{I`{}{{Hn{}}}}}}`{{}n}{ce{}{}}2``{{{Ib{e}}{Ib{g}}l}{{Lh{eg}}}h{{I`{}{{Hn{c}}}}}{{I`{}{{Hn{c}}}}}}{{{d{{Lh{ce}}}}l}{{Ab{{d{Kj}}}}}I`{{I`{}{{Hn{}}}}}}`{{{Lh{eg}}{Ib{i}}}{{Lh{ig}}}h{{I`{}{{Hn{c}}}}}{{I`{}{{Hn{c}}}}}{{I`{}{{Hn{c}}}}}}{{{Lh{eg}}{Ib{i}}}{{Lh{ei}}}h{{I`{}{{Hn{c}}}}}{{I`{}{{Hn{c}}}}}{{I`{}{{Hn{c}}}}}}{{{d{{Lh{ce}}}}}{{Ib{g}}}I`{{I`{}{{Hn{}}}}}{}}`0`{{{d{c}}}e{}{}}{c{{Fb{e}}}{}{}}0{{{d{c}}}Fd{}}8{{{Ib{c}}{Ib{e}}l}{{Lh{ce}}}I`{{I`{}{{Hn{}}}}}}`{{{d{{Lj{ce}}}}CjBdln}AlI`{{I`{}{{Hn{}}}}}}{{{d{c}}}{{d{e}}}{}{}}{{{d{Dfc}}}{{d{Dfe}}}{}{}}{{{d{{Lj{ce}}}}}lI`{{I`{}{{Hn{}}}}}}`{n{{d{c}}}{}}{n{{d{Dfc}}}{}}{nAl}{cc{}}{{}n}{ce{}{}}{{{Ib{c}}{Ib{e}}l}{{Lj{ce}}}I`{{I`{}{{Hn{}}}}}}{{{d{{Lj{ce}}}}}{{Ib{g}}}I`{{I`{}{{Hn{}}}}}{}}`0`>>=21`{{{d{{Ll{c}}}}CjBdln}AlI`};:{{{d{{Ll{c}}}}l}AlI`}{{{d{{Ll{c}}}}}lI`}:987{{{d{{Ll{c}}}}l}{{Ab{{d{Kh}}}}}I`}`760``1{{{Ib{{K`{c}}}}{Ib{{K`{c}}}}{Ib{{Ln{Jb}}}}}{{Ll{c}}}I`}{{{d{{Ll{c}}}}l}{{Ab{{d{Kj}}}}}I`}`{{{d{{Ll{c}}}}}{{Ib{e}}}I`{}}`0`{c{{Fb{e}}}{}{}}0{{{d{c}}}Fd{}};``{{{d{{M`{c}}}}CjBdln}AlKf}{{{d{{Mb{c}}}}CjBdln}AlKf}{{{d{c}}}{{d{e}}}{}{}}0{{{d{Dfc}}}{{d{Dfe}}}{}{}}0{{{d{{M`{c}}}}}lKf}{{{d{{Mb{c}}}}}lKf}{n{{d{c}}}{}}0{n{{d{Dfc}}}{}}0{nAl}0``{cc{}}0{{}n}0{ce{}{}}0{{{Ib{c}}{Ib{Md}}{Ib{Md}}}{{M`{c}}}Kf}{{{Ib{c}}{Ib{Md}}}{{Mb{c}}}Kf}``{{{d{{M`{c}}}}}{{Ib{e}}}Kf{}}{{{d{{Mb{c}}}}}{{Ib{e}}}Kf{}}`10{c{{Fb{e}}}{}{}}000{{{d{c}}}Fd{}}066```{{{d{{I`{}{{Hn{c}}}}}}CjBdlnlCl}Alh}0{{{d{{I`{}{{Hn{c}}}}}}CjBdlCllCl}Alh}0{{{d{{I`{}{{Hn{c}}}}}}CjBdlClln}Alh}0{{{d{{I`{}{{Hn{c}}}}}}CjBdlnln}Alh}{{{d{{I`{}{{Hn{c}}}}}}}{{Ib{c}}}h}{{{d{{I`{}{{Hn{c}}}}}}ln}Adh}{{{d{c}}}{{d{e}}}{}{}}{{{d{Dfc}}}{{d{Dfe}}}{}{}}{{{d{{I`{}{{Hn{c}}}}}}l}Alh}0{n{{d{c}}}{}}{n{{d{Dfc}}}{}}{{{d{{I`{}{{Hn{c}}}}}}l}nh}{nAl}{{{d{{I`{}{{Hn{c}}}}}}lCl}Adh}0{{{d{In}}{d{DfE`}}}Eb}0{cc{}}{{}n}{ce{}{}}{{{d{{I`{}{{Hn{c}}}}}}}Dlh}0{{{d{{I`{}{{Hn{c}}}}}}}lh}{{{d{{I`{}{{Hn{c}}}}}}}{{Ab{l}}}h}0001{{{d{{I`{}{{Hn{c}}}}}}}Cnh}0`{{{d{c}}}Ad{}}{{{d{{I`{}{{Hn{c}}}}}}}nh}0{c{{Fb{e}}}{}{}}0{{{d{c}}}Fd{}}`8`{{{d{{Md{c}}}}CjBdlnln}AlI`}0{{{d{{Md{c}}}}}{{Ib{e}}}I`{}}{{{d{{Md{c}}}}ln}AdI`}`{{{d{c}}}{{d{e}}}{}{}}{{{d{Dfc}}}{{d{Dfe}}}{}{}}{n{{d{c}}}{}}{n{{d{Dfc}}}{}}{{{d{{Md{c}}}}l}nI`}{nAl}{{{d{Df{Md{c}}}}l}AlI`}{{{d{{Md{c}}}}{d{DfE`}}}EbI`}{cc{}}{{}n}{ce{}{}}{{{d{{Md{c}}}}}lI`}{{{d{{Md{c}}}}}{{Ab{l}}}I`}1`{{{Ib{c}}l}{{Md{c}}}I`}{{{d{{Md{c}}}}lCjCl}AlI`}{{{d{Df{Md{c}}}}lCl}AlI`}9{{{d{Df{Md{c}}}}le}AlI`{{En{}{{El{n}}}}}}{{{d{Df{Md{c}}}}le}AlI`{{Mf{Cj}{{Cd{{Ab{Al}}}}}}}}{{{d{{Md{c}}}}lCj}AlI`}`{{{d{c}}}Ad{}}`{c{{Fb{e}}}{}{}}0{{{d{c}}}Fd{}};{{Ibl}{{Md{c}}}Id}``{{{d{{Mh{c}}}}CjBdlnln}Alh}{{{d{{Mh{c}}}}}{{Ib{c}}}h}`{{{d{{Mh{c}}}}ln}Adh}{{{d{c}}}{{d{e}}}{}{}}0{{{d{Dfc}}}{{d{Dfe}}}{}{}}0``{{{d{f}}lnl}Dl}{{{d{Bn}}lnl}Dl}{n{{d{c}}}{}}0{n{{d{Dfc}}}{}}0{c{{Fb{Mj}}}Gd}{{{d{{Mh{c}}}}l}nh}{nAl}0{{{d{{Mh{c}}}}{d{{Mh{c}}}}}Dlh}{{{d{c}}{d{e}}}Dl{}{}}000{{{d{{Mh{c}}}}{d{DfE`}}}Ebh}{{{d{Mj}}{d{DfE`}}}Eb}{cc{}}0{{{Ib{c}}{d{C`}}}{{Cf{{Mh{c}}}}}h}{{}n}0{ce{}{}}0``{{{d{{Mh{c}}}}}lh}{{{d{{Mh{c}}}}}{{Ab{l}}}h}``1{{{Ib{c}}l{Ab{l}}Dl}{{Mh{c}}}h}{{{d{{Mh{c}}}}{d{DfC`}}}Alh}{{{d{c}}}Ad{}}{c{{Fb{e}}}{}{}}000{{{d{c}}}Fd{}}077{{{Ib{c}}l}{{Mh{c}}}h}`{{{Ib{Hh}}{d{C`}}}{{Cf{Ml}}}}`{{{Ib{Hh}}l}Ml}1`{{{d{{Mn{c}}}}CjBdlnlCl}AlI`}{{{d{{Mn{c}}}}CjBdlCllCl}AlI`}{{{d{{Mn{c}}}}CjBdlClln}AlI`}{{{d{{Mn{c}}}}CjBdlnln}AlI`}{{{d{{Mn{c}}}}}{{Ib{e}}}I`{}}{{{d{{Mn{c}}}}ln}AdI`}{{{d{c}}}{{d{e}}}{}{}}{{{d{Dfc}}}{{d{Dfe}}}{}{}}{{{d{{Mn{c}}}}l}AlI`}{n{{d{c}}}{}}{n{{d{Dfc}}}{}}{{{d{{Mn{c}}}}l}nI`}{nAl}{{{d{{Mn{c}}}}lCl}AdI`}{{{d{{Mn{c}}}}{d{DfE`}}}EbI`}{cc{}}{{}n}`{ce{}{}}{{{d{{Mn{c}}}}}DlI`}{{{d{{Mn{c}}}}}lI`}{{{d{{Mn{c}}}}}{{Ab{l}}}I`}01{{{Ib{c}}l}{{Mn{c}}}I`}{{{d{{Mn{c}}}}}CnI`}`{{{d{c}}}Ad{}}{{{d{{Mn{c}}}}}nI`}{c{{Fb{e}}}{}{}}0{{{d{c}}}Fd{}}9{{{Ib{c}}l}{{Mn{e}}}{}Id}`{{{d{{N`{eg}}}}CjBdlnlCl}Al{hAn}{{I`{}{{Hn{c}}}}}{{I`{}{{Hn{c}}}}}}0{{{d{{N`{eg}}}}CjBdlnln}Al{hAn}{{I`{}{{Hn{c}}}}}{{I`{}{{Hn{c}}}}}}{{{d{{N`{eg}}}}}{{Ib{c}}}{hAn}{{I`{}{{Hn{c}}}}}{{I`{}{{Hn{c}}}}}}{{{d{{N`{eg}}}}ln}Ad{hAn}{{I`{}{{Hn{c}}}}}{{I`{}{{Hn{c}}}}}}`{{{d{c}}}{{d{e}}}{}{}}{{{d{Dfc}}}{{d{Dfe}}}{}{}}{{{d{{N`{eg}}}}l}Al{hAn}{{I`{}{{Hn{c}}}}}{{I`{}{{Hn{c}}}}}}{n{{d{c}}}{}}{n{{d{Dfc}}}{}}{{{d{{N`{eg}}}}l}n{hAn}{{I`{}{{Hn{c}}}}}{{I`{}{{Hn{c}}}}}}{nAl}{{{d{{N`{ce}}}}{d{DfE`}}}EbI`{{I`{}{{Hn{}}}}}}{cc{}}{{}n}{ce{}{}}`{{{d{{N`{eg}}}}}l{hAn}{{I`{}{{Hn{c}}}}}{{I`{}{{Hn{c}}}}}}{{{d{{N`{eg}}}}}{{Ab{l}}}{hAn}{{I`{}{{Hn{c}}}}}{{I`{}{{Hn{c}}}}}}1{{{Ib{e}}{Ib{g}}}{{N`{eg}}}{hAn}{{I`{}{{Hn{c}}}}}{{I`{}{{Hn{c}}}}}}{{{d{{N`{eg}}}}ll}n{hAn}{{I`{}{{Hn{c}}}}}{{I`{}{{Hn{c}}}}}}`{{{d{{N`{eg}}}}ln}l{hAn}{{I`{}{{Hn{c}}}}}{{I`{}{{Hn{c}}}}}}{{{d{c}}}Ad{}}{c{{Fb{e}}}{}{}}0{{{d{c}}}Fd{}}8{{{Ib{c}}l}{{N`{eg}}}{hAn}{{I`{}{{Hn{c}}}}Id}{{I`{}{{Hn{c}}}}Id}}`{{{Ib{c}}l}Id{}}```{{{d{{H`{}{{Gn{c}}}}}}CjBdlCll{d{c}}}Al{HbHd}}`{{{d{{H`{}{{Gn{c}}}}}}l{d{Dfe}}}{{Dh{c}}}{HbHd}Dj}{{{d{c}}}Dl{}}{{{d{{H`{}{{Gn{c}}}}}}{d{c}}{d{Dfe}}}{{Dh{Al}}}{HbHd}Dn}{{{d{{H`{}{{Gn{c}}}}}}l}c{HbHd}}`{{{d{{H`{}{{Gn{c}}}}}}}n{HbHd}}{{{d{{H`{}{{Gn{c}}}}}}{d{Dfc}}Bdlnln}Al{HbHd}}````{{{d{Nb}}{d{DfEf}}BdBd}Al}{{{d{Nb}}{d{DfEf}}Bdl{d{Ef}}}Al}{{{d{Nb}}{d{DfEf}}Bdln}Al}{{{d{c}}}{{d{e}}}{}{}}{{{d{Dfc}}}{{d{Dfe}}}{}{}}{{{d{Nb}}l}Al}{n{{d{c}}}{}}{n{{d{Dfc}}}{}}{{{d{Nb}}l}n}{nAl}{{{d{Nb}}{d{j}}}{{Cf{{A`{lEf}}}}}}0{{{d{Nb}}{Ab{l}}Nd}{{Cf{{A`{lEf}}}}}}{{{d{Nb}}{Ab{l}}Nf}{{Cf{{A`{lEf}}}}}}{{{d{Nb}}{d{j}}}{{Cf{{Nh{Ad{A`{lEf}}}}}}}}{{{d{Nb}}{d{{Eh{Nj}}}}}{{A`{lEf}}}}{cc{}}{{}n}{ce{}{}}`{{{d{Nb}}{d{DfEf}}Bdl{d{Ef}}}Al}{{{d{Nb}}{d{DfEf}}Bdln}Al}00{CnNb}{{{d{Nb}}}Cn}{c{{Fb{e}}}{}{}}0{{{d{c}}}Fd{}}6`````````````````{{{d{j}}}{{Nn{{d{j}}Nd{Nl{{d{j}}}}}}}}0{{{d{j}}}{{Nn{{d{j}}Nf{Nl{{d{j}}}}}}}}1{{{d{c}}}{{d{e}}}{}{}}00{{{d{Dfc}}}{{d{Dfe}}}{}{}}00{g{{`{{Mf{{d{j}}}{{Cd{{Nn{{d{j}}ce}}}}}}}}}{}{{O`{{d{j}}}}}{{Ob{{d{j}}ce}}}}{{{d{Nf}}}Nf}{{{d{Nd}}}Nd}{{{d{Nj}}}Nj}{{{d{c}}{d{Dfe}}}Al{}{}}00{{{d{c}}}Al{}}000{{{d{j}}}{{`{{Gl{{Od{{Nl{{d{j}}}}}}}{{Cd{Of}}}}}}}}{n{{d{c}}}{}}00{n{{d{Dfc}}}{}}00{{{d{j}}}{{Nn{{d{j}}c{Nl{{d{j}}}}}}}{OhOj}}{nAl}00{{{d{Nf}}{d{DfE`}}}Eb}{{{d{Nd}}{d{DfE`}}}Eb}{{{d{Nj}}{d{DfE`}}}Eb}{{imo}{{`{{Mf{c}{{Cd{{Nn{ckg}}}}}}}}}Ol{}{}{{Ob{ceg}}}{}{{Ob{ckg}}}{{Mf{kk}{{Cd{k}}}}}}{cc{}}00{{}n}00{ce{}{}}00{{{d{j}}}{{Nn{{d{j}}{B`{{A`{NdAd}}}}{Nl{{d{j}}}}}}}}{{{d{j}}}{{Nn{{d{j}}Ad{Nl{{d{j}}}}}}}}1{{{d{j}}}{{Nn{{d{j}}{d{j}}{Nl{{d{j}}}}}}}}{{{d{j}}}{{Cf{Nd}}}}{{{d{j}}}{{Cf{{B`{{A`{NdAd}}}}}}}}{{{d{j}}}{{Nn{{d{j}}l{Nl{{d{j}}}}}}}}{g{{`{{Mf{{d{j}}}{{Cd{{Nn{{d{j}}ce}}}}}}}}}{}{{O`{{d{j}}}}}{{Ob{{d{j}}ce}}}}{{Njl}Dd}{{{d{c}}}e{}{}}00{c{{Fb{e}}}{}{}}00000{{{d{c}}}Fd{}}00;;;","D":"BKj","p":[[10,"AdemAlgebraT",134],[1,"reference"],[5,"AdemAlgebra",134],[10,"Algebra",267],[1,"str"],[1,"i32"],[1,"usize"],[1,"tuple"],[6,"Option",1945],[5,"String",1946],[10,"PolynomialAlgebra",661],[5,"PolynomialAlgebraTableEntry",661],[5,"OnceVec",1947],[1,"unit"],[10,"Bialgebra",309],[5,"Vec",1948],[10,"GeneratedAlgebra",267],[1,"u32"],[10,"UnstableAlgebra",267],[10,"MuAlgebra",267],[5,"TruncatedPolynomialMonomialBasis",312],[10,"MilnorAlgebraT",399],[5,"MilnorAlgebra",399],[6,"Value",1949],[5,"BiVec",1950],[17,"Output"],[8,"Result",1951],[10,"Fn",1952],[6,"FpSliceMut",1953],[6,"FpSlice",1953],[5,"ValidPrime",1954],[10,"SteenrodAlgebraT",742],[6,"SteenrodAlgebraBorrow",742],[5,"AdemBasisElement",134],[0,"mut"],[8,"Result",1955],[10,"Read",1956],[1,"bool"],[10,"Write",1956],[5,"Formatter",1957],[8,"Result",1957],[6,"PorBockstein",134],[6,"FpVector",1953],[1,"slice"],[10,"Hasher",1958],[17,"Item"],[10,"Iterator",1959],[1,"isize"],[6,"Result",1960],[5,"TypeId",1961],[5,"PartitionIterator",312],[5,"Field",367],[5,"MilnorBasisElement",399],[8,"PPartEntry",399],[5,"MilnorProfile",399],[5,"Matrix2D",399],[5,"PPartAllocation",399],[10,"Deserializer",1962],[8,"PPart",399],[5,"PPartMultiplier",399],[10,"Serializer",1963],[10,"FnOnce",1952],[17,"Element"],[10,"PairAlgebra",625],[10,"Send",1964],[10,"Sync",1964],[5,"PolynomialAlgebraMonomial",661],[6,"SteenrodAlgebra",742],[6,"AlgebraType",742],[5,"AlgebraSpec",742],[17,"Algebra"],[10,"Module",1602],[5,"Arc",1965],[10,"ZeroModule",1811],[5,"BlockStructure",1026],[5,"GeneratorBasisEltPair",1026],[5,"Range",1966],[5,"FiniteDimensionalModule",1065],[5,"ModuleFailedRelationError",1602],[5,"FinitelyPresentedModule",1119],[8,"FreeModule",1176],[5,"MuFreeModule",1176],[5,"OperationGeneratorPair",1176],[5,"OnceBiVec",1947],[1,"array"],[5,"GeneratorData",1176],[5,"OffsetIterator",1176],[5,"HomModule",1297],[17,"Source"],[17,"Target"],[10,"ModuleHomomorphism",1326],[5,"Subspace",1967],[5,"QuasiInverse",1968],[5,"MatrixSliceMut",1969],[5,"Matrix",1969],[10,"IdentityHomomorphism",1326],[10,"ZeroHomomorphism",1326],[5,"MuFreeModuleHomomorphism",1406],[1,"f32"],[5,"FullModuleHomomorphism",1471],[5,"GenericZeroHomomorphism",1510],[5,"HomPullback",1532],[8,"FreeModuleHomomorphism",1406],[5,"QuotientHomomorphism",1561],[5,"QuotientHomomorphismSource",1561],[5,"QuotientModule",1648],[10,"FnMut",1952],[5,"RealProjectiveSpace",1684],[5,"RPSpec",1684],[8,"SteenrodModule",1739],[5,"SuspensionModule",1744],[5,"TensorModule",1779],[5,"SteenrodEvaluator",1827],[6,"AlgebraNode",1859],[6,"AlgebraBasisElt",1859],[5,"BTreeMap",1970],[6,"BocksteinOrSq",1859],[5,"VerboseError",1971],[8,"IResult",1972],[10,"ParseError",1971],[10,"Parser",1972],[6,"Err",1972],[5,"Error",1951],[10,"FromStr",1973],[10,"Copy",1964],[10,"Clone",1974],[5,"MilnorPairElement",625],[8,"UnstableFreeModule",1176],[5,"FPMIndexTable",1119],[8,"UnstableFreeModuleHomomorphism",1406],[8,"IResult",1859]],"r":[[1,134],[3,134],[4,267],[5,742],[6,309],[9,367],[10,267],[12,399],[14,399],[15,267],[16,661],[17,661],[18,661],[19,742],[20,742],[21,742],[22,267],[23,108],[33,108],[50,108],[57,108],[72,108],[89,134],[90,134],[91,134],[94,134],[108,134],[109,134],[110,267],[111,742],[112,309],[113,367],[114,267],[115,399],[116,399],[117,267],[118,661],[119,661],[120,661],[121,742],[122,742],[123,742],[124,267],[874,312],[875,312],[876,312],[877,312],[880,312],[888,312],[889,312],[890,367],[893,399],[894,399],[895,399],[896,399],[897,399],[898,399],[899,399],[900,399],[931,1176],[932,1176],[933,1297],[934,1602],[935,1602],[936,1176],[937,1176],[938,1648],[939,1684],[940,1739],[941,1744],[942,1779],[943,1176],[944,1811],[1326,1406],[1327,1471],[1328,1510],[1329,1532],[1332,1406],[1333,1561],[1334,1561],[1337,1406],[1740,1743],[1814,625],[1815,625]],"b":[[194,"impl-Debug-for-AdemBasisElement"],[195,"impl-Display-for-AdemBasisElement"],[496,"impl-Display-for-MilnorBasisElement"],[497,"impl-Debug-for-MilnorBasisElement"],[498,"impl-Debug-for-Matrix2D"],[499,"impl-Display-for-Matrix2D"],[691,"impl-Display-for-PolynomialAlgebraMonomial"],[692,"impl-Debug-for-PolynomialAlgebraMonomial"],[804,"impl-Display-for-AlgebraType"],[805,"impl-Debug-for-AlgebraType"],[861,"impl-TryInto%3C%26MilnorAlgebra%3E-for-%26SteenrodAlgebra"],[863,"impl-TryInto%3C%26AdemAlgebra%3E-for-%26SteenrodAlgebra"],[1418,"impl-MuFreeModuleHomomorphism%3CU,+M%3E"],[1419,"impl-ModuleHomomorphism-for-MuFreeModuleHomomorphism%3CU,+M%3E"],[1624,"impl-Debug-for-ModuleFailedRelationError"],[1625,"impl-Display-for-ModuleFailedRelationError"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAADwGwQABAAAAAwAAAAYAAAAIAAEADAADABEABgAZAAAAHwAAACIAAAAkAAAAKAAAACoACAA0AAAANwAHAEEAAABDAAEARwABAEoAAgBPAAYAVwACAF0AAQBgAAAAZQACAGkAAABsABEAfwACAIMAAACFAAEAigABAI0ABQCUAAAAlgAAAJgADwCpABwAyQAHANMABwDfAAEA4gAAAOQACgDwAAEA8wACAPcAAAD5ABIADwEAABcBAQAjAQAAJwEBADkBAQA8AQAAPgELAEwBAABOAQEAUQEEAFgBCgBkAQsAcQEOAIEBAACDAQQAiQEMAJcBAQCaAQYAogEAAKUBEgC5ATQA7wEFAPsBCgAHAgkAFwIBABoCAAAcAgMAIQIVADgCAQA7AgIAQAIFAEcCCgBTAhQAaQIGAHECAQB0AgEAegIIAIYCAACJAgAAjgIqALsCBQDDAmQALAMIADkDNQBxAwUAeAMCAHwDBgCEAwIAiQMJAJQDAQCXAwEAmgMAAJwDAgCgAwUAqAMAAKoDAACtAwYAtQMIAMADAwDFAwQAzQMFANYDCADgAwAA4gMDAOcDEwD8AwIAAAQCAAQEAAAGBA4AGAQBABwEAQAgBAsALgQYAEkEAwBOBCwAfQQHAIcEEwCcBCsAzAQBANEEBQDbBAQA5QQAAOkEEwD+BBMAEwUMACEFAAAjBQwAMQUAADMFAAA1BQcAQAUBAEUFBgBOBQ4AXgUkAIQFAACGBQYAkAUEAJcFBACdBQkAqAUXAMEFDADPBQQA1QUBANgFAgDdBRIA8QUAAPMFCQD+BQcABwYCAAsGIAAuBgEAMgYRAEUGAABIBgQATwYBAFMGAQBWBgAAWQYBAFwGAABoBggAcgYDAHcGBwCABgAAggYCAIYGBACMBgAAjgYAAJAGBQCXBhoAtAYCALkGJwDiBgEA5QYdAAQHAAAGBw8AFwcAABoHAwAfBwAAIgcDACcHAAApBwoANQcAADcHAAA5BxAASwcBAE4HEABgBxgAfAcCAIIHBgCKBw8A"}],\ ["algebra_dim",{"t":"","n":[],"q":[],"i":[],"f":"","D":"`","p":[],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OjAAAAEAAAAAAAAAEAAAAAAA"}],\ -["bivec",{"t":"FNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNN","n":["BiVec","borrow","borrow_mut","clone","clone_into","clone_to_uninit","data","default","deserialize","eq","extend","extend_negative","extend_with","fmt","from","from_vec","get","get_max","index","index_mut","into","into_iter","into_iter","into_iter","into_iter_enum","into_vec","is_empty","iter","iter_enum","iter_mut","iter_mut_enum","last","len","max_degree","min_degree","min_degree","new","push","range","reserve","serialize","split_borrow_mut","to_owned","try_from","try_into","type_id","with_capacity"],"q":[[0,"bivec"],[47,"core::clone"],[48,"core::result"],[49,"serde::de"],[50,"core::cmp"],[51,"core::iter::traits::collect"],[52,"core::ops::function"],[53,"core::fmt"],[54,"alloc::vec"],[55,"core::option"],[56,"core::iter::traits::double_ended"],[57,"core::slice::iter"],[58,"core::ops::range"],[59,"serde::ser"],[60,"core::any"]],"i":[0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3],"f":"`{{{b{c}}}{{b{e}}}{}{}}{{{b{dc}}}{{b{de}}}{}{}}{{{b{{f{c}}}}}{{f{c}}}h}{{{b{c}}{b{de}}}j{}{}}{{{b{c}}}j{}}`{{}{{f{c}}}{}}{c{{l{{f{e}}}}}nA`}{{{b{{f{c}}}}{b{{f{c}}}}}AbAd}{{{b{d{f{c}}}}e}j{}{{Ah{}{{Af{c}}}}}}{{{b{d{f{c}}}}Ajc}jh}{{{b{d{f{c}}}}Aje}j{}{{An{Aj}{{Al{c}}}}}}{{{b{{f{c}}}}{b{dB`}}}BbBd}{cc{}}{{Aj{Bf{c}}}{{f{c}}}{}}{{{b{{f{c}}}}Aj}{{Bh{{b{c}}}}}{}}{{{b{{f{c}}}}Aj}{{b{c}}}{}}0{{{b{d{f{c}}}}Aj}{{b{dc}}}{}}{ce{}{}}{{{f{c}}}e{}{}}{{{b{{f{c}}}}}e{}{}}{{{b{d{f{c}}}}}e{}{}}{{{f{c}}}{{`{{Bl{}{{Af{{Bj{Ajc}}}}}}}}}{}}{{{f{c}}}{{Bf{c}}}{}}{{{b{{f{c}}}}}Ab{}}{{{b{{f{c}}}}}{{Bn{c}}}{}}{{{b{{f{c}}}}}{{`{{Bl{}{{Af{{Bj{Aj{b{c}}}}}}}}}}}{}}{{{b{d{f{c}}}}}{{C`{c}}}{}}{{{b{d{f{c}}}}}{{`{{Bl{}{{Af{{Bj{Aj{b{dc}}}}}}}}}}}{}}{{{b{{f{c}}}}}{{Bh{{b{c}}}}}{}}{{{b{{f{c}}}}}Aj{}}00`{Aj{{f{c}}}{}}{{{b{d{f{c}}}}c}j{}}{{{b{{f{c}}}}}{{Cb{Aj}}}{}}{{{b{d{f{c}}}}Cd}j{}}{{{b{{f{c}}}}e}lCfCh}{{{b{d{f{c}}}}AjAj}{{Bj{{b{dc}}{b{dc}}}}}{}}{{{b{c}}}e{}{}}{c{{l{e}}}{}{}}0{{{b{c}}}Cj{}}{{AjAj}{{f{c}}}{}}","D":"Ab","p":[[1,"reference"],[0,"mut"],[5,"BiVec",0],[10,"Clone",47],[1,"unit"],[6,"Result",48],[10,"Deserializer",49],[10,"Deserialize",49],[1,"bool"],[10,"PartialEq",50],[17,"Item"],[10,"IntoIterator",51],[1,"i32"],[17,"Output"],[10,"FnMut",52],[5,"Formatter",53],[8,"Result",53],[10,"Debug",53],[5,"Vec",54],[6,"Option",55],[1,"tuple"],[10,"DoubleEndedIterator",56],[5,"Iter",57],[5,"IterMut",57],[5,"Range",58],[1,"usize"],[10,"Serialize",59],[10,"Serializer",59],[5,"TypeId",60]],"r":[],"b":[[21,"impl-IntoIterator-for-BiVec%3CT%3E"],[22,"impl-IntoIterator-for-%26BiVec%3CT%3E"],[23,"impl-IntoIterator-for-%26mut+BiVec%3CT%3E"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAACYACAAAAAAAAgAJAA4AAAAQAAEAEwABABYACgAjAAYAKwAEAA=="}],\ +["bivec",{"t":"FNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNN","n":["BiVec","borrow","borrow_mut","clone","clone_into","clone_to_uninit","data","default","deserialize","eq","extend","extend_negative","extend_with","fmt","from","from_vec","get","get_max","index","index_mut","into","into_iter","into_iter","into_iter","into_iter_enum","into_vec","is_empty","iter","iter_enum","iter_mut","iter_mut_enum","last","len","max_degree","min_degree","min_degree","new","push","range","reserve","serialize","split_borrow_mut","to_owned","try_from","try_into","type_id","with_capacity"],"q":[[0,"bivec"],[47,"core::clone"],[48,"core::result"],[49,"serde::de"],[50,"core::cmp"],[51,"core::iter::traits::collect"],[52,"core::ops::function"],[53,"core::fmt"],[54,"alloc::vec"],[55,"core::option"],[56,"core::iter::traits::double_ended"],[57,"core::slice::iter"],[58,"core::ops::range"],[59,"serde::ser"],[60,"core::any"]],"i":[0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3],"f":"`{{{b{c}}}{{b{e}}}{}{}}{{{b{dc}}}{{b{de}}}{}{}}{{{b{{f{c}}}}}{{f{c}}}h}{{{b{c}}{b{de}}}j{}{}}{{{b{c}}}j{}}`{{}{{f{c}}}{}}{c{{l{{f{e}}}}}nA`}{{{b{{f{c}}}}{b{{f{c}}}}}AbAd}{{{b{d{f{c}}}}e}j{}{{Ah{}{{Af{c}}}}}}{{{b{d{f{c}}}}Ajc}jh}{{{b{d{f{c}}}}Aje}j{}{{An{Aj}{{Al{c}}}}}}{{{b{{f{c}}}}{b{dB`}}}BbBd}{cc{}}{{Aj{Bf{c}}}{{f{c}}}{}}{{{b{{f{c}}}}Aj}{{Bh{{b{c}}}}}{}}{{{b{{f{c}}}}Aj}{{b{c}}}{}}0{{{b{d{f{c}}}}Aj}{{b{dc}}}{}}{ce{}{}}{{{b{{f{c}}}}}e{}{}}{{{b{d{f{c}}}}}e{}{}}{{{f{c}}}e{}{}}{{{f{c}}}{{`{{Bl{}{{Af{{Bj{Ajc}}}}}}}}}{}}{{{f{c}}}{{Bf{c}}}{}}{{{b{{f{c}}}}}Ab{}}{{{b{{f{c}}}}}{{Bn{c}}}{}}{{{b{{f{c}}}}}{{`{{Bl{}{{Af{{Bj{Aj{b{c}}}}}}}}}}}{}}{{{b{d{f{c}}}}}{{C`{c}}}{}}{{{b{d{f{c}}}}}{{`{{Bl{}{{Af{{Bj{Aj{b{dc}}}}}}}}}}}{}}{{{b{{f{c}}}}}{{Bh{{b{c}}}}}{}}{{{b{{f{c}}}}}Aj{}}00`{Aj{{f{c}}}{}}{{{b{d{f{c}}}}c}j{}}{{{b{{f{c}}}}}{{Cb{Aj}}}{}}{{{b{d{f{c}}}}Cd}j{}}{{{b{{f{c}}}}e}lCfCh}{{{b{d{f{c}}}}AjAj}{{Bj{{b{dc}}{b{dc}}}}}{}}{{{b{c}}}e{}{}}{c{{l{e}}}{}{}}0{{{b{c}}}Cj{}}{{AjAj}{{f{c}}}{}}","D":"Ab","p":[[1,"reference"],[0,"mut"],[5,"BiVec",0],[10,"Clone",47],[1,"unit"],[6,"Result",48],[10,"Deserializer",49],[10,"Deserialize",49],[1,"bool"],[10,"PartialEq",50],[17,"Item"],[10,"IntoIterator",51],[1,"i32"],[17,"Output"],[10,"FnMut",52],[5,"Formatter",53],[8,"Result",53],[10,"Debug",53],[5,"Vec",54],[6,"Option",55],[1,"tuple"],[10,"DoubleEndedIterator",56],[5,"Iter",57],[5,"IterMut",57],[5,"Range",58],[1,"usize"],[10,"Serialize",59],[10,"Serializer",59],[5,"TypeId",60]],"r":[],"b":[[21,"impl-IntoIterator-for-%26BiVec%3CT%3E"],[22,"impl-IntoIterator-for-%26mut+BiVec%3CT%3E"],[23,"impl-IntoIterator-for-BiVec%3CT%3E"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAACYACAAAAAAAAgAJAA4AAAAQAAEAEwABABYACgAjAAYAKwAEAA=="}],\ ["bruner",{"t":"","n":[],"q":[],"i":[],"f":"","D":"b","p":[],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OjAAAAAAAAA="}],\ ["chart",{"t":"PKPTRTTPTGSPTFFNNNNNNNNNNNNNMNNNNNNNMNNOOOONNMNNOOOOMNNNMNNNNNNNNNNN","n":["Above","Backend","Below","EXT","Error","GRID_WIDTH","HEADER","Left","MARGIN","Orientation","PATTERNS","Right","STYLES","SvgBackend","TikzBackend","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","drop","drop","from","from","from","get_coords","get_coords","header","header","header","init","into","into","into","legend","line","line","line","max_x","max_x","max_y","max_y","new","new","node","node","node","num_nodes","num_nodes","out","out","structline","structline","structline","structline_matrix","text","text","text","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id"],"q":[[0,"chart"],[68,"std::io"],[69,"core::result"],[70,"std::io::error"],[71,"core::option"],[72,"alloc::vec"],[73,"core::fmt"],[74,"core::any"]],"i":[19,0,19,12,12,3,6,19,3,0,0,19,3,0,0,19,3,6,19,3,6,3,6,19,3,6,3,6,12,3,6,12,19,3,6,3,12,3,6,3,6,3,6,3,6,12,3,6,3,6,3,6,12,3,6,12,12,3,6,19,3,6,19,3,6,19,3,6],"f":"```````````````{{{b{c}}}{{b{e}}}{}{}}00{{{b{dc}}}{{b{de}}}{}{}}00{{{b{d{f{c}}}}}hj}{{{b{d{l{c}}}}}hj}{cc{}}00{{{b{{f{c}}}}nnA`}{{Ad{AbAbAb}}}j}{{{b{{l{c}}}}nnA`}{{Ad{AbAbAb}}}j}{{{b{d{Ah{}{{Af{c}}}}}}nn}{{Aj{hc}}}{}}{{{b{d{f{c}}}}nn}{{Aj{he}}}j{}}{{{b{d{l{c}}}}nn}{{Aj{he}}}j{}}2{ce{}{}}00{c{{Al{h}}}j}{{{b{d{Ah{}{{Af{c}}}}}}nnnn{b{An}}}{{Aj{hc}}}{}}{{{b{d{f{c}}}}nnnn{b{An}}}{{Aj{he}}}j{}}{{{b{d{l{c}}}}nnnn{b{An}}}{{Aj{he}}}j{}}````{c{{f{c}}}j}{c{{l{c}}}j}{{{b{d{Ah{}{{Af{c}}}}}}nnA`}{{Aj{hc}}}{}}{{{b{d{f{c}}}}nnA`}{{Aj{he}}}j{}}{{{b{d{l{c}}}}nnA`}{{Aj{he}}}j{}}````{{{b{d{Ah{}{{Af{c}}}}}}{Ad{nnA`}}{Ad{nnA`}}{B`{{b{An}}}}}{{Aj{hc}}}{}}{{{b{d{f{c}}}}{Ad{nnA`}}{Ad{nnA`}}{B`{{b{An}}}}}{{Aj{he}}}j{}}{{{b{d{l{c}}}}{Ad{nnA`}}{Ad{nnA`}}{B`{{b{An}}}}}{{Aj{he}}}j{}}{{{b{d{Ah{}{{Af{c}}}}}}{Ad{nn}}{Ad{nn}}{Bd{{Bd{Bb}}}}{B`{{b{An}}}}}{{Aj{hc}}}{}}{{{b{d{Ah{}{{Af{c}}}}}}nneBf}{{Aj{hc}}}{}Bh}{{{b{d{f{c}}}}nneBf}{{Aj{hg}}}jBh{}}{{{b{d{l{c}}}}nneBf}{{Aj{hg}}}jBh{}}{c{{Aj{e}}}{}{}}00000{{{b{c}}}Bj{}}00","D":"Ad","p":[[1,"reference"],[0,"mut"],[5,"SvgBackend",0],[1,"unit"],[10,"Write",68],[5,"TikzBackend",0],[1,"i32"],[1,"usize"],[1,"f32"],[1,"tuple"],[17,"Error"],[10,"Backend",0],[6,"Result",69],[8,"Result",70],[1,"str"],[6,"Option",71],[1,"u32"],[5,"Vec",72],[6,"Orientation",0],[10,"Display",73],[5,"TypeId",74]],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OzAAAAEAADoABAAAAAMABQASAB0AAwAlAB8A"}],\ ["d2_charts",{"t":"","n":[],"q":[],"i":[],"f":"","D":"`","p":[],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OjAAAAEAAAAAAAAAEAAAAAAA"}],\ ["define_module",{"t":"HHHH","n":["gens_to_json","get_gens","interactive_module_define_fdmodule","interactive_module_define_fpmodule"],"q":[[0,"define_module"],[4,"alloc::string"],[5,"alloc::vec"],[6,"bivec"],[7,"serde_json::value"],[8,"anyhow"],[9,"fp::prime::primes_generic"]],"i":[0,0,0,0],"f":"{{{h{{f{{d{b}}}}}}}j}{{}{{l{{f{{d{b}}}}}}}}{{{h{nj}}A`}{{l{Ab}}}}0","D":"`","p":[[5,"String",4],[5,"Vec",5],[5,"BiVec",6],[1,"reference"],[6,"Value",7],[8,"Result",8],[0,"mut"],[5,"ValidPrime",9],[1,"unit"]],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OjAAAAEAAAAAAAQAEAAAAAAAAQACAAMABAA="}],\ ["differentials",{"t":"","n":[],"q":[],"i":[],"f":"","D":"b","p":[],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OjAAAAAAAAA="}],\ -["ext",{"t":"ICOOCCCCCCCORKKKGEFRPFFKPRRFRMNNNNNNNNOOCMOOMONNNNNNMONNNNNNCNNNNMNNNNNNNNNMOMMONMNNONNMONNNNNNNNNNNNNMOFFNNNNNNNONNONNNNNNNNONNNNNNNNNNNNNNNNNNNONNNNNONNNNNNNNNNOPPTSGFFFPFFNNONNNNNNNNNNNNNONNNNNOOONNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNONONNNNNNNNNNNONONONONNNNNNNNNONONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONSFIFINNONNNNNOOOOOONNNNNNNNNOOONNNNNNNNNNNOOOOOOOOONNOOONOOONONNNOOONONOOONNNNNNNNNNNOOOFIINNNNNNNNNNNNNNNNNNNNOOONOOONNNOOOOOOOOOOOONNNNPPPFFPPPPPPPGFGPPPPOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNONNNNNHNHONNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOORITFFKFRJRRNNNNMNNNNNNNNMNNOONNNMNNNONNNNNNNNNNNNNNNNNOMNOONNNNNMNONNNMNNNNNMNMNOMNOMNOONNNNNNNNNNMNONNNFFISONNOONNNHHHNNONNNNNNHNNHNHNHOCOOOOHHHHHOHOONNNNNNNHNOOFFNNNNONNNNNNHNNNNNNHNNNNONNNNNNNNNNOSIOOHHHHHOHHH","n":["CCC","chain_complex","differentials","modules","nassau","resolution","resolution_homomorphism","save","secondary","utils","yoneda","zero_module","Algebra","AugmentedChainComplex","BoundedChainComplex","ChainComplex","ChainComplexGrading","ChainHomotopy","ChainMap","ChainMap","Cohomological","FiniteAugmentedChainComplex","FiniteChainComplex","FreeChainComplex","Homological","Homomorphism","Module","StemIterator","TargetComplex","algebra","apply_quasi_inverse","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","boundary_string","cc","cc","chain_homotopy","chain_map","chain_maps","chain_maps","compute_through_bidegree","current","deref","deref","deref","deref_mut","deref_mut","deref_mut","differential","differentials","drop","drop","drop","euler_characteristic","filtration_one_product","filtration_one_products","finite_chain_complex","from","from","from","graded_dimension_string","has_computed_bidegree","init","init","init","into","into","into","into_iter","iter_nonzero_stem","iter_stem","max_s","max_s","min_degree","module","modules","next","next_homological_degree","number_of_gens_in_bidegree","prime","s_shift","save_dir","save_file","target","target_cc","to_sseq","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","zero_module","zero_module","FiniteAugmentedChainComplex","FiniteChainComplex","algebra","algebra","augment","borrow","borrow","borrow_mut","borrow_mut","cc","ccdz","chain_map","chain_maps","compute_through_bidegree","compute_through_bidegree","deref","deref","deref_mut","deref_mut","differential","differential","differentials","drop","drop","from","from","from","has_computed_bidegree","has_computed_bidegree","init","init","into","into","map","map","max_s","max_s","min_degree","min_degree","module","module","modules","new","next_homological_degree","next_homological_degree","pop","target","target_cc","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","zero_module","zero_module","zero_module","End","Fix","INFINITY","MAX_NEW_GENS","Magic","MilnorSubalgebra","Resolution","SenderData","Signature","SignatureIterator","SubalgebraIterator","algebra","apply_quasi_inverse","b","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","chain_map","chain_maps","clone","clone_into","clone_to_uninit","compute_through_bidegree","compute_through_stem","current","current","degree","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","differential","differentials","drop","drop","drop","drop","drop","drop","extend_through_degree","fmt","from","from","from","from","from","from","from_bytes","has_computed_bidegree","has_signature","init","init","init","init","init","init","into","into","into","into","into","into","into_iter","into_iter","iter_signatures","lock","max_degree","min_degree","module","modules","name","name","new","new","new","new","new_with_save","next","next","next_homological_degree","optimal_for","par_bridge","prime","profile","save_dir","save_dir","send","sender","set_name","signature_degree","signature_from_bytes","signature_mask","signature_matrix","signature_to_bytes","step0","step1","step_resolution","step_resolution_with_result","step_resolution_with_subalgebra","subalgebra","target","target","to_bytes","to_owned","to_string","top_degree","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","write_differential","write_qi","zero_algebra","zero_module","zero_module","zero_signature","MAX_NEW_GENS","MuResolution","Resolution","SenderData","UnstableResolution","algebra","apply_quasi_inverse","b","borrow","borrow","borrow_mut","borrow_mut","chain_map","chain_maps","chain_maps","chain_maps","complex","complex","complex","compute_through_bidegree","compute_through_bidegree_with_callback","compute_through_stem","compute_through_stem_with_callback","deref","deref","deref_mut","deref_mut","differential","differentials","differentials","differentials","drop","drop","extend_through_degree","from","from","get_kernel","has_computed_bidegree","init","init","into","into","kernels","kernels","kernels","load_quasi_inverse","load_quasi_inverse","load_quasi_inverse","lock","lock","lock","min_degree","module","modules","modules","modules","name","name","name","name","new","new","new_with_save","next_homological_degree","save_dir","save_dir","save_dir","save_dir","send","sender","set_name","should_save","should_save","should_save","step_resolution","target","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","zero_module","zero_module","zero_module","zero_module","MuResolutionHomomorphism","ResolutionHomomorphism","UnstableResolutionHomomorphism","act","algebra","borrow","borrow_mut","deref","deref_mut","drop","extend","extend_all","extend_profile","extend_step","extend_step_raw","extend_through_stem","from","from_class","from_module_homomorphism","get_map","get_map_ensure_length","init","into","maps","maps","maps","name","name","name","name","new","next_homological_degree","save_dir","save_dir","save_dir","save_dir","shift","shift","shift","source","source","source","target","target","target","try_from","try_into","type_id","vzip","AugmentationQi","ChainHomotopy","ChainMap","ChecksumReader","ChecksumWriter","Combined","Differential","Kernel","NassauDifferential","NassauQi","None","ResQi","SaveDirectory","SaveFile","SaveKind","SecondaryComposite","SecondaryHomotopy","SecondaryIntermediate","Split","adler","adler","algebra","b","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","clone_to_uninit","clone_to_uninit","clone_to_uninit","create_dir","create_file","delete_file","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","drop","drop","drop","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","exists","flush","fmt","fmt","from","from","from","from","from","from","get_save_path","idx","init","init","init","init","init","into","into","into","into","into","is_none","is_some","kind","magic","name","nassau_data","new","new","open_file","open_file","open_files","path","push","read","read","read_exact","reader","resolution_data","secondary_data","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","validate_header","vzip","vzip","vzip","vzip","vzip","write","write","write_all","write_header","writer","read","write","Algebra","CompositeData","HIT_GENERATOR","SecondaryComposite","SecondaryHomotopy","SecondaryLift","SecondaryResolution","Source","TAU_BIDEGREE","Target","Underlying","act","act","add_composite","add_composite","algebra","algebra","algebra","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","composite","composite","composite","composite","composites","compute_composites","compute_homotopies","compute_homotopy_step","compute_intermediate","compute_intermediate","compute_intermediates","compute_partial","degree","deref","deref","deref","deref_mut","deref_mut","deref_mut","drop","drop","drop","e3_page","extend_all","finalize","from","from","from","from_bytes","get_intermediate","hit_generator","homotopies","homotopies","homotopies","homotopies","homotopy","init","init","init","initialize_homotopies","intermediates","intermediates","intermediates","into","into","into","max","max","new","new","new","prime","save_dir","save_dir","shift","shift","shift_t","source","source","source","target","target","target","target","to_bytes","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","underlying","underlying","underlying","vzip","vzip","vzip","Config","LogWriter","QueryModuleResolution","STATIC_MODULES_PATH","algebra","borrow","borrow_mut","bytes","chain_maps","clone","clone_into","clone_to_uninit","construct","construct_nassau","construct_standard","deref","deref_mut","differentials","drop","eq","equivalent","equivalent","equivalent","equivalent","ext_tracing_subscriber","fmt","from","get_unit","init","init_logging","into","load_module_json","lock","logging","max_degree","module","modules","name","parse_module_name","query_module","query_module_only","query_unstable_module","query_unstable_module_only","save_dir","secondary_job","start","target","to_owned","try_from","try_from","try_from","try_from","try_into","type_id","unicode_num","vzip","writer","zero_module","LogWriter","Throughput","borrow","borrow","borrow_mut","borrow_mut","bytes","deref","deref","deref_mut","deref_mut","drop","drop","ext_tracing_subscriber","flush","fmt","from","from","init","init","init_logging","into","into","into_throughput","new","start","to_string","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","write","writer","PENALTY_UNIT","Yoneda","cc","chain_maps","compute_kernel_image","rate_adem_operation","rate_milnor_operation","rate_operation","split_mut_borrow","target_cc","yoneda_representative","yoneda_representative_element","yoneda_representative_with_strategy"],"q":[[0,"ext"],[12,"ext::chain_complex"],[104,"ext::chain_complex::finite_chain_complex"],[163,"ext::nassau"],[316,"ext::resolution"],[404,"ext::resolution_homomorphism"],[453,"ext::save"],[592,"ext::save::SaveDirectory"],[594,"ext::secondary"],[698,"ext::utils"],[756,"ext::utils::logging"],[793,"ext::yoneda"],[806,"alloc::sync"],[807,"algebra::algebra::algebra_trait"],[808,"algebra::module::module_trait"],[809,"algebra::module::homomorphism"],[810,"sseq::coordinates::bidegree"],[811,"sseq::coordinates::generator"],[812,"alloc::string"],[813,"alloc::vec"],[814,"core::option"],[815,"sseq::sseq"],[816,"core::iter::traits::iterator"],[817,"core::marker"],[818,"fp::prime::primes_generic"],[819,"core::result"],[820,"core::any"],[821,"algebra::module::zero_module"],[822,"algebra::module::homomorphism::full_module_homomorphism"],[823,"core::ops::function"],[824,"algebra::algebra::milnor_algebra"],[825,"core::fmt"],[826,"std::io::error"],[827,"std::io"],[828,"anyhow"],[829,"core::convert"],[830,"rayon::iter::par_bridge"],[831,"std::sync::mpsc"],[832,"algebra::module::free_module"],[833,"algebra::module::homomorphism::free_module_homomorphism"],[834,"fp::matrix::matrix_inner"],[835,"fp::vector::fp_wrapper"],[836,"fp::matrix::subspace"],[837,"sseq::coordinates::range"],[838,"core::ops::range"],[839,"std::path"],[840,"alloc::boxed"],[841,"std::collections::hash::set"],[842,"std::sync::mutex"],[843,"algebra::algebra::pair_algebra"],[844,"once"],[845,"dashmap"],[846,"algebra::module::finite_dimensional_module"],[847,"tracing_core::subscriber"],[848,"serde_json::value"],[849,"algebra::algebra::steenrod_algebra"],[850,"algebra::module::steenrod_module"],[851,"algebra::module::quotient_module"],[852,"algebra::algebra::adem_algebra"],[853,"ext::chain_complex::chain_homotopy"]],"i":[0,0,107,107,0,0,0,0,0,0,0,107,4,0,0,0,0,0,0,21,122,0,0,0,122,4,4,0,21,4,4,122,33,119,122,33,119,16,44,33,0,21,44,119,4,33,122,33,119,122,33,119,4,43,122,33,119,25,16,16,0,122,33,119,16,4,122,33,119,122,33,119,33,16,4,25,33,4,4,43,33,4,16,4,119,4,4,21,44,16,122,33,119,122,33,119,122,33,119,122,33,119,4,43,0,0,43,44,43,43,44,43,44,44,43,44,44,43,44,43,44,43,44,43,44,43,43,44,43,43,44,43,44,43,44,43,44,43,44,43,44,43,44,43,44,43,43,43,44,43,44,44,43,44,43,44,43,44,43,44,43,44,43,123,123,52,0,0,0,0,0,123,0,0,50,50,65,65,59,60,123,50,52,65,59,60,123,50,52,50,50,52,52,52,50,50,59,60,60,65,59,60,123,50,52,65,59,60,123,50,52,50,50,65,59,60,123,50,52,50,52,65,59,60,123,50,52,52,50,52,65,59,60,123,50,52,65,59,60,123,50,52,59,60,52,50,50,50,50,50,50,50,59,60,50,52,50,59,60,50,52,59,50,52,50,50,65,65,50,60,52,52,52,52,50,50,50,50,50,60,50,50,52,52,52,52,65,59,60,123,50,52,65,59,60,123,50,52,65,59,60,123,50,52,65,59,60,123,50,52,50,50,52,50,50,52,0,0,0,0,0,73,73,75,75,73,75,73,73,124,112,73,124,112,73,73,73,73,73,75,73,75,73,73,124,112,73,75,73,73,75,73,73,73,75,73,75,73,124,112,73,124,112,73,124,112,73,73,73,124,112,73,73,124,112,73,73,75,73,73,73,124,112,73,75,75,73,124,112,73,73,73,75,73,75,73,75,73,75,73,73,124,112,73,0,0,0,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,125,126,76,76,125,126,76,76,76,76,125,126,76,125,126,76,125,126,76,125,126,76,76,76,76,76,37,37,37,0,0,36,37,37,37,37,36,37,0,0,0,37,37,37,36,84,85,38,38,84,85,38,36,37,84,85,38,36,37,36,37,36,37,36,37,37,37,38,38,84,85,38,36,37,84,85,38,36,37,84,84,85,85,38,36,37,36,37,36,36,36,36,37,37,37,37,38,84,36,37,84,85,38,36,36,37,38,38,84,85,38,36,37,84,85,38,36,37,36,36,38,37,37,37,84,85,0,38,0,84,36,85,36,85,85,37,37,36,37,84,85,38,36,37,84,85,38,36,37,84,85,38,36,37,38,84,85,38,36,37,84,36,84,38,84,127,127,98,0,98,0,0,0,0,98,0,98,98,91,94,91,94,98,91,99,91,94,99,91,94,99,98,94,99,91,94,98,98,98,98,99,98,98,91,91,94,99,91,94,99,91,94,99,99,98,91,91,94,99,91,98,94,98,99,94,99,99,91,94,99,98,98,99,99,91,94,99,98,99,91,94,99,98,98,99,98,99,94,98,99,94,98,99,91,94,91,91,94,99,91,94,99,91,94,99,98,99,99,91,94,99,0,0,0,0,102,102,102,115,103,102,102,102,0,0,0,102,102,103,102,102,102,102,102,102,0,102,102,0,102,0,102,0,103,0,103,102,103,103,0,0,0,0,0,103,0,115,103,102,102,102,102,102,102,102,0,102,115,103,0,0,115,116,115,116,115,115,116,115,116,115,116,0,115,116,115,116,115,116,0,115,116,115,115,115,116,115,116,115,116,115,116,115,116,115,115,0,0,120,120,0,0,0,0,0,120,0,0,0],"f":"`````````````````````````````{{{j{{h{}{{b{c}}{d{e}}{f{g}}}}}}}{{l{c}}}n{{A`{}{{b{c}}}}}{{Af{}{{Ab{e}}{Ad{e}}}}}}{{{j{{h{}{{b{c}}{d{e}}{f{g}}}}}}{j{Ah{Aj{i}}}}Al{j{{Aj{k}}}}}Ann{{A`{}{{b{c}}}}}{{Af{}{{Ab{e}}{Ad{e}}}}}{}{}}{{{j{c}}}{{j{e}}}{}{}}00{{{j{Ahc}}}{{j{Ahe}}}{}{}}00{{{j{B`}}BbAn}Bd}```{{{j{{Bj{}{{Bf{c}}{Bh{g}}}}}}Bl}{{l{g}}}{{h{}{{b{e}}}}}{}{{Af{}{{Ab{i}}{Ad{}}}}}{}}``{{{j{{h{}{{b{c}}{d{e}}{f{g}}}}}}Al}Bnn{{A`{}{{b{c}}}}}{{Af{}{{Ab{e}}{Ad{e}}}}}}`{C`{{j{c}}}{}}00{C`{{j{Ahc}}}{}}00{{{j{{h{}{{b{c}}{d{e}}{f{g}}}}}}Bl}{{l{g}}}n{{A`{}{{b{c}}}}}{{Af{}{{Ab{e}}{Ad{e}}}}}}`{C`Bn}00{{{j{Cb}}Cd}Cf}{{{j{B`}}CdC`Al}{{Cj{{Ch{{Ch{Bl}}}}}}}}{{{j{B`}}CdC`}Cl}`{cc{}}00{{{j{B`}}}Bd}{{{j{{h{}{{b{c}}{d{e}}{f{g}}}}}}Al}Ann{{A`{}{{b{c}}}}}{{Af{}{{Ab{e}}{Ad{e}}}}}}{{}C`}00{ce{}{}}000{{{j{B`}}}{{`{{D`{}{{Cn{Al}}}}}}}}{{{j{{h{}{{b{c}}{d{e}}{f{g}}}}}}}{{Db{{h{}{{b{c}}{d{e}}{f{g}}}}}}}n{{A`{}{{b{c}}}}}{{Af{}{{Ab{e}}{Ad{e}}}}}}{{{j{Cb}}}Bl}`{{{j{{h{}{{b{c}}{d{e}}{f{g}}}}}}}Cdn{{A`{}{{b{c}}}}}{{Af{}{{Ab{e}}{Ad{e}}}}}}{{{j{{h{}{{b{c}}{d{e}}{f{g}}}}}}Bl}{{l{e}}}n{{A`{}{{b{c}}}}}{{Af{}{{Ab{e}}{Ad{e}}}}}}`{{{j{Ah{Db{c}}}}}{{Cj{e}}}{hDd}{}}{{{j{{h{}{{b{c}}{d{e}}{f{g}}}}}}}Bln{{A`{}{{b{c}}}}}{{Af{}{{Ab{e}}{Ad{e}}}}}}{{{j{B`}}Al}C`}{{{j{{h{}{{b{c}}{d{e}}{f{g}}}}}}}Dfn{{A`{}{{b{c}}}}}{{Af{}{{Ab{e}}{Ad{e}}}}}}`{{{j{{h{}{{b{c}}{d{e}}{f{g}}}}}}}{{j{Dh}}}n{{A`{}{{b{c}}}}}{{Af{}{{Ab{e}}{Ad{e}}}}}}{{{j{{h{}{{b{c}}{d{e}}{f{g}}}}}}DjAl}{{Dl{c}}}n{{A`{}{{b{c}}}}}{{Af{}{{Ab{e}}{Ad{e}}}}}}{{{j{{Bj{}{{Bf{c}}{Bh{g}}}}}}}{{l{c}}}{{h{}{{b{e}}}}}{}{{Af{}{{Ab{i}}{Ad{}}}}}{}}`{{{j{B`}}}{{E`{Dn}}}}{c{{Eb{e}}}{}{}}00000{{{j{c}}}Ed{}}00???{{{j{{h{}{{b{c}}{d{e}}{f{g}}}}}}}{{l{e}}}n{{A`{}{{b{c}}}}}{{Af{}{{Ab{e}}{Ad{e}}}}}}```{{{j{{Ef{ce}}}}}{{l{g}}}A`{{Af{}{{Ab{c}}{Ad{c}}}}}{}}{{{j{{Eh{cegi}}}}}lA`{{Af{}{{Ab{c}}{Ad{c}}}}}{{Af{}{{Ab{c}}{Ad{}}}}}{{h{}{{b{}}}}}}{{{Ef{ce}}{l{g}}{Ch{{l{i}}}}}{{Eh{ceig}}}A`{{Af{}{{Ab{c}}{Ad{c}}}}}{{h{}{{b{}}}}}{{Af{}{{Ab{c}}{Ad{}}}}}}{{{j{c}}}{{j{e}}}{}{}}0{{{j{Ahc}}}{{j{Ahe}}}{}{}}0`{{{l{c}}}{{Ef{ce}}}{A`Ej}{{Af{}{{Ab{c}}{Ad{c}}}}{El{cc}}}}{{{j{{Eh{cegi}}}}Bl}{{l{k}}}A`{{Af{}{{Ab{c}}{Ad{c}}}}}{{Af{}{{Ab{c}}{Ad{}}}}}{{h{}{{b{}}}}}{}}`{{{j{{Ef{ce}}}}Al}BnA`{{Af{}{{Ab{c}}{Ad{c}}}}}}{{{j{{Eh{cegi}}}}Al}BnA`{{Af{}{{Ab{c}}{Ad{c}}}}}{{Af{}{{Ab{c}}{Ad{}}}}}{{h{}{{b{}}}}}}{C`{{j{c}}}{}}0{C`{{j{Ahc}}}{}}0{{{j{{Ef{ce}}}}Bl}{{l{g}}}A`{{Af{}{{Ab{c}}{Ad{c}}}}}{}}5`{C`Bn}0{{{Eh{cegi}}}{{Ef{ce}}}A`{{Af{}{{Ab{c}}{Ad{c}}}}}{{Af{}{{Ab{c}}{Ad{}}}}}{{h{}{{b{}}}}}}{cc{}}0{{{j{{Ef{ce}}}}Al}AnA`{{Af{}{{Ab{c}}{Ad{c}}}}}}{{{j{{Eh{cegi}}}}Al}AnA`{{Af{}{{Ab{c}}{Ad{c}}}}}{{Af{}{{Ab{c}}{Ad{}}}}}{{h{}{{b{}}}}}}{{}C`}0{ce{}{}}0{{{j{{Ef{c{En{c}}}}}}g}{{Ef{e{En{e}}}}}A`{{A`{}{{b{}}}}}{{Fb{{j{c}}}{{F`{e}}}}}}{{{j{{Eh{c{En{c}}{En{c}}e}}}}i}{{Eh{g{En{g}}{En{g}}e}}}A`{{h{}{{b{}}}}}{{A`{}{{b{}}}}}{{Fb{{j{c}}}{{F`{g}}}}}}{{{j{{Ef{ce}}}}}BlA`{{Af{}{{Ab{c}}{Ad{c}}}}}}{{{j{{Eh{cegi}}}}}BlA`{{Af{}{{Ab{c}}{Ad{c}}}}}{{Af{}{{Ab{c}}{Ad{}}}}}{{h{}{{b{}}}}}}{{{j{{Ef{ce}}}}}CdA`{{Af{}{{Ab{c}}{Ad{c}}}}}}{{{j{{Eh{cegi}}}}}CdA`{{Af{}{{Ab{c}}{Ad{c}}}}}{{Af{}{{Ab{c}}{Ad{}}}}}{{h{}{{b{}}}}}}={{{j{{Eh{cegi}}}}Bl}{{l{k}}}A`{{Af{}{{Ab{c}}{Ad{c}}}}}{{Af{}{{Ab{c}}{Ad{}}}}}{{h{}{{b{}}}}}{}}`{{{Ch{{l{c}}}}{Ch{{l{e}}}}}{{Ef{ce}}}{A`Ej}{{Af{}{{Ab{c}}{Ad{c}}}}{El{cc}}}}54{{{j{Ah{Ef{ce}}}}}BnA`{{Af{}{{Ab{c}}{Ad{c}}}}{El{cc}}}}{{{j{{Eh{cegi}}}}}{{l{k}}}A`{{Af{}{{Ab{c}}{Ad{c}}}}}{{Af{}{{Ab{c}}{Ad{}}}}}{{h{}{{b{}}}}}{}}`{c{{Eb{e}}}{}{}}000{{{j{c}}}Ed{}}0<<{{{j{{Ef{ce}}}}}{{l{g}}}A`{{Af{}{{Ab{c}}{Ad{c}}}}}{}}3````````````{{{j{{Fd{c}}}}}{{l{e}}}{{Ej{}{{b{Ff}}}}}{}}{{{j{{Fd{c}}}}{j{Ah{Aj{e}}}}Al{j{{Aj{g}}}}}An{{Ej{}{{b{Ff}}}}}{}{}}`{{{j{c}}}{{j{e}}}{}{}}00000{{{j{Ahc}}}{{j{Ahe}}}{}{}}00000{{{j{{Fd{c}}}}Bl}{{l{e}}}{{Ej{}{{b{Ff}}}}}{}}`{{{j{Fh}}}Fh}{{{j{c}}{j{Ahe}}}Bn{}{}}{{{j{c}}}Bn{}}{{{j{{Fd{c}}}}Al}Bn{{Ej{}{{b{Ff}}}}}}0```{C`{{j{c}}}{}}00000{C`{{j{Ahc}}}{}}000006`{C`Bn}00000{{{j{{Fd{c}}}}Bl}Bn{{Ej{}{{b{Ff}}}}}}{{{j{Fh}}{j{AhFj}}}{{Eb{BnFl}}}}{cc{}}00000{{{j{Ahc}}}{{Fn{Fh}}}G`}{{{j{{Fd{c}}}}Al}An{{Ej{}{{b{Ff}}}}}}{{{j{Fh}}{j{{Aj{Gb}}}}{j{{Aj{Gb}}}}}An}{{}C`}00000{ce{}{}}0000000{{{j{Fh}}Cd}{{`{{D`{}{{Cn{{Ch{Gb}}}}}}}}}}``{{{j{{Fd{c}}}}}Cd{{Ej{}{{b{Ff}}}}}}{{{j{{Fd{c}}}}Bl}{{l{e}}}{{Ej{}{{b{Ff}}}}}{}}`{{{j{{Fd{c}}}}}{{j{Gd}}}{{Ej{}{{b{Ff}}}}}}`{{}Gf}{{{j{Fh}}Cd}Gh}{{{l{c}}}{{Fd{c}}}{{Ej{}{{b{Ff}}}}}}{{{Ch{Gj}}}Fh}{{{l{c}}e}{{Gl{{Fd{c}}}}}{{Ej{}{{b{Ff}}}}}{{Gn{Dh}}}}{{{j{AhGf}}}{{Cj{c}}}{}}{{{j{AhGh}}}{{Cj{c}}}{}}{{{j{{Fd{c}}}}}Bl{{Ej{}{{b{Ff}}}}}}{AlFh}{c{{H`{e}}}{}{}}{{{j{{Fd{c}}}}}Df{{Ej{}{{b{Ff}}}}}}`{{{j{{Fd{c}}}}}{{j{Dh}}}{{Ej{}{{b{Ff}}}}}}`{{Al{Hd{Hb}}}Bn}`{{{j{Ah{Fd{c}}}}Bd}Bn{{Ej{}{{b{Ff}}}}}}`{{{j{Fh}}{j{Ahc}}}{{Fn{{Ch{Gb}}}}}G`}{{{j{Fh}}{j{Ff}}{j{{Hf{Ff}}}}Cd{j{{Aj{Gb}}}}}{{`{{D`{}{{Cn{C`}}}}}}}}{{{j{Fh}}{j{{Hh{{Hf{Ff}}}}}}Cd{j{{Aj{Gb}}}}}Hj}{{{j{{Aj{Gb}}}}{j{Ahc}}}{{Fn{Bn}}}Hl}{{{j{{Fd{c}}}}Cd}Bn{{Ej{}{{b{Ff}}}}}}{{{j{{Fd{c}}}}Cd}{{Gl{Bn}}}{{Ej{}{{b{Ff}}}}}}{{{j{{Fd{c}}}}Al}Bn{{Ej{}{{b{Ff}}}}}}{{{j{{Fd{c}}}}Al}{{Gl{Bn}}}{{Ej{}{{b{Ff}}}}}}{{{j{{Fd{c}}}}AlFh}{{Gl{Bn}}}{{Ej{}{{b{Ff}}}}}}`{{{j{{Fd{c}}}}}{{l{e}}}{{Ej{}{{b{Ff}}}}}{}}`{{{j{Fh}}{j{Ahc}}}{{Fn{Bn}}}Hl}{{{j{c}}}e{}{}}{{{j{c}}}Bd{}}{{{j{Fh}}}Cd}{c{{Eb{e}}}{}{}}00000000000{{{j{c}}}Ed{}}00000{ce{}{}}00000{{{j{{Fd{c}}}}AlC`C`}{{Gl{Bn}}}{{Ej{}{{b{Ff}}}}}}{{{j{Ah{Cj{c}}}}{j{AhHn}}{j{{Aj{Gb}}}}{j{{Aj{C`}}}}{j{Hj}}{j{I`}}}{{Fn{Bn}}}Hl}{{}Fh}:`{{{j{Fh}}}{{Ch{Gb}}}}`````{{{j{{Ib{c}}}}}{{l{e}}}h{}}{{{j{{Ib{c}}}}{j{Ah{Aj{e}}}}Al{j{{Aj{g}}}}}Anh{}{}}`{{{j{c}}}{{j{e}}}{}{}}0{{{j{Ahc}}}{{j{Ahe}}}{}{}}0{{{j{{Ib{c}}}}Bl}{{l{e}}}h{}}``````{{{j{{Ib{c}}}}Al}Bnh}{{{j{{Ib{c}}}}Ale}Bnh{{Fb{Al}}}}10{C`{{j{c}}}{}}0{C`{{j{Ahc}}}{}}04```{C`Bn}0{{{j{{Ib{c}}}}Bl}Bnh}{cc{}}0{{{j{{Ib{c}}}}Al}Idh}{{{j{{Ib{c}}}}Al}Anh}{{}C`}0{ce{}{}}0`````````{{{j{{Ib{c}}}}}Cdh}<```{{{j{{Ib{c}}}}}{{j{Gd}}}h}```{{{l{c}}}{{Ib{c}}}h}`{{{l{c}}e}{{Gl{{Ib{c}}}}}h{{Gn{Dh}}}}{{{j{{Ib{c}}}}}Blh}{{{j{{Ib{c}}}}}{{j{Dh}}}h}```{{AlAn{Hd{If}}}Bn}`{{{j{Ah{Ib{c}}}}Bd}Bnh}```{{{j{{Ib{c}}}}Al}Bnh}{{{j{{Ib{c}}}}}{{l{e}}}h{}}{c{{Eb{e}}}{}{}}000{{{j{c}}}Ed{}}0<<2``````{{{j{{Ih{ce}}}}IjBlBb}BnB`{{B`{}{{b{}}}}}}{{{j{{Ih{ce}}}}}lB`{{h{}{{b{}}}}}}{{{j{c}}}{{j{e}}}{}{}}{{{j{Ahc}}}{{j{Ahe}}}{}{}}{C`{{j{c}}}{}}{C`{{j{Ahc}}}{}}{C`Bn}{{{j{{Ih{ce}}}}Al}BnB`{{h{}{{b{}}}}}}{{{j{{Ih{ce}}}}}BnB`{{h{}{{b{}}}}}}{{{j{{Ih{ce}}}}{Il{g}}}BnB`{{h{}{{b{}}}}}In}{{{j{{Ih{ce}}}}Al{Cj{{j{Hj}}}}}{{J`{Cd}}}B`{{Bj{}{{b{}}}}}}{{{j{{Ih{ce}}}}Al{Cj{{Ch{Hn}}}}}{{J`{Cd}}}B`{{h{}{{b{}}}}}}4{cc{}}{{Bd{l{c}}{l{e}}Al{j{{Aj{Bl}}}}}{{Ih{ce}}}B`{{Bj{}{{b{}}}}}}{{Bd{l{c}}{l{e}}{j{g}}}{{Ih{ce}}}{BjB`}{{Bj{}{{b{}}}}}{{Af{}{{Ab{}}{Ad{}}}}}}{{{j{{Ih{ce}}}}Bl}{{l{Jb}}}B`{{h{}{{b{}}}}}}{{{j{{Ih{ce}}}}Bl}{{j{Jb}}}B`{{h{}{{b{}}}}}}{{}C`}{ce{}{}}```{{{j{{Ih{ce}}}}}{{j{Gd}}}B`{{h{}{{b{}}}}}}```{{Bd{l{c}}{l{e}}Al}{{Ih{ce}}}B`{{h{}{{b{}}}}}}{{{j{{Ih{ce}}}}}CdB`{{h{}{{b{}}}}}}{{{j{{Ih{ce}}}}}{{j{Dh}}}B`{{h{}{{b{}}}}}}````````````{c{{Eb{e}}}{}{}}0{{{j{c}}}Ed{}}6```````````````````````{{{j{c}}}{{j{e}}}{}{}}0000{{{j{Ahc}}}{{j{Ahe}}}{}{}}0000{{{j{Dh}}}Dh}{{{j{Dj}}}Dj}{{{j{c}}{j{Ahe}}}Bn{}{}}0{{{j{c}}}Bn{}}00{{Dj{j{Jd}}}{{Gl{Bn}}}}{{{j{{Dl{c}}}}JfAn}{{`{Hl}}}n}{{{j{{Dl{c}}}}Jf}{{Fn{Bn}}}n}{C`{{j{c}}}{}}0000{C`{{j{Ahc}}}{}}0000{C`Bn}{{{j{Ah{Jh{c}}}}}BnHl}{{{j{Ah{Jj{c}}}}}BnG`}2222{{{j{Dh}}{j{Dh}}}An}{{{j{Dj}}{j{Dj}}}An}{{{j{c}}{j{e}}}An{}{}}0000000{{{j{{Dl{c}}}}Jf}Ann}{{{j{Ah{Jh{c}}}}}{{Fn{Bn}}}Hl}{{{j{Dh}}{j{AhFj}}}Jl}{{{j{Dj}}{j{AhFj}}}Jl}{cc{}}000{{{Cj{Jf}}}Dh}1{{{j{{Dl{c}}}}Jf}Jfn}`{{}C`}0000{ce{}{}}0000{{{j{Dh}}}An}0`{DjBl}{Dj{{j{Gd}}}}{{}{{`{{D`{}{{Cn{Dj}}}}}}}}{{Jfc}{{Jh{c}}}Hl}{c{{Jj{c}}}G`}{Jf{{Cj{{Jn{G`}}}}}}{{{j{{Dl{c}}}}Jf}{{Cj{{Jn{G`}}}}}n}{{}{{j{{Kb{{K`{Jf}}}}}}}}`{{{j{AhDh}}c}Bn{{Kd{Jd}}}}{{{j{Ah{Jj{c}}}}{j{Ah{Aj{Gj}}}}}{{Fn{C`}}}G`}{{{j{Dh}}}{{Cj{{j{Jf}}}}}}{{{j{Ah{Jj{c}}}}{j{Ah{Aj{Gj}}}}}{{Fn{Bn}}}G`}`99{{{j{c}}}e{}{}}0{c{{Eb{e}}}{}{}}000000000{{{j{c}}}Ed{}}0000{{{j{{Dl{c}}}}{j{Ahe}}}{{Fn{Bn}}}nG`}{ce{}{}}0000{{{j{Ah{Jh{c}}}}{j{{Aj{Gj}}}}}{{Fn{C`}}}Hl}7{{{j{Ah{Jh{c}}}}{j{{Aj{Gj}}}}}{{Fn{Bn}}}Hl}{{{j{{Dl{c}}}}{j{Ahe}}}{{Fn{Bn}}}nHl}``````````````{{{j{{Kf{c}}}}IjBlCdKh}BnKj}{{{j{{Kl{c}}}}IjBlCdKhAn}Bn{KjKnIn}}{{{j{Ah{Kf{c}}}}BlCdC`{j{{Hh{{Hf{c}}}}}}{j{{Hh{{Hf{c}}}}}}}BnKj}{{{j{{Kl{c}}}}BlCd{L`{c}}{j{Dh}}}Bn{KjKnIn}}{{{j{{Ld{}{{b{c}}{Ab{e}}{Ad{g}}{Lb{i}}}}}}}{{l{c}}}Kj{{B`{}{{b{c}}}}}{{B`{}{{b{c}}}}}{}}{{{j{{Kf{c}}}}}{{l{c}}}Kj}{{{j{{Lf{c}}}}}{{l{e}}}B`{}}{{{j{c}}}{{j{e}}}{}{}}00{{{j{Ahc}}}{{j{Ahe}}}{}{}}00{{{j{{Ld{}{{b{c}}{Ab{e}}{Ad{g}}{Lb{i}}}}}}Bl}{{L`{c}}}Kj{{B`{}{{b{c}}}}}{{B`{}{{b{c}}}}}{}}{{{j{{Kl{c}}}}CdC`}{{j{{Kf{c}}}}}{KjKnIn}}{{{j{{Lf{c}}}}Bl}L`B`}``{{{j{{Ld{}{{b{c}}{Ab{e}}{Ad{g}}{Lb{i}}}}}}}BnKj{{B`{}{{b{c}}}}}{{B`{}{{b{c}}}}}{}}0{{{j{{Ld{}{{b{c}}{Ab{e}}{Ad{g}}{Lb{i}}}}}}Al}{{J`{Cd}}}Kj{{B`{}{{b{c}}}}}{{B`{}{{b{c}}}}}{}}{{{j{{Ld{}{{b{c}}{Ab{e}}{Ad{g}}{Lb{i}}}}}}Bb}HnKj{{B`{}{{b{c}}}}}{{B`{}{{b{c}}}}}{}}{{{j{{Lf{c}}}}Bb}HnB`}3{{{j{{Ld{}{{b{c}}{Ab{e}}{Ad{g}}{Lb{i}}}}}}Bl}BnKj{{B`{}{{b{c}}}}}{{B`{}{{b{c}}}}}{}}`{C`{{j{c}}}{}}00{C`{{j{Ahc}}}{}}00{C`Bn}00{{{j{{Lf{c}}}}}{{E`{Dn}}}B`}8{{{j{Ah{Kf{c}}}}}BnKj}{cc{}}00{{{l{{Hf{c}}}}CdAn{j{Ahe}}}{{Fn{{Kf{c}}}}}KjG`}9`{{{j{{Ld{}{{b{c}}{Ab{e}}{Ad{g}}{Lb{i}}}}}}}{{j{{Lh{{Kl{c}}}}}}}Kj{{B`{}{{b{c}}}}}{{B`{}{{b{c}}}}}{}}{{{j{{Lf{c}}}}}{{j{{Lh{Kl}}}}}B`}``{{{j{{Lf{c}}}}Bl}{{j{Kl}}}B`}{{}C`}00?{{{j{{Ld{}{{b{c}}{Ab{e}}{Ad{g}}{Lb{i}}}}}}}{{j{{Lj{BbHn}}}}}Kj{{B`{}{{b{c}}}}}{{B`{}{{b{c}}}}}{}}{{{j{{Lf{c}}}}}{{j{{Lj{BbHn}}}}}B`}`{ce{}{}}00{{{j{{Ld{}{{b{c}}{Ab{e}}{Ad{g}}{Lb{i}}}}}}}{{Il{{Ld{}{{b{c}}{Ab{e}}{Ad{g}}{Lb{i}}}}}}}Kj{{B`{}{{b{c}}}}}{{B`{}{{b{c}}}}}{}}{{{j{{Lf{c}}}}}{{Il{{Lf{c}}}}}B`}{{{l{{Hf{c}}}}CdAn}{{Kf{c}}}Kj}{{{l{{Hf{c}}}}{l{{Hf{c}}}}CdAn}{{Kl{c}}}{KjKnIn}}{{{l{c}}}{{Lf{c}}}B`}{{{j{{Ld{}{{b{c}}{Ab{e}}{Ad{g}}{Lb{i}}}}}}}DfKj{{B`{}{{b{c}}}}}{{B`{}{{b{c}}}}}{}}{{{j{{Ld{}{{b{c}}{Ab{e}}{Ad{g}}{Lb{i}}}}}}}{{j{Dh}}}Kj{{B`{}{{b{c}}}}}{{B`{}{{b{c}}}}}{}}{{{j{{Lf{c}}}}}{{j{Dh}}}B`}{{{j{{Ld{}{{b{c}}{Ab{e}}{Ad{g}}{Lb{i}}}}}}}AlKj{{B`{}{{b{c}}}}}{{B`{}{{b{c}}}}}{}}{{{j{{Lf{c}}}}}AlB`}`{{{j{{Ld{}{{b{c}}{Ab{e}}{Ad{g}}{Lb{i}}}}}}}{{l{e}}}Kj{{B`{}{{b{c}}}}}{{B`{}{{b{c}}}}}{}}{{{j{{Lf{c}}}}}{{l{e}}}B`{}}`{{{j{{Ld{}{{b{c}}{Ab{e}}{Ad{g}}{Lb{i}}}}}}}{{l{g}}}Kj{{B`{}{{b{c}}}}}{{B`{}{{b{c}}}}}{}}1``{{{j{{Kf{c}}}}{j{Ahe}}}{{Fn{Bn}}}KjHl}{c{{Eb{e}}}{}{}}00000{{{j{c}}}Ed{}}00{{{j{{Ld{}{{b{c}}{Ab{e}}{Ad{g}}{Lb{i}}}}}}}{{l{i}}}Kj{{B`{}{{b{c}}}}}{{B`{}{{b{c}}}}}{}}{{{j{{Lf{c}}}}}{{l{c}}}B`}`{ce{}{}}00`````{{{j{c}}}{{j{e}}}{}{}}{{{j{Ahc}}}{{j{Ahe}}}{}{}}``{{{j{Ll}}}Ll}{{{j{c}}{j{Ahe}}}Bn{}{}}{{{j{c}}}Bn{}}{{eg}{{Gl{Ln}}}{}{{Mb{Ll}{{M`{c}}}}}{{Gn{Dh}}}}{{eg}{{Gl{{Fd{{Md{Ff}}}}}}}{}{{Mb{Ll}{{M`{c}}}}}{{Gn{Dh}}}}{{eg}{{Gl{{Ib{Mf}}}}}{}{{Mb{Ll}{{M`{c}}}}}{{Gn{Dh}}}}{C`{{j{c}}}{}}{C`{{j{Ahc}}}{}}`{C`Bn}{{{j{Ll}}{j{Ll}}}An}{{{j{c}}{j{e}}}An{}{}}000{{}{{`{Mh}}}}{{{j{Ll}}{j{AhFj}}}Jl}{cc{}}{{{l{Ln}}}{{Gl{{Mj{An{l{Ln}}}}}}}}{{}C`}{{}Bn}{ce{}{}}{{{j{Gd}}}{{Gl{Ml}}}}``````0{{{Cj{Mn}}An}{{Gl{Ln}}}}{{{j{Gd}}{Cj{Mn}}An}{{Gl{Ln}}}}{An{{Gl{{N`{Mf}}}}}}{{}{{Gl{Nb}}}}`{{}{{Cj{Bl}}}}``{{{j{c}}}e{}{}}{{{j{Gd}}}{{Eb{Llc}}}{}}{c{{Eb{e}}}{}{}}{{{Mj{{j{Gd}}e}}}{{Eb{Llg}}}{}{{Mb{Mn}{{M`{c}}}}}{}}{{{Mj{Mlc}}}{{Eb{Lle}}}{{Mb{Mn}}}{}}2{{{j{c}}}Ed{}}{C`Nd}=````{{{j{c}}}{{j{e}}}{}{}}0{{{j{Ahc}}}{{j{Ahe}}}{}{}}0`{C`{{j{c}}}{}}0{C`{{j{Ahc}}}{}}0{C`Bn}0{{}{{`{Mh}}}}{{{j{Ah{Nf{c}}}}}{{Fn{Bn}}}Hl}{{{j{Nh}}{j{AhFj}}}Jl}{cc{}}0{{}C`}0{{}Bn}{ce{}{}}0{{{Nf{c}}}NhHl}{c{{Nf{c}}}{}}`{{{j{c}}}Bd{}}{c{{Eb{e}}}{}{}}000{{{j{c}}}Ed{}}055{{{j{Ah{Nf{c}}}}{j{{Aj{Gj}}}}}{{Fn{C`}}}Hl}`````{{{j{{Nj{c}}}}{Cj{{j{e}}}}{Cj{{j{g}}}}{Cj{{j{Id}}}}Cd}{{Mj{HjHj}}}A`AfAf}{{{j{Nl}}CdC`}Cd}{{{j{Ff}}CdC`}Cd}{{{j{{l{c}}}}CdC`}Cdn}{{{j{Ah{Aj{c}}}}C`C`}{{Mj{{j{Ahc}}{j{Ahc}}}}}{}}`{{{l{c}}{Nn{{Hh{e}}}}}{{O`{c}}}{B`{Bj{}{{Bh{Hh}}}}}{{A`{}{{b{}}}}}}{{{l{c}}Al{j{{Aj{Bl}}}}}{{O`{c}}}{B`{Bj{}{{Bh{Hh}}}}}}{{{l{c}}{Nn{{Hh{e}}}}g}{{O`{c}}}{B`{Bj{}{{Bh{Hh}}}}}{{A`{}{{b{}}}}}{{Ob{j{j{Id}}CdC`}{{F`{Cd}}}}}}","D":"ACn","p":[[17,"Algebra"],[17,"Module"],[17,"Homomorphism"],[10,"ChainComplex",12],[1,"reference"],[5,"Arc",806],[10,"Algebra",807],[10,"Module",808],[17,"Source"],[17,"Target"],[10,"ModuleHomomorphism",809],[0,"mut"],[1,"slice"],[5,"Bidegree",810],[1,"bool"],[10,"FreeChainComplex",12],[5,"BidegreeGenerator",811],[5,"String",812],[17,"TargetComplex"],[17,"ChainMap"],[10,"AugmentedChainComplex",12],[1,"u32"],[1,"unit"],[1,"usize"],[10,"BoundedChainComplex",12],[1,"i32"],[1,"isize"],[5,"Vec",813],[6,"Option",814],[5,"Product",815],[17,"Item"],[10,"Iterator",816],[5,"StemIterator",12],[10,"Sized",817],[5,"ValidPrime",818],[6,"SaveDirectory",453],[6,"SaveKind",453],[5,"SaveFile",453],[5,"Adams",815],[5,"Sseq",815],[6,"Result",819],[5,"TypeId",820],[5,"FiniteChainComplex",104],[5,"FiniteAugmentedChainComplex",104],[10,"ZeroModule",821],[10,"ZeroHomomorphism",809],[5,"FullModuleHomomorphism",822],[17,"Output"],[10,"FnMut",823],[5,"Resolution",163],[5,"MilnorAlgebra",824],[5,"MilnorSubalgebra",163],[5,"Formatter",825],[5,"Error",825],[8,"Result",826],[10,"Read",827],[8,"PPartEntry",824],[1,"str"],[5,"SubalgebraIterator",163],[5,"SignatureIterator",163],[1,"u8"],[8,"Result",828],[10,"Into",829],[5,"IterBridge",830],[5,"SenderData",163],[5,"Sender",831],[8,"FreeModule",832],[8,"FreeModuleHomomorphism",833],[5,"Matrix",834],[10,"Write",827],[6,"FpVector",835],[5,"AugmentedMatrix",834],[5,"MuResolution",316],[5,"Subspace",836],[5,"SenderData",316],[5,"MuResolutionHomomorphism",404],[6,"FpSliceMut",835],[5,"BidegreeRange",837],[10,"Sync",817],[5,"Range",838],[5,"MuFreeModuleHomomorphism",833],[5,"Path",839],[5,"PathBuf",839],[5,"ChecksumWriter",453],[5,"ChecksumReader",453],[8,"Result",825],[5,"Box",840],[5,"HashSet",841],[5,"Mutex",842],[10,"AsRef",829],[5,"SecondaryComposite",594],[6,"FpSlice",835],[10,"PairAlgebra",843],[5,"SecondaryHomotopy",594],[10,"Send",817],[8,"CompositeData",594],[17,"Underlying"],[10,"SecondaryLift",594],[5,"SecondaryResolution",594],[5,"OnceBiVec",844],[5,"DashMap",845],[5,"Config",698],[8,"QueryModuleResolution",698],[17,"Error"],[10,"TryInto",829],[5,"FiniteDimensionalModule",846],[8,"CCC",0],[10,"Subscriber",847],[1,"tuple"],[6,"Value",848],[6,"AlgebraType",849],[8,"UnstableResolution",316],[8,"SteenrodModule",850],[1,"char"],[5,"LogWriter",756],[5,"Throughput",756],[5,"QuotientModule",851],[5,"AdemAlgebra",852],[5,"ChainMap",12],[8,"Yoneda",793],[10,"Fn",823],[6,"ChainComplexGrading",12],[6,"Magic",163],[8,"Resolution",316],[8,"ResolutionHomomorphism",404],[8,"UnstableResolutionHomomorphism",404],[15,"Split",592]],"r":[[17,853],[21,104],[22,104],[699,756],[722,756],[727,756]],"b":[[746,"impl-TryFrom%3C%26str%3E-for-Config"],[748,"impl-TryFrom%3C(%26str,+T)%3E-for-Config"],[749,"impl-TryFrom%3C(Value,+T)%3E-for-Config"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAIcCTwABAAMACAABAAsAAgARAAEAFAAHAB0AAQAgAAUAJwAFAC4ABgA2AAQAPAABAEEAAABDAAIASQAAAEwABQBTAAIAWAAbAHUADACEAAMAigAbAKcAAACsAAAArwAUAMUAFgDdAAAA5AABAOcABQDzAAEA9gAZABIBAAAVASMAOgECAD8BAABBARAAUwEKAGIBAgBtAQwAewEGAIMBAACIAQwAlgEBAJkBBQCmAQAAqQEBAKwBGQDJAQAAywEAANABAADSAQIA2AEWAPABHwAUAgAAFwIFACICBwArAgAALQInAFcCAABZAgUAYAIAAGICCwBwAhMAhwIEAI4CBwCZAgkApAIWALwCAAC+AgAAwAIGAMoCCgDXAgEA2wICAN8CAQDkAgIA6AIIAPICEgAHAwIADQMQAB8DBAAlAwEA"}],\ +["ext",{"t":"ICOOCCCCCCCORKKKGEFRPFFKPRRFRMNNNNNNNNOOCMOOMONNNNNNMONNNNNNCNNNNMNNNNNNNNNMOMMONMNNONNMONNNNNNNNNNNNNMOFFNNNNNNNONNONNNNNNNNONNNNNNNNNNNNNNNNNNNONNNNNONNNNNNNNNNOPPTSGFFFPFFNNONNNNNNNNNNNNNONNNNNOOONNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNONONNNNNNNNNNNONONONONNNNNNNNNONONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONSFIFINNONNNNNOOOOOONNNNNNNNNOOONNNNNNNNNNNOOOOOOOOONNOOONOOONONNNOOONONOOONNNNNNNNNNNOOOFIINNNNNNNNNNNNNNNNNNNNOOONOOONNNOOOOOOOOOOOONNNNPPPFFPPPPPPPGFGPPPPOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNONNNNNHNHONNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOORITFFKFRJRRNNNNMNNNNNNNNMNNOONNNMNNNONNNNNNNNNNNNNNNNNOMNOONNNNNMNONNNMNNNNNMNMNOMNOMNOONNNNNNNNNNMNONNNFFISONNOONNNHHHNNONNNNNNHNNHNHNHOCOOOOHHHHHOHOONNNNNNNHNOOFFNNNNONNNNNNHNNNNNNHNNNNONNNNNNNNNNOSIOOHHHHHOHHH","n":["CCC","chain_complex","differentials","modules","nassau","resolution","resolution_homomorphism","save","secondary","utils","yoneda","zero_module","Algebra","AugmentedChainComplex","BoundedChainComplex","ChainComplex","ChainComplexGrading","ChainHomotopy","ChainMap","ChainMap","Cohomological","FiniteAugmentedChainComplex","FiniteChainComplex","FreeChainComplex","Homological","Homomorphism","Module","StemIterator","TargetComplex","algebra","apply_quasi_inverse","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","boundary_string","cc","cc","chain_homotopy","chain_map","chain_maps","chain_maps","compute_through_bidegree","current","deref","deref","deref","deref_mut","deref_mut","deref_mut","differential","differentials","drop","drop","drop","euler_characteristic","filtration_one_product","filtration_one_products","finite_chain_complex","from","from","from","graded_dimension_string","has_computed_bidegree","init","init","init","into","into","into","into_iter","iter_nonzero_stem","iter_stem","max_s","max_s","min_degree","module","modules","next","next_homological_degree","number_of_gens_in_bidegree","prime","s_shift","save_dir","save_file","target","target_cc","to_sseq","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","zero_module","zero_module","FiniteAugmentedChainComplex","FiniteChainComplex","algebra","algebra","augment","borrow","borrow","borrow_mut","borrow_mut","cc","ccdz","chain_map","chain_maps","compute_through_bidegree","compute_through_bidegree","deref","deref","deref_mut","deref_mut","differential","differential","differentials","drop","drop","from","from","from","has_computed_bidegree","has_computed_bidegree","init","init","into","into","map","map","max_s","max_s","min_degree","min_degree","module","module","modules","new","next_homological_degree","next_homological_degree","pop","target","target_cc","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","zero_module","zero_module","zero_module","End","Fix","INFINITY","MAX_NEW_GENS","Magic","MilnorSubalgebra","Resolution","SenderData","Signature","SignatureIterator","SubalgebraIterator","algebra","apply_quasi_inverse","b","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","chain_map","chain_maps","clone","clone_into","clone_to_uninit","compute_through_bidegree","compute_through_stem","current","current","degree","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","differential","differentials","drop","drop","drop","drop","drop","drop","extend_through_degree","fmt","from","from","from","from","from","from","from_bytes","has_computed_bidegree","has_signature","init","init","init","init","init","init","into","into","into","into","into","into","into_iter","into_iter","iter_signatures","lock","max_degree","min_degree","module","modules","name","name","new","new","new","new","new_with_save","next","next","next_homological_degree","optimal_for","par_bridge","prime","profile","save_dir","save_dir","send","sender","set_name","signature_degree","signature_from_bytes","signature_mask","signature_matrix","signature_to_bytes","step0","step1","step_resolution","step_resolution_with_result","step_resolution_with_subalgebra","subalgebra","target","target","to_bytes","to_owned","to_string","top_degree","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","write_differential","write_qi","zero_algebra","zero_module","zero_module","zero_signature","MAX_NEW_GENS","MuResolution","Resolution","SenderData","UnstableResolution","algebra","apply_quasi_inverse","b","borrow","borrow","borrow_mut","borrow_mut","chain_map","chain_maps","chain_maps","chain_maps","complex","complex","complex","compute_through_bidegree","compute_through_bidegree_with_callback","compute_through_stem","compute_through_stem_with_callback","deref","deref","deref_mut","deref_mut","differential","differentials","differentials","differentials","drop","drop","extend_through_degree","from","from","get_kernel","has_computed_bidegree","init","init","into","into","kernels","kernels","kernels","load_quasi_inverse","load_quasi_inverse","load_quasi_inverse","lock","lock","lock","min_degree","module","modules","modules","modules","name","name","name","name","new","new","new_with_save","next_homological_degree","save_dir","save_dir","save_dir","save_dir","send","sender","set_name","should_save","should_save","should_save","step_resolution","target","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","zero_module","zero_module","zero_module","zero_module","MuResolutionHomomorphism","ResolutionHomomorphism","UnstableResolutionHomomorphism","act","algebra","borrow","borrow_mut","deref","deref_mut","drop","extend","extend_all","extend_profile","extend_step","extend_step_raw","extend_through_stem","from","from_class","from_module_homomorphism","get_map","get_map_ensure_length","init","into","maps","maps","maps","name","name","name","name","new","next_homological_degree","save_dir","save_dir","save_dir","save_dir","shift","shift","shift","source","source","source","target","target","target","try_from","try_into","type_id","vzip","AugmentationQi","ChainHomotopy","ChainMap","ChecksumReader","ChecksumWriter","Combined","Differential","Kernel","NassauDifferential","NassauQi","None","ResQi","SaveDirectory","SaveFile","SaveKind","SecondaryComposite","SecondaryHomotopy","SecondaryIntermediate","Split","adler","adler","algebra","b","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","clone_to_uninit","clone_to_uninit","clone_to_uninit","create_dir","create_file","delete_file","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","drop","drop","drop","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","exists","flush","fmt","fmt","from","from","from","from","from","from","get_save_path","idx","init","init","init","init","init","into","into","into","into","into","is_none","is_some","kind","magic","name","nassau_data","new","new","open_file","open_file","open_files","path","push","read","read","read_exact","reader","resolution_data","secondary_data","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","validate_header","vzip","vzip","vzip","vzip","vzip","write","write","write_all","write_header","writer","read","write","Algebra","CompositeData","HIT_GENERATOR","SecondaryComposite","SecondaryHomotopy","SecondaryLift","SecondaryResolution","Source","TAU_BIDEGREE","Target","Underlying","act","act","add_composite","add_composite","algebra","algebra","algebra","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","composite","composite","composite","composite","composites","compute_composites","compute_homotopies","compute_homotopy_step","compute_intermediate","compute_intermediate","compute_intermediates","compute_partial","degree","deref","deref","deref","deref_mut","deref_mut","deref_mut","drop","drop","drop","e3_page","extend_all","finalize","from","from","from","from_bytes","get_intermediate","hit_generator","homotopies","homotopies","homotopies","homotopies","homotopy","init","init","init","initialize_homotopies","intermediates","intermediates","intermediates","into","into","into","max","max","new","new","new","prime","save_dir","save_dir","shift","shift","shift_t","source","source","source","target","target","target","target","to_bytes","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","underlying","underlying","underlying","vzip","vzip","vzip","Config","LogWriter","QueryModuleResolution","STATIC_MODULES_PATH","algebra","borrow","borrow_mut","bytes","chain_maps","clone","clone_into","clone_to_uninit","construct","construct_nassau","construct_standard","deref","deref_mut","differentials","drop","eq","equivalent","equivalent","equivalent","equivalent","ext_tracing_subscriber","fmt","from","get_unit","init","init_logging","into","load_module_json","lock","logging","max_degree","module","modules","name","parse_module_name","query_module","query_module_only","query_unstable_module","query_unstable_module_only","save_dir","secondary_job","start","target","to_owned","try_from","try_from","try_from","try_from","try_into","type_id","unicode_num","vzip","writer","zero_module","LogWriter","Throughput","borrow","borrow","borrow_mut","borrow_mut","bytes","deref","deref","deref_mut","deref_mut","drop","drop","ext_tracing_subscriber","flush","fmt","from","from","init","init","init_logging","into","into","into_throughput","new","start","to_string","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","write","writer","PENALTY_UNIT","Yoneda","cc","chain_maps","compute_kernel_image","rate_adem_operation","rate_milnor_operation","rate_operation","split_mut_borrow","target_cc","yoneda_representative","yoneda_representative_element","yoneda_representative_with_strategy"],"q":[[0,"ext"],[12,"ext::chain_complex"],[104,"ext::chain_complex::finite_chain_complex"],[163,"ext::nassau"],[316,"ext::resolution"],[404,"ext::resolution_homomorphism"],[453,"ext::save"],[592,"ext::save::SaveDirectory"],[594,"ext::secondary"],[698,"ext::utils"],[756,"ext::utils::logging"],[793,"ext::yoneda"],[806,"alloc::sync"],[807,"algebra::algebra::algebra_trait"],[808,"algebra::module::module_trait"],[809,"algebra::module::homomorphism"],[810,"sseq::coordinates::bidegree"],[811,"sseq::coordinates::generator"],[812,"alloc::string"],[813,"alloc::vec"],[814,"core::option"],[815,"sseq::sseq"],[816,"core::iter::traits::iterator"],[817,"core::marker"],[818,"fp::prime::primes_generic"],[819,"core::result"],[820,"core::any"],[821,"algebra::module::zero_module"],[822,"algebra::module::homomorphism::full_module_homomorphism"],[823,"core::ops::function"],[824,"algebra::algebra::milnor_algebra"],[825,"core::fmt"],[826,"std::io::error"],[827,"std::io"],[828,"anyhow"],[829,"core::convert"],[830,"rayon::iter::par_bridge"],[831,"std::sync::mpsc"],[832,"algebra::module::free_module"],[833,"algebra::module::homomorphism::free_module_homomorphism"],[834,"fp::matrix::matrix_inner"],[835,"fp::vector::fp_wrapper"],[836,"fp::matrix::subspace"],[837,"sseq::coordinates::range"],[838,"core::ops::range"],[839,"std::path"],[840,"alloc::boxed"],[841,"std::collections::hash::set"],[842,"std::sync::mutex"],[843,"algebra::algebra::pair_algebra"],[844,"once"],[845,"dashmap"],[846,"algebra::module::finite_dimensional_module"],[847,"tracing_core::subscriber"],[848,"serde_json::value"],[849,"algebra::algebra::steenrod_algebra"],[850,"algebra::module::steenrod_module"],[851,"algebra::module::quotient_module"],[852,"algebra::algebra::adem_algebra"],[853,"ext::chain_complex::chain_homotopy"]],"i":[0,0,107,107,0,0,0,0,0,0,0,107,4,0,0,0,0,0,0,21,122,0,0,0,122,4,4,0,21,4,4,122,33,119,122,33,119,16,44,33,0,21,44,119,4,33,122,33,119,122,33,119,4,43,122,33,119,25,16,16,0,122,33,119,16,4,122,33,119,122,33,119,33,16,4,25,33,4,4,43,33,4,16,4,119,4,4,21,44,16,122,33,119,122,33,119,122,33,119,122,33,119,4,43,0,0,43,44,43,43,44,43,44,44,43,44,44,43,44,43,44,43,44,43,44,43,43,44,43,43,44,43,44,43,44,43,44,43,44,43,44,43,44,43,44,43,43,43,44,43,44,44,43,44,43,44,43,44,43,44,43,44,43,123,123,52,0,0,0,0,0,123,0,0,50,50,65,65,59,60,123,50,52,65,59,60,123,50,52,50,50,52,52,52,50,50,59,60,60,65,59,60,123,50,52,65,59,60,123,50,52,50,50,65,59,60,123,50,52,50,52,65,59,60,123,50,52,52,50,52,65,59,60,123,50,52,65,59,60,123,50,52,59,60,52,50,50,50,50,50,50,50,59,60,50,52,50,59,60,50,52,59,50,52,50,50,65,65,50,60,52,52,52,52,50,50,50,50,50,60,50,50,52,52,52,52,65,59,60,123,50,52,65,59,60,123,50,52,65,59,60,123,50,52,65,59,60,123,50,52,50,50,52,50,50,52,0,0,0,0,0,73,73,75,75,73,75,73,73,124,112,73,124,112,73,73,73,73,73,75,73,75,73,73,124,112,73,75,73,73,75,73,73,73,75,73,75,73,124,112,73,124,112,73,124,112,73,73,73,124,112,73,73,124,112,73,73,75,73,73,73,124,112,73,75,75,73,124,112,73,73,73,75,73,75,73,75,73,75,73,73,124,112,73,0,0,0,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,125,126,76,76,125,126,76,76,76,76,125,126,76,125,126,76,125,126,76,125,126,76,76,76,76,76,37,37,37,0,0,36,37,37,37,37,36,37,0,0,0,37,37,37,36,84,85,38,38,84,85,38,36,37,84,85,38,36,37,36,37,36,37,36,37,37,37,38,38,84,85,38,36,37,84,85,38,36,37,84,84,85,85,38,36,37,36,37,36,36,36,36,37,37,37,37,38,84,36,37,84,85,38,36,36,37,38,38,84,85,38,36,37,84,85,38,36,37,36,36,38,37,37,37,84,85,0,38,0,84,36,85,36,85,85,37,37,36,37,84,85,38,36,37,84,85,38,36,37,84,85,38,36,37,38,84,85,38,36,37,84,36,84,38,84,127,127,98,0,98,0,0,0,0,98,0,98,98,91,94,91,94,98,91,99,91,94,99,91,94,99,98,94,99,91,94,98,98,98,98,99,98,98,91,91,94,99,91,94,99,91,94,99,99,98,91,91,94,99,91,98,94,98,99,94,99,99,91,94,99,98,98,99,99,91,94,99,98,99,91,94,99,98,98,99,98,99,94,98,99,94,98,99,91,94,91,91,94,99,91,94,99,91,94,99,98,99,99,91,94,99,0,0,0,0,102,102,102,115,103,102,102,102,0,0,0,102,102,103,102,102,102,102,102,102,0,102,102,0,102,0,102,0,103,0,103,102,103,103,0,0,0,0,0,103,0,115,103,102,102,102,102,102,102,102,0,102,115,103,0,0,115,116,115,116,115,115,116,115,116,115,116,0,115,116,115,116,115,116,0,115,116,115,115,115,116,115,116,115,116,115,116,115,116,115,115,0,0,120,120,0,0,0,0,0,120,0,0,0],"f":"`````````````````````````````{{{j{{h{}{{b{c}}{d{e}}{f{g}}}}}}}{{l{c}}}n{{A`{}{{b{c}}}}}{{Af{}{{Ab{e}}{Ad{e}}}}}}{{{j{{h{}{{b{c}}{d{e}}{f{g}}}}}}{j{Ah{Aj{i}}}}Al{j{{Aj{k}}}}}Ann{{A`{}{{b{c}}}}}{{Af{}{{Ab{e}}{Ad{e}}}}}{}{}}{{{j{c}}}{{j{e}}}{}{}}00{{{j{Ahc}}}{{j{Ahe}}}{}{}}00{{{j{B`}}BbAn}Bd}```{{{j{{Bj{}{{Bf{c}}{Bh{g}}}}}}Bl}{{l{g}}}{{h{}{{b{e}}}}}{}{{Af{}{{Ab{i}}{Ad{}}}}}{}}``{{{j{{h{}{{b{c}}{d{e}}{f{g}}}}}}Al}Bnn{{A`{}{{b{c}}}}}{{Af{}{{Ab{e}}{Ad{e}}}}}}`{C`{{j{c}}}{}}00{C`{{j{Ahc}}}{}}00{{{j{{h{}{{b{c}}{d{e}}{f{g}}}}}}Bl}{{l{g}}}n{{A`{}{{b{c}}}}}{{Af{}{{Ab{e}}{Ad{e}}}}}}`{C`Bn}00{{{j{Cb}}Cd}Cf}{{{j{B`}}CdC`Al}{{Cj{{Ch{{Ch{Bl}}}}}}}}{{{j{B`}}CdC`}Cl}`{cc{}}00{{{j{B`}}}Bd}{{{j{{h{}{{b{c}}{d{e}}{f{g}}}}}}Al}Ann{{A`{}{{b{c}}}}}{{Af{}{{Ab{e}}{Ad{e}}}}}}{{}C`}00{ce{}{}}000{{{j{B`}}}{{`{{D`{}{{Cn{Al}}}}}}}}{{{j{{h{}{{b{c}}{d{e}}{f{g}}}}}}}{{Db{{h{}{{b{c}}{d{e}}{f{g}}}}}}}n{{A`{}{{b{c}}}}}{{Af{}{{Ab{e}}{Ad{e}}}}}}{{{j{Cb}}}Bl}`{{{j{{h{}{{b{c}}{d{e}}{f{g}}}}}}}Cdn{{A`{}{{b{c}}}}}{{Af{}{{Ab{e}}{Ad{e}}}}}}{{{j{{h{}{{b{c}}{d{e}}{f{g}}}}}}Bl}{{l{e}}}n{{A`{}{{b{c}}}}}{{Af{}{{Ab{e}}{Ad{e}}}}}}`{{{j{Ah{Db{c}}}}}{{Cj{e}}}{hDd}{}}{{{j{{h{}{{b{c}}{d{e}}{f{g}}}}}}}Bln{{A`{}{{b{c}}}}}{{Af{}{{Ab{e}}{Ad{e}}}}}}{{{j{B`}}Al}C`}{{{j{{h{}{{b{c}}{d{e}}{f{g}}}}}}}Dfn{{A`{}{{b{c}}}}}{{Af{}{{Ab{e}}{Ad{e}}}}}}`{{{j{{h{}{{b{c}}{d{e}}{f{g}}}}}}}{{j{Dh}}}n{{A`{}{{b{c}}}}}{{Af{}{{Ab{e}}{Ad{e}}}}}}{{{j{{h{}{{b{c}}{d{e}}{f{g}}}}}}DjAl}{{Dl{c}}}n{{A`{}{{b{c}}}}}{{Af{}{{Ab{e}}{Ad{e}}}}}}{{{j{{Bj{}{{Bf{c}}{Bh{g}}}}}}}{{l{c}}}{{h{}{{b{e}}}}}{}{{Af{}{{Ab{i}}{Ad{}}}}}{}}`{{{j{B`}}}{{E`{Dn}}}}{c{{Eb{e}}}{}{}}00000{{{j{c}}}Ed{}}00???{{{j{{h{}{{b{c}}{d{e}}{f{g}}}}}}}{{l{e}}}n{{A`{}{{b{c}}}}}{{Af{}{{Ab{e}}{Ad{e}}}}}}```{{{j{{Ef{ce}}}}}{{l{g}}}A`{{Af{}{{Ab{c}}{Ad{c}}}}}{}}{{{j{{Eh{cegi}}}}}lA`{{Af{}{{Ab{c}}{Ad{c}}}}}{{Af{}{{Ab{c}}{Ad{}}}}}{{h{}{{b{}}}}}}{{{Ef{ce}}{l{g}}{Ch{{l{i}}}}}{{Eh{ceig}}}A`{{Af{}{{Ab{c}}{Ad{c}}}}}{{h{}{{b{}}}}}{{Af{}{{Ab{c}}{Ad{}}}}}}{{{j{c}}}{{j{e}}}{}{}}0{{{j{Ahc}}}{{j{Ahe}}}{}{}}0`{{{l{c}}}{{Ef{ce}}}{A`Ej}{{Af{}{{Ab{c}}{Ad{c}}}}{El{cc}}}}{{{j{{Eh{cegi}}}}Bl}{{l{k}}}A`{{Af{}{{Ab{c}}{Ad{c}}}}}{{Af{}{{Ab{c}}{Ad{}}}}}{{h{}{{b{}}}}}{}}`{{{j{{Ef{ce}}}}Al}BnA`{{Af{}{{Ab{c}}{Ad{c}}}}}}{{{j{{Eh{cegi}}}}Al}BnA`{{Af{}{{Ab{c}}{Ad{c}}}}}{{Af{}{{Ab{c}}{Ad{}}}}}{{h{}{{b{}}}}}}{C`{{j{c}}}{}}0{C`{{j{Ahc}}}{}}0{{{j{{Ef{ce}}}}Bl}{{l{g}}}A`{{Af{}{{Ab{c}}{Ad{c}}}}}{}}5`{C`Bn}0{{{Eh{cegi}}}{{Ef{ce}}}A`{{Af{}{{Ab{c}}{Ad{c}}}}}{{Af{}{{Ab{c}}{Ad{}}}}}{{h{}{{b{}}}}}}{cc{}}0{{{j{{Ef{ce}}}}Al}AnA`{{Af{}{{Ab{c}}{Ad{c}}}}}}{{{j{{Eh{cegi}}}}Al}AnA`{{Af{}{{Ab{c}}{Ad{c}}}}}{{Af{}{{Ab{c}}{Ad{}}}}}{{h{}{{b{}}}}}}{{}C`}0{ce{}{}}0{{{j{{Ef{c{En{c}}}}}}g}{{Ef{e{En{e}}}}}A`{{A`{}{{b{}}}}}{{Fb{{j{c}}}{{F`{e}}}}}}{{{j{{Eh{c{En{c}}{En{c}}e}}}}i}{{Eh{g{En{g}}{En{g}}e}}}A`{{h{}{{b{}}}}}{{A`{}{{b{}}}}}{{Fb{{j{c}}}{{F`{g}}}}}}{{{j{{Ef{ce}}}}}BlA`{{Af{}{{Ab{c}}{Ad{c}}}}}}{{{j{{Eh{cegi}}}}}BlA`{{Af{}{{Ab{c}}{Ad{c}}}}}{{Af{}{{Ab{c}}{Ad{}}}}}{{h{}{{b{}}}}}}{{{j{{Ef{ce}}}}}CdA`{{Af{}{{Ab{c}}{Ad{c}}}}}}{{{j{{Eh{cegi}}}}}CdA`{{Af{}{{Ab{c}}{Ad{c}}}}}{{Af{}{{Ab{c}}{Ad{}}}}}{{h{}{{b{}}}}}}={{{j{{Eh{cegi}}}}Bl}{{l{k}}}A`{{Af{}{{Ab{c}}{Ad{c}}}}}{{Af{}{{Ab{c}}{Ad{}}}}}{{h{}{{b{}}}}}{}}`{{{Ch{{l{c}}}}{Ch{{l{e}}}}}{{Ef{ce}}}{A`Ej}{{Af{}{{Ab{c}}{Ad{c}}}}{El{cc}}}}54{{{j{Ah{Ef{ce}}}}}BnA`{{Af{}{{Ab{c}}{Ad{c}}}}{El{cc}}}}{{{j{{Eh{cegi}}}}}{{l{k}}}A`{{Af{}{{Ab{c}}{Ad{c}}}}}{{Af{}{{Ab{c}}{Ad{}}}}}{{h{}{{b{}}}}}{}}`{c{{Eb{e}}}{}{}}000{{{j{c}}}Ed{}}0<<{{{j{{Ef{ce}}}}}{{l{g}}}A`{{Af{}{{Ab{c}}{Ad{c}}}}}{}}3````````````{{{j{{Fd{c}}}}}{{l{e}}}{{Ej{}{{b{Ff}}}}}{}}{{{j{{Fd{c}}}}{j{Ah{Aj{e}}}}Al{j{{Aj{g}}}}}An{{Ej{}{{b{Ff}}}}}{}{}}`{{{j{c}}}{{j{e}}}{}{}}00000{{{j{Ahc}}}{{j{Ahe}}}{}{}}00000{{{j{{Fd{c}}}}Bl}{{l{e}}}{{Ej{}{{b{Ff}}}}}{}}`{{{j{Fh}}}Fh}{{{j{c}}{j{Ahe}}}Bn{}{}}{{{j{c}}}Bn{}}{{{j{{Fd{c}}}}Al}Bn{{Ej{}{{b{Ff}}}}}}0```{C`{{j{c}}}{}}00000{C`{{j{Ahc}}}{}}000006`{C`Bn}00000{{{j{{Fd{c}}}}Bl}Bn{{Ej{}{{b{Ff}}}}}}{{{j{Fh}}{j{AhFj}}}{{Eb{BnFl}}}}{cc{}}00000{{{j{Ahc}}}{{Fn{Fh}}}G`}{{{j{{Fd{c}}}}Al}An{{Ej{}{{b{Ff}}}}}}{{{j{Fh}}{j{{Aj{Gb}}}}{j{{Aj{Gb}}}}}An}{{}C`}00000{ce{}{}}0000000{{{j{Fh}}Cd}{{`{{D`{}{{Cn{{Ch{Gb}}}}}}}}}}``{{{j{{Fd{c}}}}}Cd{{Ej{}{{b{Ff}}}}}}{{{j{{Fd{c}}}}Bl}{{l{e}}}{{Ej{}{{b{Ff}}}}}{}}`{{{j{{Fd{c}}}}}{{j{Gd}}}{{Ej{}{{b{Ff}}}}}}`{{}Gf}{{{j{Fh}}Cd}Gh}{{{l{c}}}{{Fd{c}}}{{Ej{}{{b{Ff}}}}}}{{{Ch{Gj}}}Fh}{{{l{c}}e}{{Gl{{Fd{c}}}}}{{Ej{}{{b{Ff}}}}}{{Gn{Dh}}}}{{{j{AhGf}}}{{Cj{c}}}{}}{{{j{AhGh}}}{{Cj{c}}}{}}{{{j{{Fd{c}}}}}Bl{{Ej{}{{b{Ff}}}}}}{AlFh}{c{{H`{e}}}{}{}}{{{j{{Fd{c}}}}}Df{{Ej{}{{b{Ff}}}}}}`{{{j{{Fd{c}}}}}{{j{Dh}}}{{Ej{}{{b{Ff}}}}}}`{{Al{Hd{Hb}}}Bn}`{{{j{Ah{Fd{c}}}}Bd}Bn{{Ej{}{{b{Ff}}}}}}`{{{j{Fh}}{j{Ahc}}}{{Fn{{Ch{Gb}}}}}G`}{{{j{Fh}}{j{Ff}}{j{{Hf{Ff}}}}Cd{j{{Aj{Gb}}}}}{{`{{D`{}{{Cn{C`}}}}}}}}{{{j{Fh}}{j{{Hh{{Hf{Ff}}}}}}Cd{j{{Aj{Gb}}}}}Hj}{{{j{{Aj{Gb}}}}{j{Ahc}}}{{Fn{Bn}}}Hl}{{{j{{Fd{c}}}}Cd}Bn{{Ej{}{{b{Ff}}}}}}{{{j{{Fd{c}}}}Cd}{{Gl{Bn}}}{{Ej{}{{b{Ff}}}}}}{{{j{{Fd{c}}}}Al}Bn{{Ej{}{{b{Ff}}}}}}{{{j{{Fd{c}}}}Al}{{Gl{Bn}}}{{Ej{}{{b{Ff}}}}}}{{{j{{Fd{c}}}}AlFh}{{Gl{Bn}}}{{Ej{}{{b{Ff}}}}}}`{{{j{{Fd{c}}}}}{{l{e}}}{{Ej{}{{b{Ff}}}}}{}}`{{{j{Fh}}{j{Ahc}}}{{Fn{Bn}}}Hl}{{{j{c}}}e{}{}}{{{j{c}}}Bd{}}{{{j{Fh}}}Cd}{c{{Eb{e}}}{}{}}00000000000{{{j{c}}}Ed{}}00000{ce{}{}}00000{{{j{{Fd{c}}}}AlC`C`}{{Gl{Bn}}}{{Ej{}{{b{Ff}}}}}}{{{j{Ah{Cj{c}}}}{j{AhHn}}{j{{Aj{Gb}}}}{j{{Aj{C`}}}}{j{Hj}}{j{I`}}}{{Fn{Bn}}}Hl}{{}Fh}:`{{{j{Fh}}}{{Ch{Gb}}}}`````{{{j{{Ib{c}}}}}{{l{e}}}h{}}{{{j{{Ib{c}}}}{j{Ah{Aj{e}}}}Al{j{{Aj{g}}}}}Anh{}{}}`{{{j{c}}}{{j{e}}}{}{}}0{{{j{Ahc}}}{{j{Ahe}}}{}{}}0{{{j{{Ib{c}}}}Bl}{{l{e}}}h{}}``````{{{j{{Ib{c}}}}Al}Bnh}{{{j{{Ib{c}}}}Ale}Bnh{{Fb{Al}}}}10{C`{{j{c}}}{}}0{C`{{j{Ahc}}}{}}04```{C`Bn}0{{{j{{Ib{c}}}}Bl}Bnh}{cc{}}0{{{j{{Ib{c}}}}Al}Idh}{{{j{{Ib{c}}}}Al}Anh}{{}C`}0{ce{}{}}0`````````{{{j{{Ib{c}}}}}Cdh}<```{{{j{{Ib{c}}}}}{{j{Gd}}}h}```{{{l{c}}}{{Ib{c}}}h}`{{{l{c}}e}{{Gl{{Ib{c}}}}}h{{Gn{Dh}}}}{{{j{{Ib{c}}}}}Blh}{{{j{{Ib{c}}}}}{{j{Dh}}}h}```{{AlAn{Hd{If}}}Bn}`{{{j{Ah{Ib{c}}}}Bd}Bnh}```{{{j{{Ib{c}}}}Al}Bnh}{{{j{{Ib{c}}}}}{{l{e}}}h{}}{c{{Eb{e}}}{}{}}000{{{j{c}}}Ed{}}0<<2``````{{{j{{Ih{ce}}}}IjBlBb}BnB`{{B`{}{{b{}}}}}}{{{j{{Ih{ce}}}}}lB`{{h{}{{b{}}}}}}{{{j{c}}}{{j{e}}}{}{}}{{{j{Ahc}}}{{j{Ahe}}}{}{}}{C`{{j{c}}}{}}{C`{{j{Ahc}}}{}}{C`Bn}{{{j{{Ih{ce}}}}Al}BnB`{{h{}{{b{}}}}}}{{{j{{Ih{ce}}}}}BnB`{{h{}{{b{}}}}}}{{{j{{Ih{ce}}}}{Il{g}}}BnB`{{h{}{{b{}}}}}In}{{{j{{Ih{ce}}}}Al{Cj{{j{Hj}}}}}{{J`{Cd}}}B`{{Bj{}{{b{}}}}}}{{{j{{Ih{ce}}}}Al{Cj{{Ch{Hn}}}}}{{J`{Cd}}}B`{{h{}{{b{}}}}}}4{cc{}}{{Bd{l{c}}{l{e}}Al{j{{Aj{Bl}}}}}{{Ih{ce}}}B`{{Bj{}{{b{}}}}}}{{Bd{l{c}}{l{e}}{j{g}}}{{Ih{ce}}}{BjB`}{{Bj{}{{b{}}}}}{{Af{}{{Ab{}}{Ad{}}}}}}{{{j{{Ih{ce}}}}Bl}{{l{Jb}}}B`{{h{}{{b{}}}}}}{{{j{{Ih{ce}}}}Bl}{{j{Jb}}}B`{{h{}{{b{}}}}}}{{}C`}{ce{}{}}```{{{j{{Ih{ce}}}}}{{j{Gd}}}B`{{h{}{{b{}}}}}}```{{Bd{l{c}}{l{e}}Al}{{Ih{ce}}}B`{{h{}{{b{}}}}}}{{{j{{Ih{ce}}}}}CdB`{{h{}{{b{}}}}}}{{{j{{Ih{ce}}}}}{{j{Dh}}}B`{{h{}{{b{}}}}}}````````````{c{{Eb{e}}}{}{}}0{{{j{c}}}Ed{}}6```````````````````````{{{j{c}}}{{j{e}}}{}{}}0000{{{j{Ahc}}}{{j{Ahe}}}{}{}}0000{{{j{Dh}}}Dh}{{{j{Dj}}}Dj}{{{j{c}}{j{Ahe}}}Bn{}{}}0{{{j{c}}}Bn{}}00{{Dj{j{Jd}}}{{Gl{Bn}}}}{{{j{{Dl{c}}}}JfAn}{{`{Hl}}}n}{{{j{{Dl{c}}}}Jf}{{Fn{Bn}}}n}{C`{{j{c}}}{}}0000{C`{{j{Ahc}}}{}}0000{{{j{Ah{Jh{c}}}}}BnHl}{C`Bn}{{{j{Ah{Jj{c}}}}}BnG`}1111{{{j{Dh}}{j{Dh}}}An}{{{j{Dj}}{j{Dj}}}An}{{{j{c}}{j{e}}}An{}{}}0000000{{{j{{Dl{c}}}}Jf}Ann}{{{j{Ah{Jh{c}}}}}{{Fn{Bn}}}Hl}{{{j{Dh}}{j{AhFj}}}Jl}{{{j{Dj}}{j{AhFj}}}Jl}{cc{}}000{{{Cj{Jf}}}Dh}1{{{j{{Dl{c}}}}Jf}Jfn}`{{}C`}0000{ce{}{}}0000{{{j{Dh}}}An}0`{DjBl}{Dj{{j{Gd}}}}{{}{{`{{D`{}{{Cn{Dj}}}}}}}}{{Jfc}{{Jh{c}}}Hl}{c{{Jj{c}}}G`}{Jf{{Cj{{Jn{G`}}}}}}{{{j{{Dl{c}}}}Jf}{{Cj{{Jn{G`}}}}}n}{{}{{j{{Kb{{K`{Jf}}}}}}}}`{{{j{AhDh}}c}Bn{{Kd{Jd}}}}{{{j{Ah{Jj{c}}}}{j{Ah{Aj{Gj}}}}}{{Fn{C`}}}G`}{{{j{Dh}}}{{Cj{{j{Jf}}}}}}{{{j{Ah{Jj{c}}}}{j{Ah{Aj{Gj}}}}}{{Fn{Bn}}}G`}`99{{{j{c}}}e{}{}}0{c{{Eb{e}}}{}{}}000000000{{{j{c}}}Ed{}}0000{{{j{{Dl{c}}}}{j{Ahe}}}{{Fn{Bn}}}nG`}{ce{}{}}0000{{{j{Ah{Jh{c}}}}{j{{Aj{Gj}}}}}{{Fn{C`}}}Hl}7{{{j{Ah{Jh{c}}}}{j{{Aj{Gj}}}}}{{Fn{Bn}}}Hl}{{{j{{Dl{c}}}}{j{Ahe}}}{{Fn{Bn}}}nHl}``````````````{{{j{{Kf{c}}}}IjBlCdKh}BnKj}{{{j{{Kl{c}}}}IjBlCdKhAn}Bn{KjKnIn}}{{{j{Ah{Kf{c}}}}BlCdC`{j{{Hh{{Hf{c}}}}}}{j{{Hh{{Hf{c}}}}}}}BnKj}{{{j{{Kl{c}}}}BlCd{L`{c}}{j{Dh}}}Bn{KjKnIn}}{{{j{{Ld{}{{b{c}}{Ab{e}}{Ad{g}}{Lb{i}}}}}}}{{l{c}}}Kj{{B`{}{{b{c}}}}}{{B`{}{{b{c}}}}}{}}{{{j{{Kf{c}}}}}{{l{c}}}Kj}{{{j{{Lf{c}}}}}{{l{e}}}B`{}}{{{j{c}}}{{j{e}}}{}{}}00{{{j{Ahc}}}{{j{Ahe}}}{}{}}00{{{j{{Ld{}{{b{c}}{Ab{e}}{Ad{g}}{Lb{i}}}}}}Bl}{{L`{c}}}Kj{{B`{}{{b{c}}}}}{{B`{}{{b{c}}}}}{}}{{{j{{Kl{c}}}}CdC`}{{j{{Kf{c}}}}}{KjKnIn}}{{{j{{Lf{c}}}}Bl}L`B`}``{{{j{{Ld{}{{b{c}}{Ab{e}}{Ad{g}}{Lb{i}}}}}}}BnKj{{B`{}{{b{c}}}}}{{B`{}{{b{c}}}}}{}}0{{{j{{Ld{}{{b{c}}{Ab{e}}{Ad{g}}{Lb{i}}}}}}Al}{{J`{Cd}}}Kj{{B`{}{{b{c}}}}}{{B`{}{{b{c}}}}}{}}{{{j{{Ld{}{{b{c}}{Ab{e}}{Ad{g}}{Lb{i}}}}}}Bb}HnKj{{B`{}{{b{c}}}}}{{B`{}{{b{c}}}}}{}}{{{j{{Lf{c}}}}Bb}HnB`}3{{{j{{Ld{}{{b{c}}{Ab{e}}{Ad{g}}{Lb{i}}}}}}Bl}BnKj{{B`{}{{b{c}}}}}{{B`{}{{b{c}}}}}{}}`{C`{{j{c}}}{}}00{C`{{j{Ahc}}}{}}00{C`Bn}00{{{j{{Lf{c}}}}}{{E`{Dn}}}B`}8{{{j{Ah{Kf{c}}}}}BnKj}{cc{}}00{{{l{{Hf{c}}}}CdAn{j{Ahe}}}{{Fn{{Kf{c}}}}}KjG`}9`{{{j{{Ld{}{{b{c}}{Ab{e}}{Ad{g}}{Lb{i}}}}}}}{{j{{Lh{{Kl{c}}}}}}}Kj{{B`{}{{b{c}}}}}{{B`{}{{b{c}}}}}{}}{{{j{{Lf{c}}}}}{{j{{Lh{Kl}}}}}B`}``{{{j{{Lf{c}}}}Bl}{{j{Kl}}}B`}{{}C`}00?{{{j{{Ld{}{{b{c}}{Ab{e}}{Ad{g}}{Lb{i}}}}}}}{{j{{Lj{BbHn}}}}}Kj{{B`{}{{b{c}}}}}{{B`{}{{b{c}}}}}{}}{{{j{{Lf{c}}}}}{{j{{Lj{BbHn}}}}}B`}`{ce{}{}}00{{{j{{Ld{}{{b{c}}{Ab{e}}{Ad{g}}{Lb{i}}}}}}}{{Il{{Ld{}{{b{c}}{Ab{e}}{Ad{g}}{Lb{i}}}}}}}Kj{{B`{}{{b{c}}}}}{{B`{}{{b{c}}}}}{}}{{{j{{Lf{c}}}}}{{Il{{Lf{c}}}}}B`}{{{l{{Hf{c}}}}CdAn}{{Kf{c}}}Kj}{{{l{{Hf{c}}}}{l{{Hf{c}}}}CdAn}{{Kl{c}}}{KjKnIn}}{{{l{c}}}{{Lf{c}}}B`}{{{j{{Ld{}{{b{c}}{Ab{e}}{Ad{g}}{Lb{i}}}}}}}DfKj{{B`{}{{b{c}}}}}{{B`{}{{b{c}}}}}{}}{{{j{{Ld{}{{b{c}}{Ab{e}}{Ad{g}}{Lb{i}}}}}}}{{j{Dh}}}Kj{{B`{}{{b{c}}}}}{{B`{}{{b{c}}}}}{}}{{{j{{Lf{c}}}}}{{j{Dh}}}B`}{{{j{{Ld{}{{b{c}}{Ab{e}}{Ad{g}}{Lb{i}}}}}}}AlKj{{B`{}{{b{c}}}}}{{B`{}{{b{c}}}}}{}}{{{j{{Lf{c}}}}}AlB`}`{{{j{{Ld{}{{b{c}}{Ab{e}}{Ad{g}}{Lb{i}}}}}}}{{l{e}}}Kj{{B`{}{{b{c}}}}}{{B`{}{{b{c}}}}}{}}{{{j{{Lf{c}}}}}{{l{e}}}B`{}}`{{{j{{Ld{}{{b{c}}{Ab{e}}{Ad{g}}{Lb{i}}}}}}}{{l{g}}}Kj{{B`{}{{b{c}}}}}{{B`{}{{b{c}}}}}{}}1``{{{j{{Kf{c}}}}{j{Ahe}}}{{Fn{Bn}}}KjHl}{c{{Eb{e}}}{}{}}00000{{{j{c}}}Ed{}}00{{{j{{Ld{}{{b{c}}{Ab{e}}{Ad{g}}{Lb{i}}}}}}}{{l{i}}}Kj{{B`{}{{b{c}}}}}{{B`{}{{b{c}}}}}{}}{{{j{{Lf{c}}}}}{{l{c}}}B`}`{ce{}{}}00`````{{{j{c}}}{{j{e}}}{}{}}{{{j{Ahc}}}{{j{Ahe}}}{}{}}``{{{j{Ll}}}Ll}{{{j{c}}{j{Ahe}}}Bn{}{}}{{{j{c}}}Bn{}}{{eg}{{Gl{Ln}}}{}{{Mb{Ll}{{M`{c}}}}}{{Gn{Dh}}}}{{eg}{{Gl{{Fd{{Md{Ff}}}}}}}{}{{Mb{Ll}{{M`{c}}}}}{{Gn{Dh}}}}{{eg}{{Gl{{Ib{Mf}}}}}{}{{Mb{Ll}{{M`{c}}}}}{{Gn{Dh}}}}{C`{{j{c}}}{}}{C`{{j{Ahc}}}{}}`{C`Bn}{{{j{Ll}}{j{Ll}}}An}{{{j{c}}{j{e}}}An{}{}}000{{}{{`{Mh}}}}{{{j{Ll}}{j{AhFj}}}Jl}{cc{}}{{{l{Ln}}}{{Gl{{Mj{An{l{Ln}}}}}}}}{{}C`}{{}Bn}{ce{}{}}{{{j{Gd}}}{{Gl{Ml}}}}``````0{{{Cj{Mn}}An}{{Gl{Ln}}}}{{{j{Gd}}{Cj{Mn}}An}{{Gl{Ln}}}}{An{{Gl{{N`{Mf}}}}}}{{}{{Gl{Nb}}}}`{{}{{Cj{Bl}}}}``{{{j{c}}}e{}{}}{c{{Eb{e}}}{}{}}{{{Mj{{j{Gd}}e}}}{{Eb{Llg}}}{}{{Mb{Mn}{{M`{c}}}}}{}}{{{Mj{Mlc}}}{{Eb{Lle}}}{{Mb{Mn}}}{}}{{{j{Gd}}}{{Eb{Llc}}}{}}3{{{j{c}}}Ed{}}{C`Nd}=````{{{j{c}}}{{j{e}}}{}{}}0{{{j{Ahc}}}{{j{Ahe}}}{}{}}0`{C`{{j{c}}}{}}0{C`{{j{Ahc}}}{}}0{C`Bn}0{{}{{`{Mh}}}}{{{j{Ah{Nf{c}}}}}{{Fn{Bn}}}Hl}{{{j{Nh}}{j{AhFj}}}Jl}{cc{}}0{{}C`}0{{}Bn}{ce{}{}}0{{{Nf{c}}}NhHl}{c{{Nf{c}}}{}}`{{{j{c}}}Bd{}}{c{{Eb{e}}}{}{}}000{{{j{c}}}Ed{}}055{{{j{Ah{Nf{c}}}}{j{{Aj{Gj}}}}}{{Fn{C`}}}Hl}`````{{{j{{Nj{c}}}}{Cj{{j{e}}}}{Cj{{j{g}}}}{Cj{{j{Id}}}}Cd}{{Mj{HjHj}}}A`AfAf}{{{j{Nl}}CdC`}Cd}{{{j{Ff}}CdC`}Cd}{{{j{{l{c}}}}CdC`}Cdn}{{{j{Ah{Aj{c}}}}C`C`}{{Mj{{j{Ahc}}{j{Ahc}}}}}{}}`{{{l{c}}{Nn{{Hh{e}}}}}{{O`{c}}}{B`{Bj{}{{Bh{Hh}}}}}{{A`{}{{b{}}}}}}{{{l{c}}Al{j{{Aj{Bl}}}}}{{O`{c}}}{B`{Bj{}{{Bh{Hh}}}}}}{{{l{c}}{Nn{{Hh{e}}}}g}{{O`{c}}}{B`{Bj{}{{Bh{Hh}}}}}{{A`{}{{b{}}}}}{{Ob{j{j{Id}}CdC`}{{F`{Cd}}}}}}","D":"ACn","p":[[17,"Algebra"],[17,"Module"],[17,"Homomorphism"],[10,"ChainComplex",12],[1,"reference"],[5,"Arc",806],[10,"Algebra",807],[10,"Module",808],[17,"Source"],[17,"Target"],[10,"ModuleHomomorphism",809],[0,"mut"],[1,"slice"],[5,"Bidegree",810],[1,"bool"],[10,"FreeChainComplex",12],[5,"BidegreeGenerator",811],[5,"String",812],[17,"TargetComplex"],[17,"ChainMap"],[10,"AugmentedChainComplex",12],[1,"u32"],[1,"unit"],[1,"usize"],[10,"BoundedChainComplex",12],[1,"i32"],[1,"isize"],[5,"Vec",813],[6,"Option",814],[5,"Product",815],[17,"Item"],[10,"Iterator",816],[5,"StemIterator",12],[10,"Sized",817],[5,"ValidPrime",818],[6,"SaveDirectory",453],[6,"SaveKind",453],[5,"SaveFile",453],[5,"Adams",815],[5,"Sseq",815],[6,"Result",819],[5,"TypeId",820],[5,"FiniteChainComplex",104],[5,"FiniteAugmentedChainComplex",104],[10,"ZeroModule",821],[10,"ZeroHomomorphism",809],[5,"FullModuleHomomorphism",822],[17,"Output"],[10,"FnMut",823],[5,"Resolution",163],[5,"MilnorAlgebra",824],[5,"MilnorSubalgebra",163],[5,"Formatter",825],[5,"Error",825],[8,"Result",826],[10,"Read",827],[8,"PPartEntry",824],[1,"str"],[5,"SubalgebraIterator",163],[5,"SignatureIterator",163],[1,"u8"],[8,"Result",828],[10,"Into",829],[5,"IterBridge",830],[5,"SenderData",163],[5,"Sender",831],[8,"FreeModule",832],[8,"FreeModuleHomomorphism",833],[5,"Matrix",834],[10,"Write",827],[6,"FpVector",835],[5,"AugmentedMatrix",834],[5,"MuResolution",316],[5,"Subspace",836],[5,"SenderData",316],[5,"MuResolutionHomomorphism",404],[6,"FpSliceMut",835],[5,"BidegreeRange",837],[10,"Sync",817],[5,"Range",838],[5,"MuFreeModuleHomomorphism",833],[5,"Path",839],[5,"PathBuf",839],[5,"ChecksumWriter",453],[5,"ChecksumReader",453],[8,"Result",825],[5,"Box",840],[5,"HashSet",841],[5,"Mutex",842],[10,"AsRef",829],[5,"SecondaryComposite",594],[6,"FpSlice",835],[10,"PairAlgebra",843],[5,"SecondaryHomotopy",594],[10,"Send",817],[8,"CompositeData",594],[17,"Underlying"],[10,"SecondaryLift",594],[5,"SecondaryResolution",594],[5,"OnceBiVec",844],[5,"DashMap",845],[5,"Config",698],[8,"QueryModuleResolution",698],[17,"Error"],[10,"TryInto",829],[5,"FiniteDimensionalModule",846],[8,"CCC",0],[10,"Subscriber",847],[1,"tuple"],[6,"Value",848],[6,"AlgebraType",849],[8,"UnstableResolution",316],[8,"SteenrodModule",850],[1,"char"],[5,"LogWriter",756],[5,"Throughput",756],[5,"QuotientModule",851],[5,"AdemAlgebra",852],[5,"ChainMap",12],[8,"Yoneda",793],[10,"Fn",823],[6,"ChainComplexGrading",12],[6,"Magic",163],[8,"Resolution",316],[8,"ResolutionHomomorphism",404],[8,"UnstableResolutionHomomorphism",404],[15,"Split",592]],"r":[[17,853],[21,104],[22,104],[699,756],[722,756],[727,756]],"b":[[747,"impl-TryFrom%3C(%26str,+T)%3E-for-Config"],[748,"impl-TryFrom%3C(Value,+T)%3E-for-Config"],[749,"impl-TryFrom%3C%26str%3E-for-Config"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAIcCTwABAAMACAABAAsAAgARAAEAFAAHAB0AAQAgAAUAJwAFAC4ABgA2AAQAPAABAEEAAABDAAIASQAAAEwABQBTAAIAWAAbAHUADACEAAMAigAbAKcAAACsAAAArwAUAMUAFgDdAAAA5AABAOcABQDzAAEA9gAZABIBAAAVASMAOgECAD8BAABBARAAUwEKAGIBAgBtAQwAewEGAIMBAACIAQwAlgEBAJkBBQCmAQAAqQEBAKwBGQDJAQAAywEAANABAADSAQIA2AEWAPABHwAUAgAAFwIFACICBwArAgAALQInAFcCAABZAgUAYAIAAGICCwBwAhMAhwIEAI4CBwCZAgkApAIWALwCAAC+AgAAwAIGAMoCCgDXAgEA2wICAN8CAQDkAgIA6AIIAPICEgAHAwIADQMQAB8DBAAlAwEA"}],\ ["ext_m_n",{"t":"","n":[],"q":[],"i":[],"f":"","D":"`","p":[],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OjAAAAEAAAAAAAAAEAAAAAAA"}],\ ["filtration_one",{"t":"","n":[],"q":[],"i":[],"f":"","D":"b","p":[],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OjAAAAAAAAA="}],\ -["fp",{"t":"SKSSSSQCCCCCCCSSJSSSISSSSSSQRKEEMMMCCCMNCMFKNNNNNNNNNNNNNNNNNONNNNNQNNNNNNNNNNNNNNNONRKFNMMOONNNMNNNNMMONMOMNNNNMNONNMMNQNNNMNNNNNNNNSSSSFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNIJFFJINNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNOOHNHNNNNONONONNNNNNNNNNNNHNFONNNNNNNNNNNNNOHNNNNNFFFFFFFCOOOOOOOOOCOCOOOOCOOCCOOFNNNNNNNNNNNNNNNNNNNNONNONNNNNNNFNNNNOONNNNNNNNNNNONNNNONNNNFFFNNNNNNNNNNNNNNNNNNNOONNONNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNONONNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNOONNNNFNNNNNNNNNNNNNNNONNNNNNONNNNNNNNNNFNNNNNNNNNNNNONNNNNNONNNNNNNONNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNEPPKGSMNNCNNNNNQNNNNNNHNNNQQQNNHNCHHHNNHCNNMNNNNNNKNMMMMMHQNMMFFNNNNHNNNNNNONNNNNNNNNNNNNNNONNNNNNNONNFFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNSSSSSHCIHHHPPPPPGGGGGPPPPPPPPPPPPPPPPPPPPCCCCCCPPPPPGGGGGPPPPPPPPPPPPPPPPPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNQQQQQQQQFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNOOONNNNNNNNNNNNNNNNNNNNNNNNNNONNNNOOONNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNFFOONNNNOOOONNNNONNOOOONNONNNNNNNOOOONNNNNNNNNNNNNNNN","n":["MAX_MULTINOMIAL_LEN","MaybeArbitrary","NUM_PRIMES","ODD_PRIMES","PRIMES","PRIME_TO_INDEX_MAP","const_for","constants","field","limb","matrix","prime","simd","vector","BINOMIAL4_TABLE","BINOMIAL4_TABLE_SIZE","BINOMIAL_TABLE","BITS_PER_LIMB","BYTES_PER_LIMB","INVERSE_TABLE","Limb","MAX_MULTINOMIAL_LEN","MAX_PRIME","NOT_A_PRIME","NUM_PRIMES","PRIMES","PRIME_TO_INDEX_MAP","populate_binomial_table","Characteristic","Field","Fp","SmallFq","arb_element","characteristic","degree","element","field_internal","fp","one","q","smallfq","zero","FieldElement","FieldElementContainer","add","add_assign","borrow","borrow_mut","clone","clone_into","clone_to_uninit","clone_to_uninit","deref","deref","deref_mut","div","drop","eq","equivalent","equivalent","field","field","fmt","fmt","frobenius","from","hash","impl_arith","init","into","inv","mul","mul_assign","neg","new","sub","sub_assign","to_owned","to_string","try_from","try_into","type_id","val","value","vzip","ElementContainer","FieldInternal","LimbIterator","add","add_assign","bit_length","bit_length","bit_mask","bitmask","borrow","borrow_mut","decode","deref","deref_mut","div","drop","el","encode","entries","entries_per_limb","fma_limb","fq","frobenius","from","init","into","into_iter","inv","is_reduced","limb","limb_bit_index_pair","mul","mul_assign","neg","next","normal_from_assign","number","pack","range","reduce","sub","sub_assign","truncate","try_from","try_into","type_id","unpack","vzip","F2","F3","F5","F7","Fp","add_assign","arb_element","arbitrary_with","bit_length","borrow","borrow_mut","characteristic","clone","clone_into","clone_to_uninit","clone_to_uninit","decode","degree","deref","deref","deref_mut","drop","el","element","encode","eq","equivalent","equivalent","fma_limb","fmt","frobenius","from","from","hash","init","into","inv","mul_assign","neg","new","one","p","reduce","to_owned","try_from","try_into","type_id","vzip","zero","Polynomial","SMALL_CONWAY_POLYS","SmallFq","SmallFqElement","ZECH_LOGS","ZechTable","a","add","add_assign","arb_element","arbitrary_with","bit_length","borrow","borrow","borrow_mut","borrow_mut","characteristic","clone","clone","clone_into","clone_into","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","d","decode","degree","deref","deref","deref_mut","deref_mut","drop","drop","el","encode","eq","eq","equivalent","equivalent","equivalent","equivalent","fma_limb","fmt","fmt","fmt","fmt","fq","frobenius","from","from","hash","hash","init","init","into","into","inv","len","limbs","make_zech_log_table","mul_assign","mul_by_a","neg","negative_one","new","one","p","q","q","reduce","table","to_owned","to_owned","to_string","to_string","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","zech_logs","zero","LimbBitIndexPair","bit_index","borrow","borrow_mut","clone","clone_into","clone_to_uninit","clone_to_uninit","deref","deref_mut","drop","fmt","from","init","into","limb","sign_rule","to_owned","try_from","try_into","type_id","vzip","AffineSubspace","AugmentedMatrix","Matrix","MatrixSliceMut","QuasiInverse","Subquotient","Subspace","affine","col_end","col_start","columns","dimension","end","gens","image","inner","linear_part","m4ri","matrix","matrix_inner","offset","p","pivots","preimage","quasi_inverse","quotient","start","subquotient","subspace","vectors","vectors","AffineSubspace","borrow","borrow_mut","clone","clone_into","clone_to_uninit","contains","contains_space","deref","deref_mut","drop","eq","equivalent","equivalent","fmt","fmt","from","from","init","into","linear_part","linear_part","new","offset","offset","sum","to_owned","to_string","try_from","try_into","type_id","vzip","M4riTable","add","borrow","borrow_mut","clear","columns","data","default","deref","deref_mut","drop","fmt","from","generate","init","into","is_empty","len","min_limb","new","reduce","reduce_naive","rows","rows","try_from","try_into","type_id","vzip","AugmentedMatrix","Matrix","MatrixSliceMut","add_assign","add_identity","add_masked","apply","as_slice_mut","assign","augmented_from_vec","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","clone_to_uninit","clone_to_uninit","col_end","col_start","columns","columns","columns","compute_image","compute_image","compute_kernel","compute_kernel","compute_quasi_inverse","compute_quasi_inverse","compute_quasi_inverses","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop_first","end","eq","equivalent","equivalent","extend_column_dimension","extend_column_dimension","extend_image","extend_to_surjection","find_first_row_in_block","find_pivots_permutation","fmt","fmt","from","from","from","from_bytes","from_rows","from_vec","identity","index","index_mut","init","init","init","initialize_pivots","inner","into","into","into","into_iter","into_iter","into_iter","into_matrix","into_tail_segment","is_zero","iter","iter","iter_mut","iter_mut","maybe_par_iter_mut","maybe_par_iter_mut","mul","mul_assign","new","new","new_with_capacity","new_with_capacity","p","pivots","pivots","pivots_mut","prime","read_pivot","row","row","row_mut","row_mut","row_op","row_op_naive","row_reduce","row_segment","row_segment_mut","row_slice","rows","rows","safe_row_op","segment","set_to_zero","slice_mut","split_borrow","start","to_bytes","to_owned","to_owned","to_string","to_vec","trim","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vectors","vectors","vzip","vzip","vzip","write_pivot","QuasiInverse","apply","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","drop","eq","equivalent","equivalent","fmt","from","from_bytes","image","image_dimension","init","into","new","pivots","preimage","preimage","prime","source_dimension","stream_quasi_inverse","target_dimension","to_bytes","to_owned","try_from","try_into","type_id","vzip","Subquotient","add_gen","ambient_dimension","borrow","borrow_mut","clear_gens","clone","clone_into","clone_to_uninit","complement_pivots","deref","deref_mut","dimension","dimension","drop","fmt","fmt","from","from_parts","gens","gens","init","into","is_empty","new","new_full","prime","quotient","quotient","quotient_dimension","quotient_pivots","reduce","reduce_by_quotient","reduce_matrix","set_to_full","subspace_dimension","subspace_gens","to_owned","to_string","try_from","try_into","type_id","vzip","zeros","Subspace","add_basis_elements","add_vector","add_vectors","ambient_dimension","basis","borrow","borrow_mut","clone","clone_into","clone_to_uninit","contains","contains_space","deref","deref","deref_mut","dimension","drop","entire_space","eq","equivalent","equivalent","fmt","fmt","from","from_bytes","from_matrix","init","into","is_empty","iter","iter_all_vectors","matrix","new","reduce","set_to_entire","set_to_zero","sum","to_bytes","to_owned","to_string","try_from","try_into","type_id","update_then_row_reduce","vzip","Binomial","InvalidPrime","NotAnInteger","Prime","PrimeError","TWO","as_i32","as_u32","as_usize","binomial","borrow","borrow_mut","clone","clone_into","clone_to_uninit","def_prime_static","deref","deref_mut","drop","eq","equivalent","equivalent","factor_pk","fmt","fmt","from","impl_op_pn_u32","impl_prime_ops","impl_try_from","init","into","inverse","inverse","iter","log2","logp","minus_one_to_the_n","pow","pow_mod","power_mod","primes_generic","product","sum","to_dyn","to_owned","to_string","try_from","try_into","type_id","vzip","Binomial","binomial","binomial2","binomial4","binomial4_rec","binomial_odd","binomial_odd_is_zero","direct_binomial","impl_binomial","multinomial","multinomial2","multinomial_odd","BinomialIterator","BitflagIterator","borrow","borrow","borrow_mut","borrow_mut","combinations","deref","deref","deref_mut","deref_mut","drop","drop","flag","from","from","init","init","into","into","into_iter","into_iter","new","new","new_fixed_length","next","next","par_bridge","par_bridge","remaining","set_bit_iterator","try_from","try_from","try_into","try_into","type_id","type_id","value","vzip","vzip","P2","P3","P5","P7","ValidPrime","add","add","add","add","add","add","add","add","add","add","arbitrary_with","arbitrary_with","arbitrary_with","arbitrary_with","arbitrary_with","as_i32","as_i32","as_i32","as_i32","as_i32","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","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","deserialize","deserialize","deserialize","deserialize","div","div","div","div","div","div","div","div","div","div","drop","drop","drop","drop","drop","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fp","from","from","from","from","from","from_str","hash","hash","hash","hash","hash","init","init","init","init","init","into","into","into","into","into","is_prime","mul","mul","mul","mul","mul","mul","mul","mul","mul","mul","new","new_unchecked","p","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","rem","rem","rem","rem","rem","rem","rem","rem","rem","rem","serialize","serialize","serialize","serialize","serialize","shl","shl","shl","shl","shl","shl","shl","shl","shl","shl","shr","shr","shr","shr","shr","shr","shr","shr","shr","shr","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","to_dyn","to_dyn","to_dyn","to_dyn","to_dyn","to_owned","to_owned","to_owned","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_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","F2","F3","F5","F7","LIMBS_PER_SIMD","add_simd","x86_64","SimdLimb","load","store","xor","Big","Big","Big","Big","Big","FpSlice","FpSliceMut","FpVector","FpVectorIterator","FpVectorNonZeroIterator","_2","_2","_2","_2","_2","_3","_3","_3","_3","_3","_5","_5","_5","_5","_5","_7","_7","_7","_7","_7","fp_wrapper","impl_fqslice","impl_fqslicemut","impl_fqvector","inner","iter","Big","Big","Big","Big","Big","FpSlice","FpSliceMut","FpVector","FpVectorIterator","FpVectorNonZeroIterator","_2","_2","_2","_2","_2","_3","_3","_3","_3","_3","_5","_5","_5","_5","_5","_7","_7","_7","_7","_7","add","add","add_assign","add_basis_element","add_basis_element","add_carry","add_masked","add_offset","add_tensor","add_truncate","add_unmasked","as_slice","as_slice","as_slice_mut","assign","assign","assign_partial","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","clone_to_uninit","clone_to_uninit","clone_to_uninit","copy","copy_from_slice","density","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","drop","drop","drop","drop","drop","entry","entry","eq","equivalent","equivalent","extend_len","first_nonzero","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_bytes","from_slice","hash","helpers","init","init","init","init","init","into","into","into","into","into","into_iter","into_iter","into_iter","is_empty","is_empty","is_zero","is_zero","iter","iter","iter_nonzero","iter_nonzero","len","len","limbs","limbs_mut","macros_generic","multiunzip","new","new_with_capacity","next","next","num_limbs","padded_len","prime","prime","prime","scale","scale","serialize","set_entry","set_entry","set_scratch_vector_size","set_to_zero","set_to_zero","sign_rule","skip_n","slice","slice","slice_mut","slice_mut","to_bytes","to_owned","to_owned","to_owned","to_string","to_string","trim_start","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","update_from_bytes","vzip","vzip","vzip","vzip","vzip","dispatch_struct","dispatch_vector","dispatch_vector_inner","impl_from","impl_from_inner","impl_try_into","impl_try_into_inner","use_primes","FqSlice","FqSliceMut","FqVector","add","add","add_basis_element","add_basis_element","add_basis_element_helper","add_basis_element_helper","add_carry","add_carry_helper","add_carry_limb","add_helper","add_helper","add_masked","add_masked_helper","add_offset","add_offset_helper","add_shift_left","add_shift_none","add_shift_right","add_tensor","add_tensor_helper","add_truncate","add_truncate_helper","add_unmasked","add_unmasked_helper","as_slice","as_slice","as_slice_mut","assign","assign","assign_partial","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","clone_to_uninit","clone_to_uninit","clone_to_uninit","copy","copy_from_slice","copy_from_slice_helper","density","deref","deref","deref","deref_mut","deref_mut","deref_mut","drop","drop","drop","end","end","entry","entry","entry_helper","entry_helper","eq","equivalent","equivalent","extend_len","first_nonzero","first_nonzero_helper","fmt","fmt","fmt","fmt","fmt","fq","fq","fq","fq","from","from","from","from","from","from","from_bytes","from_raw_parts","from_slice","hash","init","init","init","into","into","into","is_empty","is_empty","is_zero","is_zero","iter","iter","iter_nonzero","iter_nonzero","len","len","len","limb_masks","limb_range","limb_range_inner","limbs","limbs","limbs","limbs","limbs_mut","max_limb_mask","min_limb_mask","new","new_with_capacity","offset","prime","prime","prime","reduce_limbs","scale","scale","scale_helper","scale_helper","set_entry","set_entry","set_entry_helper","set_entry_helper","set_scratch_vector_size","set_to_zero","set_to_zero","sign_rule","slice","slice","slice_mut","slice_mut","start","start","to_bytes","to_owned","to_owned","to_owned","to_string","to_string","trim_start","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","update_from_bytes","vzip","vzip","vzip","FqVectorIterator","FqVectorNonZeroIterator","bit_length","bit_mask","borrow","borrow","borrow_mut","borrow_mut","counter","cur_limb","cur_limb","cur_limb_entries_left","deref","deref","deref_mut","deref_mut","dim","drop","drop","entries_left","entries_per_limb_m_1","fq","fq","from","from","idx","init","init","into","into","into_iter","into_iter","len","limb_index","limb_index","limbs","limbs","multiunzip","new","new","next","next","next_helper","next_helper","skip_n","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip"],"q":[[0,"fp"],[14,"fp::constants"],[28,"fp::field"],[42,"fp::field::element"],[85,"fp::field::field_internal"],[133,"fp::field::fp"],[182,"fp::field::smallfq"],[268,"fp::limb"],[290,"fp::matrix"],[321,"fp::matrix::affine"],[353,"fp::matrix::m4ri"],[381,"fp::matrix::matrix_inner"],[519,"fp::matrix::quasi_inverse"],[553,"fp::matrix::subquotient"],[597,"fp::matrix::subspace"],[643,"fp::prime"],[693,"fp::prime::binomial"],[705,"fp::prime::iter"],[745,"fp::prime::primes_generic"],[986,"fp::prime::primes_generic::fp"],[990,"fp::simd"],[993,"fp::simd::x86_64"],[997,"fp::vector"],[1033,"fp::vector::fp_wrapper"],[1230,"fp::vector::fp_wrapper::macros_generic"],[1238,"fp::vector::inner"],[1400,"fp::vector::iter"],[1453,"proptest::strategy::traits"],[1454,"core::clone"],[1455,"core::cmp"],[1456,"core::fmt"],[1457,"core::hash"],[1458,"core::option"],[1459,"alloc::string"],[1460,"core::result"],[1461,"core::any"],[1462,"core::iter::traits::iterator"],[1463,"core::ops::range"],[1464,"alloc::vec"],[1465,"std::io::error"],[1466,"std::io"],[1467,"core::slice::iter"],[1468,"maybe_rayon::concurrent::prelude"],[1469,"core::ops::function"],[1470,"core::convert"],[1471,"rayon::iter::par_bridge"],[1472,"serde::de"],[1473,"serde::ser"],[1474,"core::core_arch::x86"]],"i":[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,2,0,0,0,2,2,2,0,0,0,2,2,0,2,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,12,0,0,12,12,12,29,29,12,29,29,12,29,29,12,29,12,12,29,12,12,29,12,29,29,29,29,12,12,29,12,12,12,12,29,0,12,12,12,12,12,12,12,29,29,29,12,29,0,0,0,0,0,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,0,0,0,0,0,0,34,34,34,34,34,34,34,35,34,35,34,34,35,34,35,34,34,35,35,34,34,34,34,35,34,35,34,35,34,34,34,35,34,34,35,35,34,34,34,35,35,87,34,34,35,34,35,34,35,34,35,34,87,87,0,34,0,34,34,34,34,34,34,34,34,34,34,35,34,35,34,35,34,35,34,35,34,35,0,34,0,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,0,28,28,28,28,28,0,0,0,0,0,0,0,0,44,44,43,59,49,59,50,49,38,0,40,0,38,43,43,50,0,59,49,0,0,44,43,0,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,0,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,0,0,0,43,44,44,43,43,43,43,44,43,49,44,43,49,43,49,43,49,43,49,44,44,44,43,43,43,49,43,49,43,49,49,44,43,49,49,44,43,49,49,44,43,49,49,49,43,43,43,43,49,43,43,43,43,43,43,44,43,49,43,43,43,43,43,43,44,43,49,43,49,44,43,49,43,43,43,49,49,43,44,43,44,43,44,43,43,43,43,49,43,49,43,43,43,43,43,43,44,43,44,43,43,43,43,49,49,44,44,43,43,49,43,43,43,49,43,43,49,43,43,43,44,43,49,44,43,49,44,43,49,44,43,44,43,49,43,0,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,0,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,0,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,0,64,64,0,0,0,6,6,6,0,64,64,64,64,64,0,64,64,64,64,64,64,0,64,64,64,0,0,0,64,64,0,6,0,0,0,0,6,6,0,0,6,6,6,64,64,64,64,64,64,0,65,65,65,65,65,65,0,0,65,65,65,0,0,67,68,67,68,0,67,68,67,68,67,68,67,67,68,67,68,67,68,67,68,67,68,67,67,68,67,68,67,67,67,68,67,68,67,68,68,67,68,0,0,0,0,0,70,70,71,71,72,72,73,73,46,46,70,71,72,73,46,70,71,72,73,46,70,71,72,73,46,70,71,72,73,46,70,71,72,73,46,70,71,72,73,46,70,70,71,71,72,72,73,73,46,46,70,71,72,73,46,70,71,72,73,46,70,71,72,73,46,70,70,71,71,72,72,73,73,46,46,70,71,72,73,46,70,70,71,71,72,72,73,73,46,46,70,70,71,71,72,72,73,73,46,46,70,70,71,71,72,72,73,73,46,46,0,70,71,72,73,46,46,70,71,72,73,46,70,71,72,73,46,70,71,72,73,46,0,70,70,71,71,72,72,73,73,46,46,46,46,46,70,71,72,73,46,70,70,71,71,72,72,73,73,46,46,70,71,72,73,46,70,70,71,71,72,72,73,73,46,46,70,70,71,71,72,72,73,73,46,46,70,70,71,71,72,72,73,73,46,46,70,71,72,73,46,70,71,72,73,46,70,71,72,73,46,70,70,71,71,72,72,73,73,46,46,70,71,72,73,46,70,71,72,73,46,70,71,72,73,46,0,0,0,0,0,0,0,0,0,0,0,41,39,45,80,81,0,0,0,0,0,41,39,45,80,81,41,39,45,80,81,41,39,45,80,81,41,39,45,80,81,0,0,0,0,0,0,41,39,45,80,81,0,0,0,0,0,41,39,45,80,81,41,39,45,80,81,41,39,45,80,81,41,39,45,80,81,41,45,41,41,45,41,45,41,45,41,45,41,45,41,41,45,41,41,39,45,80,81,41,39,45,80,81,41,39,41,39,41,39,39,45,41,41,41,39,45,80,81,41,39,45,80,81,41,41,39,45,80,81,41,39,41,41,41,41,41,41,41,39,39,45,41,41,41,41,41,41,39,39,39,39,45,45,45,80,81,41,41,41,0,41,39,45,80,81,41,39,45,80,81,41,80,81,41,39,41,39,41,39,41,39,41,39,41,41,0,81,41,41,80,81,41,41,41,39,45,41,45,41,41,45,41,41,45,41,80,41,39,41,45,41,41,39,39,41,39,41,41,39,45,80,81,41,41,41,41,41,41,39,45,80,81,41,39,45,80,81,41,41,39,45,80,81,0,0,0,0,0,0,0,0,0,0,0,37,82,37,82,37,82,37,37,37,37,82,82,82,37,37,82,82,82,82,82,37,37,82,82,37,82,37,37,82,37,37,83,82,37,83,82,37,83,37,83,37,83,83,82,37,37,37,37,83,82,37,83,82,37,83,82,83,82,37,83,37,83,37,37,37,37,37,37,37,37,83,83,82,37,37,83,82,37,37,83,83,82,82,37,37,37,37,37,83,82,37,83,82,37,83,37,83,37,83,37,83,37,83,37,83,83,83,37,37,83,82,37,83,83,37,37,83,37,83,82,82,37,82,37,82,37,82,37,82,37,37,82,37,37,83,37,82,83,82,37,37,83,83,37,83,37,37,83,82,37,83,82,37,83,82,37,37,83,82,0,0,85,85,85,86,85,86,85,85,86,86,85,86,85,86,86,85,86,85,85,85,86,85,86,86,85,86,85,86,85,86,85,85,86,85,86,86,85,86,85,86,85,86,85,85,86,85,86,85,86,85,86],"f":"````````````````````````````````{{{d{}{{b{c}}}}}{{`{{j{}{{f{{h{{d{}{{b{c}}}}}}}}}}}}}l}{{{d{}{{b{c}}}}}cl}{{{d{}{{b{c}}}}}nl}```{{{d{}{{b{c}}}}}{{h{{d{}{{b{c}}}}}}}l}1`0``{{{h{c}}{h{c}}}ed{}}{{{Ab{A`{h{c}}}}{h{c}}}Add}{{{Ab{c}}}{{Ab{e}}}{}{}}{{{Ab{A`c}}}{{Ab{A`e}}}{}{}}{{{Ab{{h{c}}}}}{{h{c}}}{AfAh}}{{{Ab{c}}{Ab{A`e}}}Ad{}{}}{{{Ab{c}}}Ad{}}0{{{Ab{{h{c}}}}}{{Ab{e}}}Ah{}}{Aj{{Ab{c}}}{}}{Aj{{Ab{A`c}}}{}}9{AjAd}{{{Ab{{h{c}}}}{Ab{{h{c}}}}}Al{AnAh}}{{{Ab{c}}{Ab{e}}}Al{}{}}0{{{Ab{{h{c}}}}}cAh}`{{{Ab{{h{c}}}}{Ab{A`B`}}}Bb{BdAh}}{{{Ab{{h{c}}}}{Ab{A`B`}}}Bbd}{{{h{c}}}{{h{c}}}Ah}{cc{}}{{{Ab{{h{c}}}}{Ab{A`e}}}Ad{BfAh}Bh}`{{}Aj}{ce{}{}}{{{h{c}}}{{Bj{{h{c}}}}}Ah}{{{h{c}}{h{c}}}ed{}}{{{Ab{A`{h{c}}}}{h{c}}}Add}{{{h{c}}}ed{}}{c{{h{c}}}Ah}32{{{Ab{c}}}e{}{}}{{{Ab{c}}}Bl{}}{c{{Bn{e}}}{}{}}0{{{Ab{c}}}C`{}}{{{h{c}}}{}Ah}`:```{{{Ah{}{{Cb{c}}}}{h{{Ah{}{{Cb{c}}}}}}{h{{Ah{}{{Cb{c}}}}}}}{{h{{Ah{}{{Cb{c}}}}}}}Cd}{{{Ah{}{{Cb{c}}}}{Ab{A`{h{{Ah{}{{Cb{c}}}}}}}}{h{{Ah{}{{Cb{c}}}}}}}AdCd}{{{Ah{}{{Cb{c}}}}}AjCd}``{{{Ah{}{{Cb{c}}}}}CfCd}{{{Ab{c}}}{{Ab{e}}}{}{}}{{{Ab{A`c}}}{{Ab{A`e}}}{}{}}{{{Ah{}{{Cb{c}}}}Cf}{{h{{Ah{}{{Cb{c}}}}}}}Cd}{Aj{{Ab{c}}}{}}{Aj{{Ab{A`c}}}{}}{{{Ah{}{{Cb{c}}}}{h{{Ah{}{{Cb{c}}}}}}{h{{Ah{}{{Cb{c}}}}}}}{{Bj{{h{{Ah{}{{Cb{c}}}}}}}}}Cd}{AjAd}{{{Ah{}{{Cb{c}}}}c}{{h{{Ah{}{{Cb{c}}}}}}}Cd}{{{Ah{}{{Cb{c}}}}{h{{Ah{}{{Cb{c}}}}}}}CfCd}`:{{{Ah{}{{Cb{c}}}}CfCf{h{{Ah{}{{Cb{c}}}}}}}CfCd}`{{{Ah{}{{Cb{c}}}}{h{{Ah{}{{Cb{c}}}}}}}{{h{{Ah{}{{Cb{c}}}}}}}Cd}{cc{}}{{}Aj}{ce{}{}}0{{{Ah{}{{Cb{c}}}}{h{{Ah{}{{Cb{c}}}}}}}{{Bj{{h{{Ah{}{{Cb{c}}}}}}}}}Cd}{{{Ah{}{{Cb{c}}}}Cf}AlCd}`{{{Ah{}{{Cb{c}}}}Aj}ChCd}{{{Ah{}{{Cb{c}}}}{h{{Ah{}{{Cb{c}}}}}}{h{{Ah{}{{Cb{c}}}}}}}{{h{{Ah{}{{Cb{c}}}}}}}Cd}{{{Ah{}{{Cb{c}}}}{Ab{A`{h{{Ah{}{{Cb{c}}}}}}}}{h{{Ah{}{{Cb{c}}}}}}}AdCd}8{{{Ab{A`{Cj{c}}}}}{{Bj{e}}}Ah{}}`{{{Ah{}{{Cb{c}}}}Aj}AjCd}{{{Ah{}{{Cb{c}}}}e}CfCd{{Cn{}{{Cl{{h{{Ah{}{{Cb{c}}}}}}}}}}}}{{{Ah{}{{Cb{c}}}}AjAj}{{D`{Aj}}}Cd}{{{Ah{}{{Cb{c}}}}Cf}CfCd}65{{{Ah{}{{Cb{c}}}}Cf}{{Bj{Cf}}}Cd}{c{{Bn{e}}}{}{}}0{{{Ab{c}}}C`{}}{{{Ah{}{{Cb{c}}}}Cf}{{Cj{{Ah{}{{Cb{c}}}}}}}Cd}>`````{{{Db{c}}{Ab{A`{h{{Db{c}}}}}}{h{{Db{c}}}}}Adl}{{{Db{c}}}{{`{{j{}{{f{{h{{Db{c}}}}}}}}}}}l}{ce{}{}}{{{Db{c}}}Ajl}{{{Ab{c}}}{{Ab{e}}}{}{}}{{{Ab{A`c}}}{{Ab{A`e}}}{}{}}{{{Db{c}}}el{}}{{{Ab{{Db{c}}}}}{{Db{c}}}Af}{{{Ab{c}}{Ab{A`e}}}Ad{}{}}{{{Ab{c}}}Ad{}}0{{{Db{c}}Cf}{{h{{Db{c}}}}}l}{{{Db{c}}}nl}{{{Ab{{Db{c}}}}}{{Ab{e}}}{}{}}{Aj{{Ab{c}}}{}}{Aj{{Ab{A`c}}}{}}{AjAd}{{{Db{c}}e}{{h{{Db{c}}}}}l{}}{{{Ab{{Db{c}}}}n}{{h{{Db{c}}}}}l}{{{Db{c}}{h{{Db{c}}}}}Cfl}{{{Ab{{Db{c}}}}{Ab{{Db{c}}}}}AlAn}{{{Ab{c}}{Ab{e}}}Al{}{}}0{{{Db{c}}CfCf{h{{Db{c}}}}}Cfl}{{{Ab{{Db{c}}}}{Ab{A`B`}}}BbBd}{{{Db{c}}{h{{Db{c}}}}}{{h{{Db{c}}}}}l}{cc{}}{c{{Db{c}}}l}{{{Ab{{Db{c}}}}{Ab{A`e}}}AdBfBh}{{}Aj}{ce{}{}}{{{Db{c}}{h{{Db{c}}}}}{{Bj{{h{{Db{c}}}}}}}l}{{{Db{c}}{Ab{A`{h{{Db{c}}}}}}{h{{Db{c}}}}}Adl}75{{{Db{c}}}{{h{{Db{c}}}}}l}`{{{Db{c}}Cf}Cfl}{{{Ab{c}}}e{}{}}{c{{Bn{e}}}{}{}}0{{{Ab{c}}}C`{}}74``````{{{Dd{c}}}{{h{{Dd{c}}}}}l}{{{Dd{c}}{h{{Dd{c}}}}{h{{Dd{c}}}}}{{h{{Dd{c}}}}}l}{{{Dd{c}}{Ab{A`{h{{Dd{c}}}}}}{h{{Dd{c}}}}}Adl}{{{Dd{c}}}{{`{{j{}{{f{{h{{Dd{c}}}}}}}}}}}l};{{{Dd{c}}}Ajl}{{{Ab{c}}}{{Ab{e}}}{}{}}0{{{Ab{A`c}}}{{Ab{A`e}}}{}{}}0{{{Dd{c}}}el{}}{{{Ab{{Dd{c}}}}}{{Dd{c}}}Af}{{{Ab{Df}}}Df}{{{Ab{c}}{Ab{A`e}}}Ad{}{}}0{{{Ab{c}}}Ad{}}000`{{{Dd{c}}Cf}{{h{{Dd{c}}}}}l}{{{Dd{c}}}nl}{Aj{{Ab{c}}}{}}0{Aj{{Ab{A`c}}}{}}0{AjAd}0{{{Dd{c}}e}{{h{{Dd{c}}}}}l{}}{{{Dd{c}}{h{{Dd{c}}}}}Cfl}{{{Ab{{Dd{c}}}}{Ab{{Dd{c}}}}}All}{{{Ab{Df}}{Ab{Df}}}Al}{{{Ab{c}}{Ab{e}}}Al{}{}}000{{{Dd{c}}CfCf{h{{Dd{c}}}}}Cfl}{{{Ab{{Dd{c}}}}{Ab{A`B`}}}Bbl}0{{{Ab{Df}}{Ab{A`B`}}}Bb}0`{{{Dd{c}}{h{{Dd{c}}}}}{{h{{Dd{c}}}}}l}{cc{}}0{{{Ab{{Dd{c}}}}{Ab{A`e}}}AdlBh}{{{Ab{Df}}{Ab{A`c}}}AdBh}{{}Aj}0{ce{}{}}0{{{Dd{c}}{h{{Dd{c}}}}}{{Bj{{h{{Dd{c}}}}}}}l}``{{cn}{{Ab{{Dh{Df}}}}}l}{{{Dd{c}}{Ab{A`{h{{Dd{c}}}}}}{h{{Dd{c}}}}}Adl}{{{Ab{{Dj{{Db{c}}}}}}{Dj{{Db{c}}}}}{{Dj{{Db{c}}}}}l}9{{{Dd{c}}}{{h{{Dd{c}}}}}l}{{cn}{{Dd{c}}}l}1`{{{Dd{c}}}nl}`{{{Dd{c}}Cf}Cfl}`{{{Ab{c}}}e{}{}}0{{{Ab{c}}}Bl{}}0{c{{Bn{e}}}{}{}}000{{{Ab{c}}}C`{}}0<<:7``{{{Ab{c}}}{{Ab{e}}}{}{}}{{{Ab{A`c}}}{{Ab{A`e}}}{}{}}{{{Ab{Ch}}}Ch}{{{Ab{c}}{Ab{A`e}}}Ad{}{}}{{{Ab{c}}}Ad{}}0{Aj{{Ab{c}}}{}}{Aj{{Ab{A`c}}}{}}{AjAd}{{{Ab{Ch}}{Ab{A`B`}}}Bb}{cc{}}{{}Aj}{ce{}{}}`{{CfCf}n}{{{Ab{c}}}e{}{}}??>2````````````````````````````````=<{{{Ab{Dl}}}Dl};:{{{Ab{Dl}}Dn}Al}{{{Ab{Dl}}{Ab{Dl}}}Al};:90{{{Ab{c}}{Ab{e}}}Al{}{}}0{{{Ab{Dl}}{Ab{A`B`}}}Bb}0{E`Dl}:98{{{Ab{Dl}}}{{Ab{E`}}}}`{{EbE`}Dl}{{{Ab{Dl}}}{{Ab{Eb}}}}`{{{Ab{Dl}}{Ab{Dl}}}Dl}:{{{Ab{c}}}Bl{}}{c{{Bn{e}}}{}{}}0{{{Ab{c}}}C`{}}?`{{{Ab{A`Ed}}AjAj}Ad}{{{Ab{c}}}{{Ab{e}}}{}{}}{{{Ab{A`c}}}{{Ab{A`e}}}{}{}}{{{Ab{A`Ed}}}Ad}``{{}Ed}{Aj{{Ab{c}}}{}}{Aj{{Ab{A`c}}}{}}{AjAd}{{{Ab{Ed}}{Ab{A`B`}}}Bb}{cc{}}{{{Ab{A`Ed}}{Ab{Ef}}}Ad}{{}Aj}{ce{}{}}{{{Ab{Ed}}}Al}{{{Ab{Ed}}}Aj}`{{AjAj}Ed}{{{Ab{Ed}}{Ab{A`{Dh{Cf}}}}}Ad}{{{Ab{Ed}}{Ab{A`Ef}}Aj}Ad}{{{Ab{Ed}}}{{Ab{{Dh{Aj}}}}}}`{c{{Bn{e}}}{}{}}0{{{Ab{c}}}C`{}}8```{{{Ab{A`Ef}}{Ab{Ef}}}Ad}{{{Ab{A`Eh}}}Ad}{{{Ab{A`Eh}}{Ab{Ef}}{Ab{{Dh{Aj}}}}}Ad}{{{Ab{Ef}}EjnDn}Ad}{{{Ab{A`Ef}}}Eh}4{{El{Ab{{Dh{{En{n}}}}}}}{{F`{AjEf}}}}{{{Ab{c}}}{{Ab{e}}}{}{}}00{{{Ab{A`c}}}{{Ab{A`e}}}{}{}}00{{{Ab{Ef}}}Ef}{{{Ab{Fb}}}Fb}{{{Ab{c}}{Ab{A`e}}}Ad{}{}}0{{{Ab{c}}}Ad{}}0``{{{Ab{Eh}}}Aj}{{{Ab{Ef}}}Aj}`{{{Ab{Ef}}AjAj}E`}{{{Ab{Fb}}}E`}{{{Ab{Ef}}Aj}E`}1{{{Ab{Ef}}AjAj}Fd}{{{Ab{Fb}}}Fd}{Fb{{F`{FdFd}}}}{Aj{{Ab{c}}}{}}0{{{Ab{Fb}}}{{Ab{Ef}}}}1{Aj{{Ab{A`c}}}{}}00{{{Ab{A`Fb}}}{{Ab{A`Ef}}}}{AjAd}00{FbFb}`{{{Ab{Ef}}{Ab{Ef}}}Al}{{{Ab{c}}{Ab{e}}}Al{}{}}0{{{Ab{A`Ef}}Aj}Ad}{{{Ab{A`Fb}}Aj}Ad}{{{Ab{A`Ef}}AjAj{Ab{E`}}Aj}{{En{Aj}}}}{{{Ab{A`Ef}}AjAjAj}{{En{Aj}}}}{{{Ab{Ef}}Aj}Aj}{{{Ab{A`Ef}}c}{{En{Aj}}}{{Cn{}{{Cl{Aj}}}}}}{{{Ab{Ef}}{Ab{A`B`}}}Bb}0{cc{}}00{{ElAjAj{Ab{A`c}}}{{Ff{Ef}}}Fh}{{El{En{Eb}}Aj}Ef}{{El{Ab{{Dh{{En{n}}}}}}}Ef}{{ElAj}Ef}{{{Ab{Ef}}c}{{Ab{e}}}{}{}}{{{Ab{A`Ef}}c}{{Ab{A`e}}}{}{}}{{}Aj}00{{{Ab{A`Ef}}}Ad}`{ce{}{}}00{{{Ab{A`Ef}}}c{}}{{{Ab{Ef}}}c{}}{Efc{}}{FbEf}{{FbAjAjAj}Ef}{{{Ab{Ef}}}Al}{{{Ab{Eh}}}{{`{{Cn{}{{Cl{Dn}}}}}}}}{{{Ab{Ef}}}{{Fj{Eb}}}}{{{Ab{A`Eh}}}{{`{{Cn{}{{Cl{Ej}}}}}}}}{{{Ab{A`Ef}}}{{Fl{Eb}}}}{{{Ab{A`Eh}}}{{`{{Fn{}{{Cl{Ej}}}}}}}}{{{Ab{A`Ef}}}{{`{{Fn{}{{Cl{{Ab{A`Eb}}}}}}}}}}{{{Ab{Ef}}{Ab{Ef}}}Ef}{{{Ab{A`Ef}}n}Ad}{{ElAjAj}Ef}{{ElAj{G`{Aj}}}Fb}{{ElAjAjAjAj}Ef}{{ElAj{Ab{{Dh{Aj}}}}AjAj}Fb}`{{{Ab{Ef}}}{{Ab{{Dh{Gb}}}}}}`{{{Ab{A`Ef}}}{{Ab{A`{Dh{Gb}}}}}}{{{Ab{Ef}}}El}{{Aj{Ab{A`c}}}{{Ff{{En{Gb}}}}}Fh}{{{Ab{A`Eh}}Aj}Dn}{{{Ab{Ef}}Aj}Dn}{{{Ab{A`Eh}}Aj}Ej}{{{Ab{A`Ef}}Aj}Ej}{{{Ab{A`Ef}}AjAjAjEl}Ad}0{{{Ab{A`Ef}}}Aj}{{{Ab{Fb}}AjAjAj}Dn}{{{Ab{A`Fb}}AjAjAj}Ej}{{{Ab{A`Eh}}AjAj}Eh}{{{Ab{Eh}}}Aj}{{{Ab{Ef}}}Aj}{{{Ab{A`Ef}}AjAjn}Ad}{{{Ab{A`Fb}}AjAj}Eh}{{{Ab{A`Ef}}}Ad}{{{Ab{A`Ef}}AjAjAjAj}Eh}{{{Ab{A`Ef}}AjAj}{{F`{{Ab{A`Eb}}{Ab{A`Eb}}}}}}`{{{Ab{Ef}}{Ab{A`c}}}{{Ff{Ad}}}Gd}{{{Ab{c}}}e{}{}}0{{{Ab{c}}}Bl{}}{{{Ab{Ef}}}{{En{{En{n}}}}}}{{{Ab{A`Ef}}AjAjAj}Ad}{c{{Bn{e}}}{}{}}00000{{{Ab{c}}}C`{}}00``{ce{}{}}00{{{Ab{{Dh{Gb}}}}{Ab{A`c}}}{{Ff{Ad}}}Gd}`{{{Ab{Fd}}EjnDn}Ad}{{{Ab{c}}}{{Ab{e}}}{}{}}{{{Ab{A`c}}}{{Ab{A`e}}}{}{}}{{{Ab{Fd}}}Fd}{{{Ab{c}}{Ab{A`e}}}Ad{}{}}{{{Ab{c}}}Ad{}}{Aj{{Ab{c}}}{}}{Aj{{Ab{A`c}}}{}}{AjAd}{{{Ab{Fd}}{Ab{Fd}}}Al}{{{Ab{c}}{Ab{e}}}Al{}{}}0{{{Ab{Fd}}{Ab{A`B`}}}Bb}{cc{}}{{El{Ab{A`c}}}{{Ff{Fd}}}Fh}`{{{Ab{Fd}}}Aj}{{}Aj}{ce{}{}}{{{Bj{{En{Gb}}}}Ef}Fd}{{{Ab{Fd}}}{{Bj{{Ab{{Dh{Gb}}}}}}}}{{{Ab{Fd}}}{{Ab{Ef}}}}`{{{Ab{Fd}}}El}6{{El{Ab{A`c}}{Ab{A`{Dh{e}}}}{Ab{{Dh{g}}}}}{{Ff{Ad}}}Fh{}{}}7{{{Ab{Fd}}{Ab{A`c}}}{{Ff{Ad}}}Gd}{{{Ab{c}}}e{}{}}{c{{Bn{e}}}{}{}}0{{{Ab{c}}}C`{}}9`{{{Ab{A`Gf}}Dn}Ad}{{{Ab{Gf}}}Aj}{{{Ab{c}}}{{Ab{e}}}{}{}}{{{Ab{A`c}}}{{Ab{A`e}}}{}{}}{{{Ab{A`Gf}}}Ad}{{{Ab{Gf}}}Gf}{{{Ab{c}}{Ab{A`e}}}Ad{}{}}{{{Ab{c}}}Ad{}}{{{Ab{Gf}}}{{`{{Cn{}{{Cl{Aj}}}}}}}}{Aj{{Ab{c}}}{}}{Aj{{Ab{A`c}}}{}}9`{AjAd}{{{Ab{Gf}}{Ab{A`B`}}}Bb}0{cc{}}{{E`E`}Gf}{{{Ab{Gf}}}{{`{{Cn{}{{Cl{Dn}}}}}}}}`{{}Aj}{ce{}{}}{{{Ab{Gf}}}Al}{{ElAj}Gf}0{{{Ab{Gf}}}El}{{{Ab{A`Gf}}Dn}Ad}`{{{Ab{Gf}}}Aj}{{{Ab{Gf}}}{{Ab{{Dh{Gb}}}}}}{{{Ab{Gf}}Ej}{{En{n}}}}{{{Ab{Gf}}Ej}Ad}{{{Ab{Ef}}{Ab{Gf}}{Ab{Gf}}}{{En{{En{n}}}}}}{{{Ab{A`Gf}}}Ad}5<{{{Ab{c}}}e{}{}}{{{Ab{c}}}Bl{}}{c{{Bn{e}}}{}{}}0{{{Ab{c}}}C`{}}>{{{Ab{Gf}}}{{Ab{E`}}}}`{{{Ab{A`E`}}c}Ad{{Cn{}{{Cl{Aj}}}}}}{{{Ab{A`E`}}Dn}Aj}{{{Ab{A`E`}}c}Ad{{Gj{Ej}{{Gh{{Bj{Ad}}}}}}}}{{{Ab{E`}}}Aj}{{{Ab{E`}}}{{Ab{{Dh{Eb}}}}}}{{{Ab{c}}}{{Ab{e}}}{}{}}{{{Ab{A`c}}}{{Ab{A`e}}}{}{}}{{{Ab{E`}}}E`}{{{Ab{c}}{Ab{A`e}}}Ad{}{}}{{{Ab{c}}}Ad{}}{{{Ab{E`}}Dn}Al}{{{Ab{E`}}{Ab{E`}}}Al}{Aj{{Ab{c}}}{}}{{{Ab{E`}}}{{Ab{c}}}{}}{Aj{{Ab{A`c}}}{}};{AjAd}{{ElAj}E`}5{{{Ab{c}}{Ab{e}}}Al{}{}}0{{{Ab{E`}}{Ab{A`B`}}}Bb}0{cc{}}{{El{Ab{A`c}}}{{Ff{E`}}}Fh}{EfE`}{{}Aj}{ce{}{}}{{{Ab{E`}}}Al}{{{Ab{E`}}}{{`{{Cn{}{{Cl{Dn}}}}}}}}{{{Ab{E`}}}{{`{{Cn{}{{Cl{Eb}}}}}}}}`:{{{Ab{E`}}Ej}Ad}{{{Ab{A`E`}}}Ad}0{{{Ab{E`}}{Ab{E`}}}E`}{{{Ab{E`}}{Ab{A`c}}}{{Ff{Ad}}}Gd}{{{Ab{c}}}e{}{}}{{{Ab{c}}}Bl{}}{c{{Bn{e}}}{}{}}0{{{Ab{c}}}C`{}}{{{Ab{A`E`}}e}c{}{{Gl{{Ab{A`Ef}}}{{Gh{c}}}}}}<``````{lGn}{ln}{lAj}`{{{Ab{c}}}{{Ab{e}}}{}{}}{{{Ab{A`c}}}{{Ab{A`e}}}{}{}}{{{Ab{H`}}}H`}{{{Ab{c}}{Ab{A`e}}}Ad{}{}}{{{Ab{c}}}Ad{}}`{Aj{{Ab{c}}}{}}{Aj{{Ab{A`c}}}{}}{AjAd}{{{Ab{H`}}{Ab{H`}}}Al}{{{Ab{c}}{Ab{e}}}Al{}{}}0{{cn}{{F`{nn}}}l}{{{Ab{H`}}{Ab{A`B`}}}Bb}0{cc{}}```{{}Aj}{ce{}{}}{{cn}nl}{{ln}n}`{AjAj}2{{cGn}nl}2{{lnn}n}{{nnn}n}`11{lEl}{{{Ab{c}}}e{}{}}{{{Ab{c}}}Bl{}}{c{{Bn{e}}}{}{}}0{{{Ab{c}}}C`{}};`{{ElHbHb}Hb}{{HbHb}Hb}001{{ElHbHb}Al}{{ElAjAj}n}`{{El{Ab{A`{Dh{Hb}}}}}Hb}{{{Ab{{Dh{Hb}}}}}Hb}1``{{{Ab{c}}}{{Ab{e}}}{}{}}0{{{Ab{A`c}}}{{Ab{A`e}}}{}{}}0{{cAj}{{`{{Cn{}{{Cl{{En{n}}}}}}}}}{{Hd{n}}}}{Aj{{Ab{c}}}{}}0{Aj{{Ab{A`c}}}{}}0{AjAd}0`{cc{}}0{{}Aj}0{ce{}{}}000{CfHf}{AjHh}{{CfAj}Hf}{{{Ab{A`Hf}}}{{Bj{c}}}{}}{{{Ab{A`Hh}}}{{Bj{c}}}{}}{c{{Hj{e}}}{}{}}0`{Cf{{`{{Cn{}{{Cl{Aj}}}}}}}}{c{{Bn{e}}}{}{}}000{{{Ab{c}}}C`{}}0`99`````{{Hln}c{}}{{HlHl}c{}}{{Hnn}c{}}{{HnHn}c{}}{{I`n}c{}}{{I`I`}c{}}{{IbIb}c{}}{{Ibn}c{}}{{ElEl}c{}}{{Eln}c{}}{ce{}{}}0000{HlGn}{HnGn}{I`Gn}{IbGn}{ElGn}{{{Ab{c}}}{{Ab{e}}}{}{}}0000{{{Ab{A`c}}}{{Ab{A`e}}}{}{}}0000{{{Ab{Hl}}}Hl}{{{Ab{Hn}}}Hn}{{{Ab{I`}}}I`}{{{Ab{Ib}}}Ib}{{{Ab{El}}}El}{{{Ab{c}}{Ab{A`e}}}Ad{}{}}0000{{{Ab{c}}}Ad{}}000000000{Aj{{Ab{c}}}{}}0000{Aj{{Ab{A`c}}}{}}0000{c{{Bn{Hl}}}Id}{c{{Bn{Hn}}}Id}{c{{Bn{I`}}}Id}{c{{Bn{Ib}}}Id}{c{{Bn{El}}}Id}{{HlHl}c{}}{{Hln}c{}}{{HnHn}c{}}{{Hnn}c{}}{{I`n}c{}}{{I`I`}c{}}{{Ibn}c{}}{{IbIb}c{}}{{Eln}c{}}{{ElEl}c{}}{AjAd}0000{{{Ab{Hl}}{Ab{n}}}Al}{{{Ab{Hl}}{Ab{Hl}}}Al}{{{Ab{Hn}}{Ab{n}}}Al}{{{Ab{Hn}}{Ab{Hn}}}Al}{{{Ab{I`}}{Ab{I`}}}Al}{{{Ab{I`}}{Ab{n}}}Al}{{{Ab{Ib}}{Ab{Ib}}}Al}{{{Ab{Ib}}{Ab{n}}}Al}{{{Ab{El}}{Ab{n}}}Al}{{{Ab{El}}{Ab{El}}}Al}{{{Ab{c}}{Ab{e}}}Al{}{}}000000000{{{Ab{Hl}}{Ab{A`B`}}}Bb}0{{{Ab{Hn}}{Ab{A`B`}}}Bb}0{{{Ab{I`}}{Ab{A`B`}}}Bb}0{{{Ab{Ib}}{Ab{A`B`}}}Bb}0{{{Ab{El}}{Ab{A`B`}}}Bb}0`{cc{}}0000{{{Ab{If}}}{{Bn{Elc}}}{}}{{{Ab{Hl}}{Ab{A`c}}}AdBh}{{{Ab{Hn}}{Ab{A`c}}}AdBh}{{{Ab{I`}}{Ab{A`c}}}AdBh}{{{Ab{Ib}}{Ab{A`c}}}AdBh}{{{Ab{El}}{Ab{A`c}}}AdBh}{{}Aj}0000{ce{}{}}0000{nAl}{{Hln}c{}}{{HlHl}c{}}{{HnHn}c{}}{{Hnn}c{}}{{I`I`}c{}}{{I`n}c{}}{{IbIb}c{}}{{Ibn}c{}}{{ElEl}c{}}{{Eln}c{}}{nEl}0`{{{Ab{Hl}}{Ab{n}}}{{Bj{Ih}}}}{{{Ab{Hn}}{Ab{n}}}{{Bj{Ih}}}}{{{Ab{I`}}{Ab{n}}}{{Bj{Ih}}}}{{{Ab{Ib}}{Ab{n}}}{{Bj{Ih}}}}{{{Ab{El}}{Ab{n}}}{{Bj{Ih}}}}>?=<:;9867{{{Ab{Hl}}c}BnIj}{{{Ab{Hn}}c}BnIj}{{{Ab{I`}}c}BnIj}{{{Ab{Ib}}c}BnIj}{{{Ab{El}}c}BnIj}{{HlHl}c{}}{{Hln}c{}}{{Hnn}c{}}{{HnHn}c{}}{{I`n}c{}}{{I`I`}c{}}{{IbIb}c{}}{{Ibn}c{}}{{Eln}c{}}{{ElEl}c{}}98764523018967543210{HlEl}{HnEl}{I`El}{IbEl}{ElEl}{{{Ab{c}}}e{}{}}0000{{{Ab{c}}}Bl{}}0000{n{{Bn{HlH`}}}}{c{{Bn{e}}}{}{}}{n{{Bn{HnH`}}}}11{n{{Bn{I`H`}}}}2{n{{Bn{IbH`}}}}3{n{{Bn{ElH`}}}}44444{{{Ab{c}}}C`{}}0000{ce{}{}}0000`````{{{Ab{A`{Dh{Cf}}}}{Ab{{Dh{Cf}}}}Aj}Ad}``{CfIl}{{CfIl}Ad}{{IlIl}Il}``````````````````````````````````````````````````````````````````{{{Ab{A`Eb}}{Ab{Eb}}n}Ad}{{{Ab{A`Ej}}Dnn}Ad}{{{Ab{A`Eb}}{Ab{Eb}}}Ad}{{{Ab{A`Eb}}Ajn}Ad}{{{Ab{A`Ej}}Ajn}Ad}{{{Ab{A`Eb}}{Ab{Eb}}n{Ab{A`{Dh{Eb}}}}}Al}{{{Ab{A`Ej}}Dnn{Ab{{Dh{Aj}}}}}Ad}{{{Ab{A`Eb}}{Ab{Eb}}nAj}Ad}{{{Ab{A`Ej}}AjnDnDn}Ad}{{{Ab{A`Eb}}{Ab{Eb}}n}{{Bj{Ad}}}}3{{{Ab{Eb}}}Dn}{{{Ab{Ej}}}Dn}{{{Ab{A`Eb}}}Ej}:{{{Ab{A`Ej}}Dn}Ad};{{{Ab{c}}}{{Ab{e}}}{}{}}0000{{{Ab{A`c}}}{{Ab{A`e}}}{}{}}0000{{{Ab{Eb}}}Eb}{{{Ab{Dn}}}Dn}{{{Ab{c}}{Ab{A`e}}}Ad{}{}}0{{{Ab{c}}}Ad{}}00{{{Ab{A`Ej}}}Ej}{{{Ab{A`Eb}}{Ab{{Dh{n}}}}}Ad}{{{Ab{Eb}}}In}{Aj{{Ab{c}}}{}}0000{Aj{{Ab{A`c}}}{}}0000{c{{Bn{Eb}}}Id}{AjAd}0000{{{Ab{Eb}}Aj}n}{{{Ab{Dn}}Aj}n}{{{Ab{Eb}}{Ab{Eb}}}Al}{{{Ab{c}}{Ab{e}}}Al{}{}}0{{{Ab{A`Eb}}Aj}Ad}{{{Ab{Eb}}}{{Bj{{F`{Ajn}}}}}}{{{Ab{Eb}}{Ab{A`B`}}}Bb}0{{{Ab{Dn}}{Ab{A`B`}}}Bb}0{{{Ab{Ej}}{Ab{A`B`}}}Bb}{{{Dj{{Db{Hl}}}}}Eb}{{{Dj{{Db{El}}}}}Eb}{{{Dj{{Db{Hn}}}}}Eb}{{{Dj{{Db{Ib}}}}}Eb}{{{Dj{{Db{I`}}}}}Eb}{cc{}}{{{Ab{Dn}}}Dn}{{{Ab{Eb}}}Dn}{{{Ab{Ej}}}Dn}3{{{Ab{A`Ej}}}Ej}4{{{Ab{A`Eb}}}Ej}55{{cAj{Ab{A`e}}}{{Ff{Eb}}}lFh}{{c{Ab{{Dh{n}}}}}Ebl}{{{Ab{Eb}}{Ab{A`c}}}AdBh}`{{}Aj}0000{ce{}{}}0000{{{Ab{Eb}}}c{}}11{{{Ab{Eb}}}Al}{{{Ab{Dn}}}Al}10{{{Ab{Eb}}}J`}{DnJ`}{{{Ab{Eb}}}Jb}{DnJb}{{{Ab{Eb}}}Aj}{{{Ab{Dn}}}Aj}{{{Ab{Eb}}}{{Ab{{Dh{Cf}}}}}}{{{Ab{A`Eb}}}{{Ab{A`{Dh{Cf}}}}}}`{c{{F`{eg}}}{}{}{}}{{cAj}Ebl}{{cAjAj}Ebl}{{{Ab{A`J`}}}{{Bj{n}}}}{{{Ab{A`Jb}}}{{Bj{{F`{Ajn}}}}}}{{ElAj}Aj}0{{{Ab{Eb}}}El}{{{Ab{Dn}}}El}{{{Ab{Ej}}}El}{{{Ab{A`Eb}}n}Ad}{{{Ab{A`Ej}}n}Ad}{{{Ab{Eb}}c}BnIj}{{{Ab{A`Eb}}Ajn}Ad}{{{Ab{A`Ej}}Ajn}Ad}{{{Ab{A`Eb}}Aj}Ad}{{{Ab{A`Eb}}}Ad}{{{Ab{A`Ej}}}Ad}{{{Ab{Eb}}{Ab{Eb}}}Al}{{{Ab{A`J`}}Aj}Ad}{{{Ab{Eb}}AjAj}Dn}{{DnAjAj}Dn}{{{Ab{A`Eb}}AjAj}Ej}{{{Ab{A`Ej}}AjAj}Ej}{{{Ab{Eb}}{Ab{A`c}}}{{Ff{Ad}}}Gd}{{{Ab{c}}}e{}{}}{DnEb}1{{{Ab{c}}}Bl{}}0<{c{{Bn{e}}}{}{}}0000{{{Ab{A`Eb}}}{{Bn{{Ab{A`{Dj{{Db{Ib}}}}}}c}}}{}}{{{Ab{A`Eb}}}{{Bn{{Ab{A`{Dj{{Db{I`}}}}}}c}}}{}}2{{{Ab{A`Eb}}}{{Bn{{Ab{A`{Dj{{Db{El}}}}}}c}}}{}}{{{Ab{A`Eb}}}{{Bn{{Ab{A`{Dj{{Db{Hn}}}}}}c}}}{}}{{{Ab{A`Eb}}}{{Bn{{Ab{A`{Dj{{Db{Hl}}}}}}c}}}{}}5555{{{Ab{c}}}C`{}}0000{{{Ab{A`Eb}}{Ab{A`c}}}{{Ff{Ad}}}Fh}{ce{}{}}0000```````````{{{Ab{A`{Dj{c}}}}{Ab{{Dj{c}}}}{h{c}}}Add}{{{Ab{A`{Jd{c}}}}{Jf{c}}{h{c}}}Add}{{{Ab{A`{Dj{c}}}}Aj{h{c}}}Add}{{{Ab{A`{Jd{c}}}}Aj{h{c}}}Add}{{{Ab{A`{Dj{c}}}}Aj}Add}{{{Ab{A`{Jd{c}}}}Aj}Add}{{{Ab{A`{Dj{c}}}}{Ab{{Dj{c}}}}{h{c}}{Ab{A`{Dh{e}}}}}Ald{}}{{{Ab{A`{Dj{c}}}}{Ab{{Dj{c}}}}{Ab{A`{Dh{e}}}}}Ald{}}{{{Ab{A`{Dj{c}}}}AjCf{h{c}}{Ab{A`{Dh{e}}}}}Ald{}}{{{Ab{A`{Dj{c}}}}{Ab{{Dj{c}}}}}Add}{{{Ab{A`{Jd{c}}}}{Jf{c}}}Add}{{{Ab{A`{Jd{c}}}}{Jf{c}}{h{c}}{Ab{{Dh{Aj}}}}}Add}{{{Ab{A`{Jd{c}}}}{Jf{c}}{Ab{{Dh{Aj}}}}}Add}{{{Ab{A`{Dj{c}}}}{Ab{{Dj{c}}}}{h{c}}Aj}Add}{{{Ab{A`{Dj{c}}}}{Ab{{Dj{c}}}}Aj}Add}==={{{Ab{A`{Jd{c}}}}Aj{h{c}}{Jf{c}}{Jf{c}}}Add}{{{Ab{A`{Jd{c}}}}Aj{Jf{c}}{Jf{c}}}Add}{{{Ab{A`{Dj{c}}}}{Ab{{Dj{c}}}}{h{c}}}{{Bj{Ad}}}d}{{{Ab{A`{Dj{c}}}}{Ab{{Dj{c}}}}}{{Bj{Ad}}}d}76{{{Ab{{Dj{c}}}}}{{Jf{c}}}d}{{{Ab{{Jd{c}}}}}{{Jf{c}}}d}{{{Ab{A`{Dj{c}}}}}{{Jd{c}}}d}<;<{{{Ab{c}}}{{Ab{e}}}{}{}}00{{{Ab{A`c}}}{{Ab{A`e}}}{}{}}00{{{Ab{{Dj{c}}}}}{{Dj{c}}}{Afd}}{{{Ab{{Jf{c}}}}}{{Jf{c}}}{Afd}}{{{Ab{c}}{Ab{A`e}}}Ad{}{}}0{{{Ab{c}}}Ad{}}00{{{Ab{A`{Jd{c}}}}}{{Jd{c}}}d}{{{Ab{A`{Dj{c}}}}{Ab{{Dh{{h{c}}}}}}}Add}{{{Ab{A`{Dj{c}}}}{Ab{Dh}}}Add}{{{Ab{{Dj{c}}}}}Ind}{Aj{{Ab{c}}}{}}00{Aj{{Ab{A`c}}}{}}00{AjAd}00``{{{Ab{{Dj{c}}}}Aj}{{h{c}}}d}{{{Ab{{Jf{c}}}}Aj}{{h{c}}}d}{{{Ab{{Dj{c}}}}Aj}{}d}{{{Ab{{Jf{c}}}}Aj}{}d}{{{Ab{{Dj{c}}}}{Ab{{Dj{c}}}}}Al{And}}{{{Ab{c}}{Ab{e}}}Al{}{}}0{{{Ab{A`{Dj{c}}}}Aj}Add}{{{Ab{{Dj{c}}}}}{{Bj{{F`{Aj{h{c}}}}}}}d}{{{Ab{{Dj{c}}}}}{{Bj{{F`{Aj}}}}}d}{{{Ab{{Dj{c}}}}{Ab{A`B`}}}Bbd}{{{Ab{{Dj{c}}}}{Ab{A`B`}}}Bb{Bdd}}{{{Ab{{Jf{c}}}}{Ab{A`B`}}}Bb{Bdd}}{{{Ab{{Jf{c}}}}{Ab{A`B`}}}Bbd}{{{Ab{{Jd{c}}}}{Ab{A`B`}}}Bb{Bdd}}{{{Ab{{Dj{c}}}}}cd}```{cc{}}{{{F`{ce}}}{{Dj{c}}}d{{Jh{{Dh{{h{c}}}}}}}}{{{Ab{{Dj{c}}}}}{{Jf{c}}}d}22{{{Ab{A`{Dj{c}}}}}{{Jd{c}}}d}{{cAj{Ab{A`e}}}{{Ff{{Dj{c}}}}}dFh}{{cAj{En{Cf}}}{{Dj{c}}}d}{{c{Ab{{Dh{{h{c}}}}}}}{{Dj{c}}}d}{{{Ab{{Dj{c}}}}{Ab{A`e}}}Ad{Bfd}Bh}{{}Aj}00{ce{}{}}00{{{Ab{{Dj{c}}}}}Ald}{{{Ab{{Jf{c}}}}}Ald}10{{{Ab{{Dj{c}}}}}{{Jj{c}}}d}{{{Jf{c}}}{{Jj{c}}}d}{{{Ab{{Dj{c}}}}}{{Jl{c}}}d}{{{Jf{c}}}{{Jl{c}}}d}{{{Ab{{Dj{c}}}}}Ajd}{{{Ab{{Jf{c}}}}}Ajd}`{{{Ab{{Jf{c}}}}}{{F`{CfCf}}}d}{{{Ab{{Jf{c}}}}}{{D`{Aj}}}d}0{{{Ab{{Dj{c}}}}}{{Ab{{Dh{Cf}}}}}d}```{{{Ab{A`{Dj{c}}}}}{{Ab{A`{Dh{Cf}}}}}d}{{{Ab{{Jf{c}}}}}Cfd}0{{cAj}{{Dj{c}}}d}{{cAjAj}{{Dj{c}}}d}7{{{Ab{{Dj{c}}}}}Eld}{{{Ab{{Jf{c}}}}}Eld}{{{Ab{{Jd{c}}}}}Eld}{{{Ab{A`{Jd{c}}}}}Add}{{{Ab{A`{Dj{c}}}}{h{c}}}Add}{{{Ab{A`{Jd{c}}}}{h{c}}}Add}{{{Ab{A`{Dj{c}}}}}Add}3{{{Ab{A`{Dj{c}}}}Aj{h{c}}}Add}{{{Ab{A`{Jd{c}}}}Aj{h{c}}}Add}{{{Ab{A`{Dj{c}}}}Aj}Add}{{{Ab{A`{Jd{c}}}}Aj}Add}147{{{Ab{{Dj{c}}}}{Ab{{Dj{c}}}}}Ald}{{{Ab{{Dj{c}}}}AjAj}{{Jf{c}}}d}{{{Jf{c}}AjAj}{{Jf{c}}}d}{{{Ab{A`{Dj{c}}}}AjAj}{{Jd{c}}}d}{{{Ab{A`{Jd{c}}}}AjAj}{{Jd{c}}}d}``{{{Ab{{Dj{c}}}}{Ab{A`e}}}{{Ff{Ad}}}dGd}{{{Ab{c}}}e{}{}}{{{Jf{c}}}{{Dj{c}}}d}1{{{Ab{c}}}Bl{}}0:{c{{Bn{e}}}{}{}}00000{{{Ab{c}}}C`{}}00{{{Ab{A`{Dj{c}}}}{Ab{A`e}}}{{Ff{Ad}}}dFh}{ce{}{}}00````{{{Ab{c}}}{{Ab{e}}}{}{}}0{{{Ab{A`c}}}{{Ab{A`e}}}{}{}}0````{Aj{{Ab{c}}}{}}0{Aj{{Ab{A`c}}}{}}0`{AjAd}0````{cc{}}0`{{}Aj}07777{{{Ab{{Jj{c}}}}}Ajd}````{c{{F`{eg}}}{}{}{}}{{{Jf{c}}}{{Jj{c}}}d}{{{Jf{c}}}{{Jl{c}}}d}{{{Ab{A`{Jj{c}}}}}{{Bj{e}}}d{}}{{{Ab{A`{Jl{c}}}}}{{Bj{e}}}d{}}{{{Ab{A`{Jj{c}}}}}Bjd}{{{Ab{A`{Jl{c}}}}}{{Bj{{F`{Aj}}}}}d}{{{Ab{A`{Jj{c}}}}Aj}Add}{c{{Bn{e}}}{}{}}000{{{Ab{c}}}C`{}}0{ce{}{}}0","D":"AKl","p":[[17,"Characteristic"],[10,"Field",28],[17,"Value"],[5,"FieldElement",42],[10,"Strategy",1453],[10,"Prime",643],[1,"u32"],[0,"mut"],[1,"reference"],[1,"unit"],[10,"Clone",1454],[10,"FieldInternal",85],[1,"usize"],[1,"bool"],[10,"PartialEq",1455],[5,"Formatter",1456],[8,"Result",1456],[10,"Debug",1456],[10,"Hash",1457],[10,"Hasher",1457],[6,"Option",1458],[5,"String",1459],[6,"Result",1460],[5,"TypeId",1461],[17,"ElementContainer"],[10,"FieldElementContainer",42],[1,"u64"],[5,"LimbBitIndexPair",268],[5,"LimbIterator",85],[17,"Item"],[10,"Iterator",1462],[5,"Range",1463],[5,"Fp",133],[5,"SmallFq",182],[5,"SmallFqElement",182],[1,"slice"],[5,"FqVector",1238],[5,"AffineSubspace",321],[6,"FpSlice",1033],[5,"Subspace",597],[6,"FpVector",1033],[5,"M4riTable",353],[5,"Matrix",381],[5,"MatrixSliceMut",381],[6,"FpSliceMut",1033],[5,"ValidPrime",745],[5,"Vec",1464],[1,"tuple"],[5,"AugmentedMatrix",381],[5,"QuasiInverse",519],[8,"Result",1465],[10,"Read",1466],[5,"Iter",1467],[5,"IterMut",1467],[10,"MaybeIndexedParallelIterator",1468],[1,"array"],[1,"isize"],[10,"Write",1466],[5,"Subquotient",553],[17,"Output"],[10,"FnMut",1469],[10,"FnOnce",1469],[1,"i32"],[6,"PrimeError",643],[10,"Binomial",693],[10,"Into",1470],[5,"BitflagIterator",705],[5,"BinomialIterator",705],[5,"IterBridge",1471],[5,"P2",745],[5,"P3",745],[5,"P5",745],[5,"P7",745],[10,"Deserializer",1472],[1,"str"],[6,"Ordering",1455],[10,"Serializer",1473],[5,"__m128i",1474],[1,"f32"],[6,"FpVectorIterator",1033],[6,"FpVectorNonZeroIterator",1033],[5,"FqSliceMut",1238],[5,"FqSlice",1238],[10,"AsRef",1470],[5,"FqVectorIterator",1400],[5,"FqVectorNonZeroIterator",1400],[8,"Polynomial",182]],"r":[[0,14],[2,14],[4,14],[5,14],[30,133],[31,182],[133,986],[134,986],[135,986],[136,986],[290,321],[291,381],[292,381],[293,381],[294,519],[295,553],[296,597],[643,693],[1002,1033],[1003,1033],[1004,1033],[1005,1033],[1006,1033]],"b":[[62,"impl-Debug-for-FieldElement%3CF%3E"],[63,"impl-Display-for-FieldElement%3CF%3E"],[225,"impl-Debug-for-SmallFq%3CP%3E"],[226,"impl-Display-for-SmallFq%3CP%3E"],[227,"impl-Display-for-SmallFqElement"],[228,"impl-Debug-for-SmallFqElement"],[335,"impl-Display-for-AffineSubspace"],[336,"impl-Debug-for-AffineSubspace"],[437,"impl-Display-for-Matrix"],[438,"impl-Debug-for-Matrix"],[456,"impl-IntoIterator-for-%26mut+Matrix"],[457,"impl-IntoIterator-for-%26Matrix"],[458,"impl-IntoIterator-for-Matrix"],[568,"impl-Display-for-Subquotient"],[569,"impl-Debug-for-Subquotient"],[619,"impl-Debug-for-Subspace"],[620,"impl-Display-for-Subspace"],[666,"impl-Display-for-PrimeError"],[667,"impl-Debug-for-PrimeError"],[750,"impl-Add%3Cu32%3E-for-P2"],[751,"impl-Add-for-P2"],[752,"impl-Add%3Cu32%3E-for-P3"],[753,"impl-Add-for-P3"],[754,"impl-Add%3Cu32%3E-for-P5"],[755,"impl-Add-for-P5"],[756,"impl-Add-for-P7"],[757,"impl-Add%3Cu32%3E-for-P7"],[758,"impl-Add-for-ValidPrime"],[759,"impl-Add%3Cu32%3E-for-ValidPrime"],[815,"impl-Div-for-P2"],[816,"impl-Div%3Cu32%3E-for-P2"],[817,"impl-Div-for-P3"],[818,"impl-Div%3Cu32%3E-for-P3"],[819,"impl-Div%3Cu32%3E-for-P5"],[820,"impl-Div-for-P5"],[821,"impl-Div%3Cu32%3E-for-P7"],[822,"impl-Div-for-P7"],[823,"impl-Div%3Cu32%3E-for-ValidPrime"],[824,"impl-Div-for-ValidPrime"],[830,"impl-PartialEq%3Cu32%3E-for-P2"],[831,"impl-PartialEq-for-P2"],[832,"impl-PartialEq%3Cu32%3E-for-P3"],[833,"impl-PartialEq-for-P3"],[834,"impl-PartialEq-for-P5"],[835,"impl-PartialEq%3Cu32%3E-for-P5"],[836,"impl-PartialEq-for-P7"],[837,"impl-PartialEq%3Cu32%3E-for-P7"],[838,"impl-PartialEq%3Cu32%3E-for-ValidPrime"],[839,"impl-PartialEq-for-ValidPrime"],[850,"impl-Debug-for-P2"],[851,"impl-Display-for-P2"],[852,"impl-Display-for-P3"],[853,"impl-Debug-for-P3"],[854,"impl-Debug-for-P5"],[855,"impl-Display-for-P5"],[856,"impl-Display-for-P7"],[857,"impl-Debug-for-P7"],[858,"impl-Display-for-ValidPrime"],[859,"impl-Debug-for-ValidPrime"],[883,"impl-Mul%3Cu32%3E-for-P2"],[884,"impl-Mul-for-P2"],[885,"impl-Mul-for-P3"],[886,"impl-Mul%3Cu32%3E-for-P3"],[887,"impl-Mul-for-P5"],[888,"impl-Mul%3Cu32%3E-for-P5"],[889,"impl-Mul-for-P7"],[890,"impl-Mul%3Cu32%3E-for-P7"],[891,"impl-Mul-for-ValidPrime"],[892,"impl-Mul%3Cu32%3E-for-ValidPrime"],[901,"impl-Rem-for-P2"],[902,"impl-Rem%3Cu32%3E-for-P2"],[903,"impl-Rem-for-P3"],[904,"impl-Rem%3Cu32%3E-for-P3"],[905,"impl-Rem%3Cu32%3E-for-P5"],[906,"impl-Rem-for-P5"],[907,"impl-Rem-for-P7"],[908,"impl-Rem%3Cu32%3E-for-P7"],[909,"impl-Rem%3Cu32%3E-for-ValidPrime"],[910,"impl-Rem-for-ValidPrime"],[916,"impl-Shl-for-P2"],[917,"impl-Shl%3Cu32%3E-for-P2"],[918,"impl-Shl%3Cu32%3E-for-P3"],[919,"impl-Shl-for-P3"],[920,"impl-Shl%3Cu32%3E-for-P5"],[921,"impl-Shl-for-P5"],[922,"impl-Shl-for-P7"],[923,"impl-Shl%3Cu32%3E-for-P7"],[924,"impl-Shl%3Cu32%3E-for-ValidPrime"],[925,"impl-Shl-for-ValidPrime"],[926,"impl-Shr-for-P2"],[927,"impl-Shr%3Cu32%3E-for-P2"],[928,"impl-Shr%3Cu32%3E-for-P3"],[929,"impl-Shr-for-P3"],[930,"impl-Shr-for-P5"],[931,"impl-Shr%3Cu32%3E-for-P5"],[932,"impl-Shr%3Cu32%3E-for-P7"],[933,"impl-Shr-for-P7"],[934,"impl-Shr-for-ValidPrime"],[935,"impl-Shr%3Cu32%3E-for-ValidPrime"],[936,"impl-Sub%3Cu32%3E-for-P2"],[937,"impl-Sub-for-P2"],[938,"impl-Sub-for-P3"],[939,"impl-Sub%3Cu32%3E-for-P3"],[940,"impl-Sub%3Cu32%3E-for-P5"],[941,"impl-Sub-for-P5"],[942,"impl-Sub-for-P7"],[943,"impl-Sub%3Cu32%3E-for-P7"],[944,"impl-Sub%3Cu32%3E-for-ValidPrime"],[945,"impl-Sub-for-ValidPrime"],[1123,"impl-Debug-for-FpVector"],[1124,"impl-Display-for-FpVector"],[1125,"impl-Display-for-FpSlice%3C\'_%3E"],[1126,"impl-Debug-for-FpSlice%3C\'a%3E"],[1128,"impl-From%3CFqVector%3CFp%3CP2%3E%3E%3E-for-FpVector"],[1129,"impl-From%3CFqVector%3CFp%3CValidPrime%3E%3E%3E-for-FpVector"],[1130,"impl-From%3CFqVector%3CFp%3CP3%3E%3E%3E-for-FpVector"],[1131,"impl-From%3CFqVector%3CFp%3CP7%3E%3E%3E-for-FpVector"],[1132,"impl-From%3CFqVector%3CFp%3CP5%3E%3E%3E-for-FpVector"],[1134,"impl-From%3C%26FpSlice%3C\'b%3E%3E-for-FpSlice%3C\'a%3E"],[1135,"impl-From%3C%26FpVector%3E-for-FpSlice%3C\'a%3E"],[1136,"impl-From%3C%26FpSliceMut%3C\'b%3E%3E-for-FpSlice%3C\'a%3E"],[1138,"impl-From%3C%26mut+FpSliceMut%3C\'b%3E%3E-for-FpSliceMut%3C\'a%3E"],[1140,"impl-From%3C%26mut+FpVector%3E-for-FpSliceMut%3C\'a%3E"],[1209,"impl-TryInto%3C%26mut+FqVector%3CFp%3CP7%3E%3E%3E-for-%26mut+FpVector"],[1210,"impl-TryInto%3C%26mut+FqVector%3CFp%3CP5%3E%3E%3E-for-%26mut+FpVector"],[1212,"impl-TryInto%3C%26mut+FqVector%3CFp%3CValidPrime%3E%3E%3E-for-%26mut+FpVector"],[1213,"impl-TryInto%3C%26mut+FqVector%3CFp%3CP3%3E%3E%3E-for-%26mut+FpVector"],[1214,"impl-TryInto%3C%26mut+FqVector%3CFp%3CP2%3E%3E%3E-for-%26mut+FpVector"],[1309,"impl-Display-for-FqVector%3CF%3E"],[1310,"impl-Debug-for-FqVector%3CF%3E"],[1311,"impl-Debug-for-FqSlice%3C\'a,+F%3E"],[1312,"impl-Display-for-FqSlice%3C\'_,+F%3E"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAM8EgwAAAAIABAAAAAcACgAUAAIAHAAOAC0AFABDAAIARwADAEwACQBYAAIAXAABAF8AAQBiAAMAaAAAAGsAAQBuAAAAcAABAHMABgB+AAEAgQACAIUABACLABkApgACAKoABQCxAAcAvAAAAL4AGwDbAAwA6gADAPAABgD4ABIADAEAAA4BCgAaAQAAHAEHACYBAAAoAQAAKgEOADoBFQBRAQEAVAEAAFYBCwBkAQEAaQEEAHABAAB2AQEAegEDAIABAgCFAQEAiAEOAJgBAACaAQAAnAEAAJ4BAACgAREAtwEAALsBAAC+AQAAwQECAMUBAADJAQ0A2AEEAN4BAQDhAQMA6AEDAO4BAgDyARQACgILABcCAwAcAgUAIwIPADQCBgA9AgIAQQIAAEQCBABLAgAATwIGAFcCAABaAgAAXAIQAG8CAABxAgAAdAIAAHYCAQB7AgYAgwIDAIgCEQCbAgEAngIDAKMCAgCoAgIArAIAAK8CBgC+AgAAwwIEAMkCBgDSAgEA1gImAP4CXwBjAwoAcwOQAAUEYABnBAYAbwQCAHMEAAB1BAAAeAQCAHwEBACGBEgA0AQFANoECgDmBAAA6AQBAOsEAADtBAIA8QQEAPgEDAAHBRMAHQUDACIFBAAoBQEALAUHADcFBAA9BQYARQUVAFwFCgBoBQIAbAUNAHsFFACSBQIAlwUWAA=="}],\ +["fp",{"t":"SKSSSSQCCCCCCCSSJSSSISSSSSSQRKEEMMMCCCMNCMFKNNNNNNNNNNNNNNNNNONNNNNQNNNNNNNNNNNNNNNONRKFNMMOONNNMNNNNMMONMOMNNNNMNONNMMNQNNNMNNNNNNNNSSSSFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNIJFFJINNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNOOHNHNNNNONONONNNNNNNNNNNNHNFONNNNNNNNNNNNNOHNNNNNFFSSSFFFFFFFFCOOOOOOOOOOOOCOCOOOOOOOCOOOCCOOFNNNNNNNNNNNNNNNNNNNNONNONNNNNNNFNNNNOONNNNNNNNNNNONNNNONNNNFFFNNNNCNNNNNNNNNNNNNNNNNNOONNONNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNONONNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNOONNNNSSFNNNNNONNNNNNNNOONNNNNFNNNNNNNNNNNNNNNONNNNNNONNNNNNNNNNFNNCNNNNNNNNNNNONNNNNNONNNNNNNONNNNNNNNNNNNNNNEFNNNNNNNNONNNNNONNNNNFNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNEFNNNNNNNNONNNNNONNNNNEPPKGSMNNCNNNNNQNNNNNNHNNNQQQNNHNCHHHNNHCNNMNNNNNNKNMMMMMHQNMMFFNNNNHNNNNNNONNNNNNNNNNNNNNNONNNNNNNONNFFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNSSSSSHCIHHHPPPPPGGGGGPPPPPPPPPPPPPPPPPPPPCCCCCCCFSOOPPPPPGGGGGPPPPPPPPPPPPPPPPPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNQQQQQQQQCFSNNNNNNNNNNONNNONNNNNFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNOOONNNNNNNNNNNNNNNNNNNNNNNNNNONNNNOOONNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNFFOONNNNOOOONNNNONNOOOONNONNNNNNNOOOONNNNNNNNNNNNNNNN","n":["MAX_MULTINOMIAL_LEN","MaybeArbitrary","NUM_PRIMES","ODD_PRIMES","PRIMES","PRIME_TO_INDEX_MAP","const_for","constants","field","limb","matrix","prime","simd","vector","BINOMIAL4_TABLE","BINOMIAL4_TABLE_SIZE","BINOMIAL_TABLE","BITS_PER_LIMB","BYTES_PER_LIMB","INVERSE_TABLE","Limb","MAX_MULTINOMIAL_LEN","MAX_PRIME","NOT_A_PRIME","NUM_PRIMES","PRIMES","PRIME_TO_INDEX_MAP","populate_binomial_table","Characteristic","Field","Fp","SmallFq","arb_element","characteristic","degree","element","field_internal","fp","one","q","smallfq","zero","FieldElement","FieldElementContainer","add","add_assign","borrow","borrow_mut","clone","clone_into","clone_to_uninit","clone_to_uninit","deref","deref","deref_mut","div","drop","eq","equivalent","equivalent","field","field","fmt","fmt","frobenius","from","hash","impl_arith","init","into","inv","mul","mul_assign","neg","new","sub","sub_assign","to_owned","to_string","try_from","try_into","type_id","val","value","vzip","ElementContainer","FieldInternal","LimbIterator","add","add_assign","bit_length","bit_length","bit_mask","bitmask","borrow","borrow_mut","decode","deref","deref_mut","div","drop","el","encode","entries","entries_per_limb","fma_limb","fq","frobenius","from","init","into","into_iter","inv","is_reduced","limb","limb_bit_index_pair","mul","mul_assign","neg","next","normal_from_assign","number","pack","range","reduce","sub","sub_assign","truncate","try_from","try_into","type_id","unpack","vzip","F2","F3","F5","F7","Fp","add_assign","arb_element","arbitrary_with","bit_length","borrow","borrow_mut","characteristic","clone","clone_into","clone_to_uninit","clone_to_uninit","decode","degree","deref","deref","deref_mut","drop","el","element","encode","eq","equivalent","equivalent","fma_limb","fmt","frobenius","from","from","hash","init","into","inv","mul_assign","neg","new","one","p","reduce","to_owned","try_from","try_into","type_id","vzip","zero","Polynomial","SMALL_CONWAY_POLYS","SmallFq","SmallFqElement","ZECH_LOGS","ZechTable","a","add","add_assign","arb_element","arbitrary_with","bit_length","borrow","borrow","borrow_mut","borrow_mut","characteristic","clone","clone","clone_into","clone_into","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","d","decode","degree","deref","deref","deref_mut","deref_mut","drop","drop","el","encode","eq","eq","equivalent","equivalent","equivalent","equivalent","fma_limb","fmt","fmt","fmt","fmt","fq","frobenius","from","from","hash","hash","init","init","into","into","inv","len","limbs","make_zech_log_table","mul_assign","mul_by_a","neg","negative_one","new","one","p","q","q","reduce","table","to_owned","to_owned","to_string","to_string","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","zech_logs","zero","LimbBitIndexPair","bit_index","borrow","borrow_mut","clone","clone_into","clone_to_uninit","clone_to_uninit","deref","deref_mut","drop","fmt","from","init","into","limb","sign_rule","to_owned","try_from","try_into","type_id","vzip","AffineSubspace","AugmentedMatrix","MAX_COLUMNS","MAX_DIM","MAX_ROWS","Matrix","MatrixArbParams","MatrixSliceMut","QuasiInverse","Subquotient","SubquotientArbParams","Subspace","SubspaceArbParams","affine","col_end","col_start","columns","columns","dim","dim","dimension","end","gens","image","inner","linear_part","m4ri","matrix","matrix_inner","offset","p","p","p","p","pivots","preimage","quasi_inverse","quotient","rows","start","subquotient","subspace","vectors","vectors","AffineSubspace","borrow","borrow_mut","clone","clone_into","clone_to_uninit","contains","contains_space","deref","deref_mut","drop","eq","equivalent","equivalent","fmt","fmt","from","from","init","into","linear_part","linear_part","new","offset","offset","sum","to_owned","to_string","try_from","try_into","type_id","vzip","M4riTable","add","borrow","borrow_mut","clear","columns","data","default","deref","deref_mut","drop","fmt","from","generate","init","into","is_empty","len","min_limb","new","reduce","reduce_naive","rows","rows","try_from","try_into","type_id","vzip","AugmentedMatrix","Matrix","MatrixSliceMut","add_assign","add_identity","add_masked","apply","arbitrary","arbitrary_rref","arbitrary_rref_with","arbitrary_with","as_slice_mut","assign","augmented_from_vec","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","clone_to_uninit","clone_to_uninit","col_end","col_start","columns","columns","columns","compute_image","compute_image","compute_kernel","compute_kernel","compute_quasi_inverse","compute_quasi_inverse","compute_quasi_inverses","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop_first","end","eq","equivalent","equivalent","extend_column_dimension","extend_column_dimension","extend_image","extend_to_surjection","find_first_row_in_block","find_pivots_permutation","fmt","fmt","from","from","from","from_bytes","from_rows","from_vec","identity","index","index_mut","init","init","init","initialize_pivots","inner","into","into","into","into_iter","into_iter","into_iter","into_matrix","into_tail_segment","is_zero","iter","iter","iter_mut","iter_mut","maybe_par_iter_mut","maybe_par_iter_mut","mul","mul_assign","new","new","new_with_capacity","new_with_capacity","p","pivots","pivots","pivots_mut","prime","read_pivot","row","row","row_mut","row_mut","row_op","row_op_naive","row_reduce","row_segment","row_segment_mut","row_slice","rows","rows","safe_row_op","segment","set_to_zero","slice_mut","split_borrow","start","to_bytes","to_owned","to_owned","to_string","to_vec","trim","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vectors","vectors","vzip","vzip","vzip","write_pivot","MAX_COLUMNS","MAX_ROWS","MatrixArbParams","borrow","borrow_mut","clone","clone_into","clone_to_uninit","columns","default","deref","deref_mut","drop","fmt","from","init","into","p","rows","to_owned","try_from","try_into","type_id","vzip","QuasiInverse","apply","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","drop","eq","equivalent","equivalent","fmt","from","from_bytes","image","image_dimension","init","into","new","pivots","preimage","preimage","prime","source_dimension","stream_quasi_inverse","target_dimension","to_bytes","to_owned","try_from","try_into","type_id","vzip","Subquotient","add_gen","ambient_dimension","arbitrary","arbitrary_with","borrow","borrow_mut","clear_gens","clone","clone_into","clone_to_uninit","complement_pivots","deref","deref_mut","dimension","dimension","drop","fmt","fmt","from","from_parts","gens","gens","init","into","is_empty","new","new_full","prime","quotient","quotient","quotient_dimension","quotient_pivots","reduce","reduce_by_quotient","reduce_matrix","set_to_full","subspace_dimension","subspace_gens","to_owned","to_string","try_from","try_into","type_id","vzip","zeros","MAX_DIM","SubquotientArbParams","borrow","borrow_mut","clone","clone_into","clone_to_uninit","default","deref","deref_mut","dim","drop","fmt","from","init","into","p","to_owned","try_from","try_into","type_id","vzip","Subspace","add_basis_elements","add_vector","add_vectors","ambient_dimension","arbitrary","arbitrary_with","basis","borrow","borrow_mut","clone","clone_into","clone_to_uninit","contains","contains_space","deref","deref","deref_mut","dimension","drop","entire_space","eq","equivalent","equivalent","fmt","fmt","from","from_bytes","from_matrix","init","into","is_empty","iter","iter_all_vectors","matrix","new","reduce","set_to_entire","set_to_zero","sum","to_bytes","to_owned","to_string","try_from","try_into","type_id","update_then_row_reduce","vzip","MAX_DIM","SubspaceArbParams","borrow","borrow_mut","clone","clone_into","clone_to_uninit","default","deref","deref_mut","dim","drop","fmt","from","init","into","p","to_owned","try_from","try_into","type_id","vzip","Binomial","InvalidPrime","NotAnInteger","Prime","PrimeError","TWO","as_i32","as_u32","as_usize","binomial","borrow","borrow_mut","clone","clone_into","clone_to_uninit","def_prime_static","deref","deref_mut","drop","eq","equivalent","equivalent","factor_pk","fmt","fmt","from","impl_op_pn_u32","impl_prime_ops","impl_try_from","init","into","inverse","inverse","iter","log2","logp","minus_one_to_the_n","pow","pow_mod","power_mod","primes_generic","product","sum","to_dyn","to_owned","to_string","try_from","try_into","type_id","vzip","Binomial","binomial","binomial2","binomial4","binomial4_rec","binomial_odd","binomial_odd_is_zero","direct_binomial","impl_binomial","multinomial","multinomial2","multinomial_odd","BinomialIterator","BitflagIterator","borrow","borrow","borrow_mut","borrow_mut","combinations","deref","deref","deref_mut","deref_mut","drop","drop","flag","from","from","init","init","into","into","into_iter","into_iter","new","new","new_fixed_length","next","next","par_bridge","par_bridge","remaining","set_bit_iterator","try_from","try_from","try_into","try_into","type_id","type_id","value","vzip","vzip","P2","P3","P5","P7","ValidPrime","add","add","add","add","add","add","add","add","add","add","arbitrary_with","arbitrary_with","arbitrary_with","arbitrary_with","arbitrary_with","as_i32","as_i32","as_i32","as_i32","as_i32","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","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","deserialize","deserialize","deserialize","deserialize","div","div","div","div","div","div","div","div","div","div","drop","drop","drop","drop","drop","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fp","from","from","from","from","from","from_str","hash","hash","hash","hash","hash","init","init","init","init","init","into","into","into","into","into","is_prime","mul","mul","mul","mul","mul","mul","mul","mul","mul","mul","new","new_unchecked","p","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","rem","rem","rem","rem","rem","rem","rem","rem","rem","rem","serialize","serialize","serialize","serialize","serialize","shl","shl","shl","shl","shl","shl","shl","shl","shl","shl","shr","shr","shr","shr","shr","shr","shr","shr","shr","shr","sub","sub","sub","sub","sub","sub","sub","sub","sub","sub","to_dyn","to_dyn","to_dyn","to_dyn","to_dyn","to_owned","to_owned","to_owned","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_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","F2","F3","F5","F7","LIMBS_PER_SIMD","add_simd","x86_64","SimdLimb","load","store","xor","Big","Big","Big","Big","Big","FpSlice","FpSliceMut","FpVector","FpVectorIterator","FpVectorNonZeroIterator","_2","_2","_2","_2","_2","_3","_3","_3","_3","_3","_5","_5","_5","_5","_5","_7","_7","_7","_7","_7","arbitrary","fp_wrapper","impl_fqslice","impl_fqslicemut","impl_fqvector","inner","iter","FqVectorArbParams","MAX_LEN","fq","len","Big","Big","Big","Big","Big","FpSlice","FpSliceMut","FpVector","FpVectorIterator","FpVectorNonZeroIterator","_2","_2","_2","_2","_2","_3","_3","_3","_3","_3","_5","_5","_5","_5","_5","_7","_7","_7","_7","_7","add","add","add_assign","add_basis_element","add_basis_element","add_carry","add_masked","add_offset","add_tensor","add_truncate","add_unmasked","as_slice","as_slice","as_slice_mut","assign","assign","assign_partial","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","clone_to_uninit","clone_to_uninit","clone_to_uninit","copy","copy_from_slice","density","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","drop","drop","drop","drop","drop","entry","entry","eq","equivalent","equivalent","extend_len","first_nonzero","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_bytes","from_slice","hash","helpers","init","init","init","init","init","into","into","into","into","into","into_iter","into_iter","into_iter","is_empty","is_empty","is_zero","is_zero","iter","iter","iter_nonzero","iter_nonzero","len","len","limbs","limbs_mut","macros_generic","multiunzip","new","new_with_capacity","next","next","num_limbs","padded_len","prime","prime","prime","scale","scale","serialize","set_entry","set_entry","set_scratch_vector_size","set_to_zero","set_to_zero","sign_rule","skip_n","slice","slice","slice_mut","slice_mut","to_bytes","to_owned","to_owned","to_owned","to_string","to_string","trim_start","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","update_from_bytes","vzip","vzip","vzip","vzip","vzip","dispatch_struct","dispatch_vector","dispatch_vector_inner","impl_from","impl_from_inner","impl_try_into","impl_try_into_inner","use_primes","arbitrary","FqVectorArbParams","MAX_LEN","borrow","borrow_mut","clone","clone_into","clone_to_uninit","default","deref","deref_mut","drop","fmt","fq","from","init","into","len","to_owned","try_from","try_into","type_id","vzip","FqSlice","FqSliceMut","FqVector","add","add","add_basis_element","add_basis_element","add_basis_element_helper","add_basis_element_helper","add_carry","add_carry_helper","add_carry_limb","add_helper","add_helper","add_masked","add_masked_helper","add_offset","add_offset_helper","add_shift_left","add_shift_none","add_shift_right","add_tensor","add_tensor_helper","add_truncate","add_truncate_helper","add_unmasked","add_unmasked_helper","arbitrary_with","as_slice","as_slice","as_slice_mut","assign","assign","assign_partial","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","clone_to_uninit","clone_to_uninit","clone_to_uninit","copy","copy_from_slice","copy_from_slice_helper","density","deref","deref","deref","deref_mut","deref_mut","deref_mut","drop","drop","drop","end","end","entry","entry","entry_helper","entry_helper","eq","equivalent","equivalent","extend_len","first_nonzero","first_nonzero_helper","fmt","fmt","fmt","fmt","fmt","fq","fq","fq","fq","from","from","from","from","from","from","from_bytes","from_raw_parts","from_slice","hash","init","init","init","into","into","into","is_empty","is_empty","is_zero","is_zero","iter","iter","iter_nonzero","iter_nonzero","len","len","len","limb_masks","limb_range","limb_range_inner","limbs","limbs","limbs","limbs","limbs_mut","max_limb_mask","min_limb_mask","new","new_with_capacity","offset","prime","prime","prime","reduce_limbs","scale","scale","scale_helper","scale_helper","set_entry","set_entry","set_entry_helper","set_entry_helper","set_scratch_vector_size","set_to_zero","set_to_zero","sign_rule","slice","slice","slice_mut","slice_mut","start","start","to_bytes","to_owned","to_owned","to_owned","to_string","to_string","trim_start","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","update_from_bytes","vzip","vzip","vzip","FqVectorIterator","FqVectorNonZeroIterator","bit_length","bit_mask","borrow","borrow","borrow_mut","borrow_mut","counter","cur_limb","cur_limb","cur_limb_entries_left","deref","deref","deref_mut","deref_mut","dim","drop","drop","entries_left","entries_per_limb_m_1","fq","fq","from","from","idx","init","init","into","into","into_iter","into_iter","len","limb_index","limb_index","limbs","limbs","multiunzip","new","new","next","next","next_helper","next_helper","skip_n","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip"],"q":[[0,"fp"],[14,"fp::constants"],[28,"fp::field"],[42,"fp::field::element"],[85,"fp::field::field_internal"],[133,"fp::field::fp"],[182,"fp::field::smallfq"],[268,"fp::limb"],[290,"fp::matrix"],[334,"fp::matrix::affine"],[366,"fp::matrix::m4ri"],[394,"fp::matrix::matrix_inner"],[536,"fp::matrix::matrix_inner::arbitrary"],[560,"fp::matrix::quasi_inverse"],[594,"fp::matrix::subquotient"],[640,"fp::matrix::subquotient::arbitrary"],[662,"fp::matrix::subspace"],[710,"fp::matrix::subspace::arbitrary"],[732,"fp::prime"],[782,"fp::prime::binomial"],[794,"fp::prime::iter"],[834,"fp::prime::primes_generic"],[1075,"fp::prime::primes_generic::fp"],[1079,"fp::simd"],[1082,"fp::simd::x86_64"],[1086,"fp::vector"],[1123,"fp::vector::arbitrary"],[1127,"fp::vector::fp_wrapper"],[1324,"fp::vector::fp_wrapper::macros_generic"],[1332,"fp::vector::impl_fqvector"],[1333,"fp::vector::impl_fqvector::arbitrary"],[1355,"fp::vector::inner"],[1518,"fp::vector::iter"],[1571,"proptest::strategy::traits"],[1572,"core::clone"],[1573,"core::cmp"],[1574,"core::fmt"],[1575,"core::hash"],[1576,"core::option"],[1577,"alloc::string"],[1578,"core::result"],[1579,"core::any"],[1580,"core::iter::traits::iterator"],[1581,"core::ops::range"],[1582,"alloc::vec"],[1583,"std::io::error"],[1584,"std::io"],[1585,"core::slice::iter"],[1586,"maybe_rayon::concurrent::prelude"],[1587,"core::ops::function"],[1588,"core::convert"],[1589,"rayon::iter::par_bridge"],[1590,"serde::de"],[1591,"serde::ser"],[1592,"core::core_arch::x86"]],"i":[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,2,0,0,0,2,2,2,0,0,0,2,2,0,2,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,12,0,0,12,12,12,29,29,12,29,29,12,29,29,12,29,12,12,29,12,12,29,12,29,29,29,29,12,12,29,12,12,12,12,29,0,12,12,12,12,12,12,12,29,29,29,12,29,0,0,0,0,0,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,0,0,0,0,0,0,34,34,34,34,34,34,34,35,34,35,34,34,35,34,35,34,34,35,35,34,34,34,34,35,34,35,34,35,34,34,34,35,34,34,35,35,34,34,34,35,35,91,34,34,35,34,35,34,35,34,35,34,91,91,0,34,0,34,34,34,34,34,34,34,34,34,34,35,34,35,34,35,34,35,34,35,34,35,0,34,0,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,0,28,28,28,28,28,0,0,0,0,0,0,0,0,0,0,0,0,0,0,44,44,43,46,61,65,60,50,60,51,50,38,0,40,0,38,43,46,61,65,43,51,0,60,46,50,0,0,44,43,0,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,0,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,0,0,0,43,44,44,43,0,43,43,43,43,43,43,44,43,50,44,43,50,43,50,43,50,43,50,44,44,44,43,43,43,50,43,50,43,50,50,44,43,50,50,44,43,50,50,44,43,50,50,50,43,43,43,43,50,43,43,43,43,43,43,44,43,50,43,43,43,43,43,43,44,43,50,43,50,44,43,50,43,43,43,50,50,43,44,43,44,43,44,43,43,43,43,50,43,50,43,43,43,43,43,43,44,43,44,43,43,43,43,50,50,44,44,43,43,50,43,43,43,50,43,43,50,43,43,43,44,43,50,44,43,50,44,43,50,44,43,44,43,50,43,0,0,0,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,0,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,0,60,60,0,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,0,0,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,0,40,40,40,40,0,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,0,0,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,0,67,67,0,0,0,6,6,6,0,67,67,67,67,67,0,67,67,67,67,67,67,0,67,67,67,0,0,0,67,67,0,6,0,0,0,0,6,6,0,0,6,6,6,67,67,67,67,67,67,0,68,68,68,68,68,68,0,0,68,68,68,0,0,70,71,70,71,0,70,71,70,71,70,71,70,70,71,70,71,70,71,70,71,70,71,70,70,71,70,71,70,70,70,71,70,71,70,71,71,70,71,0,0,0,0,0,73,73,74,74,75,75,76,76,47,47,73,74,75,76,47,73,74,75,76,47,73,74,75,76,47,73,74,75,76,47,73,74,75,76,47,73,74,75,76,47,73,73,74,74,75,75,76,76,47,47,73,74,75,76,47,73,74,75,76,47,73,74,75,76,47,73,73,74,74,75,75,76,76,47,47,73,74,75,76,47,73,73,74,74,75,75,76,76,47,47,73,73,74,74,75,75,76,76,47,47,73,73,74,74,75,75,76,76,47,47,0,73,74,75,76,47,47,73,74,75,76,47,73,74,75,76,47,73,74,75,76,47,0,73,73,74,74,75,75,76,76,47,47,47,47,47,73,74,75,76,47,73,73,74,74,75,75,76,76,47,47,73,74,75,76,47,73,73,74,74,75,75,76,76,47,47,73,73,74,74,75,75,76,76,47,47,73,73,74,74,75,75,76,76,47,47,73,74,75,76,47,73,74,75,76,47,73,74,75,76,47,73,73,74,74,75,75,76,76,47,47,73,74,75,76,47,73,74,75,76,47,73,74,75,76,47,0,0,0,0,0,0,0,0,0,0,0,41,39,45,83,84,0,0,0,0,0,41,39,45,83,84,41,39,45,83,84,41,39,45,83,84,41,39,45,83,84,0,0,0,0,0,0,0,0,0,85,85,41,39,45,83,84,0,0,0,0,0,41,39,45,83,84,41,39,45,83,84,41,39,45,83,84,41,39,45,83,84,41,45,41,41,45,41,45,41,45,41,45,41,45,41,41,45,41,41,39,45,83,84,41,39,45,83,84,41,39,41,39,41,39,39,45,41,41,41,39,45,83,84,41,39,45,83,84,41,41,39,45,83,84,41,39,41,41,41,41,41,41,41,39,39,45,41,41,41,41,41,41,39,39,39,39,45,45,45,83,84,41,41,41,0,41,39,45,83,84,41,39,45,83,84,41,83,84,41,39,41,39,41,39,41,39,41,39,41,41,0,84,41,41,83,84,41,41,41,39,45,41,45,41,41,45,41,41,45,41,83,41,39,41,45,41,41,39,39,41,39,41,41,39,45,83,84,41,41,41,41,41,41,39,45,83,84,41,39,45,83,84,41,41,39,45,83,84,0,0,0,0,0,0,0,0,0,0,0,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,0,0,0,37,86,37,86,37,86,37,37,37,37,86,86,86,37,37,86,86,86,86,86,37,37,86,86,37,37,86,37,37,86,37,37,87,86,37,87,86,37,87,37,87,37,87,87,86,37,37,37,37,87,86,37,87,86,37,87,86,87,86,37,87,37,87,37,37,37,37,37,37,37,37,87,87,86,37,37,87,86,37,37,87,87,86,86,37,37,37,37,37,87,86,37,87,86,37,87,37,87,37,87,37,87,37,87,37,87,87,87,37,37,87,86,37,87,87,37,37,87,37,87,86,86,37,86,37,86,37,86,37,86,37,37,86,37,37,87,37,86,87,86,37,37,87,87,37,87,37,37,87,86,37,87,86,37,87,86,37,37,87,86,0,0,89,89,89,90,89,90,89,89,90,90,89,90,89,90,90,89,90,89,89,89,90,89,90,90,89,90,89,90,89,90,89,89,90,89,90,90,89,90,89,90,89,90,89,89,90,89,90,89,90,89,90],"f":"````````````````````````````````{{{d{}{{b{c}}}}}{{`{{j{}{{f{{h{{d{}{{b{c}}}}}}}}}}}}}l}{{{d{}{{b{c}}}}}cl}{{{d{}{{b{c}}}}}nl}```{{{d{}{{b{c}}}}}{{h{{d{}{{b{c}}}}}}}l}1`0``{{{h{c}}{h{c}}}ed{}}{{{Ab{A`{h{c}}}}{h{c}}}Add}{{{Ab{c}}}{{Ab{e}}}{}{}}{{{Ab{A`c}}}{{Ab{A`e}}}{}{}}{{{Ab{{h{c}}}}}{{h{c}}}{AfAh}}{{{Ab{c}}{Ab{A`e}}}Ad{}{}}{{{Ab{c}}}Ad{}}0{Aj{{Ab{c}}}{}}{{{Ab{{h{c}}}}}{{Ab{e}}}Ah{}}{Aj{{Ab{A`c}}}{}}9{AjAd}{{{Ab{{h{c}}}}{Ab{{h{c}}}}}Al{AnAh}}{{{Ab{c}}{Ab{e}}}Al{}{}}0{{{Ab{{h{c}}}}}cAh}`{{{Ab{{h{c}}}}{Ab{A`B`}}}Bb{BdAh}}{{{Ab{{h{c}}}}{Ab{A`B`}}}Bbd}{{{h{c}}}{{h{c}}}Ah}{cc{}}{{{Ab{{h{c}}}}{Ab{A`e}}}Ad{BfAh}Bh}`{{}Aj}{ce{}{}}{{{h{c}}}{{Bj{{h{c}}}}}Ah}{{{h{c}}{h{c}}}ed{}}{{{Ab{A`{h{c}}}}{h{c}}}Add}{{{h{c}}}ed{}}{c{{h{c}}}Ah}32{{{Ab{c}}}e{}{}}{{{Ab{c}}}Bl{}}{c{{Bn{e}}}{}{}}0{{{Ab{c}}}C`{}}{{{h{c}}}{}Ah}`:```{{{Ah{}{{Cb{c}}}}{h{{Ah{}{{Cb{c}}}}}}{h{{Ah{}{{Cb{c}}}}}}}{{h{{Ah{}{{Cb{c}}}}}}}Cd}{{{Ah{}{{Cb{c}}}}{Ab{A`{h{{Ah{}{{Cb{c}}}}}}}}{h{{Ah{}{{Cb{c}}}}}}}AdCd}{{{Ah{}{{Cb{c}}}}}AjCd}``{{{Ah{}{{Cb{c}}}}}CfCd}{{{Ab{c}}}{{Ab{e}}}{}{}}{{{Ab{A`c}}}{{Ab{A`e}}}{}{}}{{{Ah{}{{Cb{c}}}}Cf}{{h{{Ah{}{{Cb{c}}}}}}}Cd}{Aj{{Ab{c}}}{}}{Aj{{Ab{A`c}}}{}}{{{Ah{}{{Cb{c}}}}{h{{Ah{}{{Cb{c}}}}}}{h{{Ah{}{{Cb{c}}}}}}}{{Bj{{h{{Ah{}{{Cb{c}}}}}}}}}Cd}{AjAd}{{{Ah{}{{Cb{c}}}}c}{{h{{Ah{}{{Cb{c}}}}}}}Cd}{{{Ah{}{{Cb{c}}}}{h{{Ah{}{{Cb{c}}}}}}}CfCd}`:{{{Ah{}{{Cb{c}}}}CfCf{h{{Ah{}{{Cb{c}}}}}}}CfCd}`{{{Ah{}{{Cb{c}}}}{h{{Ah{}{{Cb{c}}}}}}}{{h{{Ah{}{{Cb{c}}}}}}}Cd}{cc{}}{{}Aj}{ce{}{}}0{{{Ah{}{{Cb{c}}}}{h{{Ah{}{{Cb{c}}}}}}}{{Bj{{h{{Ah{}{{Cb{c}}}}}}}}}Cd}{{{Ah{}{{Cb{c}}}}Cf}AlCd}`{{{Ah{}{{Cb{c}}}}Aj}ChCd}{{{Ah{}{{Cb{c}}}}{h{{Ah{}{{Cb{c}}}}}}{h{{Ah{}{{Cb{c}}}}}}}{{h{{Ah{}{{Cb{c}}}}}}}Cd}{{{Ah{}{{Cb{c}}}}{Ab{A`{h{{Ah{}{{Cb{c}}}}}}}}{h{{Ah{}{{Cb{c}}}}}}}AdCd}8{{{Ab{A`{Cj{c}}}}}{{Bj{e}}}Ah{}}`{{{Ah{}{{Cb{c}}}}Aj}AjCd}{{{Ah{}{{Cb{c}}}}e}CfCd{{Cn{}{{Cl{{h{{Ah{}{{Cb{c}}}}}}}}}}}}{{{Ah{}{{Cb{c}}}}AjAj}{{D`{Aj}}}Cd}{{{Ah{}{{Cb{c}}}}Cf}CfCd}65{{{Ah{}{{Cb{c}}}}Cf}{{Bj{Cf}}}Cd}{c{{Bn{e}}}{}{}}0{{{Ab{c}}}C`{}}{{{Ah{}{{Cb{c}}}}Cf}{{Cj{{Ah{}{{Cb{c}}}}}}}Cd}>`````{{{Db{c}}{Ab{A`{h{{Db{c}}}}}}{h{{Db{c}}}}}Adl}{{{Db{c}}}{{`{{j{}{{f{{h{{Db{c}}}}}}}}}}}l}{ce{}{}}{{{Db{c}}}Ajl}{{{Ab{c}}}{{Ab{e}}}{}{}}{{{Ab{A`c}}}{{Ab{A`e}}}{}{}}{{{Db{c}}}el{}}{{{Ab{{Db{c}}}}}{{Db{c}}}Af}{{{Ab{c}}{Ab{A`e}}}Ad{}{}}{{{Ab{c}}}Ad{}}0{{{Db{c}}Cf}{{h{{Db{c}}}}}l}{{{Db{c}}}nl}{Aj{{Ab{c}}}{}}{{{Ab{{Db{c}}}}}{{Ab{e}}}{}{}}{Aj{{Ab{A`c}}}{}}{AjAd}{{{Db{c}}e}{{h{{Db{c}}}}}l{}}{{{Ab{{Db{c}}}}n}{{h{{Db{c}}}}}l}{{{Db{c}}{h{{Db{c}}}}}Cfl}{{{Ab{{Db{c}}}}{Ab{{Db{c}}}}}AlAn}{{{Ab{c}}{Ab{e}}}Al{}{}}0{{{Db{c}}CfCf{h{{Db{c}}}}}Cfl}{{{Ab{{Db{c}}}}{Ab{A`B`}}}BbBd}{{{Db{c}}{h{{Db{c}}}}}{{h{{Db{c}}}}}l}{c{{Db{c}}}l}{cc{}}{{{Ab{{Db{c}}}}{Ab{A`e}}}AdBfBh}{{}Aj}{ce{}{}}{{{Db{c}}{h{{Db{c}}}}}{{Bj{{h{{Db{c}}}}}}}l}{{{Db{c}}{Ab{A`{h{{Db{c}}}}}}{h{{Db{c}}}}}Adl}76{{{Db{c}}}{{h{{Db{c}}}}}l}`{{{Db{c}}Cf}Cfl}{{{Ab{c}}}e{}{}}{c{{Bn{e}}}{}{}}0{{{Ab{c}}}C`{}}74``````{{{Dd{c}}}{{h{{Dd{c}}}}}l}{{{Dd{c}}{h{{Dd{c}}}}{h{{Dd{c}}}}}{{h{{Dd{c}}}}}l}{{{Dd{c}}{Ab{A`{h{{Dd{c}}}}}}{h{{Dd{c}}}}}Adl}{{{Dd{c}}}{{`{{j{}{{f{{h{{Dd{c}}}}}}}}}}}l};{{{Dd{c}}}Ajl}{{{Ab{c}}}{{Ab{e}}}{}{}}0{{{Ab{A`c}}}{{Ab{A`e}}}{}{}}0{{{Dd{c}}}el{}}{{{Ab{{Dd{c}}}}}{{Dd{c}}}Af}{{{Ab{Df}}}Df}{{{Ab{c}}{Ab{A`e}}}Ad{}{}}0{{{Ab{c}}}Ad{}}000`{{{Dd{c}}Cf}{{h{{Dd{c}}}}}l}{{{Dd{c}}}nl}{Aj{{Ab{c}}}{}}0{Aj{{Ab{A`c}}}{}}0{AjAd}0{{{Dd{c}}e}{{h{{Dd{c}}}}}l{}}{{{Dd{c}}{h{{Dd{c}}}}}Cfl}{{{Ab{{Dd{c}}}}{Ab{{Dd{c}}}}}All}{{{Ab{Df}}{Ab{Df}}}Al}{{{Ab{c}}{Ab{e}}}Al{}{}}000{{{Dd{c}}CfCf{h{{Dd{c}}}}}Cfl}{{{Ab{{Dd{c}}}}{Ab{A`B`}}}Bbl}0{{{Ab{Df}}{Ab{A`B`}}}Bb}0`{{{Dd{c}}{h{{Dd{c}}}}}{{h{{Dd{c}}}}}l}{cc{}}0{{{Ab{{Dd{c}}}}{Ab{A`e}}}AdlBh}{{{Ab{Df}}{Ab{A`c}}}AdBh}{{}Aj}0{ce{}{}}0{{{Dd{c}}{h{{Dd{c}}}}}{{Bj{{h{{Dd{c}}}}}}}l}``{{cn}{{Ab{{Dh{Df}}}}}l}{{{Dd{c}}{Ab{A`{h{{Dd{c}}}}}}{h{{Dd{c}}}}}Adl}{{{Ab{{Dj{{Db{c}}}}}}{Dj{{Db{c}}}}}{{Dj{{Db{c}}}}}l}9{{{Dd{c}}}{{h{{Dd{c}}}}}l}{{cn}{{Dd{c}}}l}1`{{{Dd{c}}}nl}`{{{Dd{c}}Cf}Cfl}`{{{Ab{c}}}e{}{}}0{{{Ab{c}}}Bl{}}0{c{{Bn{e}}}{}{}}000{{{Ab{c}}}C`{}}0<<:7``{{{Ab{c}}}{{Ab{e}}}{}{}}{{{Ab{A`c}}}{{Ab{A`e}}}{}{}}{{{Ab{Ch}}}Ch}{{{Ab{c}}{Ab{A`e}}}Ad{}{}}{{{Ab{c}}}Ad{}}0{Aj{{Ab{c}}}{}}{Aj{{Ab{A`c}}}{}}{AjAd}{{{Ab{Ch}}{Ab{A`B`}}}Bb}{cc{}}{{}Aj}{ce{}{}}`{{CfCf}n}{{{Ab{c}}}e{}{}}??>2`````````````````````````````````````````````=<{{{Ab{Dl}}}Dl};:{{{Ab{Dl}}Dn}Al}{{{Ab{Dl}}{Ab{Dl}}}Al};:90{{{Ab{c}}{Ab{e}}}Al{}{}}0{{{Ab{Dl}}{Ab{A`B`}}}Bb}09{E`Dl}98{{{Ab{Dl}}}{{Ab{E`}}}}`{{EbE`}Dl}{{{Ab{Dl}}}{{Ab{Eb}}}}`{{{Ab{Dl}}{Ab{Dl}}}Dl}:{{{Ab{c}}}Bl{}}{c{{Bn{e}}}{}{}}0{{{Ab{c}}}C`{}}?`{{{Ab{A`Ed}}AjAj}Ad}{{{Ab{c}}}{{Ab{e}}}{}{}}{{{Ab{A`c}}}{{Ab{A`e}}}{}{}}{{{Ab{A`Ed}}}Ad}``{{}Ed}{Aj{{Ab{c}}}{}}{Aj{{Ab{A`c}}}{}}{AjAd}{{{Ab{Ed}}{Ab{A`B`}}}Bb}{cc{}}{{{Ab{A`Ed}}{Ab{Ef}}}Ad}{{}Aj}{ce{}{}}{{{Ab{Ed}}}Al}{{{Ab{Ed}}}Aj}`{{AjAj}Ed}{{{Ab{Ed}}{Ab{A`{Dh{Cf}}}}}Ad}{{{Ab{Ed}}{Ab{A`Ef}}Aj}Ad}{{{Ab{Ed}}}{{Ab{{Dh{Aj}}}}}}`{c{{Bn{e}}}{}{}}0{{{Ab{c}}}C`{}}8```{{{Ab{A`Ef}}{Ab{Ef}}}Ad}{{{Ab{A`Eh}}}Ad}{{{Ab{A`Eh}}{Ab{Ef}}{Ab{{Dh{Aj}}}}}Ad}{{{Ab{Ef}}EjnDn}Ad}`{{}{{`{{j{}{{f{Ef}}}}}}}}{El{{`{{j{}{{f{Ef}}}}}}}}>{{{Ab{A`Ef}}}Eh}6{{En{Ab{{Dh{{F`{n}}}}}}}{{Fb{AjEf}}}}{{{Ab{c}}}{{Ab{e}}}{}{}}00{{{Ab{A`c}}}{{Ab{A`e}}}{}{}}00{{{Ab{Ef}}}Ef}{{{Ab{Fd}}}Fd}{{{Ab{c}}{Ab{A`e}}}Ad{}{}}0{{{Ab{c}}}Ad{}}0``{{{Ab{Eh}}}Aj}{{{Ab{Ef}}}Aj}`{{{Ab{Ef}}AjAj}E`}{{{Ab{Fd}}}E`}{{{Ab{Ef}}Aj}E`}1{{{Ab{Ef}}AjAj}Ff}{{{Ab{Fd}}}Ff}{Fd{{Fb{FfFf}}}}{Aj{{Ab{c}}}{}}00{{{Ab{Fd}}}{{Ab{Ef}}}}{Aj{{Ab{A`c}}}{}}00{{{Ab{A`Fd}}}{{Ab{A`Ef}}}}{AjAd}00{FdFd}`{{{Ab{Ef}}{Ab{Ef}}}Al}{{{Ab{c}}{Ab{e}}}Al{}{}}0{{{Ab{A`Ef}}Aj}Ad}{{{Ab{A`Fd}}Aj}Ad}{{{Ab{A`Ef}}AjAj{Ab{E`}}Aj}{{F`{Aj}}}}{{{Ab{A`Ef}}AjAjAj}{{F`{Aj}}}}{{{Ab{Ef}}Aj}Aj}{{{Ab{A`Ef}}c}{{F`{Aj}}}{{Cn{}{{Cl{Aj}}}}}}{{{Ab{Ef}}{Ab{A`B`}}}Bb}0{cc{}}00{{EnAjAj{Ab{A`c}}}{{Fh{Ef}}}Fj}{{En{F`{Eb}}Aj}Ef}{{En{Ab{{Dh{{F`{n}}}}}}}Ef}{{EnAj}Ef}{{{Ab{Ef}}c}{{Ab{e}}}{}{}}{{{Ab{A`Ef}}c}{{Ab{A`e}}}{}{}}{{}Aj}00{{{Ab{A`Ef}}}Ad}`{ce{}{}}00{Efc{}}{{{Ab{A`Ef}}}c{}}{{{Ab{Ef}}}c{}}{FdEf}{{FdAjAjAj}Ef}{{{Ab{Ef}}}Al}{{{Ab{Eh}}}{{`{{Cn{}{{Cl{Dn}}}}}}}}{{{Ab{Ef}}}{{Fl{Eb}}}}{{{Ab{A`Eh}}}{{`{{Cn{}{{Cl{Ej}}}}}}}}{{{Ab{A`Ef}}}{{Fn{Eb}}}}{{{Ab{A`Eh}}}{{`{{G`{}{{Cl{Ej}}}}}}}}{{{Ab{A`Ef}}}{{`{{G`{}{{Cl{{Ab{A`Eb}}}}}}}}}}{{{Ab{Ef}}{Ab{Ef}}}Ef}{{{Ab{A`Ef}}n}Ad}{{EnAjAj}Ef}{{EnAj{Gb{Aj}}}Fd}{{EnAjAjAjAj}Ef}{{EnAj{Ab{{Dh{Aj}}}}AjAj}Fd}`{{{Ab{Ef}}}{{Ab{{Dh{Gd}}}}}}`{{{Ab{A`Ef}}}{{Ab{A`{Dh{Gd}}}}}}{{{Ab{Ef}}}En}{{Aj{Ab{A`c}}}{{Fh{{F`{Gd}}}}}Fj}{{{Ab{A`Eh}}Aj}Dn}{{{Ab{Ef}}Aj}Dn}{{{Ab{A`Eh}}Aj}Ej}{{{Ab{A`Ef}}Aj}Ej}{{{Ab{A`Ef}}AjAjAjEn}Ad}0{{{Ab{A`Ef}}}Aj}{{{Ab{Fd}}AjAjAj}Dn}{{{Ab{A`Fd}}AjAjAj}Ej}{{{Ab{A`Eh}}AjAj}Eh}{{{Ab{Eh}}}Aj}{{{Ab{Ef}}}Aj}{{{Ab{A`Ef}}AjAjn}Ad}{{{Ab{A`Fd}}AjAj}Eh}{{{Ab{A`Ef}}}Ad}{{{Ab{A`Ef}}AjAjAjAj}Eh}{{{Ab{A`Ef}}AjAj}{{Fb{{Ab{A`Eb}}{Ab{A`Eb}}}}}}`{{{Ab{Ef}}{Ab{A`c}}}{{Fh{Ad}}}Gf}{{{Ab{c}}}e{}{}}0{{{Ab{c}}}Bl{}}{{{Ab{Ef}}}{{F`{{F`{n}}}}}}{{{Ab{A`Ef}}AjAjAj}Ad}{c{{Bn{e}}}{}{}}00000{{{Ab{c}}}C`{}}00``{ce{}{}}00{{{Ab{{Dh{Gd}}}}{Ab{A`c}}}{{Fh{Ad}}}Gf}```{{{Ab{c}}}{{Ab{e}}}{}{}}{{{Ab{A`c}}}{{Ab{A`e}}}{}{}}{{{Ab{El}}}El}{{{Ab{c}}{Ab{A`e}}}Ad{}{}}{{{Ab{c}}}Ad{}}`{{}El}{Aj{{Ab{c}}}{}}{Aj{{Ab{A`c}}}{}}{AjAd}{{{Ab{El}}{Ab{A`B`}}}Bb}{cc{}}{{}Aj}=``{{{Ab{c}}}e{}{}}{c{{Bn{e}}}{}{}}0{{{Ab{c}}}C`{}}{ce{}{}}`{{{Ab{Ff}}EjnDn}Ad}{{{Ab{c}}}{{Ab{e}}}{}{}}{{{Ab{A`c}}}{{Ab{A`e}}}{}{}}{{{Ab{Ff}}}Ff}{{{Ab{c}}{Ab{A`e}}}Ad{}{}}{{{Ab{c}}}Ad{}}?>={{{Ab{Ff}}{Ab{Ff}}}Al}{{{Ab{c}}{Ab{e}}}Al{}{}}0{{{Ab{Ff}}{Ab{A`B`}}}Bb}>{{En{Ab{A`c}}}{{Fh{Ff}}}Fj}`{{{Ab{Ff}}}Aj}?;{{{Bj{{F`{Gd}}}}Ef}Ff}{{{Ab{Ff}}}{{Bj{{Ab{{Dh{Gd}}}}}}}}{{{Ab{Ff}}}{{Ab{Ef}}}}`{{{Ab{Ff}}}En}4{{En{Ab{A`c}}{Ab{A`{Dh{e}}}}{Ab{{Dh{g}}}}}{{Fh{Ad}}}Fj{}{}}5{{{Ab{Ff}}{Ab{A`c}}}{{Fh{Ad}}}Gf}{{{Ab{c}}}e{}{}}{c{{Bn{e}}}{}{}}0{{{Ab{c}}}C`{}}{ce{}{}}`{{{Ab{A`Gh}}Dn}Ad}{{{Ab{Gh}}}Aj}`2{{{Ab{c}}}{{Ab{e}}}{}{}}{{{Ab{A`c}}}{{Ab{A`e}}}{}{}}{{{Ab{A`Gh}}}Ad}{{{Ab{Gh}}}Gh}{{{Ab{c}}{Ab{A`e}}}Ad{}{}}{{{Ab{c}}}Ad{}}{{{Ab{Gh}}}{{`{{Cn{}{{Cl{Aj}}}}}}}}{Aj{{Ab{c}}}{}}{Aj{{Ab{A`c}}}{}}9`{AjAd}{{{Ab{Gh}}{Ab{A`B`}}}Bb}0{cc{}}{{E`E`}Gh}{{{Ab{Gh}}}{{`{{Cn{}{{Cl{Dn}}}}}}}}`{{}Aj}{ce{}{}}{{{Ab{Gh}}}Al}{{EnAj}Gh}0{{{Ab{Gh}}}En}{{{Ab{A`Gh}}Dn}Ad}`{{{Ab{Gh}}}Aj}{{{Ab{Gh}}}{{Ab{{Dh{Gd}}}}}}{{{Ab{Gh}}Ej}{{F`{n}}}}{{{Ab{Gh}}Ej}Ad}{{{Ab{Ef}}{Ab{Gh}}{Ab{Gh}}}{{F`{{F`{n}}}}}}{{{Ab{A`Gh}}}Ad}5<{{{Ab{c}}}e{}{}}{{{Ab{c}}}Bl{}}{c{{Bn{e}}}{}{}}0{{{Ab{c}}}C`{}}>{{{Ab{Gh}}}{{Ab{E`}}}}``{{{Ab{c}}}{{Ab{e}}}{}{}}{{{Ab{A`c}}}{{Ab{A`e}}}{}{}}{{{Ab{Gj}}}Gj}{{{Ab{c}}{Ab{A`e}}}Ad{}{}}{{{Ab{c}}}Ad{}}{{}Gj}{Aj{{Ab{c}}}{}}{Aj{{Ab{A`c}}}{}}`{AjAd}{{{Ab{Gj}}{Ab{A`B`}}}Bb}{cc{}}{{}Aj}{ce{}{}}`{{{Ab{c}}}e{}{}}{c{{Bn{e}}}{}{}}0{{{Ab{c}}}C`{}}3`{{{Ab{A`E`}}c}Ad{{Cn{}{{Cl{Aj}}}}}}{{{Ab{A`E`}}Dn}Aj}{{{Ab{A`E`}}c}Ad{{Gn{Ej}{{Gl{{Bj{Ad}}}}}}}}{{{Ab{E`}}}Aj}`7{{{Ab{E`}}}{{Ab{{Dh{Eb}}}}}}{{{Ab{c}}}{{Ab{e}}}{}{}}{{{Ab{A`c}}}{{Ab{A`e}}}{}{}}{{{Ab{E`}}}E`}{{{Ab{c}}{Ab{A`e}}}Ad{}{}}{{{Ab{c}}}Ad{}}{{{Ab{E`}}Dn}Al}{{{Ab{E`}}{Ab{E`}}}Al}{Aj{{Ab{c}}}{}}{{{Ab{E`}}}{{Ab{c}}}{}}{Aj{{Ab{A`c}}}{}};{AjAd}{{EnAj}E`}5{{{Ab{c}}{Ab{e}}}Al{}{}}0{{{Ab{E`}}{Ab{A`B`}}}Bb}0{cc{}}{{En{Ab{A`c}}}{{Fh{E`}}}Fj}{EfE`}{{}Aj}{ce{}{}}{{{Ab{E`}}}Al}{{{Ab{E`}}}{{`{{Cn{}{{Cl{Dn}}}}}}}}{{{Ab{E`}}}{{`{{Cn{}{{Cl{Eb}}}}}}}}`:{{{Ab{E`}}Ej}Ad}{{{Ab{A`E`}}}Ad}0{{{Ab{E`}}{Ab{E`}}}E`}{{{Ab{E`}}{Ab{A`c}}}{{Fh{Ad}}}Gf}{{{Ab{c}}}e{}{}}{{{Ab{c}}}Bl{}}{c{{Bn{e}}}{}{}}0{{{Ab{c}}}C`{}}{{{Ab{A`E`}}e}c{}{{H`{{Ab{A`Ef}}}{{Gl{c}}}}}}<``{{{Ab{c}}}{{Ab{e}}}{}{}}{{{Ab{A`c}}}{{Ab{A`e}}}{}{}}{{{Ab{Hb}}}Hb}{{{Ab{c}}{Ab{A`e}}}Ad{}{}}{{{Ab{c}}}Ad{}}{{}Hb}{Aj{{Ab{c}}}{}}{Aj{{Ab{A`c}}}{}}`{AjAd}{{{Ab{Hb}}{Ab{A`B`}}}Bb}{cc{}}{{}Aj}{ce{}{}}`{{{Ab{c}}}e{}{}}{c{{Bn{e}}}{}{}}0{{{Ab{c}}}C`{}}3``````{lHd}{ln}{lAj}`{{{Ab{c}}}{{Ab{e}}}{}{}}{{{Ab{A`c}}}{{Ab{A`e}}}{}{}}{{{Ab{Hf}}}Hf}{{{Ab{c}}{Ab{A`e}}}Ad{}{}}{{{Ab{c}}}Ad{}}`{Aj{{Ab{c}}}{}}{Aj{{Ab{A`c}}}{}}{AjAd}{{{Ab{Hf}}{Ab{Hf}}}Al}{{{Ab{c}}{Ab{e}}}Al{}{}}0{{cn}{{Fb{nn}}}l}{{{Ab{Hf}}{Ab{A`B`}}}Bb}0{cc{}}```{{}Aj}{ce{}{}}{{cn}nl}{{ln}n}`{AjAj}2{{cHd}nl}2{{lnn}n}{{nnn}n}`11{lEn}{{{Ab{c}}}e{}{}}{{{Ab{c}}}Bl{}}{c{{Bn{e}}}{}{}}0{{{Ab{c}}}C`{}};`{{EnHhHh}Hh}{{HhHh}Hh}001{{EnHhHh}Al}{{EnAjAj}n}`{{En{Ab{A`{Dh{Hh}}}}}Hh}{{{Ab{{Dh{Hh}}}}}Hh}1``{{{Ab{c}}}{{Ab{e}}}{}{}}0{{{Ab{A`c}}}{{Ab{A`e}}}{}{}}0{{cAj}{{`{{Cn{}{{Cl{{F`{n}}}}}}}}}{{Hj{n}}}}{Aj{{Ab{c}}}{}}0{Aj{{Ab{A`c}}}{}}0{AjAd}0`{cc{}}0{{}Aj}0{ce{}{}}000{CfHl}{AjHn}{{CfAj}Hl}{{{Ab{A`Hl}}}{{Bj{c}}}{}}{{{Ab{A`Hn}}}{{Bj{c}}}{}}{c{{I`{e}}}{}{}}0`{Cf{{`{{Cn{}{{Cl{Aj}}}}}}}}{c{{Bn{e}}}{}{}}000{{{Ab{c}}}C`{}}0`99`````{{Ibn}c{}}{{IbIb}c{}}{{Idn}c{}}{{IdId}c{}}{{Ifn}c{}}{{IfIf}c{}}{{Ihn}c{}}{{IhIh}c{}}{{EnEn}c{}}{{Enn}c{}}{ce{}{}}0000{IbHd}{IdHd}{IfHd}{IhHd}{EnHd}{{{Ab{c}}}{{Ab{e}}}{}{}}0000{{{Ab{A`c}}}{{Ab{A`e}}}{}{}}0000{{{Ab{Ib}}}Ib}{{{Ab{Id}}}Id}{{{Ab{If}}}If}{{{Ab{Ih}}}Ih}{{{Ab{En}}}En}{{{Ab{c}}{Ab{A`e}}}Ad{}{}}0000{{{Ab{c}}}Ad{}}000000000{Aj{{Ab{c}}}{}}0000{Aj{{Ab{A`c}}}{}}0000{c{{Bn{Ib}}}Ij}{c{{Bn{Id}}}Ij}{c{{Bn{If}}}Ij}{c{{Bn{Ih}}}Ij}{c{{Bn{En}}}Ij}{{IbIb}c{}}{{Ibn}c{}}{{Idn}c{}}{{IdId}c{}}{{Ifn}c{}}{{IfIf}c{}}{{Ihn}c{}}{{IhIh}c{}}{{EnEn}c{}}{{Enn}c{}}{AjAd}0000{{{Ab{Ib}}{Ab{Ib}}}Al}{{{Ab{Ib}}{Ab{n}}}Al}{{{Ab{Id}}{Ab{Id}}}Al}{{{Ab{Id}}{Ab{n}}}Al}{{{Ab{If}}{Ab{If}}}Al}{{{Ab{If}}{Ab{n}}}Al}{{{Ab{Ih}}{Ab{Ih}}}Al}{{{Ab{Ih}}{Ab{n}}}Al}{{{Ab{En}}{Ab{n}}}Al}{{{Ab{En}}{Ab{En}}}Al}{{{Ab{c}}{Ab{e}}}Al{}{}}000000000{{{Ab{Ib}}{Ab{A`B`}}}Bb}0{{{Ab{Id}}{Ab{A`B`}}}Bb}0{{{Ab{If}}{Ab{A`B`}}}Bb}0{{{Ab{Ih}}{Ab{A`B`}}}Bb}0{{{Ab{En}}{Ab{A`B`}}}Bb}0`{cc{}}0000{{{Ab{Il}}}{{Bn{Enc}}}{}}{{{Ab{Ib}}{Ab{A`c}}}AdBh}{{{Ab{Id}}{Ab{A`c}}}AdBh}{{{Ab{If}}{Ab{A`c}}}AdBh}{{{Ab{Ih}}{Ab{A`c}}}AdBh}{{{Ab{En}}{Ab{A`c}}}AdBh}{{}Aj}0000{ce{}{}}0000{nAl}{{Ibn}c{}}{{IbIb}c{}}{{Idn}c{}}{{IdId}c{}}{{IfIf}c{}}{{Ifn}c{}}{{IhIh}c{}}{{Ihn}c{}}{{EnEn}c{}}{{Enn}c{}}{nEn}0`{{{Ab{Ib}}{Ab{n}}}{{Bj{In}}}}{{{Ab{Id}}{Ab{n}}}{{Bj{In}}}}{{{Ab{If}}{Ab{n}}}{{Bj{In}}}}{{{Ab{Ih}}{Ab{n}}}{{Bj{In}}}}{{{Ab{En}}{Ab{n}}}{{Bj{In}}}}>?<=:;9876{{{Ab{Ib}}c}BnJ`}{{{Ab{Id}}c}BnJ`}{{{Ab{If}}c}BnJ`}{{{Ab{Ih}}c}BnJ`}{{{Ab{En}}c}BnJ`}{{IbIb}c{}}{{Ibn}c{}}{{Idn}c{}}{{IdId}c{}}{{IfIf}c{}}{{Ifn}c{}}{{IhIh}c{}}{{Ihn}c{}}{{Enn}c{}}{{EnEn}c{}}89674523109876542301{IbEn}{IdEn}{IfEn}{IhEn}{EnEn}{{{Ab{c}}}e{}{}}0000{{{Ab{c}}}Bl{}}0000{c{{Bn{e}}}{}{}}{n{{Bn{IbHf}}}}{n{{Bn{IdHf}}}}2{n{{Bn{IfHf}}}}33{n{{Bn{IhHf}}}}{n{{Bn{EnHf}}}}555555{{{Ab{c}}}C`{}}0000{ce{}{}}0000`````{{{Ab{A`{Dh{Cf}}}}{Ab{{Dh{Cf}}}}Aj}Ad}``{CfJb}{{CfJb}Ad}{{JbJb}Jb}```````````````````````````````````````````````````````````````````````{{{Ab{A`Eb}}{Ab{Eb}}n}Ad}{{{Ab{A`Ej}}Dnn}Ad}{{{Ab{A`Eb}}{Ab{Eb}}}Ad}{{{Ab{A`Eb}}Ajn}Ad}{{{Ab{A`Ej}}Ajn}Ad}{{{Ab{A`Eb}}{Ab{Eb}}n{Ab{A`{Dh{Eb}}}}}Al}{{{Ab{A`Ej}}Dnn{Ab{{Dh{Aj}}}}}Ad}{{{Ab{A`Eb}}{Ab{Eb}}nAj}Ad}{{{Ab{A`Ej}}AjnDnDn}Ad}{{{Ab{A`Eb}}{Ab{Eb}}n}{{Bj{Ad}}}}3{{{Ab{Eb}}}Dn}{{{Ab{Ej}}}Dn}{{{Ab{A`Eb}}}Ej}:{{{Ab{A`Ej}}Dn}Ad};{{{Ab{c}}}{{Ab{e}}}{}{}}0000{{{Ab{A`c}}}{{Ab{A`e}}}{}{}}0000{{{Ab{Eb}}}Eb}{{{Ab{Dn}}}Dn}{{{Ab{c}}{Ab{A`e}}}Ad{}{}}0{{{Ab{c}}}Ad{}}00{{{Ab{A`Ej}}}Ej}{{{Ab{A`Eb}}{Ab{{Dh{n}}}}}Ad}{{{Ab{Eb}}}Jd}{Aj{{Ab{c}}}{}}0000{Aj{{Ab{A`c}}}{}}0000{c{{Bn{Eb}}}Ij}{AjAd}0000{{{Ab{Eb}}Aj}n}{{{Ab{Dn}}Aj}n}{{{Ab{Eb}}{Ab{Eb}}}Al}{{{Ab{c}}{Ab{e}}}Al{}{}}0{{{Ab{A`Eb}}Aj}Ad}{{{Ab{Eb}}}{{Bj{{Fb{Ajn}}}}}}{{{Ab{Eb}}{Ab{A`B`}}}Bb}0{{{Ab{Dn}}{Ab{A`B`}}}Bb}0{{{Ab{Ej}}{Ab{A`B`}}}Bb}{{{Dj{{Db{Ih}}}}}Eb}{{{Dj{{Db{Id}}}}}Eb}{{{Dj{{Db{En}}}}}Eb}{{{Dj{{Db{If}}}}}Eb}{{{Dj{{Db{Ib}}}}}Eb}{cc{}}{{{Ab{Ej}}}Dn}{{{Ab{Dn}}}Dn}{{{Ab{Eb}}}Dn}3{{{Ab{A`Ej}}}Ej}4{{{Ab{A`Eb}}}Ej}55{{cAj{Ab{A`e}}}{{Fh{Eb}}}lFj}{{c{Ab{{Dh{n}}}}}Ebl}{{{Ab{Eb}}{Ab{A`c}}}AdBh}`{{}Aj}0000{ce{}{}}0000{{{Ab{Eb}}}c{}}11{{{Ab{Eb}}}Al}{{{Ab{Dn}}}Al}10{{{Ab{Eb}}}Jf}{DnJf}{{{Ab{Eb}}}Jh}{DnJh}{{{Ab{Eb}}}Aj}{{{Ab{Dn}}}Aj}{{{Ab{Eb}}}{{Ab{{Dh{Cf}}}}}}{{{Ab{A`Eb}}}{{Ab{A`{Dh{Cf}}}}}}`{c{{Fb{eg}}}{}{}{}}{{cAj}Ebl}{{cAjAj}Ebl}{{{Ab{A`Jf}}}{{Bj{n}}}}{{{Ab{A`Jh}}}{{Bj{{Fb{Ajn}}}}}}{{EnAj}Aj}0{{{Ab{Eb}}}En}{{{Ab{Dn}}}En}{{{Ab{Ej}}}En}{{{Ab{A`Eb}}n}Ad}{{{Ab{A`Ej}}n}Ad}{{{Ab{Eb}}c}BnJ`}{{{Ab{A`Eb}}Ajn}Ad}{{{Ab{A`Ej}}Ajn}Ad}{{{Ab{A`Eb}}Aj}Ad}{{{Ab{A`Eb}}}Ad}{{{Ab{A`Ej}}}Ad}{{{Ab{Eb}}{Ab{Eb}}}Al}{{{Ab{A`Jf}}Aj}Ad}{{{Ab{Eb}}AjAj}Dn}{{DnAjAj}Dn}{{{Ab{A`Eb}}AjAj}Ej}{{{Ab{A`Ej}}AjAj}Ej}{{{Ab{Eb}}{Ab{A`c}}}{{Fh{Ad}}}Gf}{{{Ab{c}}}e{}{}}0{DnEb}{{{Ab{c}}}Bl{}}0<{c{{Bn{e}}}{}{}}00000{{{Ab{A`Eb}}}{{Bn{{Ab{A`{Dj{{Db{Ih}}}}}}c}}}{}}{{{Ab{A`Eb}}}{{Bn{{Ab{A`{Dj{{Db{If}}}}}}c}}}{}}{{{Ab{A`Eb}}}{{Bn{{Ab{A`{Dj{{Db{Ib}}}}}}c}}}{}}{{{Ab{A`Eb}}}{{Bn{{Ab{A`{Dj{{Db{En}}}}}}c}}}{}}{{{Ab{A`Eb}}}{{Bn{{Ab{A`{Dj{{Db{Id}}}}}}c}}}{}}5555{{{Ab{c}}}C`{}}0000{{{Ab{A`Eb}}{Ab{A`c}}}{{Fh{Ad}}}Fj}{ce{}{}}0000```````````{{{Ab{c}}}{{Ab{e}}}{}{}}{{{Ab{A`c}}}{{Ab{A`e}}}{}{}}{{{Ab{{Jj{c}}}}}{{Jj{c}}}Af}{{{Ab{c}}{Ab{A`e}}}Ad{}{}}{{{Ab{c}}}Ad{}}{{}{{Jj{c}}}{}}{Aj{{Ab{c}}}{}}{Aj{{Ab{A`c}}}{}}{AjAd}{{{Ab{{Jj{c}}}}{Ab{A`B`}}}BbBd}`{cc{}}{{}Aj}<`{{{Ab{c}}}e{}{}}{c{{Bn{e}}}{}{}}0{{{Ab{c}}}C`{}}?```{{{Ab{A`{Dj{c}}}}{Ab{{Dj{c}}}}{h{c}}}Add}{{{Ab{A`{Jl{c}}}}{Jn{c}}{h{c}}}Add}{{{Ab{A`{Dj{c}}}}Aj{h{c}}}Add}{{{Ab{A`{Jl{c}}}}Aj{h{c}}}Add}{{{Ab{A`{Dj{c}}}}Aj}Add}{{{Ab{A`{Jl{c}}}}Aj}Add}{{{Ab{A`{Dj{c}}}}{Ab{{Dj{c}}}}{h{c}}{Ab{A`{Dh{e}}}}}Ald{}}{{{Ab{A`{Dj{c}}}}{Ab{{Dj{c}}}}{Ab{A`{Dh{e}}}}}Ald{}}{{{Ab{A`{Dj{c}}}}AjCf{h{c}}{Ab{A`{Dh{e}}}}}Ald{}}{{{Ab{A`{Dj{c}}}}{Ab{{Dj{c}}}}}Add}{{{Ab{A`{Jl{c}}}}{Jn{c}}}Add}{{{Ab{A`{Jl{c}}}}{Jn{c}}{h{c}}{Ab{{Dh{Aj}}}}}Add}{{{Ab{A`{Jl{c}}}}{Jn{c}}{Ab{{Dh{Aj}}}}}Add}{{{Ab{A`{Dj{c}}}}{Ab{{Dj{c}}}}{h{c}}Aj}Add}{{{Ab{A`{Dj{c}}}}{Ab{{Dj{c}}}}Aj}Add}==={{{Ab{A`{Jl{c}}}}Aj{h{c}}{Jn{c}}{Jn{c}}}Add}{{{Ab{A`{Jl{c}}}}Aj{Jn{c}}{Jn{c}}}Add}{{{Ab{A`{Dj{c}}}}{Ab{{Dj{c}}}}{h{c}}}{{Bj{Ad}}}d}{{{Ab{A`{Dj{c}}}}{Ab{{Dj{c}}}}}{{Bj{Ad}}}d}76{ce{}{}}{{{Ab{{Dj{c}}}}}{{Jn{c}}}d}{{{Ab{{Jl{c}}}}}{{Jn{c}}}d}{{{Ab{A`{Dj{c}}}}}{{Jl{c}}}d}=<={{{Ab{c}}}{{Ab{e}}}{}{}}00{{{Ab{A`c}}}{{Ab{A`e}}}{}{}}00{{{Ab{{Dj{c}}}}}{{Dj{c}}}{Afd}}{{{Ab{{Jn{c}}}}}{{Jn{c}}}{Afd}}{{{Ab{c}}{Ab{A`e}}}Ad{}{}}0{{{Ab{c}}}Ad{}}00{{{Ab{A`{Jl{c}}}}}{{Jl{c}}}d}{{{Ab{A`{Dj{c}}}}{Ab{{Dh{{h{c}}}}}}}Add}{{{Ab{A`{Dj{c}}}}{Ab{Dh}}}Add}{{{Ab{{Dj{c}}}}}Jdd}{Aj{{Ab{c}}}{}}00{Aj{{Ab{A`c}}}{}}00{AjAd}00``{{{Ab{{Dj{c}}}}Aj}{{h{c}}}d}{{{Ab{{Jn{c}}}}Aj}{{h{c}}}d}{{{Ab{{Dj{c}}}}Aj}{}d}{{{Ab{{Jn{c}}}}Aj}{}d}{{{Ab{{Dj{c}}}}{Ab{{Dj{c}}}}}Al{And}}{{{Ab{c}}{Ab{e}}}Al{}{}}0{{{Ab{A`{Dj{c}}}}Aj}Add}{{{Ab{{Dj{c}}}}}{{Bj{{Fb{Aj{h{c}}}}}}}d}{{{Ab{{Dj{c}}}}}{{Bj{{Fb{Aj}}}}}d}{{{Ab{{Dj{c}}}}{Ab{A`B`}}}Bb{Bdd}}{{{Ab{{Dj{c}}}}{Ab{A`B`}}}Bbd}{{{Ab{{Jn{c}}}}{Ab{A`B`}}}Bb{Bdd}}{{{Ab{{Jn{c}}}}{Ab{A`B`}}}Bbd}{{{Ab{{Jl{c}}}}{Ab{A`B`}}}Bb{Bdd}}{{{Ab{{Dj{c}}}}}cd}```{cc{}}{{{Fb{ce}}}{{Dj{c}}}d{{K`{{Dh{{h{c}}}}}}}}{{{Ab{{Dj{c}}}}}{{Jn{c}}}d}2{{{Ab{A`{Dj{c}}}}}{{Jl{c}}}d}3{{cAj{Ab{A`e}}}{{Fh{{Dj{c}}}}}dFj}{{cAj{F`{Cf}}}{{Dj{c}}}d}{{c{Ab{{Dh{{h{c}}}}}}}{{Dj{c}}}d}{{{Ab{{Dj{c}}}}{Ab{A`e}}}Ad{Bfd}Bh}{{}Aj}00{ce{}{}}00{{{Ab{{Dj{c}}}}}Ald}{{{Ab{{Jn{c}}}}}Ald}10{{{Ab{{Dj{c}}}}}{{Kb{c}}}d}{{{Jn{c}}}{{Kb{c}}}d}{{{Ab{{Dj{c}}}}}{{Kd{c}}}d}{{{Jn{c}}}{{Kd{c}}}d}{{{Ab{{Dj{c}}}}}Ajd}{{{Ab{{Jn{c}}}}}Ajd}`{{{Ab{{Jn{c}}}}}{{Fb{CfCf}}}d}{{{Ab{{Jn{c}}}}}{{D`{Aj}}}d}0{{{Ab{{Dj{c}}}}}{{Ab{{Dh{Cf}}}}}d}```{{{Ab{A`{Dj{c}}}}}{{Ab{A`{Dh{Cf}}}}}d}{{{Ab{{Jn{c}}}}}Cfd}0{{cAj}{{Dj{c}}}d}{{cAjAj}{{Dj{c}}}d}7{{{Ab{{Dj{c}}}}}End}{{{Ab{{Jn{c}}}}}End}{{{Ab{{Jl{c}}}}}End}{{{Ab{A`{Jl{c}}}}}Add}{{{Ab{A`{Dj{c}}}}{h{c}}}Add}{{{Ab{A`{Jl{c}}}}{h{c}}}Add}{{{Ab{A`{Dj{c}}}}}Add}3{{{Ab{A`{Dj{c}}}}Aj{h{c}}}Add}{{{Ab{A`{Jl{c}}}}Aj{h{c}}}Add}{{{Ab{A`{Dj{c}}}}Aj}Add}{{{Ab{A`{Jl{c}}}}Aj}Add}147{{{Ab{{Dj{c}}}}{Ab{{Dj{c}}}}}Ald}{{{Ab{{Dj{c}}}}AjAj}{{Jn{c}}}d}{{{Jn{c}}AjAj}{{Jn{c}}}d}{{{Ab{A`{Dj{c}}}}AjAj}{{Jl{c}}}d}{{{Ab{A`{Jl{c}}}}AjAj}{{Jl{c}}}d}``{{{Ab{{Dj{c}}}}{Ab{A`e}}}{{Fh{Ad}}}dGf}{{{Ab{c}}}e{}{}}{{{Jn{c}}}{{Dj{c}}}d}1{{{Ab{c}}}Bl{}}0:{c{{Bn{e}}}{}{}}00000{{{Ab{c}}}C`{}}00{{{Ab{A`{Dj{c}}}}{Ab{A`e}}}{{Fh{Ad}}}dFj}{ce{}{}}00````{{{Ab{c}}}{{Ab{e}}}{}{}}0{{{Ab{A`c}}}{{Ab{A`e}}}{}{}}0````{Aj{{Ab{c}}}{}}0{Aj{{Ab{A`c}}}{}}0`{AjAd}0````{cc{}}0`{{}Aj}07777{{{Ab{{Kb{c}}}}}Ajd}````{c{{Fb{eg}}}{}{}{}}{{{Jn{c}}}{{Kb{c}}}d}{{{Jn{c}}}{{Kd{c}}}d}{{{Ab{A`{Kb{c}}}}}{{Bj{e}}}d{}}{{{Ab{A`{Kd{c}}}}}{{Bj{e}}}d{}}{{{Ab{A`{Kb{c}}}}}Bjd}{{{Ab{A`{Kd{c}}}}}{{Bj{{Fb{Aj}}}}}d}{{{Ab{A`{Kb{c}}}}Aj}Add}{c{{Bn{e}}}{}{}}000{{{Ab{c}}}C`{}}0{ce{}{}}0","D":"ALn","p":[[17,"Characteristic"],[10,"Field",28],[17,"Value"],[5,"FieldElement",42],[10,"Strategy",1571],[10,"Prime",732],[1,"u32"],[0,"mut"],[1,"reference"],[1,"unit"],[10,"Clone",1572],[10,"FieldInternal",85],[1,"usize"],[1,"bool"],[10,"PartialEq",1573],[5,"Formatter",1574],[8,"Result",1574],[10,"Debug",1574],[10,"Hash",1575],[10,"Hasher",1575],[6,"Option",1576],[5,"String",1577],[6,"Result",1578],[5,"TypeId",1579],[17,"ElementContainer"],[10,"FieldElementContainer",42],[1,"u64"],[5,"LimbBitIndexPair",268],[5,"LimbIterator",85],[17,"Item"],[10,"Iterator",1580],[5,"Range",1581],[5,"Fp",133],[5,"SmallFq",182],[5,"SmallFqElement",182],[1,"slice"],[5,"FqVector",1355],[5,"AffineSubspace",334],[6,"FpSlice",1127],[5,"Subspace",662],[6,"FpVector",1127],[5,"M4riTable",366],[5,"Matrix",394],[5,"MatrixSliceMut",394],[6,"FpSliceMut",1127],[5,"MatrixArbParams",536],[5,"ValidPrime",834],[5,"Vec",1582],[1,"tuple"],[5,"AugmentedMatrix",394],[5,"QuasiInverse",560],[8,"Result",1583],[10,"Read",1584],[5,"Iter",1585],[5,"IterMut",1585],[10,"MaybeIndexedParallelIterator",1586],[1,"array"],[1,"isize"],[10,"Write",1584],[5,"Subquotient",594],[5,"SubquotientArbParams",640],[17,"Output"],[10,"FnMut",1587],[10,"FnOnce",1587],[5,"SubspaceArbParams",710],[1,"i32"],[6,"PrimeError",732],[10,"Binomial",782],[10,"Into",1588],[5,"BitflagIterator",794],[5,"BinomialIterator",794],[5,"IterBridge",1589],[5,"P2",834],[5,"P3",834],[5,"P5",834],[5,"P7",834],[10,"Deserializer",1590],[1,"str"],[6,"Ordering",1573],[10,"Serializer",1591],[5,"__m128i",1592],[1,"f32"],[6,"FpVectorIterator",1127],[6,"FpVectorNonZeroIterator",1127],[5,"FqVectorArbParams",1333],[5,"FqSliceMut",1355],[5,"FqSlice",1355],[10,"AsRef",1588],[5,"FqVectorIterator",1518],[5,"FqVectorNonZeroIterator",1518],[8,"Polynomial",182]],"r":[[0,14],[2,14],[4,14],[5,14],[30,133],[31,182],[133,1075],[134,1075],[135,1075],[136,1075],[290,334],[291,394],[292,536],[294,536],[295,394],[296,536],[297,394],[298,560],[299,594],[300,640],[301,662],[302,710],[732,782],[1091,1127],[1092,1127],[1093,1127],[1094,1127],[1095,1127],[1116,1332],[1123,1333],[1124,1333]],"b":[[62,"impl-Debug-for-FieldElement%3CF%3E"],[63,"impl-Display-for-FieldElement%3CF%3E"],[225,"impl-Display-for-SmallFq%3CP%3E"],[226,"impl-Debug-for-SmallFq%3CP%3E"],[227,"impl-Display-for-SmallFqElement"],[228,"impl-Debug-for-SmallFqElement"],[348,"impl-Debug-for-AffineSubspace"],[349,"impl-Display-for-AffineSubspace"],[454,"impl-Display-for-Matrix"],[455,"impl-Debug-for-Matrix"],[473,"impl-IntoIterator-for-Matrix"],[474,"impl-IntoIterator-for-%26mut+Matrix"],[475,"impl-IntoIterator-for-%26Matrix"],[611,"impl-Display-for-Subquotient"],[612,"impl-Debug-for-Subquotient"],[686,"impl-Display-for-Subspace"],[687,"impl-Debug-for-Subspace"],[755,"impl-Display-for-PrimeError"],[756,"impl-Debug-for-PrimeError"],[839,"impl-Add%3Cu32%3E-for-P2"],[840,"impl-Add-for-P2"],[841,"impl-Add%3Cu32%3E-for-P3"],[842,"impl-Add-for-P3"],[843,"impl-Add%3Cu32%3E-for-P5"],[844,"impl-Add-for-P5"],[845,"impl-Add%3Cu32%3E-for-P7"],[846,"impl-Add-for-P7"],[847,"impl-Add-for-ValidPrime"],[848,"impl-Add%3Cu32%3E-for-ValidPrime"],[904,"impl-Div-for-P2"],[905,"impl-Div%3Cu32%3E-for-P2"],[906,"impl-Div%3Cu32%3E-for-P3"],[907,"impl-Div-for-P3"],[908,"impl-Div%3Cu32%3E-for-P5"],[909,"impl-Div-for-P5"],[910,"impl-Div%3Cu32%3E-for-P7"],[911,"impl-Div-for-P7"],[912,"impl-Div-for-ValidPrime"],[913,"impl-Div%3Cu32%3E-for-ValidPrime"],[919,"impl-PartialEq-for-P2"],[920,"impl-PartialEq%3Cu32%3E-for-P2"],[921,"impl-PartialEq-for-P3"],[922,"impl-PartialEq%3Cu32%3E-for-P3"],[923,"impl-PartialEq-for-P5"],[924,"impl-PartialEq%3Cu32%3E-for-P5"],[925,"impl-PartialEq-for-P7"],[926,"impl-PartialEq%3Cu32%3E-for-P7"],[927,"impl-PartialEq%3Cu32%3E-for-ValidPrime"],[928,"impl-PartialEq-for-ValidPrime"],[939,"impl-Display-for-P2"],[940,"impl-Debug-for-P2"],[941,"impl-Display-for-P3"],[942,"impl-Debug-for-P3"],[943,"impl-Display-for-P5"],[944,"impl-Debug-for-P5"],[945,"impl-Debug-for-P7"],[946,"impl-Display-for-P7"],[947,"impl-Display-for-ValidPrime"],[948,"impl-Debug-for-ValidPrime"],[972,"impl-Mul%3Cu32%3E-for-P2"],[973,"impl-Mul-for-P2"],[974,"impl-Mul%3Cu32%3E-for-P3"],[975,"impl-Mul-for-P3"],[976,"impl-Mul-for-P5"],[977,"impl-Mul%3Cu32%3E-for-P5"],[978,"impl-Mul-for-P7"],[979,"impl-Mul%3Cu32%3E-for-P7"],[980,"impl-Mul-for-ValidPrime"],[981,"impl-Mul%3Cu32%3E-for-ValidPrime"],[990,"impl-Rem-for-P2"],[991,"impl-Rem%3Cu32%3E-for-P2"],[992,"impl-Rem-for-P3"],[993,"impl-Rem%3Cu32%3E-for-P3"],[994,"impl-Rem%3Cu32%3E-for-P5"],[995,"impl-Rem-for-P5"],[996,"impl-Rem-for-P7"],[997,"impl-Rem%3Cu32%3E-for-P7"],[998,"impl-Rem-for-ValidPrime"],[999,"impl-Rem%3Cu32%3E-for-ValidPrime"],[1005,"impl-Shl-for-P2"],[1006,"impl-Shl%3Cu32%3E-for-P2"],[1007,"impl-Shl%3Cu32%3E-for-P3"],[1008,"impl-Shl-for-P3"],[1009,"impl-Shl-for-P5"],[1010,"impl-Shl%3Cu32%3E-for-P5"],[1011,"impl-Shl-for-P7"],[1012,"impl-Shl%3Cu32%3E-for-P7"],[1013,"impl-Shl%3Cu32%3E-for-ValidPrime"],[1014,"impl-Shl-for-ValidPrime"],[1015,"impl-Shr%3Cu32%3E-for-P2"],[1016,"impl-Shr-for-P2"],[1017,"impl-Shr-for-P3"],[1018,"impl-Shr%3Cu32%3E-for-P3"],[1019,"impl-Shr%3Cu32%3E-for-P5"],[1020,"impl-Shr-for-P5"],[1021,"impl-Shr%3Cu32%3E-for-P7"],[1022,"impl-Shr-for-P7"],[1023,"impl-Shr%3Cu32%3E-for-ValidPrime"],[1024,"impl-Shr-for-ValidPrime"],[1025,"impl-Sub-for-P2"],[1026,"impl-Sub%3Cu32%3E-for-P2"],[1027,"impl-Sub%3Cu32%3E-for-P3"],[1028,"impl-Sub-for-P3"],[1029,"impl-Sub-for-P5"],[1030,"impl-Sub%3Cu32%3E-for-P5"],[1031,"impl-Sub%3Cu32%3E-for-P7"],[1032,"impl-Sub-for-P7"],[1033,"impl-Sub-for-ValidPrime"],[1034,"impl-Sub%3Cu32%3E-for-ValidPrime"],[1217,"impl-Display-for-FpVector"],[1218,"impl-Debug-for-FpVector"],[1219,"impl-Debug-for-FpSlice%3C\'a%3E"],[1220,"impl-Display-for-FpSlice%3C\'_%3E"],[1222,"impl-From%3CFqVector%3CFp%3CP7%3E%3E%3E-for-FpVector"],[1223,"impl-From%3CFqVector%3CFp%3CP3%3E%3E%3E-for-FpVector"],[1224,"impl-From%3CFqVector%3CFp%3CValidPrime%3E%3E%3E-for-FpVector"],[1225,"impl-From%3CFqVector%3CFp%3CP5%3E%3E%3E-for-FpVector"],[1226,"impl-From%3CFqVector%3CFp%3CP2%3E%3E%3E-for-FpVector"],[1228,"impl-From%3C%26FpSliceMut%3C\'b%3E%3E-for-FpSlice%3C\'a%3E"],[1229,"impl-From%3C%26FpSlice%3C\'b%3E%3E-for-FpSlice%3C\'a%3E"],[1230,"impl-From%3C%26FpVector%3E-for-FpSlice%3C\'a%3E"],[1232,"impl-From%3C%26mut+FpSliceMut%3C\'b%3E%3E-for-FpSliceMut%3C\'a%3E"],[1234,"impl-From%3C%26mut+FpVector%3E-for-FpSliceMut%3C\'a%3E"],[1304,"impl-TryInto%3C%26mut+FqVector%3CFp%3CP7%3E%3E%3E-for-%26mut+FpVector"],[1305,"impl-TryInto%3C%26mut+FqVector%3CFp%3CP5%3E%3E%3E-for-%26mut+FpVector"],[1306,"impl-TryInto%3C%26mut+FqVector%3CFp%3CP2%3E%3E%3E-for-%26mut+FpVector"],[1307,"impl-TryInto%3C%26mut+FqVector%3CFp%3CValidPrime%3E%3E%3E-for-%26mut+FpVector"],[1308,"impl-TryInto%3C%26mut+FqVector%3CFp%3CP3%3E%3E%3E-for-%26mut+FpVector"],[1427,"impl-Debug-for-FqVector%3CF%3E"],[1428,"impl-Display-for-FqVector%3CF%3E"],[1429,"impl-Debug-for-FqSlice%3C\'a,+F%3E"],[1430,"impl-Display-for-FqSlice%3C\'_,+F%3E"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAADwFkAAAAAIABAAAAAcACgAUAAIAHAAOAC0AFABDAAIARwADAEwACQBYAAIAXAABAF8AAQBiAAMAaAAAAGsAAQBuAAAAcAABAHMABgB+AAEAgQACAIUABACLABoApwABAKoABQCxAAcAvAAAAL4AGwDbAAwA6gADAPAABgD4ABIADAEAAA4BCgAaAQAAHAEHACUBAgApAQEALAEBAC8BFQBGARcAYAEBAGMBCwBxAQEAdgEEAH0BAACDAQEAhwEDAI0BAgCSAQEAlQECAJkBDgCpAQAAqwEAAK0BAACvAQAAsQERAMgBAADMAQAAzwEAANIBAgDWAQAA2gENAOkBBADvAQEA8gEDAPkBAwD/AQIAAwIUABkCDQAoAgAAKgIGADMCCwBAAgMARQIFAEwCEQBfAgYAaAICAGwCAABvAgQAdgIAAHoCEwCPAgAAkQIFAJgCAACbAgIAnwIPALACAACyAgAAtAIAALcCAAC5AgEAvgIGAMYCDQDVAgAA1wIIAOECEQD0AgEA9wIDAPwCAgABAwIABQMAAAgDBgAXAwAAHAMEACIDBgArAwEALwMmAFcDXwC8AwoAzAORAF8EZQDGBAUAzQQCANEEAADTBAAA1gQCANoEBADkBEgALgUFADUFDQBEBQAARgUFAE8FCgBbBQAAXQUBAGAFAABiBQIAZgUFAG4FDAB9BRMAkwUDAJgFBACeBQEAoQUAAKMFBgCtBQQAswUGALsFFQDSBQoA3gUCAOIFDQDxBRQACAYCAA0GFgA="}],\ ["lift_hom",{"t":"","n":[],"q":[],"i":[],"f":"","D":"b","p":[],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OjAAAAAAAAA="}],\ ["mahowald_invariant",{"t":"","n":[],"q":[],"i":[],"f":"","D":"b","p":[],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OjAAAAAAAAA="}],\ ["massey",{"t":"","n":[],"q":[],"i":[],"f":"","D":"b","p":[],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OjAAAAAAAAA="}],\ @@ -27,7 +27,7 @@ var searchIndex = new Map(JSON.parse('[\ ["secondary_massey",{"t":"","n":[],"q":[],"i":[],"f":"","D":"b","p":[],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OjAAAAAAAAA="}],\ ["secondary_product",{"t":"","n":[],"q":[],"i":[],"f":"","D":"b","p":[],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OjAAAAAAAAA="}],\ ["sq0",{"t":"","n":[],"q":[],"i":[],"f":"","D":"`","p":[],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OjAAAAEAAAAAAAAAEAAAAAAA"}],\ -["sseq",{"t":"FFFTFFKCOCCMOOOOOOOOOOOOMOMOCOOOFNNNNNNONNNNNNNNNONNNNNNNEEEECCCHCFNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNONNNNNNNNNFNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNONFNNNNNNNNONNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNFONNNNNNNNNNNNNNNONONNNNNFNNNNNNONONNNNNONNNNNOONNNNFTFFKNNNNNNNNNONNNNNNNNNMNNONNNNNNNNNNNNNNNNNNOONONNNNNNONONOMNOMNNNNNNNNNNNNNNNNNNOO","n":["Adams","DenseBigradedModule","Differential","MIN_R","Product","Sseq","SseqProfile","bigraded","classes","coordinates","differential","differential_length","differentials","dimensions","error","first_empty_row","invalid","left","matrices","matrix","min_y","p","page_data","permanent_classes","profile","profile","profile_inverse","source_dim","sseq","target_dim","x","y","DenseBigradedModule","borrow","borrow_mut","defined","deref","deref_mut","dimension","dimensions","drop","from","get_dimension","init","into","max_x","max_y","min_x","min_y","min_y","new","range","set_dimension","try_from","try_into","type_id","vzip","Bidegree","BidegreeElement","BidegreeGenerator","BidegreeRange","bidegree","element","generator","iter_s_t","range","Bidegree","add","borrow","borrow_mut","clone","clone_into","clone_to_uninit","clone_to_uninit","default","deref","deref_mut","deserialize","drop","eq","equivalent","equivalent","equivalent","equivalent","fmt","fmt","from","hash","init","into","massey_bidegree","n","n_s","s","s","s_t","serialize","sub","t","t","t_s","to_owned","to_string","try_from","try_into","try_subtract","type_id","vzip","zero","BidegreeElement","borrow","borrow_mut","clone","clone_into","clone_to_uninit","degree","degree","deref","deref_mut","deserialize","drop","eq","equivalent","equivalent","equivalent","equivalent","fmt","fmt","from","hash","init","into","into_vec","n","new","s","serialize","t","to_basis_string","to_owned","to_string","to_string_module","try_from","try_into","type_id","vec","vec","vzip","BidegreeGenerator","borrow","borrow_mut","clone","clone_into","clone_to_uninit","clone_to_uninit","default","degree","degree","deref","deref_mut","deserialize","drop","eq","equivalent","equivalent","equivalent","equivalent","fmt","fmt","from","from","hash","idx","idx","init","into","into_element","n","n_s","new","s","s_t","serialize","t","to_owned","to_string","try_from","try_from","try_into","type_id","vzip","BidegreeRange","aux","borrow","borrow_mut","clone","clone_into","clone_to_uninit","clone_to_uninit","deref","deref_mut","drop","from","init","into","new","restrict","s","s","t","t","to_owned","try_from","try_into","type_id","vzip","Differential","add","borrow","borrow_mut","deref","deref_mut","drop","error","evaluate","first_empty_row","from","get_source_target_pairs","inconsistent","init","into","matrix","new","prime","quasi_inverse","reduce_target","set_to_zero","source_dim","target_dim","try_from","try_into","type_id","vzip","Adams","MIN_R","Product","Sseq","SseqProfile","add_differential","add_permanent_class","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","classes","classes","clear","complete","defined","deref","deref","deref","deref_mut","deref_mut","deref_mut","differential_length","differential_length","differentials","differentials","differentials_hitting","dimension","drop","drop","drop","extend_differential","extend_page_data","from","from","from","inconsistent","init","init","init","into","into","into","invalid","invalid","left","leibniz","matrices","max_x","max_y","min_x","min_y","multiply","new","p","page_data","page_data","permanent_classes","permanent_classes","profile","profile","profile","profile_inverse","profile_inverse","range","set_dimension","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","update","update_bidegree","vzip","vzip","vzip","write_to_graph","x","y"],"q":[[0,"sseq"],[32,"sseq::bigraded"],[57,"sseq::coordinates"],[66,"sseq::coordinates::bidegree"],[109,"sseq::coordinates::element"],[148,"sseq::coordinates::generator"],[191,"sseq::coordinates::range"],[216,"sseq::differential"],[243,"sseq::sseq"],[328,"core::option"],[329,"core::ops::range"],[330,"core::result"],[331,"core::any"],[332,"core::ops::function"],[333,"core::marker"],[334,"serde::de"],[335,"core::fmt"],[336,"core::hash"],[337,"serde::ser"],[338,"alloc::string"],[339,"fp::vector::fp_wrapper"],[340,"algebra::module::free_module"],[341,"algebra::algebra::algebra_trait"],[342,"fp::prime::primes_generic"],[343,"core::convert"],[344,"alloc::vec"],[345,"fp::matrix::subspace"],[346,"alloc::sync"],[347,"bivec"],[348,"core::iter::traits::iterator"],[349,"fp::matrix::subquotient"],[350,"chart"],[351,"core::clone"]],"i":[0,0,0,38,0,0,0,0,37,0,0,38,37,5,33,33,37,43,43,33,5,37,37,37,38,37,38,33,0,33,43,43,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,0,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,0,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,0,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,0,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,0,38,0,0,0,37,37,48,43,37,48,43,37,37,37,37,37,37,48,43,37,48,43,37,38,48,37,37,37,37,48,43,37,37,37,48,43,37,37,48,43,37,48,43,37,37,37,43,37,43,37,37,37,37,37,37,37,37,37,37,37,38,48,37,38,48,37,37,48,43,37,48,43,37,48,43,37,37,37,48,43,37,37,43,43],"f":"```````````{{bb}b}````````````{{bbb}{{d{bb}}}}`0``````{{{f{c}}}{{f{e}}}{}{}}{{{f{hc}}}{{f{he}}}{}{}}{{{f{j}}bb}l}{n{{f{c}}}{}}{n{{f{hc}}}{}}{{{f{j}}bb}n}`{nA`}{cc{}}{{{f{j}}bb}{{Ab{n}}}}{{}n}{ce{}{}}{{{f{j}}}b}000`{{bb}j}{{{f{j}}b}{{Ad{b}}}}{{{f{j}}bbn}A`}{c{{Af{e}}}{}{}}0{{{f{c}}}Ah{}}6```````{{{f{c}}Aj{Al{e}}}A`{{B`{Aj}{{An{{Ad{b}}}}}}Bb}Bb}``{{AjAj}Aj}{{{f{c}}}{{f{e}}}{}{}}{{{f{hc}}}{{f{he}}}{}{}}{{{f{Aj}}}Aj}{{{f{c}}{f{he}}}A`{}{}}{{{f{c}}}A`{}}0{{}Aj}{n{{f{c}}}{}}{n{{f{hc}}}{}}{c{{Af{Aj}}}Bd}{nA`}{{{f{Aj}}{f{Aj}}}l}{{{f{c}}{f{e}}}l{}{}}000{{{f{Aj}}{f{hBf}}}Bh}0{cc{}}{{{f{Aj}}{f{hc}}}A`Bj}{{}n}{ce{}{}}{{AjAjAj}Aj}{{{f{Aj}}}b}{{bBl}Aj}{{{f{Aj}}}Bl}`{{Blb}Aj}{{{f{Aj}}c}AfBn}{{AjAj}Aj}5`4{{{f{c}}}e{}{}}{{{f{c}}}C`{}}{c{{Af{e}}}{}{}}0{{{f{Aj}}Aj}{{Ab{Aj}}}}{{{f{c}}}Ah{}}<{{}Aj}`{{{f{c}}}{{f{e}}}{}{}}{{{f{hc}}}{{f{he}}}{}{}}{{{f{Cb}}}Cb}{{{f{c}}{f{he}}}A`{}{}}{{{f{c}}}A`{}}{{{f{Cb}}}Aj}`{n{{f{c}}}{}}{n{{f{hc}}}{}}{c{{Af{Cb}}}Bd}{nA`}{{{f{Cb}}{f{Cb}}}l}{{{f{c}}{f{e}}}l{}{}}000{{{f{Cb}}{f{hBf}}}Bh}0{cc{}}{{{f{Cb}}{f{hc}}}A`Bj}{{}n}{ce{}{}}{CbCd}{{{f{Cb}}}b}{{AjCd}Cb}{{{f{Cb}}}Bl}{{{f{Cb}}c}AfBn}3{{{f{Cb}}}C`}{{{f{c}}}e{}{}}{{{f{c}}}C`{}}{{{f{Cb}}{f{{Cf{c}}}}l}C`Ch}{c{{Af{e}}}{}{}}0{{{f{c}}}Ah{}}{{{f{Cb}}}Cj}`<`{{{f{c}}}{{f{e}}}{}{}}{{{f{hc}}}{{f{he}}}{}{}}{{{f{Cl}}}Cl}{{{f{c}}{f{he}}}A`{}{}}{{{f{c}}}A`{}}0{{}Cl}{{{f{Cl}}}Aj}`{n{{f{c}}}{}}{n{{f{hc}}}{}}{c{{Af{Cl}}}Bd}{nA`}{{{f{Cl}}{f{Cl}}}l}{{{f{c}}{f{e}}}l{}{}}000{{{f{Cl}}{f{hBf}}}Bh}0{{{d{Ajn}}}Cl}{cc{}}{{{f{Cl}}{f{hc}}}A`Bj}{{{f{Cl}}}n}`{{}n}{ce{}{}}{{ClCnn}Cb}{{{f{Cl}}}b}{{bBln}Cl}{{cn}Cl{{D`{Aj}}}}{{{f{Cl}}}Bl}{{Blbn}Cl}{{{f{Cl}}c}AfBn}5{{{f{c}}}e{}{}}{{{f{c}}}C`{}}{c{{Af{e}}}{}{}}{Cb{{Af{Clc}}}{}}1{{{f{c}}}Ah{}}<``{{{f{c}}}{{f{e}}}{}{}}{{{f{hc}}}{{f{he}}}{}{}}{{{f{{Al{c}}}}}{{Al{c}}}{}}{{{f{c}}{f{he}}}A`{}{}}{{{f{c}}}A`{}}0{n{{f{c}}}{}}{n{{f{hc}}}{}}{nA`}{cc{}}{{}n}{ce{}{}}{{{f{c}}Bl{f{B`}}}{{Al{c}}}{}}{{{Al{c}}Bl}{{Al{c}}}{}}{{{f{{Al{c}}}}}Bl{}}`{{{f{{Al{c}}}}Bl}b{}}`{{{f{c}}}e{}{}}{c{{Af{e}}}{}{}}0{{{f{c}}}Ah{}}7`{{{f{hDb}}Cj{Ab{Cj}}}l}{{{f{c}}}{{f{e}}}{}{}}{{{f{hc}}}{{f{he}}}{}{}}?>=`{{{f{Db}}CjDd}A`}`={{{f{Db}}}{{Df{{d{CdCd}}}}}}{{{f{Db}}}l}>=`{{Cnnn}Db}{{{f{Db}}}Cn}{{{f{Db}}DdCj}A`}{{{f{hDb}}{f{Dh}}}A`}{{{f{hDb}}}A`}``<<;{ce{}{}}`````{{{f{h{Dj{c}}}}bbbCjCj}lDl}{{{f{h{Dj{c}}}}bbCj}lDl}<<<;;;{{{f{{Dj{c}}}}}{{Dn{j}}}Dl}`{{{f{h{Dj{c}}}}}A`Dl}{{{f{{Dj{c}}}}bb}lDl}0{n{{f{c}}}{}}00{n{{f{hc}}}{}}00{{bb}b}0{{{f{{Dj{c}}}}bb}{{f{{E`{Db}}}}}Dl}`{{{f{{Dj{c}}}}bb}{{`{{Ed{}{{Eb{{d{b{f{Db}}}}}}}}}}}Dl}{{{f{{Dj{c}}}}bb}nDl}{nA`}00{{{f{h{Dj{c}}}}bbb}A`Dl}0{cc{}}009{{}n}00???:``{{{f{h{Dj{c}}}}bbbCj{f{Ef}}{Ab{{f{Ef}}}}}{{Ab{{d{bbbCd}}}}}Dl}`{{{f{{Dj{c}}}}}bDl}000{{{f{{Dj{c}}}}bbCj{f{Ef}}}{{Ab{{d{bbCd}}}}}Dl}{{Cnbb}{{Dj{c}}}Dl}`{{{f{{Dj{c}}}}bb}{{f{{E`{Eh}}}}}Dl}`{{{f{{Dj{c}}}}bb}{{f{Dh}}}Dl}`{{bbb}{{d{bb}}}}0`00{{{f{{Dj{c}}}}b}{{Ad{b}}}Dl}{{{f{h{Dj{c}}}}bbn}A`Dl}{c{{Af{e}}}{}{}}00000{{{f{c}}}Ah{}}00{{{f{h{Dj{c}}}}}A`Dl}{{{f{h{Dj{c}}}}bb}{{E`{{Df{{Df{Bl}}}}}}}Dl}{ce{}{}}00{{{f{{Dj{c}}}}eblgi}{{Af{A`}}}DlEj{{Ed{}{{Eb{{f{{d{C`Ef}}}}}}}}El}{{En{{f{he}}}{{An{{Af{A`}}}}}}}}``","D":"Hh","p":[[1,"i32"],[1,"tuple"],[1,"reference"],[0,"mut"],[5,"DenseBigradedModule",32],[1,"bool"],[1,"usize"],[1,"unit"],[6,"Option",328],[5,"Range",329],[6,"Result",330],[5,"TypeId",331],[5,"Bidegree",66],[5,"BidegreeRange",191],[17,"Output"],[10,"Fn",332],[10,"Sync",333],[10,"Deserializer",334],[5,"Formatter",335],[8,"Result",335],[10,"Hasher",336],[1,"u32"],[10,"Serializer",337],[5,"String",338],[5,"BidegreeElement",109],[6,"FpVector",339],[5,"MuFreeModule",340],[10,"MuAlgebra",341],[6,"FpSlice",339],[5,"BidegreeGenerator",148],[5,"ValidPrime",342],[10,"Into",343],[5,"Differential",216],[6,"FpSliceMut",339],[5,"Vec",344],[5,"Subspace",345],[5,"Sseq",243],[10,"SseqProfile",243],[5,"Arc",346],[5,"BiVec",347],[17,"Item"],[10,"Iterator",348],[5,"Product",243],[5,"Subquotient",349],[10,"Backend",350],[10,"Clone",351],[10,"FnOnce",332],[5,"Adams",243]],"r":[[0,243],[1,32],[2,216],[4,243],[5,243],[6,243],[57,66],[58,109],[59,148],[60,191]],"b":[[84,"impl-Display-for-Bidegree"],[85,"impl-Debug-for-Bidegree"],[126,"impl-Debug-for-BidegreeElement"],[127,"impl-Display-for-BidegreeElement"],[167,"impl-Debug-for-BidegreeGenerator"],[168,"impl-Display-for-BidegreeGenerator"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAAQBMgAAAAYACAAAAAoAAgAOAAIAEwADABkAEAAsAAAALgAGADYACgBCAAAARAASAFgAAQBcAAIAYAADAGUABABrAAIAbwAFAHYACgCCAAEAhQAFAIwAAQCPAAMAlAAAAJYABwCfAAsArAABAK8AAACxAA4AwgAIAMwAAADOAAIA0gAAANQABQDbAAUA4gAAAOYAAADoAAIA7QAKAPsABgADAQAABQEJABABBAAbAQIAIQEAACUBBAArAQIALwEAADEBEABDAQIARwEBAA=="}],\ +["sseq",{"t":"FFFTFFKCOCCMOOOOOOOOOOOOMOMOCOOOFNNNNNNONNNNNNNNNONNNNNNNEEEECCCHCFNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNONNNNNNNNNFNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNONFNNNNNNNNONNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNFONNNNNNNNNNNNNNNONONNNNNFNNNNNNONONNNNNONNNNNOONNNNFTFFKNNNNNNNNNONNNNNNNNNMNNONNNNNNNNNNNNNNNNNNOONONNNNNNONONOMNOMNNNNNNNNNNNNNNNNNNOO","n":["Adams","DenseBigradedModule","Differential","MIN_R","Product","Sseq","SseqProfile","bigraded","classes","coordinates","differential","differential_length","differentials","dimensions","error","first_empty_row","invalid","left","matrices","matrix","min_y","p","page_data","permanent_classes","profile","profile","profile_inverse","source_dim","sseq","target_dim","x","y","DenseBigradedModule","borrow","borrow_mut","defined","deref","deref_mut","dimension","dimensions","drop","from","get_dimension","init","into","max_x","max_y","min_x","min_y","min_y","new","range","set_dimension","try_from","try_into","type_id","vzip","Bidegree","BidegreeElement","BidegreeGenerator","BidegreeRange","bidegree","element","generator","iter_s_t","range","Bidegree","add","borrow","borrow_mut","clone","clone_into","clone_to_uninit","clone_to_uninit","default","deref","deref_mut","deserialize","drop","eq","equivalent","equivalent","equivalent","equivalent","fmt","fmt","from","hash","init","into","massey_bidegree","n","n_s","s","s","s_t","serialize","sub","t","t","t_s","to_owned","to_string","try_from","try_into","try_subtract","type_id","vzip","zero","BidegreeElement","borrow","borrow_mut","clone","clone_into","clone_to_uninit","degree","degree","deref","deref_mut","deserialize","drop","eq","equivalent","equivalent","equivalent","equivalent","fmt","fmt","from","hash","init","into","into_vec","n","new","s","serialize","t","to_basis_string","to_owned","to_string","to_string_module","try_from","try_into","type_id","vec","vec","vzip","BidegreeGenerator","borrow","borrow_mut","clone","clone_into","clone_to_uninit","clone_to_uninit","default","degree","degree","deref","deref_mut","deserialize","drop","eq","equivalent","equivalent","equivalent","equivalent","fmt","fmt","from","from","hash","idx","idx","init","into","into_element","n","n_s","new","s","s_t","serialize","t","to_owned","to_string","try_from","try_from","try_into","type_id","vzip","BidegreeRange","aux","borrow","borrow_mut","clone","clone_into","clone_to_uninit","clone_to_uninit","deref","deref_mut","drop","from","init","into","new","restrict","s","s","t","t","to_owned","try_from","try_into","type_id","vzip","Differential","add","borrow","borrow_mut","deref","deref_mut","drop","error","evaluate","first_empty_row","from","get_source_target_pairs","inconsistent","init","into","matrix","new","prime","quasi_inverse","reduce_target","set_to_zero","source_dim","target_dim","try_from","try_into","type_id","vzip","Adams","MIN_R","Product","Sseq","SseqProfile","add_differential","add_permanent_class","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","classes","classes","clear","complete","defined","deref","deref","deref","deref_mut","deref_mut","deref_mut","differential_length","differential_length","differentials","differentials","differentials_hitting","dimension","drop","drop","drop","extend_differential","extend_page_data","from","from","from","inconsistent","init","init","init","into","into","into","invalid","invalid","left","leibniz","matrices","max_x","max_y","min_x","min_y","multiply","new","p","page_data","page_data","permanent_classes","permanent_classes","profile","profile","profile","profile_inverse","profile_inverse","range","set_dimension","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","update","update_bidegree","vzip","vzip","vzip","write_to_graph","x","y"],"q":[[0,"sseq"],[32,"sseq::bigraded"],[57,"sseq::coordinates"],[66,"sseq::coordinates::bidegree"],[109,"sseq::coordinates::element"],[148,"sseq::coordinates::generator"],[191,"sseq::coordinates::range"],[216,"sseq::differential"],[243,"sseq::sseq"],[328,"core::option"],[329,"core::ops::range"],[330,"core::result"],[331,"core::any"],[332,"core::ops::function"],[333,"core::marker"],[334,"serde::de"],[335,"core::fmt"],[336,"core::hash"],[337,"serde::ser"],[338,"alloc::string"],[339,"fp::vector::fp_wrapper"],[340,"algebra::module::free_module"],[341,"algebra::algebra::algebra_trait"],[342,"fp::prime::primes_generic"],[343,"core::convert"],[344,"alloc::vec"],[345,"fp::matrix::subspace"],[346,"alloc::sync"],[347,"bivec"],[348,"core::iter::traits::iterator"],[349,"fp::matrix::subquotient"],[350,"chart"],[351,"core::clone"]],"i":[0,0,0,38,0,0,0,0,37,0,0,38,37,5,33,33,37,43,43,33,5,37,37,37,38,37,38,33,0,33,43,43,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,0,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,0,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,0,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,0,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,0,38,0,0,0,37,37,48,43,37,48,43,37,37,37,37,37,37,48,43,37,48,43,37,38,48,37,37,37,37,48,43,37,37,37,48,43,37,37,48,43,37,48,43,37,37,37,43,37,43,37,37,37,37,37,37,37,37,37,37,37,38,48,37,38,48,37,37,48,43,37,48,43,37,48,43,37,37,37,48,43,37,37,43,43],"f":"```````````{{bb}b}````````````{{bbb}{{d{bb}}}}`0``````{{{f{c}}}{{f{e}}}{}{}}{{{f{hc}}}{{f{he}}}{}{}}{{{f{j}}bb}l}{n{{f{c}}}{}}{n{{f{hc}}}{}}{{{f{j}}bb}n}`{nA`}{cc{}}{{{f{j}}bb}{{Ab{n}}}}{{}n}{ce{}{}}{{{f{j}}}b}000`{{bb}j}{{{f{j}}b}{{Ad{b}}}}{{{f{j}}bbn}A`}{c{{Af{e}}}{}{}}0{{{f{c}}}Ah{}}6```````{{{f{c}}Aj{Al{e}}}A`{{B`{Aj}{{An{{Ad{b}}}}}}Bb}Bb}``{{AjAj}Aj}{{{f{c}}}{{f{e}}}{}{}}{{{f{hc}}}{{f{he}}}{}{}}{{{f{Aj}}}Aj}{{{f{c}}{f{he}}}A`{}{}}{{{f{c}}}A`{}}0{{}Aj}{n{{f{c}}}{}}{n{{f{hc}}}{}}{c{{Af{Aj}}}Bd}{nA`}{{{f{Aj}}{f{Aj}}}l}{{{f{c}}{f{e}}}l{}{}}000{{{f{Aj}}{f{hBf}}}Bh}0{cc{}}{{{f{Aj}}{f{hc}}}A`Bj}{{}n}{ce{}{}}{{AjAjAj}Aj}{{{f{Aj}}}b}{{bBl}Aj}{{{f{Aj}}}Bl}`{{Blb}Aj}{{{f{Aj}}c}AfBn}{{AjAj}Aj}5`4{{{f{c}}}e{}{}}{{{f{c}}}C`{}}{c{{Af{e}}}{}{}}0{{{f{Aj}}Aj}{{Ab{Aj}}}}{{{f{c}}}Ah{}}<{{}Aj}`{{{f{c}}}{{f{e}}}{}{}}{{{f{hc}}}{{f{he}}}{}{}}{{{f{Cb}}}Cb}{{{f{c}}{f{he}}}A`{}{}}{{{f{c}}}A`{}}{{{f{Cb}}}Aj}`{n{{f{c}}}{}}{n{{f{hc}}}{}}{c{{Af{Cb}}}Bd}{nA`}{{{f{Cb}}{f{Cb}}}l}{{{f{c}}{f{e}}}l{}{}}000{{{f{Cb}}{f{hBf}}}Bh}0{cc{}}{{{f{Cb}}{f{hc}}}A`Bj}{{}n}{ce{}{}}{CbCd}{{{f{Cb}}}b}{{AjCd}Cb}{{{f{Cb}}}Bl}{{{f{Cb}}c}AfBn}3{{{f{Cb}}}C`}{{{f{c}}}e{}{}}{{{f{c}}}C`{}}{{{f{Cb}}{f{{Cf{c}}}}l}C`Ch}{c{{Af{e}}}{}{}}0{{{f{c}}}Ah{}}{{{f{Cb}}}Cj}`<`{{{f{c}}}{{f{e}}}{}{}}{{{f{hc}}}{{f{he}}}{}{}}{{{f{Cl}}}Cl}{{{f{c}}{f{he}}}A`{}{}}{{{f{c}}}A`{}}0{{}Cl}{{{f{Cl}}}Aj}`{n{{f{c}}}{}}{n{{f{hc}}}{}}{c{{Af{Cl}}}Bd}{nA`}{{{f{Cl}}{f{Cl}}}l}{{{f{c}}{f{e}}}l{}{}}000{{{f{Cl}}{f{hBf}}}Bh}0{{{d{Ajn}}}Cl}{cc{}}{{{f{Cl}}{f{hc}}}A`Bj}{{{f{Cl}}}n}`{{}n}{ce{}{}}{{ClCnn}Cb}{{{f{Cl}}}b}{{bBln}Cl}{{cn}Cl{{D`{Aj}}}}{{{f{Cl}}}Bl}{{Blbn}Cl}{{{f{Cl}}c}AfBn}5{{{f{c}}}e{}{}}{{{f{c}}}C`{}}{c{{Af{e}}}{}{}}{Cb{{Af{Clc}}}{}}1{{{f{c}}}Ah{}}<``{{{f{c}}}{{f{e}}}{}{}}{{{f{hc}}}{{f{he}}}{}{}}{{{f{{Al{c}}}}}{{Al{c}}}{}}{{{f{c}}{f{he}}}A`{}{}}{{{f{c}}}A`{}}0{n{{f{c}}}{}}{n{{f{hc}}}{}}{nA`}{cc{}}{{}n}{ce{}{}}{{{f{c}}Bl{f{B`}}}{{Al{c}}}{}}{{{Al{c}}Bl}{{Al{c}}}{}}{{{f{{Al{c}}}}}Bl{}}`{{{f{{Al{c}}}}Bl}b{}}`{{{f{c}}}e{}{}}{c{{Af{e}}}{}{}}0{{{f{c}}}Ah{}}7`{{{f{hDb}}Cj{Ab{Cj}}}l}{{{f{c}}}{{f{e}}}{}{}}{{{f{hc}}}{{f{he}}}{}{}}?>=`{{{f{Db}}CjDd}A`}`={{{f{Db}}}{{Df{{d{CdCd}}}}}}{{{f{Db}}}l}>=`{{Cnnn}Db}{{{f{Db}}}Cn}{{{f{Db}}DdCj}A`}{{{f{hDb}}{f{Dh}}}A`}{{{f{hDb}}}A`}``<<;{ce{}{}}`````{{{f{h{Dj{c}}}}bbbCjCj}lDl}{{{f{h{Dj{c}}}}bbCj}lDl}<<<;;;{{{f{{Dj{c}}}}}{{Dn{j}}}Dl}`{{{f{h{Dj{c}}}}}A`Dl}{{{f{{Dj{c}}}}bb}lDl}0{n{{f{c}}}{}}00{n{{f{hc}}}{}}00{{bb}b}0{{{f{{Dj{c}}}}bb}{{f{{E`{Db}}}}}Dl}`{{{f{{Dj{c}}}}bb}{{`{{Ed{}{{Eb{{d{b{f{Db}}}}}}}}}}}Dl}{{{f{{Dj{c}}}}bb}nDl}{nA`}00{{{f{h{Dj{c}}}}bbb}A`Dl}0{cc{}}009{{}n}00???:``{{{f{h{Dj{c}}}}bbbCj{f{Ef}}{Ab{{f{Ef}}}}}{{Ab{{d{bbbCd}}}}}Dl}`{{{f{{Dj{c}}}}}bDl}000{{{f{{Dj{c}}}}bbCj{f{Ef}}}{{Ab{{d{bbCd}}}}}Dl}{{Cnbb}{{Dj{c}}}Dl}`{{{f{{Dj{c}}}}bb}{{f{{E`{Eh}}}}}Dl}`{{{f{{Dj{c}}}}bb}{{f{Dh}}}Dl}`{{bbb}{{d{bb}}}}0`00{{{f{{Dj{c}}}}b}{{Ad{b}}}Dl}{{{f{h{Dj{c}}}}bbn}A`Dl}{c{{Af{e}}}{}{}}00000{{{f{c}}}Ah{}}00{{{f{h{Dj{c}}}}}A`Dl}{{{f{h{Dj{c}}}}bb}{{E`{{Df{{Df{Bl}}}}}}}Dl}{ce{}{}}00{{{f{{Dj{c}}}}eblgi}{{Af{A`}}}DlEj{{Ed{}{{Eb{{f{{d{C`Ef}}}}}}}}El}{{En{{f{he}}}{{An{{Af{A`}}}}}}}}``","D":"Hh","p":[[1,"i32"],[1,"tuple"],[1,"reference"],[0,"mut"],[5,"DenseBigradedModule",32],[1,"bool"],[1,"usize"],[1,"unit"],[6,"Option",328],[5,"Range",329],[6,"Result",330],[5,"TypeId",331],[5,"Bidegree",66],[5,"BidegreeRange",191],[17,"Output"],[10,"Fn",332],[10,"Sync",333],[10,"Deserializer",334],[5,"Formatter",335],[8,"Result",335],[10,"Hasher",336],[1,"u32"],[10,"Serializer",337],[5,"String",338],[5,"BidegreeElement",109],[6,"FpVector",339],[5,"MuFreeModule",340],[10,"MuAlgebra",341],[6,"FpSlice",339],[5,"BidegreeGenerator",148],[5,"ValidPrime",342],[10,"Into",343],[5,"Differential",216],[6,"FpSliceMut",339],[5,"Vec",344],[5,"Subspace",345],[5,"Sseq",243],[10,"SseqProfile",243],[5,"Arc",346],[5,"BiVec",347],[17,"Item"],[10,"Iterator",348],[5,"Product",243],[5,"Subquotient",349],[10,"Backend",350],[10,"Clone",351],[10,"FnOnce",332],[5,"Adams",243]],"r":[[0,243],[1,32],[2,216],[4,243],[5,243],[6,243],[57,66],[58,109],[59,148],[60,191]],"b":[[84,"impl-Display-for-Bidegree"],[85,"impl-Debug-for-Bidegree"],[126,"impl-Display-for-BidegreeElement"],[127,"impl-Debug-for-BidegreeElement"],[167,"impl-Display-for-BidegreeGenerator"],[168,"impl-Debug-for-BidegreeGenerator"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAAQBMgAAAAYACAAAAAoAAgAOAAIAEwADABkAEAAsAAAALgAGADYACgBCAAAARAASAFgAAQBcAAIAYAADAGUABABrAAIAbwAFAHYACgCCAAEAhQAFAIwAAQCPAAMAlAAAAJYABwCfAAsArAABAK8AAACxAA4AwgAIAMwAAADOAAIA0gAAANQABQDbAAUA4gAAAOYAAADoAAIA7QAKAPsABgADAQAABQEJABABBAAbAQIAIQEAACUBBAArAQIALwEAADEBEABDAQIARwEBAA=="}],\ ["steenrod",{"t":"","n":[],"q":[],"i":[],"f":"","D":"`","p":[],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OjAAAAEAAAAAAAAAEAAAAAAA"}],\ ["tensor",{"t":"","n":[],"q":[],"i":[],"f":"","D":"`","p":[],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OjAAAAEAAAAAAAAAEAAAAAAA"}],\ ["unstable_chart",{"t":"","n":[],"q":[],"i":[],"f":"","D":"b","p":[],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OjAAAAAAAAA="}],\ diff --git a/docs/search.desc/algebra/algebra-desc-0-.js b/docs/search.desc/algebra/algebra-desc-0-.js index d4389e9b4..445e5de9b 100644 --- a/docs/search.desc/algebra/algebra-desc-0-.js +++ b/docs/search.desc/algebra/algebra-desc-0-.js @@ -1 +1 @@ -searchState.loadedDescShard("algebra", 0, "Types and traits for working with various algebras and …\nAn Algebra implementing the Steenrod algebra, using the …\nAn algebra that can be viewed as an Adem algebra.\nA graded algebra over $\\mathbb{F}_p$.\nAn Algebra equipped with a coproduct operation that makes …\n$\\mathbb{F}_p$, viewed as an Algebra over itself.\nAn Algebra equipped with a distinguished presentation.\nAn algebra that is maybe unstable.\nThe Steenrod algebra using the Adem basis.\nTraits describing algebras, and implementations thereof …\nConverts a string to a basis element. This must be a …\ndegree -> AdemBasisElement -> index\ndegree -> MilnorBasisElement -> index\nConverts a basis element into a string for display.\ndegree -> index -> AdemBasisElement\nA list of all basis elements of each degree, constructed …\nComputes basis elements up to and including degree.\nComputes a coproduct $\\Delta(x)$, expressed as\nDecomposes an element of the algebra into a product of …\nDecomposes an element into generators.\nReturns the dimension of the algebra in degree degree.\nFinite fields over a prime.\nReturns relations that the algebra wants checked to ensure …\nReturn generators in degree.\ndegree -> first square -> admissible sequence idx -> result\nsource_deg -> target_deg -> source_op -> target_op\nComputes the product r * s of two basis elements, and adds …\nComputes the product r * s of a general element r and a …\nComputes the product r * s of two general elements, and …\nThis implements the notion of a split pair algebra in the …\nThis is a list of possible P(R) of each degree, where …\nReturns the prime the algebra is over.\nThis module includes code for parsing an expression in the …\nAn Algebra implementing the Steenrod algebra, using the …\nAn algebra that can be viewed as an Adem algebra.\nAn Adem basis element for the Steenrod algebra.\nA Steenrod power $P^i$, or a Bockstein $\\beta^\\varepsilon$.\ndegree -> AdemBasisElement -> index\ndegree -> index -> AdemBasisElement\nA bitset of which $\\beta$ Bocksteins are in the element’…\nThe degree of the element.\ndegree -> first square -> admissible sequence idx -> result\nWhether to denote the generators as powers $P^i$ or …\nA list of which Steenrod powers are in the element’s …\nThe Steenrod algebra using the Adem basis.\nFinite fields over a prime.\nThis implements the notion of a split pair algebra in the …\nAn Algebra implementing the Steenrod algebra, using the …\nAn algebra that can be viewed as an Adem algebra.\nAn Adem basis element for the Steenrod algebra.\nA Steenrod power $P^i$, or a Bockstein $\\beta^\\varepsilon$.\ndegree -> AdemBasisElement -> index\ndegree -> index -> AdemBasisElement\nA bitset of which $\\beta$ Bocksteins are in the element’…\nThe degree of the element.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nThis function expresses $Sq^x$ (current) in terms of the …\nWe return Adem relations $b^2 = 0$, $P^i P^j = \\cdots$ for …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReturns an iterator over the element’s decomposition.\nReduce a Steenrod monomial at the prime 2.\ndegree -> first square -> admissible sequence idx -> result\nConstructs a new AdemAlgebra.\nWhether to denote the generators as powers $P^i$ or …\nA list of which Steenrod powers are in the element’s …\nShifts a Vec’s elements back by offset.\nA graded algebra over $\\mathbb{F}_p$.\nAn Algebra equipped with a distinguished presentation.\nAn algebra that is maybe unstable.\nConverts a string to a basis element. This must be a …\nConverts a basis element into a string for display.\nComputes basis elements up to and including degree.\nDecomposes an element into generators.\nReturns a list of filtration-one elements in $Ext(k, k)$.\nReturns a list of filtration-one elements in $Ext(k, k)$.\nReturns the dimension of the algebra in degree degree.\nConverts a general element into a string for display.\nConverts a general element into a string for display.\nReturns relations that the algebra wants checked to ensure …\nReturns the name of a generator.\nReturns the name of a generator.\nReturn generators in degree.\nA magic constant used to identify the algebra in save …\nA magic constant used to identify the algebra in save …\nComputes the product r * s of a basis element r and a …\nComputes the product r * s of a basis element r and a …\nComputes the product r * s of a basis element r and a …\nComputes the product r * s of a basis element r and a …\nComputes the product r * s of two basis elements, and adds …\nComputes the product r * s of a general element r and a …\nComputes the product r * s of a general element r and a …\nComputes the product r * s of a general element r and a …\nComputes the product r * s of a general element r and a …\nComputes the product r * s of a general element r and a …\nComputes the product r * s of two general elements, and …\nComputes the product r * s of two general elements, and …\nComputes the product r * s of two general elements, and …\nComputes the product r * s of two general elements, and …\nComputes the product r * s of two general elements, and …\nA name for the algebra to use in serialization operations. …\nA name for the algebra to use in serialization operations. …\nReturns the prime the algebra is over.\nAn Algebra equipped with a coproduct operation that makes …\nComputes a coproduct $\\Delta(x)$, expressed as\nDecomposes an element of the algebra into a product of …\nIf p is the nth prime, then TAU_DEGREES[n][i] is the …\nIf p is the nth prime, then XI_DEGREES[n][i - 1] is the …\nReturns the argument unchanged.\nReturns the argument unchanged.\nindex ==> degree\ndegree => (first_index, number_of_gens)\nCalls U::from(self).\nCalls U::from(self).\ndegree => max_part => list of partitions with maximum part …\n$\\mathbb{F}_p$, viewed as an Algebra over itself.\nReturns the argument unchanged.\nCalls U::from(self).\nReturns a new Field over the given prime p.\nA version of HashMap<MilnorBasisElement, T> that is more …\nThe parts of a PPartMultiplier that involve heap …\ndegree -> MilnorBasisElement -> index\nA list of all basis elements of each degree, constructed …\nReturn the degree and index of $Q_1^e P(x)$.\nUpdate the degree component to the correct degree\nAssert that elt is in the image of the differential. Drop …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns true if the new element is not within the bounds\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nWhether the profile is that of A(n). This is relevant …\nChecks whether the profile function is valid\nsource_deg -> target_deg -> source_op -> target_op\nThis compute the first l > k such that (sum + l) choose l …\nThe profile function for the Q part.\nGives a list of PPart’s in degree t.\nThis is a list of possible P(R) of each degree, where …\nA bitmask indicating which of the Q_k we want to include …\nIf true, unspecified p_part entries will be 0. Otherwise …\nWe have a matrix of the form | s₁ s₂ s₃ …\nThis creates a PPartAllocation with enough capacity to …\nAn element in the cohomological degree zero part of the …\nA lift of an algebra to a split pair algebra. See module …\nCompute $A(r, s)$ and write the result to result.\nCompute $A(Sq(R), Y_{k, l})$ where $a = Sq(R)$. This …\nActually computes $A(a, Y_{k, l})$ and returns the result.\nAssert that elt is in the image of the differential. Drop …\nAssert that elt is in the image of the differential. Drop …\nReturns the argument unchanged.\nCalls U::from(self).\nCreate a new zero element in the given degree.\nThe element p is classified by a filtration on element in …\nSame as PairAlgebra::sigma_multiply_basis but with …\nSame as PairAlgebra::sigma_multiply_basis but with …\nGiven $r, s \\in \\pi_0(A)$, compute $\\sigma(r) \\sigma(s)$ …\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nindex ==> degree\ndegree => (first_index, number_of_gens)\ndegree => max_part => list of partitions with maximum part …\n$\\mathbb{F}_p$, viewed as an Algebra over itself.\nThe parts of a PPartMultiplier that involve heap …\ndegree -> MilnorBasisElement -> index\nA list of all basis elements of each degree, constructed …\nsource_deg -> target_deg -> source_op -> target_op\nThe profile function for the Q part.\nThis is a list of possible P(R) of each degree, where …\nA bitmask indicating which of the Q_k we want to include …\nIf true, unspecified p_part entries will be 0. Otherwise …\nGiven a module N and a free module M, this is the module …\nA bounded below module over an algebra.\nA free module.\nA quotient of a module truncated below a fix degree.\nThis is $\\mathbb{RP}_{\\mathrm{min}}^{\\mathrm{max}}$. The …\nThe algebra the module is over.\nThe name of a basis element. This is useful for debugging …\nFor each degree d, basis_list[d] is a list of basis …\nThe dimension of a module at the given degree\ndegree -> internal index of first generator in degree\ndegree -> internal index of first generator in degree\ndegree -> internal index of first generator in degree\ndegree -> internal_gen_idx -> the offset of the generator …\ndegree -> internal_gen_idx -> the offset of the generator …\ndegree -> internal_gen_idx -> the offset of the generator …\nThe maximum t for which the module is fully defined at t. …\nThe minimum degree of the module, which is required to be …\nThe underlying module\nThe subspaces that we quotient out by\nEverything above this degree is quotiented out.\nA structure that makes it efficient to convert between an …\nAdd source vector “source” to the block indicated by …\nReturns the argument unchanged.\nReturns the argument unchanged.\nConvert (generator, basis element) to basis element of the …\nFind the block corresponding to a given generator.\nFind the (generator, basis element) pair corresponding to …\nCalls U::from(self).\nCalls U::from(self).\nThis function will panic if you call it with input such …\nThis function will panic if you call it with input such …\nReturns the argument unchanged.\nThis should really by try_from but orphan rules prohibit …\nCalls U::from(self).\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nA free module.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\ndegree -> internal index of first generator in degree\ndegree -> internal index of first generator in degree\ndegree -> internal index of first generator in degree\nGiven a generator (gen_deg, gen_idx), find the first index …\ndegree -> internal_gen_idx -> the offset of the generator …\ndegree -> internal_gen_idx -> the offset of the generator …\ndegree -> internal_gen_idx -> the offset of the generator …\nGiven a generator (gen_deg, gen_idx), find the first index …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nIterate the degrees and offsets of each generator up to …\nIterate the degrees and indices of each generator up to …\nGiven an element in a degree, iterate through the slices …\nGiven a vector that represents an element in degree degree…\nGiven a module N and a free module M, this is the module …\nReturns the argument unchanged.\nCalls U::from(self).\nA ModuleHomomorphism that simply records the matrix of the …\nGiven a map $\\mathtt{map}: A \\to B$ and hom modules …\nA trait that represents a homomorphism between two modules.\nAttempt to apply quasi inverse to the input. Returns …\nCalling this function when …\nCompute the auxiliary data associated to the homomorphism …\ndegree shift, such that ouptut_degree = input_degree - …\ndegree shift, such that ouptut_degree = input_degree - …\ndegree shift, such that ouptut_degree = input_degree - …\nWrite the matrix of the homomorphism at input degree degree…\nGet the values of the homomorphism on the specified inputs …\nThe matrices of the module homomorphism. Unspecified …\nA MatrixSlice will do but there is no application of this …\nAdd the image of a bidegree out of order. See …\ndegree shift, such that ouptut_degree = input_degree - …\ndegree shift, such that ouptut_degree = input_degree - …\ndegree shift, such that ouptut_degree = input_degree - …\nReturns the argument unchanged.\nGiven f: M -> N, compute the dual f*: Hom(N, k) -> Hom(M, …\nCalls U::from(self).\nList of outputs that have been added out of order\nA ModuleHomomorphism that simply records the matrix of the …\nReturns the argument unchanged.\nCalls U::from(self).\nThe matrices of the module homomorphism. Unspecified …\nThis function replaces the source of the …\nSee replace_source\nReturns the argument unchanged.\nCalls U::from(self).\nGiven a map $\\mathtt{map}: A \\to B$ and hom modules …\nReturns the argument unchanged.\nCalls U::from(self).\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nA bounded below module over an algebra.\nThe length of input need not be equal to the dimension of …\nThe length of input need not be equal to the dimension of …\nThe algebra the module is over.\nThe name of a basis element. This is useful for debugging …\nCompute internal data of the module so that we can query …\nCompute internal data of the module so that we can query …\nThe dimension of a module at the given degree\nGives the name of an element. The default implementation …\nGives the name of an element. The default implementation …\nReturns the argument unchanged.\nCalls U::from(self).\nWhether this is the unit module.\nWhether this is the unit module.\nThe maximum t for which the module is fully defined at t. …\nmax_degree is the a degree such that if t > max_degree, …\nmax_degree is the a degree such that if t > max_degree, …\nMaximum degree of a generator under the Steenrod action. …\nMaximum degree of a generator under the Steenrod action. …\nThe minimum degree of the module, which is required to be …\nThe prime the module is over, which should be equal to the …\nThe prime the module is over, which should be equal to the …\nA quotient of a module truncated below a fix degree.\nFor each degree d, basis_list[d] is a list of basis …\nReturns the argument unchanged.\nCalls U::from(self).\nThe underlying module\nArguments\nThe subspaces that we quotient out by\nEverything above this degree is quotiented out.\nThis is $\\mathbb{RP}_{\\mathrm{min}}^{\\mathrm{max}}$. The …\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nReturns the argument unchanged.\nCalls U::from(self).\nReturns the argument unchanged.\nCalls U::from(self).\nAn element in the cohomological degree zero part of the …\nA lift of an algebra to a split pair algebra. See module …\nCompute $A(r, s)$ and write the result to result.\nCreate a new zero element in the given degree.\nThe element p is classified by a filtration on element in …\nGiven $r, s \\in \\pi_0(A)$, compute $\\sigma(r) \\sigma(s)$ …\nExpress $Q_{qi}$ in the adem basis.\nTranslate from the adem basis to the milnor basis, adding …\nReturns\nReturns the argument unchanged.\nCalls U::from(self).\nContains the error value\nContains the success value\nSurround with brackets\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nPad both ends with whitespace") \ No newline at end of file +searchState.loadedDescShard("algebra", 0, "Types and traits for working with various algebras and …\nAn Algebra implementing the Steenrod algebra, using the …\nAn algebra that can be viewed as an Adem algebra.\nA graded algebra over $\\mathbb{F}_p$.\nAn Algebra equipped with a coproduct operation that makes …\n$\\mathbb{F}_p$, viewed as an Algebra over itself.\nAn Algebra equipped with a distinguished presentation.\nAn algebra that is maybe unstable.\nThe Steenrod algebra using the Adem basis.\nTraits describing algebras, and implementations thereof …\nConverts a string to a basis element. This must be a …\ndegree -> AdemBasisElement -> index\ndegree -> MilnorBasisElement -> index\nConverts a basis element into a string for display.\ndegree -> index -> AdemBasisElement\nA list of all basis elements of each degree, constructed …\nComputes basis elements up to and including degree.\nComputes a coproduct $\\Delta(x)$, expressed as\nDecomposes an element of the algebra into a product of …\nDecomposes an element into generators.\nReturns the dimension of the algebra in degree degree.\nFinite fields over a prime.\nReturns relations that the algebra wants checked to ensure …\nReturn generators in degree.\ndegree -> first square -> admissible sequence idx -> result\nsource_deg -> target_deg -> source_op -> target_op\nComputes the product r * s of two basis elements, and adds …\nComputes the product r * s of a general element r and a …\nComputes the product r * s of two general elements, and …\nThis implements the notion of a split pair algebra in the …\nThis is a list of possible P(R) of each degree, where …\nReturns the prime the algebra is over.\nThis module includes code for parsing an expression in the …\nAn Algebra implementing the Steenrod algebra, using the …\nAn algebra that can be viewed as an Adem algebra.\nAn Adem basis element for the Steenrod algebra.\nA Steenrod power $P^i$, or a Bockstein $\\beta^\\varepsilon$.\ndegree -> AdemBasisElement -> index\ndegree -> index -> AdemBasisElement\nA bitset of which $\\beta$ Bocksteins are in the element’…\nThe degree of the element.\ndegree -> first square -> admissible sequence idx -> result\nWhether to denote the generators as powers $P^i$ or …\nA list of which Steenrod powers are in the element’s …\nThe Steenrod algebra using the Adem basis.\nFinite fields over a prime.\nThis implements the notion of a split pair algebra in the …\nAn Algebra implementing the Steenrod algebra, using the …\nAn algebra that can be viewed as an Adem algebra.\nAn Adem basis element for the Steenrod algebra.\nA Steenrod power $P^i$, or a Bockstein $\\beta^\\varepsilon$.\ndegree -> AdemBasisElement -> index\ndegree -> index -> AdemBasisElement\nA bitset of which $\\beta$ Bocksteins are in the element’…\nThe degree of the element.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nThis function expresses $Sq^x$ (current) in terms of the …\nWe return Adem relations $b^2 = 0$, $P^i P^j = \\cdots$ for …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nReturns an iterator over the element’s decomposition.\nReduce a Steenrod monomial at the prime 2.\ndegree -> first square -> admissible sequence idx -> result\nConstructs a new AdemAlgebra.\nWhether to denote the generators as powers $P^i$ or …\nA list of which Steenrod powers are in the element’s …\nShifts a Vec’s elements back by offset.\nA graded algebra over $\\mathbb{F}_p$.\nAn Algebra equipped with a distinguished presentation.\nAn algebra that is maybe unstable.\nConverts a string to a basis element. This must be a …\nConverts a basis element into a string for display.\nComputes basis elements up to and including degree.\nDecomposes an element into generators.\nReturns a list of filtration-one elements in $Ext(k, k)$.\nReturns a list of filtration-one elements in $Ext(k, k)$.\nReturns the dimension of the algebra in degree degree.\nConverts a general element into a string for display.\nConverts a general element into a string for display.\nReturns relations that the algebra wants checked to ensure …\nReturns the name of a generator.\nReturns the name of a generator.\nReturn generators in degree.\nA magic constant used to identify the algebra in save …\nA magic constant used to identify the algebra in save …\nComputes the product r * s of a basis element r and a …\nComputes the product r * s of a basis element r and a …\nComputes the product r * s of a basis element r and a …\nComputes the product r * s of a basis element r and a …\nComputes the product r * s of two basis elements, and adds …\nComputes the product r * s of a general element r and a …\nComputes the product r * s of a general element r and a …\nComputes the product r * s of a general element r and a …\nComputes the product r * s of a general element r and a …\nComputes the product r * s of a general element r and a …\nComputes the product r * s of two general elements, and …\nComputes the product r * s of two general elements, and …\nComputes the product r * s of two general elements, and …\nComputes the product r * s of two general elements, and …\nComputes the product r * s of two general elements, and …\nA name for the algebra to use in serialization operations. …\nA name for the algebra to use in serialization operations. …\nReturns the prime the algebra is over.\nAn Algebra equipped with a coproduct operation that makes …\nComputes a coproduct $\\Delta(x)$, expressed as\nDecomposes an element of the algebra into a product of …\nIf p is the nth prime, then TAU_DEGREES[n][i] is the …\nIf p is the nth prime, then XI_DEGREES[n][i - 1] is the …\nReturns the argument unchanged.\nReturns the argument unchanged.\nindex ==> degree\ndegree => (first_index, number_of_gens)\nCalls U::from(self).\nCalls U::from(self).\ndegree => max_part => list of partitions with maximum part …\n$\\mathbb{F}_p$, viewed as an Algebra over itself.\nReturns the argument unchanged.\nCalls U::from(self).\nReturns a new Field over the given prime p.\nA version of HashMap<MilnorBasisElement, T> that is more …\nThe parts of a PPartMultiplier that involve heap …\ndegree -> MilnorBasisElement -> index\nA list of all basis elements of each degree, constructed …\nReturn the degree and index of $Q_1^e P(x)$.\nUpdate the degree component to the correct degree\nAssert that elt is in the image of the differential. Drop …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns true if the new element is not within the bounds\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nWhether the profile is that of A(n). This is relevant …\nChecks whether the profile function is valid\nsource_deg -> target_deg -> source_op -> target_op\nThis compute the first l > k such that (sum + l) choose l …\nThe profile function for the Q part.\nGives a list of PPart’s in degree t.\nThis is a list of possible P(R) of each degree, where …\nA bitmask indicating which of the Q_k we want to include …\nIf true, unspecified p_part entries will be 0. Otherwise …\nWe have a matrix of the form | s₁ s₂ s₃ …\nThis creates a PPartAllocation with enough capacity to …\nAn element in the cohomological degree zero part of the …\nA lift of an algebra to a split pair algebra. See module …\nCompute $A(r, s)$ and write the result to result.\nCompute $A(Sq(R), Y_{k, l})$ where $a = Sq(R)$. This …\nActually computes $A(a, Y_{k, l})$ and returns the result.\nAssert that elt is in the image of the differential. Drop …\nAssert that elt is in the image of the differential. Drop …\nReturns the argument unchanged.\nCalls U::from(self).\nCreate a new zero element in the given degree.\nThe element p is classified by a filtration on element in …\nSame as PairAlgebra::sigma_multiply_basis but with …\nSame as PairAlgebra::sigma_multiply_basis but with …\nGiven $r, s \\in \\pi_0(A)$, compute $\\sigma(r) \\sigma(s)$ …\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nindex ==> degree\ndegree => (first_index, number_of_gens)\ndegree => max_part => list of partitions with maximum part …\n$\\mathbb{F}_p$, viewed as an Algebra over itself.\nThe parts of a PPartMultiplier that involve heap …\ndegree -> MilnorBasisElement -> index\nA list of all basis elements of each degree, constructed …\nsource_deg -> target_deg -> source_op -> target_op\nThe profile function for the Q part.\nThis is a list of possible P(R) of each degree, where …\nA bitmask indicating which of the Q_k we want to include …\nIf true, unspecified p_part entries will be 0. Otherwise …\nGiven a module N and a free module M, this is the module …\nA bounded below module over an algebra.\nA free module.\nA quotient of a module truncated below a fix degree.\nThis is $\\mathbb{RP}_{\\mathrm{min}}^{\\mathrm{max}}$. The …\nThe algebra the module is over.\nThe name of a basis element. This is useful for debugging …\nFor each degree d, basis_list[d] is a list of basis …\nThe dimension of a module at the given degree\ndegree -> internal index of first generator in degree\ndegree -> internal index of first generator in degree\ndegree -> internal index of first generator in degree\ndegree -> internal_gen_idx -> the offset of the generator …\ndegree -> internal_gen_idx -> the offset of the generator …\ndegree -> internal_gen_idx -> the offset of the generator …\nThe maximum t for which the module is fully defined at t. …\nThe minimum degree of the module, which is required to be …\nThe underlying module\nThe subspaces that we quotient out by\nEverything above this degree is quotiented out.\nA structure that makes it efficient to convert between an …\nAdd source vector “source” to the block indicated by …\nReturns the argument unchanged.\nReturns the argument unchanged.\nConvert (generator, basis element) to basis element of the …\nFind the block corresponding to a given generator.\nFind the (generator, basis element) pair corresponding to …\nCalls U::from(self).\nCalls U::from(self).\nThis function will panic if you call it with input such …\nThis function will panic if you call it with input such …\nThis should really by try_from but orphan rules prohibit …\nReturns the argument unchanged.\nCalls U::from(self).\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nA free module.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\ndegree -> internal index of first generator in degree\ndegree -> internal index of first generator in degree\ndegree -> internal index of first generator in degree\nGiven a generator (gen_deg, gen_idx), find the first index …\ndegree -> internal_gen_idx -> the offset of the generator …\ndegree -> internal_gen_idx -> the offset of the generator …\ndegree -> internal_gen_idx -> the offset of the generator …\nGiven a generator (gen_deg, gen_idx), find the first index …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nIterate the degrees and offsets of each generator up to …\nIterate the degrees and indices of each generator up to …\nGiven an element in a degree, iterate through the slices …\nGiven a vector that represents an element in degree degree…\nGiven a module N and a free module M, this is the module …\nReturns the argument unchanged.\nCalls U::from(self).\nA ModuleHomomorphism that simply records the matrix of the …\nGiven a map $\\mathtt{map}: A \\to B$ and hom modules …\nA trait that represents a homomorphism between two modules.\nAttempt to apply quasi inverse to the input. Returns …\nCalling this function when …\nCompute the auxiliary data associated to the homomorphism …\ndegree shift, such that ouptut_degree = input_degree - …\ndegree shift, such that ouptut_degree = input_degree - …\ndegree shift, such that ouptut_degree = input_degree - …\nWrite the matrix of the homomorphism at input degree degree…\nGet the values of the homomorphism on the specified inputs …\nThe matrices of the module homomorphism. Unspecified …\nA MatrixSlice will do but there is no application of this …\nAdd the image of a bidegree out of order. See …\ndegree shift, such that ouptut_degree = input_degree - …\ndegree shift, such that ouptut_degree = input_degree - …\ndegree shift, such that ouptut_degree = input_degree - …\nReturns the argument unchanged.\nGiven f: M -> N, compute the dual f*: Hom(N, k) -> Hom(M, …\nCalls U::from(self).\nList of outputs that have been added out of order\nA ModuleHomomorphism that simply records the matrix of the …\nReturns the argument unchanged.\nCalls U::from(self).\nThe matrices of the module homomorphism. Unspecified …\nThis function replaces the source of the …\nSee replace_source\nReturns the argument unchanged.\nCalls U::from(self).\nGiven a map $\\mathtt{map}: A \\to B$ and hom modules …\nReturns the argument unchanged.\nCalls U::from(self).\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nA bounded below module over an algebra.\nThe length of input need not be equal to the dimension of …\nThe length of input need not be equal to the dimension of …\nThe algebra the module is over.\nThe name of a basis element. This is useful for debugging …\nCompute internal data of the module so that we can query …\nCompute internal data of the module so that we can query …\nThe dimension of a module at the given degree\nGives the name of an element. The default implementation …\nGives the name of an element. The default implementation …\nReturns the argument unchanged.\nCalls U::from(self).\nWhether this is the unit module.\nWhether this is the unit module.\nThe maximum t for which the module is fully defined at t. …\nmax_degree is the a degree such that if t > max_degree, …\nmax_degree is the a degree such that if t > max_degree, …\nMaximum degree of a generator under the Steenrod action. …\nMaximum degree of a generator under the Steenrod action. …\nThe minimum degree of the module, which is required to be …\nThe prime the module is over, which should be equal to the …\nThe prime the module is over, which should be equal to the …\nA quotient of a module truncated below a fix degree.\nFor each degree d, basis_list[d] is a list of basis …\nReturns the argument unchanged.\nCalls U::from(self).\nThe underlying module\nArguments\nThe subspaces that we quotient out by\nEverything above this degree is quotiented out.\nThis is $\\mathbb{RP}_{\\mathrm{min}}^{\\mathrm{max}}$. The …\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nReturns the argument unchanged.\nCalls U::from(self).\nReturns the argument unchanged.\nCalls U::from(self).\nAn element in the cohomological degree zero part of the …\nA lift of an algebra to a split pair algebra. See module …\nCompute $A(r, s)$ and write the result to result.\nCreate a new zero element in the given degree.\nThe element p is classified by a filtration on element in …\nGiven $r, s \\in \\pi_0(A)$, compute $\\sigma(r) \\sigma(s)$ …\nExpress $Q_{qi}$ in the adem basis.\nTranslate from the adem basis to the milnor basis, adding …\nReturns\nReturns the argument unchanged.\nCalls U::from(self).\nContains the error value\nContains the success value\nSurround with brackets\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nPad both ends with whitespace") \ No newline at end of file diff --git a/docs/search.desc/fp/fp-desc-0-.js b/docs/search.desc/fp/fp-desc-0-.js index 71e9e13d8..6a291b714 100644 --- a/docs/search.desc/fp/fp-desc-0-.js +++ b/docs/search.desc/fp/fp-desc-0-.js @@ -1 +1 @@ -searchState.loadedDescShard("fp", 0, "The number of primes that will be prepared at …\nAn array containing the first NUM_PRIMES prime numbers.\nFor any integer i less than or equal to MAX_PRIME, …\nThe number of bits each Limb occupies.\nThe number of bytes each Limb occupies.\nThe NUM_PRIMESth prime number.\nA sentinel value. PRIME_TO_INDEX_MAP[i] == NOT_A_PRIME if …\nThe number of primes that will be prepared at …\nAn array containing the first NUM_PRIMES prime numbers.\nFor any integer i less than or equal to MAX_PRIME, …\nAn element of a field.\nThis just ensures that the containers are “nice enough”…\nReturns the argument unchanged.\nCalls U::from(self).\nCreate a new field element. This is only visible to the …\nThe internal representation of a field element.\nInternal methods required for fields.\nReturn the number of bits a Self::Element occupies in a …\nIf l is a limb of Self::Elements, then l & F.bitmask() is …\nDecode a Limb into a field element. The argument will …\nCreate a new field element. This is the method responsible …\nEncode a field element into a Limb. The limbs of an …\nThe number of Self::Elements that fit in a single limb.\nFused multiply-add. Return the Limb whose ith entry is …\nReturns the argument unchanged.\nCalls U::from(self).\nCheck whether or not a limb is reduced. This may …\nReturn the number of limbs required to hold dim entries.\nGiven an interator of FieldElement<Self>s, pack all of …\nReturn the Range<usize> starting at the index of the limb …\nReduce a limb, i.e. make it “canonical”. For example, …\nReturn either Some(sum) if no carries happen in the limb, …\nGive an iterator over the entries of limb.\nA prime field. This is just a wrapper around a prime.\nReturns the argument unchanged.\nCalls U::from(self).\nContributed by Robert Burklund.\nA field of order q = p^d, where q < 2^16 and d > 1. Fields …\nA field element, stored as the exponent of a distinguished …\nA table of lazily initialized Zech logarithms.\nThe distinguished primitive element that generates the …\nThis is 2n + 1 if element is a^n, and 0 otherwise.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nReturn the element -1. If p = 2, this is a^0 = 1. …\nReturn the Zech logarithm table for the given field. If it …\nA struct containing the information required to access a …\nReturns the argument unchanged.\nCalls U::from(self).\nThis models an augmented matrix.\nA matrix! In particular, a matrix with values in F_p.\nGiven a matrix M, a quasi-inverse Q is a map from the …\nA subspace of a vector space.\nThe pivot columns of the matrix. pivots[n] is k if column n…\nExample\nReturns the argument unchanged.\nCalls U::from(self).\nM4RI works as follows — first row reduce k rows using …\nAdd a row to the table.\nClear the contents of the table\nThe list of pivot columns of the rows\nThe 2^k linear combinations of the k rows, apart from the …\nReturns the argument unchanged.\nGenerates the table from the known data num is the number …\nCalls U::from(self).\nWhether the table has no rows\nNumber of rows in the M4riTable\nThe smallest non-zero limb in this table. We use this when …\nCreate a table with space for k vectors, each with cols …\nGet the list of pivot rows\nThe indices of new rows in the table\nThis models an augmented matrix.\nA matrix! In particular, a matrix with values in F_p.\nFor each row, add the v[i]th entry of other to self.\nApplies a matrix to a vector.\nProduces a padded augmented matrix from an &[Vec<u32>] …\nGets the number of columns in the matrix.\nComputes the quasi-inverse of a matrix given a rref of […\nComputes the kernel from an augmented matrix in rref. To …\nComputes the quasi-inverse of a matrix given a rref of […\nThis function computes quasi-inverses for matrices A, B …\nGiven a matrix in rref, say [A|B|C], where B lies between …\nGiven a matrix M in rref, add rows to make the matrix …\nGiven a row reduced matrix, find the first row whose pivot …\nThis is very similar to row_reduce, except we only need to …\nExample\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nProduces a Matrix from a vector of FpVectors. We pass in …\nProduces a Matrix from an &[Vec<u32>] object. If the …\nReturns the ith row of the matrix\nReturns the ith row of the matrix\nSet the pivots to -1 in every entry. This is called by …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nProduces a new matrix over F_p with the specified number …\nThe pivot columns of the matrix. pivots[n] is k if column n…\nRead a vector of isize of length dim.\nPerforms a row operation using pivot_column as the pivot …\nA version of Matrix::row_op without the zero assumption.\nPerform row reduction to reduce it to reduced row echelon …\nGets the number of rows in the matrix.\nA no-nonsense, safe, row operation. Adds c * self[source] …\nMutably borrows x[i] and x[j].\nRead a vector of isize\nGiven a matrix M, a quasi-inverse Q is a map from the …\nApply the quasi-inverse to an input vector and add a …\nReturns the argument unchanged.\nCalls U::from(self).\nGiven a data file containing a quasi-inverse, apply it to …\nThe pivot columns of the complement to the subspace\nReturns the argument unchanged.\nGiven a chain of subspaces quotient < sub in some ambient …\nCalls U::from(self).\nCreate a new subquotient of an ambient space of dimension …\nCreate a new subquotient of an ambient space of dimension …\nGiven a vector elt, project elt to the complement and …\nProject the vector onto the complement of the quotient …\nSet the subquotient to be the full ambient space …\nThe dimension of the subspace part of the subquotient.\nThe generators of the subspace part of the subquotient.\nA subspace of a vector space.\nThis adds a vector to the subspace. This function assumes …\nThis adds some rows to the subspace\nReturns a basis of the subspace.\nExample\nReturns the argument unchanged.\nCreate a new subspace from a matrix. The matrix does not …\nCalls U::from(self).\nWhether the subspace is empty. This assumes the subspace …\nIterate over all vectors in the subspace.\nProjects a vector to a complement of the subspace. The …\nSets the subspace to be the entire subspace.\nSets the subspace to be the zero subspace.\nRun a closure on the matrix and then ensure it is …\nA trait that represents a prime number. There are …\nFactor $n$ as $p^k m$. Returns $(k, m)$.\nReturns the argument unchanged.\nCalls U::from(self).\nCompute the base 2 log of a number, rounded down to the …\nDiscrete log base p of n.\nCompute b^e mod p. This is a const version of …\nComputes the product mod p. This takes care of overflow.\nComputes the sum mod p. This takes care of overflow.\nA number satisfying the Binomial trait supports computing …\nBinomial coefficient n choose k.\nmod 2 binomial coefficient n choose k\nBinomial coefficients mod 4. We pre-compute the …\nCompute binomial coefficients mod 4 using the recursion …\nCompute odd binomial coefficients mod p, where p is odd. …\nChecks whether n choose k is zero mod p. Since we don’t …\nThis uses a lookup table for n choose k when n and k are …\nMultinomial coefficient of the list l\nmod 2 multinomial coefficient\nComputes the multinomial coefficient mod p using Lucas’ …\nIterates through all numbers with the same number of bits. …\nIterates through all combinations of numbers from 0 to …\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nAn arbitrary ValidPrime in the range 2..(1 << 24), plus …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nThis module provides convenience wrappers around the …\nExample\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nThis module defines methods that assist in plumbing …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nDefine a struct that wraps some field-dependent type in an …\nUse all primes. It isn’t possible to have this import …\nA slice of an FqVector.\nA mutable slice of an FqVector.\nA vector over a finite field.\nGiven a mask v, add the v[i]th entry of other to the ith …\nAdd other to self on the assumption that the first offset …\nAdds c * other to self. other must have the same length, …\nAdds v otimes w to self.\nGiven a mask v, add the ith entry of other to the v[i]th …\nTODO: improve efficiency\nA version of FqVector::assign that allows other to be …\nGenerates a version of itself with a shorter lifetime\nThis replaces the contents of the vector with the contents …\nThis function ensures the length of the vector is at least …\nFind the index and value of the first non-zero entry of …\nExample\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nTODO: implement prime 2 version\nThis function underflows if self.end == 0, which happens …\nThis clears the vector and sets the length to len. This is …\nConverts a slice to an owned FqVector. This is vastly more …\nPermanently remove the first n elements in the vector. n …\nIterator over non-zero entries of an FpVector. This is …\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).") \ No newline at end of file +searchState.loadedDescShard("fp", 0, "The number of primes that will be prepared at …\nAn array containing the first NUM_PRIMES prime numbers.\nFor any integer i less than or equal to MAX_PRIME, …\nThe number of bits each Limb occupies.\nThe number of bytes each Limb occupies.\nThe NUM_PRIMESth prime number.\nA sentinel value. PRIME_TO_INDEX_MAP[i] == NOT_A_PRIME if …\nThe number of primes that will be prepared at …\nAn array containing the first NUM_PRIMES prime numbers.\nFor any integer i less than or equal to MAX_PRIME, …\nAn element of a field.\nThis just ensures that the containers are “nice enough”…\nReturns the argument unchanged.\nCalls U::from(self).\nCreate a new field element. This is only visible to the …\nThe internal representation of a field element.\nInternal methods required for fields.\nReturn the number of bits a Self::Element occupies in a …\nIf l is a limb of Self::Elements, then l & F.bitmask() is …\nDecode a Limb into a field element. The argument will …\nCreate a new field element. This is the method responsible …\nEncode a field element into a Limb. The limbs of an …\nThe number of Self::Elements that fit in a single limb.\nFused multiply-add. Return the Limb whose ith entry is …\nReturns the argument unchanged.\nCalls U::from(self).\nCheck whether or not a limb is reduced. This may …\nReturn the number of limbs required to hold dim entries.\nGiven an interator of FieldElement<Self>s, pack all of …\nReturn the Range<usize> starting at the index of the limb …\nReduce a limb, i.e. make it “canonical”. For example, …\nReturn either Some(sum) if no carries happen in the limb, …\nGive an iterator over the entries of limb.\nA prime field. This is just a wrapper around a prime.\nReturns the argument unchanged.\nCalls U::from(self).\nContributed by Robert Burklund.\nA field of order q = p^d, where q < 2^16 and d > 1. Fields …\nA field element, stored as the exponent of a distinguished …\nA table of lazily initialized Zech logarithms.\nThe distinguished primitive element that generates the …\nThis is 2n + 1 if element is a^n, and 0 otherwise.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nReturn the element -1. If p = 2, this is a^0 = 1. …\nReturn the Zech logarithm table for the given field. If it …\nA struct containing the information required to access a …\nReturns the argument unchanged.\nCalls U::from(self).\nThis models an augmented matrix.\nA matrix! In particular, a matrix with values in F_p.\nGiven a matrix M, a quasi-inverse Q is a map from the …\nA subspace of a vector space.\nThe pivot columns of the matrix. pivots[n] is k if column n…\nExample\nReturns the argument unchanged.\nCalls U::from(self).\nM4RI works as follows — first row reduce k rows using …\nAdd a row to the table.\nClear the contents of the table\nThe list of pivot columns of the rows\nThe 2^k linear combinations of the k rows, apart from the …\nReturns the argument unchanged.\nGenerates the table from the known data num is the number …\nCalls U::from(self).\nWhether the table has no rows\nNumber of rows in the M4riTable\nThe smallest non-zero limb in this table. We use this when …\nCreate a table with space for k vectors, each with cols …\nGet the list of pivot rows\nThe indices of new rows in the table\nThis models an augmented matrix.\nA matrix! In particular, a matrix with values in F_p.\nFor each row, add the v[i]th entry of other to self.\nApplies a matrix to a vector.\nGenerate an arbitrary row-reduced matrix.\nProduces a padded augmented matrix from an &[Vec<u32>] …\nGets the number of columns in the matrix.\nComputes the quasi-inverse of a matrix given a rref of […\nComputes the kernel from an augmented matrix in rref. To …\nComputes the quasi-inverse of a matrix given a rref of […\nThis function computes quasi-inverses for matrices A, B …\nGiven a matrix in rref, say [A|B|C], where B lies between …\nGiven a matrix M in rref, add rows to make the matrix …\nGiven a row reduced matrix, find the first row whose pivot …\nThis is very similar to row_reduce, except we only need to …\nExample\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nProduces a Matrix from a vector of FpVectors. We pass in …\nProduces a Matrix from an &[Vec<u32>] object. If the …\nReturns the ith row of the matrix\nReturns the ith row of the matrix\nSet the pivots to -1 in every entry. This is called by …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nProduces a new matrix over F_p with the specified number …\nThe pivot columns of the matrix. pivots[n] is k if column n…\nRead a vector of isize of length dim.\nPerforms a row operation using pivot_column as the pivot …\nA version of Matrix::row_op without the zero assumption.\nPerform row reduction to reduce it to reduced row echelon …\nGets the number of rows in the matrix.\nA no-nonsense, safe, row operation. Adds c * self[source] …\nMutably borrows x[i] and x[j].\nRead a vector of isize\nReturns the argument unchanged.\nCalls U::from(self).\nGiven a matrix M, a quasi-inverse Q is a map from the …\nApply the quasi-inverse to an input vector and add a …\nReturns the argument unchanged.\nCalls U::from(self).\nGiven a data file containing a quasi-inverse, apply it to …\nThe pivot columns of the complement to the subspace\nReturns the argument unchanged.\nGiven a chain of subspaces quotient < sub in some ambient …\nCalls U::from(self).\nCreate a new subquotient of an ambient space of dimension …\nCreate a new subquotient of an ambient space of dimension …\nGiven a vector elt, project elt to the complement and …\nProject the vector onto the complement of the quotient …\nSet the subquotient to be the full ambient space …\nThe dimension of the subspace part of the subquotient.\nThe generators of the subspace part of the subquotient.\nReturns the argument unchanged.\nCalls U::from(self).\nA subspace of a vector space.\nThis adds a vector to the subspace. This function assumes …\nThis adds some rows to the subspace\nReturns a basis of the subspace.\nExample\nReturns the argument unchanged.\nCreate a new subspace from a matrix. The matrix does not …\nCalls U::from(self).\nWhether the subspace is empty. This assumes the subspace …\nIterate over all vectors in the subspace.\nProjects a vector to a complement of the subspace. The …\nSets the subspace to be the entire subspace.\nSets the subspace to be the zero subspace.\nRun a closure on the matrix and then ensure it is …\nReturns the argument unchanged.\nCalls U::from(self).\nA trait that represents a prime number. There are …\nFactor $n$ as $p^k m$. Returns $(k, m)$.\nReturns the argument unchanged.\nCalls U::from(self).\nCompute the base 2 log of a number, rounded down to the …\nDiscrete log base p of n.\nCompute b^e mod p. This is a const version of …\nComputes the product mod p. This takes care of overflow.\nComputes the sum mod p. This takes care of overflow.\nA number satisfying the Binomial trait supports computing …\nBinomial coefficient n choose k.\nmod 2 binomial coefficient n choose k\nBinomial coefficients mod 4. We pre-compute the …\nCompute binomial coefficients mod 4 using the recursion …\nCompute odd binomial coefficients mod p, where p is odd. …\nChecks whether n choose k is zero mod p. Since we don’t …\nThis uses a lookup table for n choose k when n and k are …\nMultinomial coefficient of the list l\nmod 2 multinomial coefficient\nComputes the multinomial coefficient mod p using Lucas’ …\nIterates through all numbers with the same number of bits. …\nIterates through all combinations of numbers from 0 to …\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nAn arbitrary ValidPrime in the range 2..(1 << 24), plus …\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nThis module provides convenience wrappers around the …\nExample\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nThis module defines methods that assist in plumbing …\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nDefine a struct that wraps some field-dependent type in an …\nUse all primes. It isn’t possible to have this import …\nReturns the argument unchanged.\nCalls U::from(self).\nA slice of an FqVector.\nA mutable slice of an FqVector.\nA vector over a finite field.\nGiven a mask v, add the v[i]th entry of other to the ith …\nAdd other to self on the assumption that the first offset …\nAdds c * other to self. other must have the same length, …\nAdds v otimes w to self.\nGiven a mask v, add the ith entry of other to the v[i]th …\nTODO: improve efficiency\nA version of FqVector::assign that allows other to be …\nGenerates a version of itself with a shorter lifetime\nThis replaces the contents of the vector with the contents …\nThis function ensures the length of the vector is at least …\nFind the index and value of the first non-zero entry of …\nExample\nReturns the argument unchanged.\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nCalls U::from(self).\nTODO: implement prime 2 version\nThis function underflows if self.end == 0, which happens …\nThis clears the vector and sets the length to len. This is …\nConverts a slice to an owned FqVector. This is vastly more …\nPermanently remove the first n elements in the vector. n …\nIterator over non-zero entries of an FpVector. This is …\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).") \ No newline at end of file diff --git a/docs/src/fp/field/field_internal.rs.html b/docs/src/fp/field/field_internal.rs.html index d4a8cd20a..5d7715365 100644 --- a/docs/src/fp/field/field_internal.rs.html +++ b/docs/src/fp/field/field_internal.rs.html @@ -287,8 +287,8 @@ /// operations to the outside world. #[allow(private_bounds)] pub trait FieldInternal: - std::fmt::Debug + Copy + PartialEq + Eq + Hash + Sized + crate::MaybeArbitrary<()> -{ + std::fmt::Debug + Copy + PartialEq + Eq + Hash + Sized + crate::MaybeArbitrary<()> + 'static +{ /// The internal representation of a field element. type ElementContainer: FieldElementContainer; diff --git a/docs/src/fp/matrix/matrix_inner.rs.html b/docs/src/fp/matrix/matrix_inner.rs.html index c8cb7009e..a6d5bb9a8 100644 --- a/docs/src/fp/matrix/matrix_inner.rs.html +++ b/docs/src/fp/matrix/matrix_inner.rs.html @@ -1304,6 +1304,132 @@ 1279 1280 1281 +1282 +1283 +1284 +1285 +1286 +1287 +1288 +1289 +1290 +1291 +1292 +1293 +1294 +1295 +1296 +1297 +1298 +1299 +1300 +1301 +1302 +1303 +1304 +1305 +1306 +1307 +1308 +1309 +1310 +1311 +1312 +1313 +1314 +1315 +1316 +1317 +1318 +1319 +1320 +1321 +1322 +1323 +1324 +1325 +1326 +1327 +1328 +1329 +1330 +1331 +1332 +1333 +1334 +1335 +1336 +1337 +1338 +1339 +1340 +1341 +1342 +1343 +1344 +1345 +1346 +1347 +1348 +1349 +1350 +1351 +1352 +1353 +1354 +1355 +1356 +1357 +1358 +1359 +1360 +1361 +1362 +1363 +1364 +1365 +1366 +1367 +1368 +1369 +1370 +1371 +1372 +1373 +1374 +1375 +1376 +1377 +1378 +1379 +1380 +1381 +1382 +1383 +1384 +1385 +1386 +1387 +1388 +1389 +1390 +1391 +1392 +1393 +1394 +1395 +1396 +1397 +1398 +1399 +1400 +1401 +1402 +1403 +1404 +1405 +1406 +1407
use std::{
     fmt,
     io::{Read, Write},
@@ -2268,6 +2394,120 @@
     }
 }
 
+#[cfg(feature = "proptest")]
+pub mod arbitrary {
+    use proptest::prelude::*;
+
+    use super::*;
+    use crate::{
+        field::Fp,
+        vector::{arbitrary::FqVectorArbParams, FqVector},
+    };
+
+    pub const MAX_ROWS: usize = 100;
+    pub const MAX_COLUMNS: usize = 100;
+
+    #[derive(Debug, Clone)]
+    pub struct MatrixArbParams {
+        pub p: Option<ValidPrime>,
+        pub rows: BoxedStrategy<usize>,
+        pub columns: BoxedStrategy<usize>,
+    }
+
+    impl Default for MatrixArbParams {
+        fn default() -> Self {
+            Self {
+                p: None,
+                rows: (1..=MAX_ROWS).boxed(),
+                columns: (1..=MAX_COLUMNS).boxed(),
+            }
+        }
+    }
+
+    impl Arbitrary for Matrix {
+        type Parameters = MatrixArbParams;
+        type Strategy = BoxedStrategy<Self>;
+
+        fn arbitrary_with(args: Self::Parameters) -> Self::Strategy {
+            let p = match args.p {
+                Some(p) => Just(p).boxed(),
+                None => any::<ValidPrime>().boxed(),
+            };
+
+            (p, args.rows, args.columns)
+                .prop_flat_map(|(p, rows, columns)| {
+                    let row_strategy = any_with::<FqVector<_>>(FqVectorArbParams {
+                        fq: Some(Fp::new(p)),
+                        len: Just(columns).boxed(),
+                    })
+                    .prop_map(|v| -> FpVector { v.into() });
+
+                    let rows = proptest::collection::vec(row_strategy, rows);
+                    (Just(p), rows, Just(columns))
+                })
+                .prop_map(|(p, rows, columns)| Self::from_rows(p, rows, columns))
+                .boxed()
+        }
+    }
+
+    impl Matrix {
+        /// Generate an arbitrary row-reduced matrix.
+        ///
+        /// This is more interesting than just generating an arbitrary matrix and row-reducing. If
+        /// we pick a matrix uniformly at random in the space of all $n \times m$ matrices, it has a
+        /// very high probability of having full rank with all its pivots in the first $n$ columns.
+        /// This implies that, after projecting to the space of row-reduced matrices, the output is
+        /// very likely to be an identity matrix augmented by a random matrix. If $m$ is
+        /// significantly larger than $n$, this is only a tiny subspace of the space of all
+        /// row-reduced matrices.
+        ///
+        /// While a search through *all* $n \times m$ matrices will also cover all row-reduced
+        /// matrices, in practice this space is so large that we only test a vanishingly small
+        /// fraction of it. Therefore, if a method that is sensitive to the pivot structure of the
+        /// input matrix is proptested using `arbitrary_with`, it is unlikely that the tests will
+        /// cover many matrices with interesting pivots, while those are the most likely to cause
+        /// bugs. This function attempts to generate a matrix that is chosen uniformly at random
+        /// directly in the space of all row-reduced matrices.
+        ///
+        /// In practice, this is not quite right. There is no randomness in the code; instead we
+        /// generate a `Strategy` that samples from only the space of row-reduced matrices. Also,
+        /// depending on the parameters, the strategy may output matrices that are not all of the
+        /// same size or even over the same ground field, so using the word "space" is slightly
+        /// improper, mathematically speaking.
+        pub fn arbitrary_rref_with(args: MatrixArbParams) -> impl Strategy<Value = Self> {
+            Self::arbitrary_with(args)
+                .prop_flat_map(|m| {
+                    let column_vec = (0..m.columns()).collect::<Vec<_>>();
+                    let smallest_dim = std::cmp::min(m.rows(), m.columns());
+                    let pivot_cols = proptest::sample::subsequence(column_vec, 0..=smallest_dim);
+                    (Just(m), pivot_cols)
+                })
+                .prop_map(|(mut m, pivot_cols)| {
+                    // Ensure rows start with 0s followed by a 1 in their pivot column
+                    for (row_idx, row) in m.iter_mut().enumerate() {
+                        if let Some(&col_idx) = pivot_cols.get(row_idx) {
+                            row.slice_mut(0, col_idx).set_to_zero();
+                            row.set_entry(col_idx, 1);
+                        } else {
+                            row.set_to_zero();
+                        }
+                    }
+                    // Set all other entries in the pivot columns to 0
+                    for (row_idx, &col_idx) in pivot_cols.iter().enumerate() {
+                        for row in m.iter_mut().take(row_idx) {
+                            row.set_entry(col_idx, 0);
+                        }
+                    }
+                    m
+                })
+        }
+
+        pub fn arbitrary_rref() -> impl Strategy<Value = Self> {
+            Self::arbitrary_rref_with(MatrixArbParams::default())
+        }
+    }
+}
+
 /// This models an augmented matrix.
 ///
 /// In an ideal world, this will have no public fields. The inner matrix
@@ -2529,6 +2769,8 @@
 
 #[cfg(test)]
 mod tests {
+    use proptest::prelude::*;
+
     use super::*;
 
     #[test]
@@ -2584,5 +2826,15 @@
             assert_eq!(m.pivots(), &goal_pivots)
         }
     }
+
+    proptest! {
+        // Test that `arbitrary_rref` generates matrices in rref.
+        #[test]
+        fn test_arbitrary_rref(m in Matrix::arbitrary_rref()) {
+            let mut m_red = m.clone();
+            m_red.row_reduce();
+            prop_assert_eq!(m, m_red);
+        }
+    }
 }
 

\ No newline at end of file diff --git a/docs/src/fp/matrix/mod.rs.html b/docs/src/fp/matrix/mod.rs.html index b82b45f6f..8b2facb2b 100644 --- a/docs/src/fp/matrix/mod.rs.html +++ b/docs/src/fp/matrix/mod.rs.html @@ -38,6 +38,8 @@ 13 14 15 +16 +17
// mod basis;
 mod affine;
 mod matrix_inner;
@@ -53,4 +55,6 @@
 pub use quasi_inverse::QuasiInverse;
 pub use subquotient::Subquotient;
 pub use subspace::Subspace;
+#[cfg(feature = "proptest")]
+pub use {matrix_inner::arbitrary::*, subquotient::arbitrary::*, subspace::arbitrary::*};
 
\ No newline at end of file diff --git a/docs/src/fp/matrix/subquotient.rs.html b/docs/src/fp/matrix/subquotient.rs.html index afc23fcda..480a7697c 100644 --- a/docs/src/fp/matrix/subquotient.rs.html +++ b/docs/src/fp/matrix/subquotient.rs.html @@ -246,6 +246,67 @@ 221 222 223 +224 +225 +226 +227 +228 +229 +230 +231 +232 +233 +234 +235 +236 +237 +238 +239 +240 +241 +242 +243 +244 +245 +246 +247 +248 +249 +250 +251 +252 +253 +254 +255 +256 +257 +258 +259 +260 +261 +262 +263 +264 +265 +266 +267 +268 +269 +270 +271 +272 +273 +274 +275 +276 +277 +278 +279 +280 +281 +282 +283 +284
use super::Subspace;
 use crate::{
     matrix::Matrix,
@@ -344,10 +405,8 @@
 
     /// The pivot columns of the complement to the subspace
     pub fn complement_pivots(&self) -> impl Iterator<Item = usize> + '_ {
-        (0..self.ambient_dimension()).filter(|&i| {
-            !self.quotient.pivots().contains(&(i as isize))
-                && !self.gens.pivots().contains(&(i as isize))
-        })
+        (0..self.ambient_dimension())
+            .filter(|&i| self.quotient.pivots()[i] < 0 && self.gens.pivots()[i] < 0)
     }
 
     pub fn quotient(&mut self, elt: FpSlice) {
@@ -432,9 +491,62 @@
     }
 }
 
+#[cfg(feature = "proptest")]
+pub mod arbitrary {
+    use proptest::prelude::*;
+
+    use super::*;
+    use crate::matrix::subspace::arbitrary::SubspaceArbParams;
+    pub use crate::matrix::subspace::arbitrary::MAX_DIM;
+
+    #[derive(Debug, Clone)]
+    pub struct SubquotientArbParams {
+        pub p: Option<ValidPrime>,
+        pub dim: BoxedStrategy<usize>,
+    }
+
+    impl Default for SubquotientArbParams {
+        fn default() -> Self {
+            Self {
+                p: None,
+                dim: (0..=MAX_DIM).boxed(),
+            }
+        }
+    }
+
+    impl Arbitrary for Subquotient {
+        type Parameters = SubquotientArbParams;
+        type Strategy = BoxedStrategy<Self>;
+
+        fn arbitrary_with(args: Self::Parameters) -> Self::Strategy {
+            let p = match args.p {
+                Some(p) => Just(p).boxed(),
+                None => any::<ValidPrime>().boxed(),
+            };
+
+            (p, args.dim)
+                .prop_flat_map(|(p, dim)| {
+                    let sub = Subspace::arbitrary_with(SubspaceArbParams {
+                        p: Some(p),
+                        dim: Just(dim).boxed(),
+                    });
+                    let quotient = Subspace::arbitrary_with(SubspaceArbParams {
+                        p: Some(p),
+                        dim: Just(dim).boxed(),
+                    });
+
+                    (sub, quotient)
+                })
+                .prop_map(|(sub, quotient)| Self::from_parts(sub, quotient))
+                .boxed()
+        }
+    }
+}
+
 #[cfg(test)]
 mod tests {
     use expect_test::expect;
+    use proptest::prelude::*;
 
     use super::*;
 
@@ -468,5 +580,15 @@
 
         assert_eq!(sq.gens().count(), 1);
     }
+
+    proptest! {
+        #[test]
+        fn test_sum_quotient_gens_complement_is_ambient(sq: Subquotient) {
+            let quotient_dim = sq.zeros().dimension();
+            let gens_dim = sq.gens().count();
+            let complement_dim = sq.complement_pivots().count();
+            assert_eq!(quotient_dim + gens_dim + complement_dim, sq.ambient_dimension());
+        }
+    }
 }
 
\ No newline at end of file diff --git a/docs/src/fp/matrix/subspace.rs.html b/docs/src/fp/matrix/subspace.rs.html index 44faf0983..88665ecf4 100644 --- a/docs/src/fp/matrix/subspace.rs.html +++ b/docs/src/fp/matrix/subspace.rs.html @@ -323,6 +323,53 @@ 298 299 300 +301 +302 +303 +304 +305 +306 +307 +308 +309 +310 +311 +312 +313 +314 +315 +316 +317 +318 +319 +320 +321 +322 +323 +324 +325 +326 +327 +328 +329 +330 +331 +332 +333 +334 +335 +336 +337 +338 +339 +340 +341 +342 +343 +344 +345 +346 +347
use std::{
     io::{Read, Write},
     ops::Deref,
@@ -623,4 +670,51 @@
         Ok(())
     }
 }
+
+#[cfg(feature = "proptest")]
+pub mod arbitrary {
+    use proptest::prelude::*;
+
+    use super::*;
+    use crate::matrix::matrix_inner::arbitrary::MatrixArbParams;
+    pub use crate::matrix::matrix_inner::arbitrary::MAX_COLUMNS as MAX_DIM;
+
+    #[derive(Debug, Clone)]
+    pub struct SubspaceArbParams {
+        pub p: Option<ValidPrime>,
+        pub dim: BoxedStrategy<usize>,
+    }
+
+    impl Default for SubspaceArbParams {
+        fn default() -> Self {
+            Self {
+                p: None,
+                dim: (0..=MAX_DIM).boxed(),
+            }
+        }
+    }
+
+    impl Arbitrary for Subspace {
+        type Parameters = SubspaceArbParams;
+        type Strategy = BoxedStrategy<Self>;
+
+        fn arbitrary_with(args: Self::Parameters) -> Self::Strategy {
+            let p = match args.p {
+                Some(p) => Just(p).boxed(),
+                None => any::<ValidPrime>().boxed(),
+            };
+
+            (p, args.dim)
+                .prop_flat_map(move |(p, dim)| {
+                    Matrix::arbitrary_rref_with(MatrixArbParams {
+                        p: Some(p),
+                        rows: (0..=dim + 1).boxed(),
+                        columns: Just(dim).boxed(),
+                    })
+                })
+                .prop_map(Self::from_matrix)
+                .boxed()
+        }
+    }
+}
 
\ No newline at end of file diff --git a/docs/src/fp/vector/impl_fqvector.rs.html b/docs/src/fp/vector/impl_fqvector.rs.html index 5992bf8de..3e607f3bc 100644 --- a/docs/src/fp/vector/impl_fqvector.rs.html +++ b/docs/src/fp/vector/impl_fqvector.rs.html @@ -433,6 +433,48 @@ 408 409 410 +411 +412 +413 +414 +415 +416 +417 +418 +419 +420 +421 +422 +423 +424 +425 +426 +427 +428 +429 +430 +431 +432 +433 +434 +435 +436 +437 +438 +439 +440 +441 +442 +443 +444 +445 +446 +447 +448 +449 +450 +451 +452
use std::io;
 
 use itertools::Itertools;
@@ -843,4 +885,46 @@
         self.as_slice().fmt(f)
     }
 }
+
+#[cfg(feature = "proptest")]
+pub mod arbitrary {
+    use proptest::prelude::*;
+
+    use super::*;
+
+    pub const MAX_LEN: usize = 10_000;
+
+    #[derive(Debug, Clone)]
+    pub struct FqVectorArbParams<F> {
+        pub fq: Option<F>,
+        pub len: BoxedStrategy<usize>,
+    }
+
+    impl<F> Default for FqVectorArbParams<F> {
+        fn default() -> Self {
+            Self {
+                fq: None,
+                len: (0..=MAX_LEN).boxed(),
+            }
+        }
+    }
+
+    impl<F: Field> Arbitrary for FqVector<F> {
+        type Parameters = FqVectorArbParams<F>;
+        type Strategy = BoxedStrategy<Self>;
+
+        fn arbitrary_with(args: Self::Parameters) -> Self::Strategy {
+            let fq = match args.fq {
+                Some(fq) => Just(fq).boxed(),
+                None => any::<F>().boxed(),
+            };
+            (fq, args.len)
+                .prop_flat_map(|(fq, len)| {
+                    (Just(fq), proptest::collection::vec(fq.arb_element(), len))
+                })
+                .prop_map(|(fq, v)| Self::from_slice(fq, &v))
+                .boxed()
+        }
+    }
+}
 
\ No newline at end of file diff --git a/docs/src/fp/vector/mod.rs.html b/docs/src/fp/vector/mod.rs.html index dc563e0e7..e8f7753d1 100644 --- a/docs/src/fp/vector/mod.rs.html +++ b/docs/src/fp/vector/mod.rs.html @@ -1111,6 +1111,8 @@ mod iter; pub use fp_wrapper::*; +#[cfg(feature = "proptest")] +pub use impl_fqvector::arbitrary; pub use inner::*; #[cfg(test)] @@ -1118,14 +1120,12 @@ use itertools::Itertools; use proptest::prelude::*; - use super::inner::FqVector; + use super::{arbitrary::MAX_LEN as MAX_TEST_VEC_LEN, inner::FqVector}; use crate::{ field::{element::FieldElement, fp::F2, Field}, limb, }; - pub const MAX_TEST_VEC_LEN: usize = 10_000; - pub struct VectorDiffEntry<F: Field> { pub index: usize, pub left: FieldElement<F>, diff --git a/docs/sseq/coordinates/generator/struct.BidegreeGenerator.html b/docs/sseq/coordinates/generator/struct.BidegreeGenerator.html index 219adbf43..b185258a8 100644 --- a/docs/sseq/coordinates/generator/struct.BidegreeGenerator.html +++ b/docs/sseq/coordinates/generator/struct.BidegreeGenerator.html @@ -30,8 +30,8 @@ sequences.

Fields§

§degree: Bidegree

Bidegree of the element

§idx: usize

Position in the canonical basis for this bidegree

-

Implementations§

source§

impl BidegreeGenerator

source

pub fn new<T: Into<Bidegree>>(degree: T, idx: usize) -> Self

source

pub fn s_t(s: u32, t: i32, idx: usize) -> Self

source

pub fn n_s(n: i32, s: u32, idx: usize) -> Self

source

pub fn s(&self) -> u32

source

pub fn t(&self) -> i32

source

pub fn degree(&self) -> Bidegree

source

pub fn n(&self) -> i32

source

pub fn idx(&self) -> usize

source

pub fn into_element(self, p: ValidPrime, ambient: usize) -> BidegreeElement

Trait Implementations§

source§

impl Clone for BidegreeGenerator

source§

fn clone(&self) -> BidegreeGenerator

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for BidegreeGenerator

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for BidegreeGenerator

source§

fn default() -> BidegreeGenerator

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for BidegreeGenerator

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where - __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for BidegreeGenerator

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<(Bidegree, usize)> for BidegreeGenerator

source§

fn from(tuple: (Bidegree, usize)) -> Self

Converts to this type from the input type.
source§

impl Hash for BidegreeGenerator

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where +

Implementations§

source§

impl BidegreeGenerator

source

pub fn new<T: Into<Bidegree>>(degree: T, idx: usize) -> Self

source

pub fn s_t(s: u32, t: i32, idx: usize) -> Self

source

pub fn n_s(n: i32, s: u32, idx: usize) -> Self

source

pub fn s(&self) -> u32

source

pub fn t(&self) -> i32

source

pub fn degree(&self) -> Bidegree

source

pub fn n(&self) -> i32

source

pub fn idx(&self) -> usize

source

pub fn into_element(self, p: ValidPrime, ambient: usize) -> BidegreeElement

Trait Implementations§

source§

impl Clone for BidegreeGenerator

source§

fn clone(&self) -> BidegreeGenerator

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for BidegreeGenerator

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for BidegreeGenerator

source§

fn default() -> BidegreeGenerator

Returns the “default value” for a type. Read more
source§

impl<'de> Deserialize<'de> for BidegreeGenerator

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where + __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for BidegreeGenerator

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<(Bidegree, usize)> for BidegreeGenerator

source§

fn from(tuple: (Bidegree, usize)) -> Self

Converts to this type from the input type.
source§

impl Hash for BidegreeGenerator

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq for BidegreeGenerator

source§

fn eq(&self, other: &BidegreeGenerator) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always diff --git a/docs/trait.impl/core/clone/trait.Clone.js b/docs/trait.impl/core/clone/trait.Clone.js index fe6568379..d7451ee35 100644 --- a/docs/trait.impl/core/clone/trait.Clone.js +++ b/docs/trait.impl/core/clone/trait.Clone.js @@ -2,7 +2,7 @@ "algebra":[["impl Clone for AlgebraType"],["impl Clone for AlgebraBasisElt"],["impl Clone for AlgebraNode"],["impl Clone for BocksteinOrSq"],["impl Clone for AdemBasisElement"],["impl Clone for MilnorBasisElement"],["impl Clone for PolynomialAlgebraMonomial"],["impl Clone for OperationGeneratorPair"],["impl<A: Algebra> Clone for FiniteDimensionalModule<A>"],["impl<S: Module, T: Module<Algebra = S::Algebra>> Clone for FullModuleHomomorphism<S, T>"]], "bivec":[["impl<T: Clone> Clone for BiVec<T>"]], "ext":[["impl Clone for SaveDirectory"],["impl Clone for SaveKind"],["impl Clone for MilnorSubalgebra"],["impl Clone for Config"]], -"fp":[["impl Clone for PrimeError"],["impl Clone for FpVector"],["impl Clone for SmallFqElement"],["impl Clone for LimbBitIndexPair"],["impl Clone for AffineSubspace"],["impl Clone for Matrix"],["impl Clone for QuasiInverse"],["impl Clone for Subquotient"],["impl Clone for Subspace"],["impl Clone for P2"],["impl Clone for P3"],["impl Clone for P5"],["impl Clone for P7"],["impl Clone for ValidPrime"],["impl<'a> Clone for FpSlice<'a>"],["impl<'a, F: Clone + Field> Clone for FqSlice<'a, F>"],["impl<F: Clone + FieldInternal> Clone for FieldElement<F>
where\n F::ElementContainer: Clone,
"],["impl<F: Clone + Field> Clone for FqVector<F>"],["impl<P: Clone> Clone for Fp<P>"],["impl<P: Clone> Clone for SmallFq<P>"],["impl<const N: usize> Clone for AugmentedMatrix<N>"]], +"fp":[["impl Clone for PrimeError"],["impl Clone for FpVector"],["impl Clone for SmallFqElement"],["impl Clone for LimbBitIndexPair"],["impl Clone for AffineSubspace"],["impl Clone for MatrixArbParams"],["impl Clone for Matrix"],["impl Clone for QuasiInverse"],["impl Clone for SubquotientArbParams"],["impl Clone for Subquotient"],["impl Clone for SubspaceArbParams"],["impl Clone for Subspace"],["impl Clone for P2"],["impl Clone for P3"],["impl Clone for P5"],["impl Clone for P7"],["impl Clone for ValidPrime"],["impl<'a> Clone for FpSlice<'a>"],["impl<'a, F: Clone + Field> Clone for FqSlice<'a, F>"],["impl<F: Clone + FieldInternal> Clone for FieldElement<F>
where\n F::ElementContainer: Clone,
"],["impl<F: Clone + Field> Clone for FqVector<F>"],["impl<F: Clone> Clone for FqVectorArbParams<F>"],["impl<P: Clone> Clone for Fp<P>"],["impl<P: Clone> Clone for SmallFq<P>"],["impl<const N: usize> Clone for AugmentedMatrix<N>"]], "once":[["impl Clone for OooTracker"],["impl<T: Clone> Clone for OnceBiVec<T>"],["impl<T: Clone> Clone for OnceVec<T>"]], "sseq":[["impl Clone for Bidegree"],["impl Clone for BidegreeElement"],["impl Clone for BidegreeGenerator"],["impl<T> Clone for BidegreeRange<'_, T>"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/trait.impl/core/default/trait.Default.js b/docs/trait.impl/core/default/trait.Default.js index 922577c38..8e0c64b70 100644 --- a/docs/trait.impl/core/default/trait.Default.js +++ b/docs/trait.impl/core/default/trait.Default.js @@ -1,7 +1,7 @@ (function() {var implementors = { "algebra":[["impl Default for Matrix2D"],["impl Default for MilnorBasisElement"],["impl Default for MilnorProfile"],["impl Default for PPartAllocation"],["impl Default for PolynomialAlgebraTableEntry"]], "bivec":[["impl<T> Default for BiVec<T>"]], -"fp":[["impl Default for M4riTable"]], +"fp":[["impl Default for M4riTable"],["impl Default for MatrixArbParams"],["impl Default for SubquotientArbParams"],["impl Default for SubspaceArbParams"],["impl<F> Default for FqVectorArbParams<F>"]], "once":[["impl Default for OooTracker"],["impl<T> Default for OnceVec<T>"],["impl<T> Default for Page<T>"]], "sseq":[["impl Default for Bidegree"],["impl Default for BidegreeGenerator"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/trait.impl/core/fmt/trait.Debug.js b/docs/trait.impl/core/fmt/trait.Debug.js index e922b4742..60937fa30 100644 --- a/docs/trait.impl/core/fmt/trait.Debug.js +++ b/docs/trait.impl/core/fmt/trait.Debug.js @@ -2,7 +2,7 @@ "algebra":[["impl Debug for PorBockstein"],["impl Debug for AlgebraType"],["impl Debug for AlgebraBasisElt"],["impl Debug for AlgebraNode"],["impl Debug for BocksteinOrSq"],["impl Debug for AdemBasisElement"],["impl Debug for Matrix2D"],["impl Debug for MilnorBasisElement"],["impl Debug for MilnorProfile"],["impl Debug for PolynomialAlgebraMonomial"],["impl Debug for AlgebraSpec"],["impl Debug for BlockStructure"],["impl Debug for GeneratorBasisEltPair"],["impl Debug for OperationGeneratorPair"],["impl Debug for ModuleFailedRelationError"],["impl Debug for RPSpec"]], "bivec":[["impl<T: Debug> Debug for BiVec<T>"]], "ext":[["impl Debug for SaveDirectory"],["impl Debug for SaveKind"],["impl Debug for Config"]], -"fp":[["impl Debug for PrimeError"],["impl Debug for FpVector"],["impl Debug for SmallFqElement"],["impl Debug for LimbBitIndexPair"],["impl Debug for AffineSubspace"],["impl Debug for M4riTable"],["impl Debug for Matrix"],["impl Debug for QuasiInverse"],["impl Debug for Subquotient"],["impl Debug for Subspace"],["impl Debug for P2"],["impl Debug for P3"],["impl Debug for P5"],["impl Debug for P7"],["impl Debug for ValidPrime"],["impl<'a> Debug for FpSlice<'a>"],["impl<'a> Debug for FpSliceMut<'a>"],["impl<'a, F: Debug + Field> Debug for FqSlice<'a, F>"],["impl<'a, F: Debug + Field> Debug for FqSliceMut<'a, F>"],["impl<F: Debug + FieldInternal> Debug for FieldElement<F>
where\n F::ElementContainer: Debug,
"],["impl<F: Debug + Field> Debug for FqVector<F>"],["impl<P: Prime> Debug for SmallFq<P>"],["impl<P: Debug> Debug for Fp<P>"]], +"fp":[["impl Debug for PrimeError"],["impl Debug for FpVector"],["impl Debug for SmallFqElement"],["impl Debug for LimbBitIndexPair"],["impl Debug for AffineSubspace"],["impl Debug for M4riTable"],["impl Debug for MatrixArbParams"],["impl Debug for Matrix"],["impl Debug for QuasiInverse"],["impl Debug for SubquotientArbParams"],["impl Debug for Subquotient"],["impl Debug for SubspaceArbParams"],["impl Debug for Subspace"],["impl Debug for P2"],["impl Debug for P3"],["impl Debug for P5"],["impl Debug for P7"],["impl Debug for ValidPrime"],["impl<'a> Debug for FpSlice<'a>"],["impl<'a> Debug for FpSliceMut<'a>"],["impl<'a, F: Debug + Field> Debug for FqSlice<'a, F>"],["impl<'a, F: Debug + Field> Debug for FqSliceMut<'a, F>"],["impl<F: Debug + FieldInternal> Debug for FieldElement<F>
where\n F::ElementContainer: Debug,
"],["impl<F: Debug + Field> Debug for FqVector<F>"],["impl<F: Debug> Debug for FqVectorArbParams<F>"],["impl<P: Prime> Debug for SmallFq<P>"],["impl<P: Debug> Debug for Fp<P>"]], "once":[["impl<T: Debug> Debug for OnceBiVec<T>"],["impl<T: Debug> Debug for OnceVec<T>"]], "sseq":[["impl Debug for Bidegree"],["impl Debug for BidegreeElement"],["impl Debug for BidegreeGenerator"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/trait.impl/core/marker/trait.Freeze.js b/docs/trait.impl/core/marker/trait.Freeze.js index 62dfc4d6b..649c074c2 100644 --- a/docs/trait.impl/core/marker/trait.Freeze.js +++ b/docs/trait.impl/core/marker/trait.Freeze.js @@ -3,7 +3,7 @@ "bivec":[["impl<T> Freeze for BiVec<T>",1,["bivec::BiVec"]]], "chart":[["impl Freeze for Orientation",1,["chart::Orientation"]],["impl<T> Freeze for SvgBackend<T>
where\n T: Freeze,
",1,["chart::SvgBackend"]],["impl<T> Freeze for TikzBackend<T>
where\n T: Freeze,
",1,["chart::TikzBackend"]]], "ext":[["impl Freeze for ChainComplexGrading",1,["ext::chain_complex::ChainComplexGrading"]],["impl Freeze for Magic",1,["ext::nassau::Magic"]],["impl Freeze for SaveDirectory",1,["ext::save::SaveDirectory"]],["impl Freeze for SaveKind",1,["ext::save::SaveKind"]],["impl Freeze for MilnorSubalgebra",1,["ext::nassau::MilnorSubalgebra"]],["impl Freeze for SenderData",1,["ext::nassau::SenderData"]],["impl Freeze for SubalgebraIterator",1,["ext::nassau::SubalgebraIterator"]],["impl Freeze for SenderData",1,["ext::resolution::SenderData"]],["impl Freeze for Throughput",1,["ext::utils::logging::Throughput"]],["impl Freeze for Config",1,["ext::utils::Config"]],["impl<'a> Freeze for SignatureIterator<'a>",1,["ext::nassau::SignatureIterator"]],["impl<'a, CC> Freeze for StemIterator<'a, CC>
where\n CC: ?Sized,
",1,["ext::chain_complex::StemIterator"]],["impl<A> !Freeze for SecondaryHomotopy<A>",1,["ext::secondary::SecondaryHomotopy"]],["impl<A> Freeze for SaveFile<A>",1,["ext::save::SaveFile"]],["impl<A> Freeze for SecondaryComposite<A>",1,["ext::secondary::SecondaryComposite"]],["impl<CC> !Freeze for SecondaryResolution<CC>",1,["ext::secondary::SecondaryResolution"]],["impl<F> Freeze for ChainMap<F>",1,["ext::chain_complex::ChainMap"]],["impl<M> !Freeze for Resolution<M>",1,["ext::nassau::Resolution"]],["impl<M, F> Freeze for FiniteChainComplex<M, F>",1,["ext::chain_complex::finite_chain_complex::FiniteChainComplex"]],["impl<M, F1, F2, CC> Freeze for FiniteAugmentedChainComplex<M, F1, F2, CC>",1,["ext::chain_complex::finite_chain_complex::FiniteAugmentedChainComplex"]],["impl<T> Freeze for ChecksumReader<T>
where\n T: Freeze,
",1,["ext::save::ChecksumReader"]],["impl<T> Freeze for ChecksumWriter<T>
where\n T: Freeze,
",1,["ext::save::ChecksumWriter"]],["impl<T> Freeze for LogWriter<T>
where\n T: Freeze,
",1,["ext::utils::logging::LogWriter"]],["impl<const U: bool, CC> !Freeze for MuResolution<U, CC>",1,["ext::resolution::MuResolution"]],["impl<const U: bool, CC1, CC2> !Freeze for MuResolutionHomomorphism<U, CC1, CC2>",1,["ext::resolution_homomorphism::MuResolutionHomomorphism"]]], -"fp":[["impl Freeze for PrimeError",1,["fp::prime::PrimeError"]],["impl Freeze for FpVector",1,["fp::vector::fp_wrapper::FpVector"]],["impl Freeze for SmallFqElement",1,["fp::field::smallfq::SmallFqElement"]],["impl Freeze for LimbBitIndexPair",1,["fp::limb::LimbBitIndexPair"]],["impl Freeze for AffineSubspace",1,["fp::matrix::affine::AffineSubspace"]],["impl Freeze for M4riTable",1,["fp::matrix::m4ri::M4riTable"]],["impl Freeze for Matrix",1,["fp::matrix::matrix_inner::Matrix"]],["impl Freeze for QuasiInverse",1,["fp::matrix::quasi_inverse::QuasiInverse"]],["impl Freeze for Subquotient",1,["fp::matrix::subquotient::Subquotient"]],["impl Freeze for Subspace",1,["fp::matrix::subspace::Subspace"]],["impl Freeze for BinomialIterator",1,["fp::prime::iter::BinomialIterator"]],["impl Freeze for BitflagIterator",1,["fp::prime::iter::BitflagIterator"]],["impl Freeze for P2",1,["fp::prime::primes_generic::P2"]],["impl Freeze for P3",1,["fp::prime::primes_generic::P3"]],["impl Freeze for P5",1,["fp::prime::primes_generic::P5"]],["impl Freeze for P7",1,["fp::prime::primes_generic::P7"]],["impl Freeze for ValidPrime",1,["fp::prime::primes_generic::ValidPrime"]],["impl<'a> Freeze for FpSlice<'a>",1,["fp::vector::fp_wrapper::FpSlice"]],["impl<'a> Freeze for FpSliceMut<'a>",1,["fp::vector::fp_wrapper::FpSliceMut"]],["impl<'a> Freeze for FpVectorIterator<'a>",1,["fp::vector::fp_wrapper::FpVectorIterator"]],["impl<'a> Freeze for FpVectorNonZeroIterator<'a>",1,["fp::vector::fp_wrapper::FpVectorNonZeroIterator"]],["impl<'a> Freeze for MatrixSliceMut<'a>",1,["fp::matrix::matrix_inner::MatrixSliceMut"]],["impl<'a, F> Freeze for FqSlice<'a, F>
where\n F: Freeze,
",1,["fp::vector::inner::FqSlice"]],["impl<'a, F> Freeze for FqSliceMut<'a, F>
where\n F: Freeze,
",1,["fp::vector::inner::FqSliceMut"]],["impl<'a, F> Freeze for FqVectorIterator<'a, F>
where\n F: Freeze,
",1,["fp::vector::iter::FqVectorIterator"]],["impl<'a, F> Freeze for FqVectorNonZeroIterator<'a, F>
where\n F: Freeze,
",1,["fp::vector::iter::FqVectorNonZeroIterator"]],["impl<F> Freeze for FieldElement<F>",1,["fp::field::element::FieldElement"]],["impl<F> Freeze for LimbIterator<F>
where\n F: Freeze,
",1,["fp::field::field_internal::LimbIterator"]],["impl<F> Freeze for FqVector<F>
where\n F: Freeze,
",1,["fp::vector::inner::FqVector"]],["impl<P> Freeze for Fp<P>
where\n P: Freeze,
",1,["fp::field::fp::Fp"]],["impl<P> Freeze for SmallFq<P>
where\n P: Freeze,
",1,["fp::field::smallfq::SmallFq"]],["impl<const N: usize> Freeze for AugmentedMatrix<N>",1,["fp::matrix::matrix_inner::AugmentedMatrix"]]], +"fp":[["impl Freeze for PrimeError",1,["fp::prime::PrimeError"]],["impl Freeze for FpVector",1,["fp::vector::fp_wrapper::FpVector"]],["impl Freeze for SmallFqElement",1,["fp::field::smallfq::SmallFqElement"]],["impl Freeze for LimbBitIndexPair",1,["fp::limb::LimbBitIndexPair"]],["impl Freeze for AffineSubspace",1,["fp::matrix::affine::AffineSubspace"]],["impl Freeze for M4riTable",1,["fp::matrix::m4ri::M4riTable"]],["impl Freeze for MatrixArbParams",1,["fp::matrix::matrix_inner::arbitrary::MatrixArbParams"]],["impl Freeze for Matrix",1,["fp::matrix::matrix_inner::Matrix"]],["impl Freeze for QuasiInverse",1,["fp::matrix::quasi_inverse::QuasiInverse"]],["impl Freeze for SubquotientArbParams",1,["fp::matrix::subquotient::arbitrary::SubquotientArbParams"]],["impl Freeze for Subquotient",1,["fp::matrix::subquotient::Subquotient"]],["impl Freeze for SubspaceArbParams",1,["fp::matrix::subspace::arbitrary::SubspaceArbParams"]],["impl Freeze for Subspace",1,["fp::matrix::subspace::Subspace"]],["impl Freeze for BinomialIterator",1,["fp::prime::iter::BinomialIterator"]],["impl Freeze for BitflagIterator",1,["fp::prime::iter::BitflagIterator"]],["impl Freeze for P2",1,["fp::prime::primes_generic::P2"]],["impl Freeze for P3",1,["fp::prime::primes_generic::P3"]],["impl Freeze for P5",1,["fp::prime::primes_generic::P5"]],["impl Freeze for P7",1,["fp::prime::primes_generic::P7"]],["impl Freeze for ValidPrime",1,["fp::prime::primes_generic::ValidPrime"]],["impl<'a> Freeze for FpSlice<'a>",1,["fp::vector::fp_wrapper::FpSlice"]],["impl<'a> Freeze for FpSliceMut<'a>",1,["fp::vector::fp_wrapper::FpSliceMut"]],["impl<'a> Freeze for FpVectorIterator<'a>",1,["fp::vector::fp_wrapper::FpVectorIterator"]],["impl<'a> Freeze for FpVectorNonZeroIterator<'a>",1,["fp::vector::fp_wrapper::FpVectorNonZeroIterator"]],["impl<'a> Freeze for MatrixSliceMut<'a>",1,["fp::matrix::matrix_inner::MatrixSliceMut"]],["impl<'a, F> Freeze for FqSlice<'a, F>
where\n F: Freeze,
",1,["fp::vector::inner::FqSlice"]],["impl<'a, F> Freeze for FqSliceMut<'a, F>
where\n F: Freeze,
",1,["fp::vector::inner::FqSliceMut"]],["impl<'a, F> Freeze for FqVectorIterator<'a, F>
where\n F: Freeze,
",1,["fp::vector::iter::FqVectorIterator"]],["impl<'a, F> Freeze for FqVectorNonZeroIterator<'a, F>
where\n F: Freeze,
",1,["fp::vector::iter::FqVectorNonZeroIterator"]],["impl<F> Freeze for FieldElement<F>",1,["fp::field::element::FieldElement"]],["impl<F> Freeze for LimbIterator<F>
where\n F: Freeze,
",1,["fp::field::field_internal::LimbIterator"]],["impl<F> Freeze for FqVectorArbParams<F>
where\n F: Freeze,
",1,["fp::vector::impl_fqvector::arbitrary::FqVectorArbParams"]],["impl<F> Freeze for FqVector<F>
where\n F: Freeze,
",1,["fp::vector::inner::FqVector"]],["impl<P> Freeze for Fp<P>
where\n P: Freeze,
",1,["fp::field::fp::Fp"]],["impl<P> Freeze for SmallFq<P>
where\n P: Freeze,
",1,["fp::field::smallfq::SmallFq"]],["impl<const N: usize> Freeze for AugmentedMatrix<N>",1,["fp::matrix::matrix_inner::AugmentedMatrix"]]], "once":[["impl Freeze for OooTracker",1,["once::OooTracker"]],["impl<T> !Freeze for OnceBiVec<T>",1,["once::OnceBiVec"]],["impl<T> !Freeze for OnceVec<T>",1,["once::OnceVec"]],["impl<T> Freeze for Page<T>",1,["once::Page"]]], "sseq":[["impl !Freeze for DenseBigradedModule",1,["sseq::bigraded::DenseBigradedModule"]],["impl Freeze for Bidegree",1,["sseq::coordinates::bidegree::Bidegree"]],["impl Freeze for BidegreeElement",1,["sseq::coordinates::element::BidegreeElement"]],["impl Freeze for BidegreeGenerator",1,["sseq::coordinates::generator::BidegreeGenerator"]],["impl Freeze for Differential",1,["sseq::differential::Differential"]],["impl Freeze for Adams",1,["sseq::sseq::Adams"]],["impl Freeze for Product",1,["sseq::sseq::Product"]],["impl<'a, T> Freeze for BidegreeRange<'a, T>",1,["sseq::coordinates::range::BidegreeRange"]],["impl<P> Freeze for Sseq<P>",1,["sseq::sseq::Sseq"]]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/trait.impl/core/marker/trait.Send.js b/docs/trait.impl/core/marker/trait.Send.js index 19020baf6..d6a45d7f7 100644 --- a/docs/trait.impl/core/marker/trait.Send.js +++ b/docs/trait.impl/core/marker/trait.Send.js @@ -3,7 +3,7 @@ "bivec":[["impl<T> Send for BiVec<T>
where\n T: Send,
",1,["bivec::BiVec"]]], "chart":[["impl Send for Orientation",1,["chart::Orientation"]],["impl<T> Send for SvgBackend<T>
where\n T: Send,
",1,["chart::SvgBackend"]],["impl<T> Send for TikzBackend<T>
where\n T: Send,
",1,["chart::TikzBackend"]]], "ext":[["impl Send for ChainComplexGrading",1,["ext::chain_complex::ChainComplexGrading"]],["impl Send for Magic",1,["ext::nassau::Magic"]],["impl Send for SaveDirectory",1,["ext::save::SaveDirectory"]],["impl Send for SaveKind",1,["ext::save::SaveKind"]],["impl Send for MilnorSubalgebra",1,["ext::nassau::MilnorSubalgebra"]],["impl Send for SenderData",1,["ext::nassau::SenderData"]],["impl Send for SubalgebraIterator",1,["ext::nassau::SubalgebraIterator"]],["impl Send for SenderData",1,["ext::resolution::SenderData"]],["impl Send for Throughput",1,["ext::utils::logging::Throughput"]],["impl Send for Config",1,["ext::utils::Config"]],["impl<'a> Send for SignatureIterator<'a>",1,["ext::nassau::SignatureIterator"]],["impl<'a, CC> Send for StemIterator<'a, CC>
where\n CC: Sync + ?Sized,
",1,["ext::chain_complex::StemIterator"]],["impl<A> Send for SaveFile<A>",1,["ext::save::SaveFile"]],["impl<A> Send for SecondaryComposite<A>",1,["ext::secondary::SecondaryComposite"]],["impl<A> Send for SecondaryHomotopy<A>",1,["ext::secondary::SecondaryHomotopy"]],["impl<CC> Send for SecondaryResolution<CC>",1,["ext::secondary::SecondaryResolution"]],["impl<F> Send for ChainMap<F>",1,["ext::chain_complex::ChainMap"]],["impl<M> Send for Resolution<M>",1,["ext::nassau::Resolution"]],["impl<M, F> Send for FiniteChainComplex<M, F>",1,["ext::chain_complex::finite_chain_complex::FiniteChainComplex"]],["impl<M, F1, F2, CC> Send for FiniteAugmentedChainComplex<M, F1, F2, CC>",1,["ext::chain_complex::finite_chain_complex::FiniteAugmentedChainComplex"]],["impl<T> Send for ChecksumReader<T>
where\n T: Send,
",1,["ext::save::ChecksumReader"]],["impl<T> Send for ChecksumWriter<T>
where\n T: Send,
",1,["ext::save::ChecksumWriter"]],["impl<T> Send for LogWriter<T>
where\n T: Send,
",1,["ext::utils::logging::LogWriter"]],["impl<const U: bool, CC> Send for MuResolution<U, CC>",1,["ext::resolution::MuResolution"]],["impl<const U: bool, CC1, CC2> Send for MuResolutionHomomorphism<U, CC1, CC2>",1,["ext::resolution_homomorphism::MuResolutionHomomorphism"]]], -"fp":[["impl Send for PrimeError",1,["fp::prime::PrimeError"]],["impl Send for FpVector",1,["fp::vector::fp_wrapper::FpVector"]],["impl Send for SmallFqElement",1,["fp::field::smallfq::SmallFqElement"]],["impl Send for LimbBitIndexPair",1,["fp::limb::LimbBitIndexPair"]],["impl Send for AffineSubspace",1,["fp::matrix::affine::AffineSubspace"]],["impl Send for M4riTable",1,["fp::matrix::m4ri::M4riTable"]],["impl Send for Matrix",1,["fp::matrix::matrix_inner::Matrix"]],["impl Send for QuasiInverse",1,["fp::matrix::quasi_inverse::QuasiInverse"]],["impl Send for Subquotient",1,["fp::matrix::subquotient::Subquotient"]],["impl Send for Subspace",1,["fp::matrix::subspace::Subspace"]],["impl Send for BinomialIterator",1,["fp::prime::iter::BinomialIterator"]],["impl Send for BitflagIterator",1,["fp::prime::iter::BitflagIterator"]],["impl Send for P2",1,["fp::prime::primes_generic::P2"]],["impl Send for P3",1,["fp::prime::primes_generic::P3"]],["impl Send for P5",1,["fp::prime::primes_generic::P5"]],["impl Send for P7",1,["fp::prime::primes_generic::P7"]],["impl Send for ValidPrime",1,["fp::prime::primes_generic::ValidPrime"]],["impl<'a> Send for FpSlice<'a>",1,["fp::vector::fp_wrapper::FpSlice"]],["impl<'a> Send for FpSliceMut<'a>",1,["fp::vector::fp_wrapper::FpSliceMut"]],["impl<'a> Send for FpVectorIterator<'a>",1,["fp::vector::fp_wrapper::FpVectorIterator"]],["impl<'a> Send for FpVectorNonZeroIterator<'a>",1,["fp::vector::fp_wrapper::FpVectorNonZeroIterator"]],["impl<'a> Send for MatrixSliceMut<'a>",1,["fp::matrix::matrix_inner::MatrixSliceMut"]],["impl<'a, F> Send for FqSlice<'a, F>
where\n F: Send,
",1,["fp::vector::inner::FqSlice"]],["impl<'a, F> Send for FqSliceMut<'a, F>
where\n F: Send,
",1,["fp::vector::inner::FqSliceMut"]],["impl<'a, F> Send for FqVectorIterator<'a, F>
where\n F: Send,
",1,["fp::vector::iter::FqVectorIterator"]],["impl<'a, F> Send for FqVectorNonZeroIterator<'a, F>
where\n F: Send,
",1,["fp::vector::iter::FqVectorNonZeroIterator"]],["impl<F> Send for FieldElement<F>
where\n F: Send,\n <F as FieldInternal>::ElementContainer: Send,
",1,["fp::field::element::FieldElement"]],["impl<F> Send for LimbIterator<F>
where\n F: Send,
",1,["fp::field::field_internal::LimbIterator"]],["impl<F> Send for FqVector<F>
where\n F: Send,
",1,["fp::vector::inner::FqVector"]],["impl<P> Send for Fp<P>
where\n P: Send,
",1,["fp::field::fp::Fp"]],["impl<P> Send for SmallFq<P>
where\n P: Send,
",1,["fp::field::smallfq::SmallFq"]],["impl<const N: usize> Send for AugmentedMatrix<N>",1,["fp::matrix::matrix_inner::AugmentedMatrix"]]], +"fp":[["impl !Send for MatrixArbParams",1,["fp::matrix::matrix_inner::arbitrary::MatrixArbParams"]],["impl !Send for SubquotientArbParams",1,["fp::matrix::subquotient::arbitrary::SubquotientArbParams"]],["impl !Send for SubspaceArbParams",1,["fp::matrix::subspace::arbitrary::SubspaceArbParams"]],["impl Send for PrimeError",1,["fp::prime::PrimeError"]],["impl Send for FpVector",1,["fp::vector::fp_wrapper::FpVector"]],["impl Send for SmallFqElement",1,["fp::field::smallfq::SmallFqElement"]],["impl Send for LimbBitIndexPair",1,["fp::limb::LimbBitIndexPair"]],["impl Send for AffineSubspace",1,["fp::matrix::affine::AffineSubspace"]],["impl Send for M4riTable",1,["fp::matrix::m4ri::M4riTable"]],["impl Send for Matrix",1,["fp::matrix::matrix_inner::Matrix"]],["impl Send for QuasiInverse",1,["fp::matrix::quasi_inverse::QuasiInverse"]],["impl Send for Subquotient",1,["fp::matrix::subquotient::Subquotient"]],["impl Send for Subspace",1,["fp::matrix::subspace::Subspace"]],["impl Send for BinomialIterator",1,["fp::prime::iter::BinomialIterator"]],["impl Send for BitflagIterator",1,["fp::prime::iter::BitflagIterator"]],["impl Send for P2",1,["fp::prime::primes_generic::P2"]],["impl Send for P3",1,["fp::prime::primes_generic::P3"]],["impl Send for P5",1,["fp::prime::primes_generic::P5"]],["impl Send for P7",1,["fp::prime::primes_generic::P7"]],["impl Send for ValidPrime",1,["fp::prime::primes_generic::ValidPrime"]],["impl<'a> Send for FpSlice<'a>",1,["fp::vector::fp_wrapper::FpSlice"]],["impl<'a> Send for FpSliceMut<'a>",1,["fp::vector::fp_wrapper::FpSliceMut"]],["impl<'a> Send for FpVectorIterator<'a>",1,["fp::vector::fp_wrapper::FpVectorIterator"]],["impl<'a> Send for FpVectorNonZeroIterator<'a>",1,["fp::vector::fp_wrapper::FpVectorNonZeroIterator"]],["impl<'a> Send for MatrixSliceMut<'a>",1,["fp::matrix::matrix_inner::MatrixSliceMut"]],["impl<'a, F> Send for FqSlice<'a, F>
where\n F: Send,
",1,["fp::vector::inner::FqSlice"]],["impl<'a, F> Send for FqSliceMut<'a, F>
where\n F: Send,
",1,["fp::vector::inner::FqSliceMut"]],["impl<'a, F> Send for FqVectorIterator<'a, F>
where\n F: Send,
",1,["fp::vector::iter::FqVectorIterator"]],["impl<'a, F> Send for FqVectorNonZeroIterator<'a, F>
where\n F: Send,
",1,["fp::vector::iter::FqVectorNonZeroIterator"]],["impl<F> !Send for FqVectorArbParams<F>",1,["fp::vector::impl_fqvector::arbitrary::FqVectorArbParams"]],["impl<F> Send for FieldElement<F>
where\n F: Send,\n <F as FieldInternal>::ElementContainer: Send,
",1,["fp::field::element::FieldElement"]],["impl<F> Send for LimbIterator<F>
where\n F: Send,
",1,["fp::field::field_internal::LimbIterator"]],["impl<F> Send for FqVector<F>
where\n F: Send,
",1,["fp::vector::inner::FqVector"]],["impl<P> Send for Fp<P>
where\n P: Send,
",1,["fp::field::fp::Fp"]],["impl<P> Send for SmallFq<P>
where\n P: Send,
",1,["fp::field::smallfq::SmallFq"]],["impl<const N: usize> Send for AugmentedMatrix<N>",1,["fp::matrix::matrix_inner::AugmentedMatrix"]]], "once":[["impl Send for OooTracker",1,["once::OooTracker"]],["impl<T> !Send for Page<T>",1,["once::Page"]],["impl<T> Send for OnceBiVec<T>
where\n T: Send,
",1,["once::OnceBiVec"]],["impl<T: Send> Send for OnceVec<T>"]], "sseq":[["impl Send for DenseBigradedModule",1,["sseq::bigraded::DenseBigradedModule"]],["impl Send for Bidegree",1,["sseq::coordinates::bidegree::Bidegree"]],["impl Send for BidegreeElement",1,["sseq::coordinates::element::BidegreeElement"]],["impl Send for BidegreeGenerator",1,["sseq::coordinates::generator::BidegreeGenerator"]],["impl Send for Differential",1,["sseq::differential::Differential"]],["impl Send for Adams",1,["sseq::sseq::Adams"]],["impl Send for Product",1,["sseq::sseq::Product"]],["impl<'a, T> Send for BidegreeRange<'a, T>
where\n T: Sync,
",1,["sseq::coordinates::range::BidegreeRange"]],["impl<P> Send for Sseq<P>
where\n P: Send,
",1,["sseq::sseq::Sseq"]]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/trait.impl/core/marker/trait.Sync.js b/docs/trait.impl/core/marker/trait.Sync.js index bcbf6c92f..dbdb6caca 100644 --- a/docs/trait.impl/core/marker/trait.Sync.js +++ b/docs/trait.impl/core/marker/trait.Sync.js @@ -3,7 +3,7 @@ "bivec":[["impl<T> Sync for BiVec<T>
where\n T: Sync,
",1,["bivec::BiVec"]]], "chart":[["impl Sync for Orientation",1,["chart::Orientation"]],["impl<T> Sync for SvgBackend<T>
where\n T: Sync,
",1,["chart::SvgBackend"]],["impl<T> Sync for TikzBackend<T>
where\n T: Sync,
",1,["chart::TikzBackend"]]], "ext":[["impl Sync for ChainComplexGrading",1,["ext::chain_complex::ChainComplexGrading"]],["impl Sync for Magic",1,["ext::nassau::Magic"]],["impl Sync for SaveDirectory",1,["ext::save::SaveDirectory"]],["impl Sync for SaveKind",1,["ext::save::SaveKind"]],["impl Sync for MilnorSubalgebra",1,["ext::nassau::MilnorSubalgebra"]],["impl Sync for SenderData",1,["ext::nassau::SenderData"]],["impl Sync for SubalgebraIterator",1,["ext::nassau::SubalgebraIterator"]],["impl Sync for SenderData",1,["ext::resolution::SenderData"]],["impl Sync for Throughput",1,["ext::utils::logging::Throughput"]],["impl Sync for Config",1,["ext::utils::Config"]],["impl<'a> Sync for SignatureIterator<'a>",1,["ext::nassau::SignatureIterator"]],["impl<'a, CC> Sync for StemIterator<'a, CC>
where\n CC: Sync + ?Sized,
",1,["ext::chain_complex::StemIterator"]],["impl<A> Sync for SaveFile<A>",1,["ext::save::SaveFile"]],["impl<A> Sync for SecondaryComposite<A>",1,["ext::secondary::SecondaryComposite"]],["impl<A> Sync for SecondaryHomotopy<A>",1,["ext::secondary::SecondaryHomotopy"]],["impl<CC> Sync for SecondaryResolution<CC>",1,["ext::secondary::SecondaryResolution"]],["impl<F> Sync for ChainMap<F>",1,["ext::chain_complex::ChainMap"]],["impl<M> Sync for Resolution<M>",1,["ext::nassau::Resolution"]],["impl<M, F> Sync for FiniteChainComplex<M, F>",1,["ext::chain_complex::finite_chain_complex::FiniteChainComplex"]],["impl<M, F1, F2, CC> Sync for FiniteAugmentedChainComplex<M, F1, F2, CC>",1,["ext::chain_complex::finite_chain_complex::FiniteAugmentedChainComplex"]],["impl<T> Sync for ChecksumReader<T>
where\n T: Sync,
",1,["ext::save::ChecksumReader"]],["impl<T> Sync for ChecksumWriter<T>
where\n T: Sync,
",1,["ext::save::ChecksumWriter"]],["impl<T> Sync for LogWriter<T>
where\n T: Sync,
",1,["ext::utils::logging::LogWriter"]],["impl<const U: bool, CC> Sync for MuResolution<U, CC>",1,["ext::resolution::MuResolution"]],["impl<const U: bool, CC1, CC2> Sync for MuResolutionHomomorphism<U, CC1, CC2>",1,["ext::resolution_homomorphism::MuResolutionHomomorphism"]]], -"fp":[["impl Sync for PrimeError",1,["fp::prime::PrimeError"]],["impl Sync for FpVector",1,["fp::vector::fp_wrapper::FpVector"]],["impl Sync for SmallFqElement",1,["fp::field::smallfq::SmallFqElement"]],["impl Sync for LimbBitIndexPair",1,["fp::limb::LimbBitIndexPair"]],["impl Sync for AffineSubspace",1,["fp::matrix::affine::AffineSubspace"]],["impl Sync for M4riTable",1,["fp::matrix::m4ri::M4riTable"]],["impl Sync for Matrix",1,["fp::matrix::matrix_inner::Matrix"]],["impl Sync for QuasiInverse",1,["fp::matrix::quasi_inverse::QuasiInverse"]],["impl Sync for Subquotient",1,["fp::matrix::subquotient::Subquotient"]],["impl Sync for Subspace",1,["fp::matrix::subspace::Subspace"]],["impl Sync for BinomialIterator",1,["fp::prime::iter::BinomialIterator"]],["impl Sync for BitflagIterator",1,["fp::prime::iter::BitflagIterator"]],["impl Sync for P2",1,["fp::prime::primes_generic::P2"]],["impl Sync for P3",1,["fp::prime::primes_generic::P3"]],["impl Sync for P5",1,["fp::prime::primes_generic::P5"]],["impl Sync for P7",1,["fp::prime::primes_generic::P7"]],["impl Sync for ValidPrime",1,["fp::prime::primes_generic::ValidPrime"]],["impl<'a> Sync for FpSlice<'a>",1,["fp::vector::fp_wrapper::FpSlice"]],["impl<'a> Sync for FpSliceMut<'a>",1,["fp::vector::fp_wrapper::FpSliceMut"]],["impl<'a> Sync for FpVectorIterator<'a>",1,["fp::vector::fp_wrapper::FpVectorIterator"]],["impl<'a> Sync for FpVectorNonZeroIterator<'a>",1,["fp::vector::fp_wrapper::FpVectorNonZeroIterator"]],["impl<'a> Sync for MatrixSliceMut<'a>",1,["fp::matrix::matrix_inner::MatrixSliceMut"]],["impl<'a, F> Sync for FqSlice<'a, F>
where\n F: Sync,
",1,["fp::vector::inner::FqSlice"]],["impl<'a, F> Sync for FqSliceMut<'a, F>
where\n F: Sync,
",1,["fp::vector::inner::FqSliceMut"]],["impl<'a, F> Sync for FqVectorIterator<'a, F>
where\n F: Sync,
",1,["fp::vector::iter::FqVectorIterator"]],["impl<'a, F> Sync for FqVectorNonZeroIterator<'a, F>
where\n F: Sync,
",1,["fp::vector::iter::FqVectorNonZeroIterator"]],["impl<F> Sync for FieldElement<F>
where\n F: Sync,\n <F as FieldInternal>::ElementContainer: Sync,
",1,["fp::field::element::FieldElement"]],["impl<F> Sync for LimbIterator<F>
where\n F: Sync,
",1,["fp::field::field_internal::LimbIterator"]],["impl<F> Sync for FqVector<F>
where\n F: Sync,
",1,["fp::vector::inner::FqVector"]],["impl<P> Sync for Fp<P>
where\n P: Sync,
",1,["fp::field::fp::Fp"]],["impl<P> Sync for SmallFq<P>
where\n P: Sync,
",1,["fp::field::smallfq::SmallFq"]],["impl<const N: usize> Sync for AugmentedMatrix<N>",1,["fp::matrix::matrix_inner::AugmentedMatrix"]]], +"fp":[["impl !Sync for MatrixArbParams",1,["fp::matrix::matrix_inner::arbitrary::MatrixArbParams"]],["impl !Sync for SubquotientArbParams",1,["fp::matrix::subquotient::arbitrary::SubquotientArbParams"]],["impl !Sync for SubspaceArbParams",1,["fp::matrix::subspace::arbitrary::SubspaceArbParams"]],["impl Sync for PrimeError",1,["fp::prime::PrimeError"]],["impl Sync for FpVector",1,["fp::vector::fp_wrapper::FpVector"]],["impl Sync for SmallFqElement",1,["fp::field::smallfq::SmallFqElement"]],["impl Sync for LimbBitIndexPair",1,["fp::limb::LimbBitIndexPair"]],["impl Sync for AffineSubspace",1,["fp::matrix::affine::AffineSubspace"]],["impl Sync for M4riTable",1,["fp::matrix::m4ri::M4riTable"]],["impl Sync for Matrix",1,["fp::matrix::matrix_inner::Matrix"]],["impl Sync for QuasiInverse",1,["fp::matrix::quasi_inverse::QuasiInverse"]],["impl Sync for Subquotient",1,["fp::matrix::subquotient::Subquotient"]],["impl Sync for Subspace",1,["fp::matrix::subspace::Subspace"]],["impl Sync for BinomialIterator",1,["fp::prime::iter::BinomialIterator"]],["impl Sync for BitflagIterator",1,["fp::prime::iter::BitflagIterator"]],["impl Sync for P2",1,["fp::prime::primes_generic::P2"]],["impl Sync for P3",1,["fp::prime::primes_generic::P3"]],["impl Sync for P5",1,["fp::prime::primes_generic::P5"]],["impl Sync for P7",1,["fp::prime::primes_generic::P7"]],["impl Sync for ValidPrime",1,["fp::prime::primes_generic::ValidPrime"]],["impl<'a> Sync for FpSlice<'a>",1,["fp::vector::fp_wrapper::FpSlice"]],["impl<'a> Sync for FpSliceMut<'a>",1,["fp::vector::fp_wrapper::FpSliceMut"]],["impl<'a> Sync for FpVectorIterator<'a>",1,["fp::vector::fp_wrapper::FpVectorIterator"]],["impl<'a> Sync for FpVectorNonZeroIterator<'a>",1,["fp::vector::fp_wrapper::FpVectorNonZeroIterator"]],["impl<'a> Sync for MatrixSliceMut<'a>",1,["fp::matrix::matrix_inner::MatrixSliceMut"]],["impl<'a, F> Sync for FqSlice<'a, F>
where\n F: Sync,
",1,["fp::vector::inner::FqSlice"]],["impl<'a, F> Sync for FqSliceMut<'a, F>
where\n F: Sync,
",1,["fp::vector::inner::FqSliceMut"]],["impl<'a, F> Sync for FqVectorIterator<'a, F>
where\n F: Sync,
",1,["fp::vector::iter::FqVectorIterator"]],["impl<'a, F> Sync for FqVectorNonZeroIterator<'a, F>
where\n F: Sync,
",1,["fp::vector::iter::FqVectorNonZeroIterator"]],["impl<F> !Sync for FqVectorArbParams<F>",1,["fp::vector::impl_fqvector::arbitrary::FqVectorArbParams"]],["impl<F> Sync for FieldElement<F>
where\n F: Sync,\n <F as FieldInternal>::ElementContainer: Sync,
",1,["fp::field::element::FieldElement"]],["impl<F> Sync for LimbIterator<F>
where\n F: Sync,
",1,["fp::field::field_internal::LimbIterator"]],["impl<F> Sync for FqVector<F>
where\n F: Sync,
",1,["fp::vector::inner::FqVector"]],["impl<P> Sync for Fp<P>
where\n P: Sync,
",1,["fp::field::fp::Fp"]],["impl<P> Sync for SmallFq<P>
where\n P: Sync,
",1,["fp::field::smallfq::SmallFq"]],["impl<const N: usize> Sync for AugmentedMatrix<N>",1,["fp::matrix::matrix_inner::AugmentedMatrix"]]], "once":[["impl Sync for OooTracker",1,["once::OooTracker"]],["impl<T> !Sync for Page<T>",1,["once::Page"]],["impl<T> Sync for OnceBiVec<T>
where\n T: Sync,
",1,["once::OnceBiVec"]],["impl<T: Sync> Sync for OnceVec<T>"]], "sseq":[["impl Sync for DenseBigradedModule",1,["sseq::bigraded::DenseBigradedModule"]],["impl Sync for Bidegree",1,["sseq::coordinates::bidegree::Bidegree"]],["impl Sync for BidegreeElement",1,["sseq::coordinates::element::BidegreeElement"]],["impl Sync for BidegreeGenerator",1,["sseq::coordinates::generator::BidegreeGenerator"]],["impl Sync for Differential",1,["sseq::differential::Differential"]],["impl Sync for Adams",1,["sseq::sseq::Adams"]],["impl Sync for Product",1,["sseq::sseq::Product"]],["impl<'a, T> Sync for BidegreeRange<'a, T>
where\n T: Sync,
",1,["sseq::coordinates::range::BidegreeRange"]],["impl<P> Sync for Sseq<P>
where\n P: Sync,
",1,["sseq::sseq::Sseq"]]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/trait.impl/core/marker/trait.Unpin.js b/docs/trait.impl/core/marker/trait.Unpin.js index 4863b111b..43f793966 100644 --- a/docs/trait.impl/core/marker/trait.Unpin.js +++ b/docs/trait.impl/core/marker/trait.Unpin.js @@ -3,7 +3,7 @@ "bivec":[["impl<T> Unpin for BiVec<T>
where\n T: Unpin,
",1,["bivec::BiVec"]]], "chart":[["impl Unpin for Orientation",1,["chart::Orientation"]],["impl<T> Unpin for SvgBackend<T>
where\n T: Unpin,
",1,["chart::SvgBackend"]],["impl<T> Unpin for TikzBackend<T>
where\n T: Unpin,
",1,["chart::TikzBackend"]]], "ext":[["impl Unpin for ChainComplexGrading",1,["ext::chain_complex::ChainComplexGrading"]],["impl Unpin for Magic",1,["ext::nassau::Magic"]],["impl Unpin for SaveDirectory",1,["ext::save::SaveDirectory"]],["impl Unpin for SaveKind",1,["ext::save::SaveKind"]],["impl Unpin for MilnorSubalgebra",1,["ext::nassau::MilnorSubalgebra"]],["impl Unpin for SenderData",1,["ext::nassau::SenderData"]],["impl Unpin for SubalgebraIterator",1,["ext::nassau::SubalgebraIterator"]],["impl Unpin for SenderData",1,["ext::resolution::SenderData"]],["impl Unpin for Throughput",1,["ext::utils::logging::Throughput"]],["impl Unpin for Config",1,["ext::utils::Config"]],["impl<'a> Unpin for SignatureIterator<'a>",1,["ext::nassau::SignatureIterator"]],["impl<'a, CC> Unpin for StemIterator<'a, CC>
where\n CC: ?Sized,
",1,["ext::chain_complex::StemIterator"]],["impl<A> Unpin for SaveFile<A>",1,["ext::save::SaveFile"]],["impl<A> Unpin for SecondaryComposite<A>
where\n <A as PairAlgebra>::Element: Unpin,
",1,["ext::secondary::SecondaryComposite"]],["impl<A> Unpin for SecondaryHomotopy<A>",1,["ext::secondary::SecondaryHomotopy"]],["impl<CC> Unpin for SecondaryResolution<CC>",1,["ext::secondary::SecondaryResolution"]],["impl<F> Unpin for ChainMap<F>
where\n F: Unpin,
",1,["ext::chain_complex::ChainMap"]],["impl<M> Unpin for Resolution<M>",1,["ext::nassau::Resolution"]],["impl<M, F> Unpin for FiniteChainComplex<M, F>",1,["ext::chain_complex::finite_chain_complex::FiniteChainComplex"]],["impl<M, F1, F2, CC> Unpin for FiniteAugmentedChainComplex<M, F1, F2, CC>",1,["ext::chain_complex::finite_chain_complex::FiniteAugmentedChainComplex"]],["impl<T> Unpin for ChecksumReader<T>
where\n T: Unpin,
",1,["ext::save::ChecksumReader"]],["impl<T> Unpin for ChecksumWriter<T>
where\n T: Unpin,
",1,["ext::save::ChecksumWriter"]],["impl<T> Unpin for LogWriter<T>
where\n T: Unpin,
",1,["ext::utils::logging::LogWriter"]],["impl<const U: bool, CC> Unpin for MuResolution<U, CC>",1,["ext::resolution::MuResolution"]],["impl<const U: bool, CC1, CC2> Unpin for MuResolutionHomomorphism<U, CC1, CC2>",1,["ext::resolution_homomorphism::MuResolutionHomomorphism"]]], -"fp":[["impl Unpin for PrimeError",1,["fp::prime::PrimeError"]],["impl Unpin for FpVector",1,["fp::vector::fp_wrapper::FpVector"]],["impl Unpin for SmallFqElement",1,["fp::field::smallfq::SmallFqElement"]],["impl Unpin for LimbBitIndexPair",1,["fp::limb::LimbBitIndexPair"]],["impl Unpin for AffineSubspace",1,["fp::matrix::affine::AffineSubspace"]],["impl Unpin for M4riTable",1,["fp::matrix::m4ri::M4riTable"]],["impl Unpin for Matrix",1,["fp::matrix::matrix_inner::Matrix"]],["impl Unpin for QuasiInverse",1,["fp::matrix::quasi_inverse::QuasiInverse"]],["impl Unpin for Subquotient",1,["fp::matrix::subquotient::Subquotient"]],["impl Unpin for Subspace",1,["fp::matrix::subspace::Subspace"]],["impl Unpin for BinomialIterator",1,["fp::prime::iter::BinomialIterator"]],["impl Unpin for BitflagIterator",1,["fp::prime::iter::BitflagIterator"]],["impl Unpin for P2",1,["fp::prime::primes_generic::P2"]],["impl Unpin for P3",1,["fp::prime::primes_generic::P3"]],["impl Unpin for P5",1,["fp::prime::primes_generic::P5"]],["impl Unpin for P7",1,["fp::prime::primes_generic::P7"]],["impl Unpin for ValidPrime",1,["fp::prime::primes_generic::ValidPrime"]],["impl<'a> Unpin for FpSlice<'a>",1,["fp::vector::fp_wrapper::FpSlice"]],["impl<'a> Unpin for FpSliceMut<'a>",1,["fp::vector::fp_wrapper::FpSliceMut"]],["impl<'a> Unpin for FpVectorIterator<'a>",1,["fp::vector::fp_wrapper::FpVectorIterator"]],["impl<'a> Unpin for FpVectorNonZeroIterator<'a>",1,["fp::vector::fp_wrapper::FpVectorNonZeroIterator"]],["impl<'a> Unpin for MatrixSliceMut<'a>",1,["fp::matrix::matrix_inner::MatrixSliceMut"]],["impl<'a, F> Unpin for FqSlice<'a, F>
where\n F: Unpin,
",1,["fp::vector::inner::FqSlice"]],["impl<'a, F> Unpin for FqSliceMut<'a, F>
where\n F: Unpin,
",1,["fp::vector::inner::FqSliceMut"]],["impl<'a, F> Unpin for FqVectorIterator<'a, F>
where\n F: Unpin,
",1,["fp::vector::iter::FqVectorIterator"]],["impl<'a, F> Unpin for FqVectorNonZeroIterator<'a, F>
where\n F: Unpin,
",1,["fp::vector::iter::FqVectorNonZeroIterator"]],["impl<F> Unpin for FieldElement<F>
where\n F: Unpin,\n <F as FieldInternal>::ElementContainer: Unpin,
",1,["fp::field::element::FieldElement"]],["impl<F> Unpin for LimbIterator<F>
where\n F: Unpin,
",1,["fp::field::field_internal::LimbIterator"]],["impl<F> Unpin for FqVector<F>
where\n F: Unpin,
",1,["fp::vector::inner::FqVector"]],["impl<P> Unpin for Fp<P>
where\n P: Unpin,
",1,["fp::field::fp::Fp"]],["impl<P> Unpin for SmallFq<P>
where\n P: Unpin,
",1,["fp::field::smallfq::SmallFq"]],["impl<const N: usize> Unpin for AugmentedMatrix<N>",1,["fp::matrix::matrix_inner::AugmentedMatrix"]]], +"fp":[["impl Unpin for PrimeError",1,["fp::prime::PrimeError"]],["impl Unpin for FpVector",1,["fp::vector::fp_wrapper::FpVector"]],["impl Unpin for SmallFqElement",1,["fp::field::smallfq::SmallFqElement"]],["impl Unpin for LimbBitIndexPair",1,["fp::limb::LimbBitIndexPair"]],["impl Unpin for AffineSubspace",1,["fp::matrix::affine::AffineSubspace"]],["impl Unpin for M4riTable",1,["fp::matrix::m4ri::M4riTable"]],["impl Unpin for MatrixArbParams",1,["fp::matrix::matrix_inner::arbitrary::MatrixArbParams"]],["impl Unpin for Matrix",1,["fp::matrix::matrix_inner::Matrix"]],["impl Unpin for QuasiInverse",1,["fp::matrix::quasi_inverse::QuasiInverse"]],["impl Unpin for SubquotientArbParams",1,["fp::matrix::subquotient::arbitrary::SubquotientArbParams"]],["impl Unpin for Subquotient",1,["fp::matrix::subquotient::Subquotient"]],["impl Unpin for SubspaceArbParams",1,["fp::matrix::subspace::arbitrary::SubspaceArbParams"]],["impl Unpin for Subspace",1,["fp::matrix::subspace::Subspace"]],["impl Unpin for BinomialIterator",1,["fp::prime::iter::BinomialIterator"]],["impl Unpin for BitflagIterator",1,["fp::prime::iter::BitflagIterator"]],["impl Unpin for P2",1,["fp::prime::primes_generic::P2"]],["impl Unpin for P3",1,["fp::prime::primes_generic::P3"]],["impl Unpin for P5",1,["fp::prime::primes_generic::P5"]],["impl Unpin for P7",1,["fp::prime::primes_generic::P7"]],["impl Unpin for ValidPrime",1,["fp::prime::primes_generic::ValidPrime"]],["impl<'a> Unpin for FpSlice<'a>",1,["fp::vector::fp_wrapper::FpSlice"]],["impl<'a> Unpin for FpSliceMut<'a>",1,["fp::vector::fp_wrapper::FpSliceMut"]],["impl<'a> Unpin for FpVectorIterator<'a>",1,["fp::vector::fp_wrapper::FpVectorIterator"]],["impl<'a> Unpin for FpVectorNonZeroIterator<'a>",1,["fp::vector::fp_wrapper::FpVectorNonZeroIterator"]],["impl<'a> Unpin for MatrixSliceMut<'a>",1,["fp::matrix::matrix_inner::MatrixSliceMut"]],["impl<'a, F> Unpin for FqSlice<'a, F>
where\n F: Unpin,
",1,["fp::vector::inner::FqSlice"]],["impl<'a, F> Unpin for FqSliceMut<'a, F>
where\n F: Unpin,
",1,["fp::vector::inner::FqSliceMut"]],["impl<'a, F> Unpin for FqVectorIterator<'a, F>
where\n F: Unpin,
",1,["fp::vector::iter::FqVectorIterator"]],["impl<'a, F> Unpin for FqVectorNonZeroIterator<'a, F>
where\n F: Unpin,
",1,["fp::vector::iter::FqVectorNonZeroIterator"]],["impl<F> Unpin for FieldElement<F>
where\n F: Unpin,\n <F as FieldInternal>::ElementContainer: Unpin,
",1,["fp::field::element::FieldElement"]],["impl<F> Unpin for LimbIterator<F>
where\n F: Unpin,
",1,["fp::field::field_internal::LimbIterator"]],["impl<F> Unpin for FqVectorArbParams<F>
where\n F: Unpin,
",1,["fp::vector::impl_fqvector::arbitrary::FqVectorArbParams"]],["impl<F> Unpin for FqVector<F>
where\n F: Unpin,
",1,["fp::vector::inner::FqVector"]],["impl<P> Unpin for Fp<P>
where\n P: Unpin,
",1,["fp::field::fp::Fp"]],["impl<P> Unpin for SmallFq<P>
where\n P: Unpin,
",1,["fp::field::smallfq::SmallFq"]],["impl<const N: usize> Unpin for AugmentedMatrix<N>",1,["fp::matrix::matrix_inner::AugmentedMatrix"]]], "once":[["impl Unpin for OooTracker",1,["once::OooTracker"]],["impl<T> Unpin for OnceBiVec<T>",1,["once::OnceBiVec"]],["impl<T> Unpin for OnceVec<T>",1,["once::OnceVec"]],["impl<T> Unpin for Page<T>",1,["once::Page"]]], "sseq":[["impl Unpin for DenseBigradedModule",1,["sseq::bigraded::DenseBigradedModule"]],["impl Unpin for Bidegree",1,["sseq::coordinates::bidegree::Bidegree"]],["impl Unpin for BidegreeElement",1,["sseq::coordinates::element::BidegreeElement"]],["impl Unpin for BidegreeGenerator",1,["sseq::coordinates::generator::BidegreeGenerator"]],["impl Unpin for Differential",1,["sseq::differential::Differential"]],["impl Unpin for Adams",1,["sseq::sseq::Adams"]],["impl Unpin for Product",1,["sseq::sseq::Product"]],["impl<'a, T> Unpin for BidegreeRange<'a, T>",1,["sseq::coordinates::range::BidegreeRange"]],["impl<P> Unpin for Sseq<P>
where\n P: Unpin,
",1,["sseq::sseq::Sseq"]]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/trait.impl/core/panic/unwind_safe/trait.RefUnwindSafe.js b/docs/trait.impl/core/panic/unwind_safe/trait.RefUnwindSafe.js index 086d7e312..ea2bacefa 100644 --- a/docs/trait.impl/core/panic/unwind_safe/trait.RefUnwindSafe.js +++ b/docs/trait.impl/core/panic/unwind_safe/trait.RefUnwindSafe.js @@ -3,7 +3,7 @@ "bivec":[["impl<T> RefUnwindSafe for BiVec<T>
where\n T: RefUnwindSafe,
",1,["bivec::BiVec"]]], "chart":[["impl RefUnwindSafe for Orientation",1,["chart::Orientation"]],["impl<T> RefUnwindSafe for SvgBackend<T>
where\n T: RefUnwindSafe,
",1,["chart::SvgBackend"]],["impl<T> RefUnwindSafe for TikzBackend<T>
where\n T: RefUnwindSafe,
",1,["chart::TikzBackend"]]], "ext":[["impl RefUnwindSafe for ChainComplexGrading",1,["ext::chain_complex::ChainComplexGrading"]],["impl RefUnwindSafe for Magic",1,["ext::nassau::Magic"]],["impl RefUnwindSafe for SaveDirectory",1,["ext::save::SaveDirectory"]],["impl RefUnwindSafe for SaveKind",1,["ext::save::SaveKind"]],["impl RefUnwindSafe for MilnorSubalgebra",1,["ext::nassau::MilnorSubalgebra"]],["impl RefUnwindSafe for SenderData",1,["ext::nassau::SenderData"]],["impl RefUnwindSafe for SubalgebraIterator",1,["ext::nassau::SubalgebraIterator"]],["impl RefUnwindSafe for SenderData",1,["ext::resolution::SenderData"]],["impl RefUnwindSafe for Throughput",1,["ext::utils::logging::Throughput"]],["impl RefUnwindSafe for Config",1,["ext::utils::Config"]],["impl<'a> RefUnwindSafe for SignatureIterator<'a>",1,["ext::nassau::SignatureIterator"]],["impl<'a, CC> RefUnwindSafe for StemIterator<'a, CC>
where\n CC: RefUnwindSafe + ?Sized,
",1,["ext::chain_complex::StemIterator"]],["impl<A> RefUnwindSafe for SaveFile<A>
where\n A: RefUnwindSafe,
",1,["ext::save::SaveFile"]],["impl<A> RefUnwindSafe for SecondaryComposite<A>",1,["ext::secondary::SecondaryComposite"]],["impl<A> RefUnwindSafe for SecondaryHomotopy<A>",1,["ext::secondary::SecondaryHomotopy"]],["impl<CC> !RefUnwindSafe for SecondaryResolution<CC>",1,["ext::secondary::SecondaryResolution"]],["impl<F> RefUnwindSafe for ChainMap<F>
where\n F: RefUnwindSafe,
",1,["ext::chain_complex::ChainMap"]],["impl<M> RefUnwindSafe for Resolution<M>
where\n M: RefUnwindSafe,
",1,["ext::nassau::Resolution"]],["impl<M, F> RefUnwindSafe for FiniteChainComplex<M, F>
where\n M: RefUnwindSafe,\n F: RefUnwindSafe,
",1,["ext::chain_complex::finite_chain_complex::FiniteChainComplex"]],["impl<M, F1, F2, CC> RefUnwindSafe for FiniteAugmentedChainComplex<M, F1, F2, CC>
where\n CC: RefUnwindSafe,\n M: RefUnwindSafe,\n F2: RefUnwindSafe,\n F1: RefUnwindSafe,
",1,["ext::chain_complex::finite_chain_complex::FiniteAugmentedChainComplex"]],["impl<T> RefUnwindSafe for ChecksumReader<T>
where\n T: RefUnwindSafe,
",1,["ext::save::ChecksumReader"]],["impl<T> RefUnwindSafe for ChecksumWriter<T>
where\n T: RefUnwindSafe,
",1,["ext::save::ChecksumWriter"]],["impl<T> RefUnwindSafe for LogWriter<T>
where\n T: RefUnwindSafe,
",1,["ext::utils::logging::LogWriter"]],["impl<const U: bool, CC> !RefUnwindSafe for MuResolution<U, CC>",1,["ext::resolution::MuResolution"]],["impl<const U: bool, CC1, CC2> RefUnwindSafe for MuResolutionHomomorphism<U, CC1, CC2>",1,["ext::resolution_homomorphism::MuResolutionHomomorphism"]]], -"fp":[["impl RefUnwindSafe for PrimeError",1,["fp::prime::PrimeError"]],["impl RefUnwindSafe for FpVector",1,["fp::vector::fp_wrapper::FpVector"]],["impl RefUnwindSafe for SmallFqElement",1,["fp::field::smallfq::SmallFqElement"]],["impl RefUnwindSafe for LimbBitIndexPair",1,["fp::limb::LimbBitIndexPair"]],["impl RefUnwindSafe for AffineSubspace",1,["fp::matrix::affine::AffineSubspace"]],["impl RefUnwindSafe for M4riTable",1,["fp::matrix::m4ri::M4riTable"]],["impl RefUnwindSafe for Matrix",1,["fp::matrix::matrix_inner::Matrix"]],["impl RefUnwindSafe for QuasiInverse",1,["fp::matrix::quasi_inverse::QuasiInverse"]],["impl RefUnwindSafe for Subquotient",1,["fp::matrix::subquotient::Subquotient"]],["impl RefUnwindSafe for Subspace",1,["fp::matrix::subspace::Subspace"]],["impl RefUnwindSafe for BinomialIterator",1,["fp::prime::iter::BinomialIterator"]],["impl RefUnwindSafe for BitflagIterator",1,["fp::prime::iter::BitflagIterator"]],["impl RefUnwindSafe for P2",1,["fp::prime::primes_generic::P2"]],["impl RefUnwindSafe for P3",1,["fp::prime::primes_generic::P3"]],["impl RefUnwindSafe for P5",1,["fp::prime::primes_generic::P5"]],["impl RefUnwindSafe for P7",1,["fp::prime::primes_generic::P7"]],["impl RefUnwindSafe for ValidPrime",1,["fp::prime::primes_generic::ValidPrime"]],["impl<'a> RefUnwindSafe for FpSlice<'a>",1,["fp::vector::fp_wrapper::FpSlice"]],["impl<'a> RefUnwindSafe for FpSliceMut<'a>",1,["fp::vector::fp_wrapper::FpSliceMut"]],["impl<'a> RefUnwindSafe for FpVectorIterator<'a>",1,["fp::vector::fp_wrapper::FpVectorIterator"]],["impl<'a> RefUnwindSafe for FpVectorNonZeroIterator<'a>",1,["fp::vector::fp_wrapper::FpVectorNonZeroIterator"]],["impl<'a> RefUnwindSafe for MatrixSliceMut<'a>",1,["fp::matrix::matrix_inner::MatrixSliceMut"]],["impl<'a, F> RefUnwindSafe for FqSlice<'a, F>
where\n F: RefUnwindSafe,
",1,["fp::vector::inner::FqSlice"]],["impl<'a, F> RefUnwindSafe for FqSliceMut<'a, F>
where\n F: RefUnwindSafe,
",1,["fp::vector::inner::FqSliceMut"]],["impl<'a, F> RefUnwindSafe for FqVectorIterator<'a, F>
where\n F: RefUnwindSafe,
",1,["fp::vector::iter::FqVectorIterator"]],["impl<'a, F> RefUnwindSafe for FqVectorNonZeroIterator<'a, F>
where\n F: RefUnwindSafe,
",1,["fp::vector::iter::FqVectorNonZeroIterator"]],["impl<F> RefUnwindSafe for FieldElement<F>",1,["fp::field::element::FieldElement"]],["impl<F> RefUnwindSafe for LimbIterator<F>
where\n F: RefUnwindSafe,
",1,["fp::field::field_internal::LimbIterator"]],["impl<F> RefUnwindSafe for FqVector<F>
where\n F: RefUnwindSafe,
",1,["fp::vector::inner::FqVector"]],["impl<P> RefUnwindSafe for Fp<P>
where\n P: RefUnwindSafe,
",1,["fp::field::fp::Fp"]],["impl<P> RefUnwindSafe for SmallFq<P>
where\n P: RefUnwindSafe,
",1,["fp::field::smallfq::SmallFq"]],["impl<const N: usize> RefUnwindSafe for AugmentedMatrix<N>",1,["fp::matrix::matrix_inner::AugmentedMatrix"]]], +"fp":[["impl !RefUnwindSafe for MatrixArbParams",1,["fp::matrix::matrix_inner::arbitrary::MatrixArbParams"]],["impl !RefUnwindSafe for SubquotientArbParams",1,["fp::matrix::subquotient::arbitrary::SubquotientArbParams"]],["impl !RefUnwindSafe for SubspaceArbParams",1,["fp::matrix::subspace::arbitrary::SubspaceArbParams"]],["impl RefUnwindSafe for PrimeError",1,["fp::prime::PrimeError"]],["impl RefUnwindSafe for FpVector",1,["fp::vector::fp_wrapper::FpVector"]],["impl RefUnwindSafe for SmallFqElement",1,["fp::field::smallfq::SmallFqElement"]],["impl RefUnwindSafe for LimbBitIndexPair",1,["fp::limb::LimbBitIndexPair"]],["impl RefUnwindSafe for AffineSubspace",1,["fp::matrix::affine::AffineSubspace"]],["impl RefUnwindSafe for M4riTable",1,["fp::matrix::m4ri::M4riTable"]],["impl RefUnwindSafe for Matrix",1,["fp::matrix::matrix_inner::Matrix"]],["impl RefUnwindSafe for QuasiInverse",1,["fp::matrix::quasi_inverse::QuasiInverse"]],["impl RefUnwindSafe for Subquotient",1,["fp::matrix::subquotient::Subquotient"]],["impl RefUnwindSafe for Subspace",1,["fp::matrix::subspace::Subspace"]],["impl RefUnwindSafe for BinomialIterator",1,["fp::prime::iter::BinomialIterator"]],["impl RefUnwindSafe for BitflagIterator",1,["fp::prime::iter::BitflagIterator"]],["impl RefUnwindSafe for P2",1,["fp::prime::primes_generic::P2"]],["impl RefUnwindSafe for P3",1,["fp::prime::primes_generic::P3"]],["impl RefUnwindSafe for P5",1,["fp::prime::primes_generic::P5"]],["impl RefUnwindSafe for P7",1,["fp::prime::primes_generic::P7"]],["impl RefUnwindSafe for ValidPrime",1,["fp::prime::primes_generic::ValidPrime"]],["impl<'a> RefUnwindSafe for FpSlice<'a>",1,["fp::vector::fp_wrapper::FpSlice"]],["impl<'a> RefUnwindSafe for FpSliceMut<'a>",1,["fp::vector::fp_wrapper::FpSliceMut"]],["impl<'a> RefUnwindSafe for FpVectorIterator<'a>",1,["fp::vector::fp_wrapper::FpVectorIterator"]],["impl<'a> RefUnwindSafe for FpVectorNonZeroIterator<'a>",1,["fp::vector::fp_wrapper::FpVectorNonZeroIterator"]],["impl<'a> RefUnwindSafe for MatrixSliceMut<'a>",1,["fp::matrix::matrix_inner::MatrixSliceMut"]],["impl<'a, F> RefUnwindSafe for FqSlice<'a, F>
where\n F: RefUnwindSafe,
",1,["fp::vector::inner::FqSlice"]],["impl<'a, F> RefUnwindSafe for FqSliceMut<'a, F>
where\n F: RefUnwindSafe,
",1,["fp::vector::inner::FqSliceMut"]],["impl<'a, F> RefUnwindSafe for FqVectorIterator<'a, F>
where\n F: RefUnwindSafe,
",1,["fp::vector::iter::FqVectorIterator"]],["impl<'a, F> RefUnwindSafe for FqVectorNonZeroIterator<'a, F>
where\n F: RefUnwindSafe,
",1,["fp::vector::iter::FqVectorNonZeroIterator"]],["impl<F> !RefUnwindSafe for FqVectorArbParams<F>",1,["fp::vector::impl_fqvector::arbitrary::FqVectorArbParams"]],["impl<F> RefUnwindSafe for FieldElement<F>",1,["fp::field::element::FieldElement"]],["impl<F> RefUnwindSafe for LimbIterator<F>
where\n F: RefUnwindSafe,
",1,["fp::field::field_internal::LimbIterator"]],["impl<F> RefUnwindSafe for FqVector<F>
where\n F: RefUnwindSafe,
",1,["fp::vector::inner::FqVector"]],["impl<P> RefUnwindSafe for Fp<P>
where\n P: RefUnwindSafe,
",1,["fp::field::fp::Fp"]],["impl<P> RefUnwindSafe for SmallFq<P>
where\n P: RefUnwindSafe,
",1,["fp::field::smallfq::SmallFq"]],["impl<const N: usize> RefUnwindSafe for AugmentedMatrix<N>",1,["fp::matrix::matrix_inner::AugmentedMatrix"]]], "once":[["impl RefUnwindSafe for OooTracker",1,["once::OooTracker"]],["impl<T> RefUnwindSafe for OnceBiVec<T>
where\n T: RefUnwindSafe,
",1,["once::OnceBiVec"]],["impl<T> RefUnwindSafe for OnceVec<T>
where\n T: RefUnwindSafe,
",1,["once::OnceVec"]],["impl<T> RefUnwindSafe for Page<T>
where\n T: RefUnwindSafe,
",1,["once::Page"]]], "sseq":[["impl RefUnwindSafe for DenseBigradedModule",1,["sseq::bigraded::DenseBigradedModule"]],["impl RefUnwindSafe for Bidegree",1,["sseq::coordinates::bidegree::Bidegree"]],["impl RefUnwindSafe for BidegreeElement",1,["sseq::coordinates::element::BidegreeElement"]],["impl RefUnwindSafe for BidegreeGenerator",1,["sseq::coordinates::generator::BidegreeGenerator"]],["impl RefUnwindSafe for Differential",1,["sseq::differential::Differential"]],["impl RefUnwindSafe for Adams",1,["sseq::sseq::Adams"]],["impl RefUnwindSafe for Product",1,["sseq::sseq::Product"]],["impl<'a, T> !RefUnwindSafe for BidegreeRange<'a, T>",1,["sseq::coordinates::range::BidegreeRange"]],["impl<P> RefUnwindSafe for Sseq<P>
where\n P: RefUnwindSafe,
",1,["sseq::sseq::Sseq"]]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/trait.impl/core/panic/unwind_safe/trait.UnwindSafe.js b/docs/trait.impl/core/panic/unwind_safe/trait.UnwindSafe.js index dd3635eed..aa47a806b 100644 --- a/docs/trait.impl/core/panic/unwind_safe/trait.UnwindSafe.js +++ b/docs/trait.impl/core/panic/unwind_safe/trait.UnwindSafe.js @@ -3,7 +3,7 @@ "bivec":[["impl<T> UnwindSafe for BiVec<T>
where\n T: UnwindSafe,
",1,["bivec::BiVec"]]], "chart":[["impl UnwindSafe for Orientation",1,["chart::Orientation"]],["impl<T> UnwindSafe for SvgBackend<T>
where\n T: UnwindSafe,
",1,["chart::SvgBackend"]],["impl<T> UnwindSafe for TikzBackend<T>
where\n T: UnwindSafe,
",1,["chart::TikzBackend"]]], "ext":[["impl UnwindSafe for ChainComplexGrading",1,["ext::chain_complex::ChainComplexGrading"]],["impl UnwindSafe for Magic",1,["ext::nassau::Magic"]],["impl UnwindSafe for SaveDirectory",1,["ext::save::SaveDirectory"]],["impl UnwindSafe for SaveKind",1,["ext::save::SaveKind"]],["impl UnwindSafe for MilnorSubalgebra",1,["ext::nassau::MilnorSubalgebra"]],["impl UnwindSafe for SenderData",1,["ext::nassau::SenderData"]],["impl UnwindSafe for SubalgebraIterator",1,["ext::nassau::SubalgebraIterator"]],["impl UnwindSafe for SenderData",1,["ext::resolution::SenderData"]],["impl UnwindSafe for Throughput",1,["ext::utils::logging::Throughput"]],["impl UnwindSafe for Config",1,["ext::utils::Config"]],["impl<'a> UnwindSafe for SignatureIterator<'a>",1,["ext::nassau::SignatureIterator"]],["impl<'a, CC> UnwindSafe for StemIterator<'a, CC>
where\n CC: RefUnwindSafe + ?Sized,
",1,["ext::chain_complex::StemIterator"]],["impl<A> UnwindSafe for SaveFile<A>
where\n A: RefUnwindSafe,
",1,["ext::save::SaveFile"]],["impl<A> UnwindSafe for SecondaryComposite<A>",1,["ext::secondary::SecondaryComposite"]],["impl<A> UnwindSafe for SecondaryHomotopy<A>",1,["ext::secondary::SecondaryHomotopy"]],["impl<CC> UnwindSafe for SecondaryResolution<CC>",1,["ext::secondary::SecondaryResolution"]],["impl<F> UnwindSafe for ChainMap<F>
where\n F: UnwindSafe,
",1,["ext::chain_complex::ChainMap"]],["impl<M> UnwindSafe for Resolution<M>
where\n M: RefUnwindSafe,
",1,["ext::nassau::Resolution"]],["impl<M, F> UnwindSafe for FiniteChainComplex<M, F>
where\n M: RefUnwindSafe,\n F: RefUnwindSafe,
",1,["ext::chain_complex::finite_chain_complex::FiniteChainComplex"]],["impl<M, F1, F2, CC> UnwindSafe for FiniteAugmentedChainComplex<M, F1, F2, CC>
where\n CC: RefUnwindSafe,\n M: RefUnwindSafe,\n F2: RefUnwindSafe,\n F1: RefUnwindSafe,
",1,["ext::chain_complex::finite_chain_complex::FiniteAugmentedChainComplex"]],["impl<T> UnwindSafe for ChecksumReader<T>
where\n T: UnwindSafe,
",1,["ext::save::ChecksumReader"]],["impl<T> UnwindSafe for ChecksumWriter<T>
where\n T: UnwindSafe,
",1,["ext::save::ChecksumWriter"]],["impl<T> UnwindSafe for LogWriter<T>
where\n T: UnwindSafe,
",1,["ext::utils::logging::LogWriter"]],["impl<const U: bool, CC> UnwindSafe for MuResolution<U, CC>",1,["ext::resolution::MuResolution"]],["impl<const U: bool, CC1, CC2> UnwindSafe for MuResolutionHomomorphism<U, CC1, CC2>",1,["ext::resolution_homomorphism::MuResolutionHomomorphism"]]], -"fp":[["impl UnwindSafe for PrimeError",1,["fp::prime::PrimeError"]],["impl UnwindSafe for FpVector",1,["fp::vector::fp_wrapper::FpVector"]],["impl UnwindSafe for SmallFqElement",1,["fp::field::smallfq::SmallFqElement"]],["impl UnwindSafe for LimbBitIndexPair",1,["fp::limb::LimbBitIndexPair"]],["impl UnwindSafe for AffineSubspace",1,["fp::matrix::affine::AffineSubspace"]],["impl UnwindSafe for M4riTable",1,["fp::matrix::m4ri::M4riTable"]],["impl UnwindSafe for Matrix",1,["fp::matrix::matrix_inner::Matrix"]],["impl UnwindSafe for QuasiInverse",1,["fp::matrix::quasi_inverse::QuasiInverse"]],["impl UnwindSafe for Subquotient",1,["fp::matrix::subquotient::Subquotient"]],["impl UnwindSafe for Subspace",1,["fp::matrix::subspace::Subspace"]],["impl UnwindSafe for BinomialIterator",1,["fp::prime::iter::BinomialIterator"]],["impl UnwindSafe for BitflagIterator",1,["fp::prime::iter::BitflagIterator"]],["impl UnwindSafe for P2",1,["fp::prime::primes_generic::P2"]],["impl UnwindSafe for P3",1,["fp::prime::primes_generic::P3"]],["impl UnwindSafe for P5",1,["fp::prime::primes_generic::P5"]],["impl UnwindSafe for P7",1,["fp::prime::primes_generic::P7"]],["impl UnwindSafe for ValidPrime",1,["fp::prime::primes_generic::ValidPrime"]],["impl<'a> !UnwindSafe for FpSliceMut<'a>",1,["fp::vector::fp_wrapper::FpSliceMut"]],["impl<'a> !UnwindSafe for MatrixSliceMut<'a>",1,["fp::matrix::matrix_inner::MatrixSliceMut"]],["impl<'a> UnwindSafe for FpSlice<'a>",1,["fp::vector::fp_wrapper::FpSlice"]],["impl<'a> UnwindSafe for FpVectorIterator<'a>",1,["fp::vector::fp_wrapper::FpVectorIterator"]],["impl<'a> UnwindSafe for FpVectorNonZeroIterator<'a>",1,["fp::vector::fp_wrapper::FpVectorNonZeroIterator"]],["impl<'a, F> !UnwindSafe for FqSliceMut<'a, F>",1,["fp::vector::inner::FqSliceMut"]],["impl<'a, F> UnwindSafe for FqSlice<'a, F>
where\n F: UnwindSafe,
",1,["fp::vector::inner::FqSlice"]],["impl<'a, F> UnwindSafe for FqVectorIterator<'a, F>
where\n F: UnwindSafe,
",1,["fp::vector::iter::FqVectorIterator"]],["impl<'a, F> UnwindSafe for FqVectorNonZeroIterator<'a, F>
where\n F: UnwindSafe,
",1,["fp::vector::iter::FqVectorNonZeroIterator"]],["impl<F> UnwindSafe for FieldElement<F>",1,["fp::field::element::FieldElement"]],["impl<F> UnwindSafe for LimbIterator<F>
where\n F: UnwindSafe,
",1,["fp::field::field_internal::LimbIterator"]],["impl<F> UnwindSafe for FqVector<F>
where\n F: UnwindSafe,
",1,["fp::vector::inner::FqVector"]],["impl<P> UnwindSafe for Fp<P>
where\n P: UnwindSafe,
",1,["fp::field::fp::Fp"]],["impl<P> UnwindSafe for SmallFq<P>
where\n P: UnwindSafe,
",1,["fp::field::smallfq::SmallFq"]],["impl<const N: usize> UnwindSafe for AugmentedMatrix<N>",1,["fp::matrix::matrix_inner::AugmentedMatrix"]]], +"fp":[["impl !UnwindSafe for MatrixArbParams",1,["fp::matrix::matrix_inner::arbitrary::MatrixArbParams"]],["impl !UnwindSafe for SubquotientArbParams",1,["fp::matrix::subquotient::arbitrary::SubquotientArbParams"]],["impl !UnwindSafe for SubspaceArbParams",1,["fp::matrix::subspace::arbitrary::SubspaceArbParams"]],["impl UnwindSafe for PrimeError",1,["fp::prime::PrimeError"]],["impl UnwindSafe for FpVector",1,["fp::vector::fp_wrapper::FpVector"]],["impl UnwindSafe for SmallFqElement",1,["fp::field::smallfq::SmallFqElement"]],["impl UnwindSafe for LimbBitIndexPair",1,["fp::limb::LimbBitIndexPair"]],["impl UnwindSafe for AffineSubspace",1,["fp::matrix::affine::AffineSubspace"]],["impl UnwindSafe for M4riTable",1,["fp::matrix::m4ri::M4riTable"]],["impl UnwindSafe for Matrix",1,["fp::matrix::matrix_inner::Matrix"]],["impl UnwindSafe for QuasiInverse",1,["fp::matrix::quasi_inverse::QuasiInverse"]],["impl UnwindSafe for Subquotient",1,["fp::matrix::subquotient::Subquotient"]],["impl UnwindSafe for Subspace",1,["fp::matrix::subspace::Subspace"]],["impl UnwindSafe for BinomialIterator",1,["fp::prime::iter::BinomialIterator"]],["impl UnwindSafe for BitflagIterator",1,["fp::prime::iter::BitflagIterator"]],["impl UnwindSafe for P2",1,["fp::prime::primes_generic::P2"]],["impl UnwindSafe for P3",1,["fp::prime::primes_generic::P3"]],["impl UnwindSafe for P5",1,["fp::prime::primes_generic::P5"]],["impl UnwindSafe for P7",1,["fp::prime::primes_generic::P7"]],["impl UnwindSafe for ValidPrime",1,["fp::prime::primes_generic::ValidPrime"]],["impl<'a> !UnwindSafe for FpSliceMut<'a>",1,["fp::vector::fp_wrapper::FpSliceMut"]],["impl<'a> !UnwindSafe for MatrixSliceMut<'a>",1,["fp::matrix::matrix_inner::MatrixSliceMut"]],["impl<'a> UnwindSafe for FpSlice<'a>",1,["fp::vector::fp_wrapper::FpSlice"]],["impl<'a> UnwindSafe for FpVectorIterator<'a>",1,["fp::vector::fp_wrapper::FpVectorIterator"]],["impl<'a> UnwindSafe for FpVectorNonZeroIterator<'a>",1,["fp::vector::fp_wrapper::FpVectorNonZeroIterator"]],["impl<'a, F> !UnwindSafe for FqSliceMut<'a, F>",1,["fp::vector::inner::FqSliceMut"]],["impl<'a, F> UnwindSafe for FqSlice<'a, F>
where\n F: UnwindSafe,
",1,["fp::vector::inner::FqSlice"]],["impl<'a, F> UnwindSafe for FqVectorIterator<'a, F>
where\n F: UnwindSafe,
",1,["fp::vector::iter::FqVectorIterator"]],["impl<'a, F> UnwindSafe for FqVectorNonZeroIterator<'a, F>
where\n F: UnwindSafe,
",1,["fp::vector::iter::FqVectorNonZeroIterator"]],["impl<F> !UnwindSafe for FqVectorArbParams<F>",1,["fp::vector::impl_fqvector::arbitrary::FqVectorArbParams"]],["impl<F> UnwindSafe for FieldElement<F>",1,["fp::field::element::FieldElement"]],["impl<F> UnwindSafe for LimbIterator<F>
where\n F: UnwindSafe,
",1,["fp::field::field_internal::LimbIterator"]],["impl<F> UnwindSafe for FqVector<F>
where\n F: UnwindSafe,
",1,["fp::vector::inner::FqVector"]],["impl<P> UnwindSafe for Fp<P>
where\n P: UnwindSafe,
",1,["fp::field::fp::Fp"]],["impl<P> UnwindSafe for SmallFq<P>
where\n P: UnwindSafe,
",1,["fp::field::smallfq::SmallFq"]],["impl<const N: usize> UnwindSafe for AugmentedMatrix<N>",1,["fp::matrix::matrix_inner::AugmentedMatrix"]]], "once":[["impl UnwindSafe for OooTracker",1,["once::OooTracker"]],["impl<T> UnwindSafe for OnceBiVec<T>
where\n T: RefUnwindSafe,
",1,["once::OnceBiVec"]],["impl<T> UnwindSafe for OnceVec<T>
where\n T: RefUnwindSafe,
",1,["once::OnceVec"]],["impl<T> UnwindSafe for Page<T>
where\n T: RefUnwindSafe,
",1,["once::Page"]]], "sseq":[["impl UnwindSafe for DenseBigradedModule",1,["sseq::bigraded::DenseBigradedModule"]],["impl UnwindSafe for Bidegree",1,["sseq::coordinates::bidegree::Bidegree"]],["impl UnwindSafe for BidegreeElement",1,["sseq::coordinates::element::BidegreeElement"]],["impl UnwindSafe for BidegreeGenerator",1,["sseq::coordinates::generator::BidegreeGenerator"]],["impl UnwindSafe for Differential",1,["sseq::differential::Differential"]],["impl UnwindSafe for Adams",1,["sseq::sseq::Adams"]],["impl UnwindSafe for Product",1,["sseq::sseq::Product"]],["impl<'a, T> !UnwindSafe for BidegreeRange<'a, T>",1,["sseq::coordinates::range::BidegreeRange"]],["impl<P> UnwindSafe for Sseq<P>
where\n P: UnwindSafe,
",1,["sseq::sseq::Sseq"]]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/trait.impl/proptest/arbitrary/traits/trait.Arbitrary.js b/docs/trait.impl/proptest/arbitrary/traits/trait.Arbitrary.js index 627fdf3d3..e887bba14 100644 --- a/docs/trait.impl/proptest/arbitrary/traits/trait.Arbitrary.js +++ b/docs/trait.impl/proptest/arbitrary/traits/trait.Arbitrary.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"fp":[["impl Arbitrary for P2"],["impl Arbitrary for P3"],["impl Arbitrary for P5"],["impl Arbitrary for P7"],["impl Arbitrary for ValidPrime"],["impl<P: Prime> Arbitrary for Fp<P>"],["impl<P: Prime> Arbitrary for SmallFq<P>"]] +"fp":[["impl Arbitrary for Matrix"],["impl Arbitrary for Subquotient"],["impl Arbitrary for Subspace"],["impl Arbitrary for P2"],["impl Arbitrary for P3"],["impl Arbitrary for P5"],["impl Arbitrary for P7"],["impl Arbitrary for ValidPrime"],["impl<F: Field> Arbitrary for FqVector<F>"],["impl<P: Prime> Arbitrary for Fp<P>"],["impl<P: Prime> Arbitrary for SmallFq<P>"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/docs/type.impl/fp/vector/inner/struct.FqVector.js b/docs/type.impl/fp/vector/inner/struct.FqVector.js index 1dfc189e3..b16cf367f 100644 --- a/docs/type.impl/fp/vector/inner/struct.FqVector.js +++ b/docs/type.impl/fp/vector/inner/struct.FqVector.js @@ -1,3 +1,3 @@ (function() {var type_impls = { -"fp":[["
source§

impl<F: Clone + Field> Clone for FqVector<F>

source§

fn clone(&self) -> FqVector<F>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
","Clone","fp::field::smallfq::Polynomial"],["
source§

impl<F: Debug + Field> Debug for FqVector<F>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
","Debug","fp::field::smallfq::Polynomial"],["
source§

impl<F: Field> Display for FqVector<F>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
","Display","fp::field::smallfq::Polynomial"],["
source§

impl<F: Field> FqVector<F>

source

pub(super) fn scale_helper(&mut self, c: F::ElementContainer)

source

pub(super) fn entry_helper(&self, index: usize) -> F::ElementContainer

source

pub(super) fn set_entry_helper(\n &mut self,\n index: usize,\n value: F::ElementContainer,\n)

source

pub(super) fn add_helper(&mut self, other: &Self, c: F::ElementContainer)

source

pub(super) fn add_offset_helper(\n &mut self,\n other: &Self,\n c: F::ElementContainer,\n offset: usize,\n)

source

pub(super) fn add_basis_element_helper(\n &mut self,\n index: usize,\n value: F::ElementContainer,\n)

source

pub(super) fn copy_from_slice_helper(&mut self, other: &[F::ElementContainer])

source

pub(super) fn add_truncate_helper(\n &mut self,\n other: &Self,\n c: F::ElementContainer,\n) -> Option<()>

source

pub(super) fn add_carry_helper<T>(\n &mut self,\n other: &Self,\n c: F::ElementContainer,\n rest: &mut [T],\n) -> bool
where\n for<'a> &'a mut T: TryInto<&'a mut Self>,

source

pub(super) fn first_nonzero_helper(\n &self,\n) -> Option<(usize, F::ElementContainer)>

",0,"fp::field::smallfq::Polynomial"],["
source§

impl<F: Field> FqVector<F>

source

pub fn new(fq: F, len: usize) -> Self

source

pub fn from_raw_parts(fq: F, len: usize, limbs: Vec<u64>) -> Self

source

pub fn new_with_capacity(fq: F, len: usize, capacity: usize) -> Self

source

pub fn from_slice(fq: F, slice: &[FieldElement<F>]) -> Self

source

pub fn from_bytes(fq: F, len: usize, data: &mut impl Read) -> Result<Self>

source

pub fn update_from_bytes(&mut self, data: &mut impl Read) -> Result<()>

source

pub fn to_bytes(&self, buffer: &mut impl Write) -> Result<()>

source

pub fn fq(&self) -> F

source

pub const fn len(&self) -> usize

source

pub const fn is_empty(&self) -> bool

source

pub fn prime(&self) -> ValidPrime

source

pub fn slice(&self, start: usize, end: usize) -> FqSlice<'_, F>

source

pub fn slice_mut(&mut self, start: usize, end: usize) -> FqSliceMut<'_, F>

source

pub fn as_slice(&self) -> FqSlice<'_, F>

source

pub fn as_slice_mut(&mut self) -> FqSliceMut<'_, F>

source

pub fn add_basis_element(&mut self, index: usize, value: FieldElement<F>)

source

pub fn entry(&self, index: usize) -> FieldElement<F>

source

pub fn set_entry(&mut self, index: usize, value: FieldElement<F>)

source

pub fn iter(&self) -> FqVectorIterator<'_, F>

source

pub fn iter_nonzero(&self) -> FqVectorNonZeroIterator<'_, F>

source

pub fn set_to_zero(&mut self)

source

pub fn scale(&mut self, c: FieldElement<F>)

source

pub fn add_offset(&mut self, other: &Self, c: FieldElement<F>, offset: usize)

Add other to self on the assumption that the first offset entries of other are\nempty.

\n
source

pub fn add(&mut self, other: &Self, c: FieldElement<F>)

source

pub fn assign(&mut self, other: &Self)

source

pub fn assign_partial(&mut self, other: &Self)

A version of FqVector::assign that allows other to be shorter than self.

\n
source

pub fn is_zero(&self) -> bool

source

pub(crate) fn limbs(&self) -> &[u64]

source

pub(crate) fn limbs_mut(&mut self) -> &mut [u64]

source

pub fn extend_len(&mut self, len: usize)

This function ensures the length of the vector is at least len. See also\nset_scratch_vector_size.

\n
source

pub fn set_scratch_vector_size(&mut self, len: usize)

This clears the vector and sets the length to len. This is useful for reusing\nallocations of temporary vectors.

\n
source

pub fn copy_from_slice(&mut self, slice: &[FieldElement<F>])

This replaces the contents of the vector with the contents of the slice. The two must have\nthe same length.

\n
source

pub(crate) fn trim_start(&mut self, n: usize)

Permanently remove the first n elements in the vector. n must be a multiple of\nthe number of entries per limb

\n
source

pub fn sign_rule(&self, other: &Self) -> bool

source

pub fn add_truncate(&mut self, other: &Self, c: FieldElement<F>) -> Option<()>

source

fn add_carry_limb<T>(\n &mut self,\n idx: usize,\n source: u64,\n c: FieldElement<F>,\n rest: &mut [T],\n) -> bool
where\n for<'a> &'a mut T: TryInto<&'a mut Self>,

source

pub fn add_carry<T>(\n &mut self,\n other: &Self,\n c: FieldElement<F>,\n rest: &mut [T],\n) -> bool
where\n for<'a> &'a mut T: TryInto<&'a mut Self>,

source

pub fn first_nonzero(&self) -> Option<(usize, FieldElement<F>)>

Find the index and value of the first non-zero entry of the vector. None if the vector is zero.

\n
source

pub fn density(&self) -> f32

",0,"fp::field::smallfq::Polynomial"],["
source§

impl<T: AsRef<[FieldElement<F>]>, F: Field> From<(F, T)> for FqVector<F>

source§

fn from(data: (F, T)) -> Self

Converts to this type from the input type.
","From<(F, T)>","fp::field::smallfq::Polynomial"],["
source§

impl<F: Hash + Field> Hash for FqVector<F>

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where\n H: Hasher,\n Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
","Hash","fp::field::smallfq::Polynomial"],["
source§

impl<F: PartialEq + Field> PartialEq for FqVector<F>

source§

fn eq(&self, other: &FqVector<F>) -> bool

This method tests for self and other values to be equal, and is used\nby ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
","PartialEq","fp::field::smallfq::Polynomial"],["
source§

impl<F: Eq + Field> Eq for FqVector<F>

","Eq","fp::field::smallfq::Polynomial"],["
source§

impl<F: Field> StructuralPartialEq for FqVector<F>

","StructuralPartialEq","fp::field::smallfq::Polynomial"]] +"fp":[["
source§

impl<F: Field> Arbitrary for FqVector<F>

§

type Parameters = FqVectorArbParams<F>

The type of parameters that arbitrary_with accepts for configuration\nof the generated Strategy. Parameters must implement Default.
§

type Strategy = BoxedStrategy<FqVector<F>>

The type of Strategy used to generate values of type Self.
source§

fn arbitrary_with(args: Self::Parameters) -> Self::Strategy

Generates a Strategy for producing arbitrary values of type the\nimplementing type (Self). The strategy is passed the arguments given\nin args. Read more
§

fn arbitrary() -> Self::Strategy

Generates a Strategy for producing arbitrary values\nof type the implementing type (Self). Read more
","Arbitrary","fp::field::smallfq::Polynomial"],["
source§

impl<F: Clone + Field> Clone for FqVector<F>

source§

fn clone(&self) -> FqVector<F>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
","Clone","fp::field::smallfq::Polynomial"],["
source§

impl<F: Debug + Field> Debug for FqVector<F>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
","Debug","fp::field::smallfq::Polynomial"],["
source§

impl<F: Field> Display for FqVector<F>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
","Display","fp::field::smallfq::Polynomial"],["
source§

impl<F: Field> FqVector<F>

source

pub(super) fn scale_helper(&mut self, c: F::ElementContainer)

source

pub(super) fn entry_helper(&self, index: usize) -> F::ElementContainer

source

pub(super) fn set_entry_helper(\n &mut self,\n index: usize,\n value: F::ElementContainer,\n)

source

pub(super) fn add_helper(&mut self, other: &Self, c: F::ElementContainer)

source

pub(super) fn add_offset_helper(\n &mut self,\n other: &Self,\n c: F::ElementContainer,\n offset: usize,\n)

source

pub(super) fn add_basis_element_helper(\n &mut self,\n index: usize,\n value: F::ElementContainer,\n)

source

pub(super) fn copy_from_slice_helper(&mut self, other: &[F::ElementContainer])

source

pub(super) fn add_truncate_helper(\n &mut self,\n other: &Self,\n c: F::ElementContainer,\n) -> Option<()>

source

pub(super) fn add_carry_helper<T>(\n &mut self,\n other: &Self,\n c: F::ElementContainer,\n rest: &mut [T],\n) -> bool
where\n for<'a> &'a mut T: TryInto<&'a mut Self>,

source

pub(super) fn first_nonzero_helper(\n &self,\n) -> Option<(usize, F::ElementContainer)>

",0,"fp::field::smallfq::Polynomial"],["
source§

impl<F: Field> FqVector<F>

source

pub fn new(fq: F, len: usize) -> Self

source

pub fn from_raw_parts(fq: F, len: usize, limbs: Vec<u64>) -> Self

source

pub fn new_with_capacity(fq: F, len: usize, capacity: usize) -> Self

source

pub fn from_slice(fq: F, slice: &[FieldElement<F>]) -> Self

source

pub fn from_bytes(fq: F, len: usize, data: &mut impl Read) -> Result<Self>

source

pub fn update_from_bytes(&mut self, data: &mut impl Read) -> Result<()>

source

pub fn to_bytes(&self, buffer: &mut impl Write) -> Result<()>

source

pub fn fq(&self) -> F

source

pub const fn len(&self) -> usize

source

pub const fn is_empty(&self) -> bool

source

pub fn prime(&self) -> ValidPrime

source

pub fn slice(&self, start: usize, end: usize) -> FqSlice<'_, F>

source

pub fn slice_mut(&mut self, start: usize, end: usize) -> FqSliceMut<'_, F>

source

pub fn as_slice(&self) -> FqSlice<'_, F>

source

pub fn as_slice_mut(&mut self) -> FqSliceMut<'_, F>

source

pub fn add_basis_element(&mut self, index: usize, value: FieldElement<F>)

source

pub fn entry(&self, index: usize) -> FieldElement<F>

source

pub fn set_entry(&mut self, index: usize, value: FieldElement<F>)

source

pub fn iter(&self) -> FqVectorIterator<'_, F>

source

pub fn iter_nonzero(&self) -> FqVectorNonZeroIterator<'_, F>

source

pub fn set_to_zero(&mut self)

source

pub fn scale(&mut self, c: FieldElement<F>)

source

pub fn add_offset(&mut self, other: &Self, c: FieldElement<F>, offset: usize)

Add other to self on the assumption that the first offset entries of other are\nempty.

\n
source

pub fn add(&mut self, other: &Self, c: FieldElement<F>)

source

pub fn assign(&mut self, other: &Self)

source

pub fn assign_partial(&mut self, other: &Self)

A version of FqVector::assign that allows other to be shorter than self.

\n
source

pub fn is_zero(&self) -> bool

source

pub(crate) fn limbs(&self) -> &[u64]

source

pub(crate) fn limbs_mut(&mut self) -> &mut [u64]

source

pub fn extend_len(&mut self, len: usize)

This function ensures the length of the vector is at least len. See also\nset_scratch_vector_size.

\n
source

pub fn set_scratch_vector_size(&mut self, len: usize)

This clears the vector and sets the length to len. This is useful for reusing\nallocations of temporary vectors.

\n
source

pub fn copy_from_slice(&mut self, slice: &[FieldElement<F>])

This replaces the contents of the vector with the contents of the slice. The two must have\nthe same length.

\n
source

pub(crate) fn trim_start(&mut self, n: usize)

Permanently remove the first n elements in the vector. n must be a multiple of\nthe number of entries per limb

\n
source

pub fn sign_rule(&self, other: &Self) -> bool

source

pub fn add_truncate(&mut self, other: &Self, c: FieldElement<F>) -> Option<()>

source

fn add_carry_limb<T>(\n &mut self,\n idx: usize,\n source: u64,\n c: FieldElement<F>,\n rest: &mut [T],\n) -> bool
where\n for<'a> &'a mut T: TryInto<&'a mut Self>,

source

pub fn add_carry<T>(\n &mut self,\n other: &Self,\n c: FieldElement<F>,\n rest: &mut [T],\n) -> bool
where\n for<'a> &'a mut T: TryInto<&'a mut Self>,

source

pub fn first_nonzero(&self) -> Option<(usize, FieldElement<F>)>

Find the index and value of the first non-zero entry of the vector. None if the vector is zero.

\n
source

pub fn density(&self) -> f32

",0,"fp::field::smallfq::Polynomial"],["
source§

impl<T: AsRef<[FieldElement<F>]>, F: Field> From<(F, T)> for FqVector<F>

source§

fn from(data: (F, T)) -> Self

Converts to this type from the input type.
","From<(F, T)>","fp::field::smallfq::Polynomial"],["
source§

impl<F: Hash + Field> Hash for FqVector<F>

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where\n H: Hasher,\n Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
","Hash","fp::field::smallfq::Polynomial"],["
source§

impl<F: PartialEq + Field> PartialEq for FqVector<F>

source§

fn eq(&self, other: &FqVector<F>) -> bool

This method tests for self and other values to be equal, and is used\nby ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
","PartialEq","fp::field::smallfq::Polynomial"],["
source§

impl<F: Eq + Field> Eq for FqVector<F>

","Eq","fp::field::smallfq::Polynomial"],["
source§

impl<F: Field> StructuralPartialEq for FqVector<F>

","StructuralPartialEq","fp::field::smallfq::Polynomial"]] };if (window.register_type_impls) {window.register_type_impls(type_impls);} else {window.pending_type_impls = type_impls;}})() \ No newline at end of file diff --git a/sseq_gui_wasm_bg.wasm b/sseq_gui_wasm_bg.wasm index 8538250b8..043c4a52e 100644 Binary files a/sseq_gui_wasm_bg.wasm and b/sseq_gui_wasm_bg.wasm differ