pub struct Poseidon2MerkleHash;Expand description
Poseidon2 Merkle hash over BabyBear — delegates to the existing CUDA FFI.
Trait Implementations§
Source§impl Clone for Poseidon2MerkleHash
impl Clone for Poseidon2MerkleHash
Source§fn clone(&self) -> Poseidon2MerkleHash
fn clone(&self) -> Poseidon2MerkleHash
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreimpl Copy for Poseidon2MerkleHash
Source§impl Debug for Poseidon2MerkleHash
impl Debug for Poseidon2MerkleHash
Source§impl Default for Poseidon2MerkleHash
impl Default for Poseidon2MerkleHash
Source§fn default() -> Poseidon2MerkleHash
fn default() -> Poseidon2MerkleHash
Returns the “default value” for a type. Read more
Source§impl GpuMerkleHash for Poseidon2MerkleHash
impl GpuMerkleHash for Poseidon2MerkleHash
type Digest = [MontyField31<BabyBearParameters>; 8]
Source§unsafe fn compress_rows(
out: &mut DeviceBuffer<Self::Digest>,
matrix: &DeviceBuffer<F>,
width: usize,
query_stride: usize,
log_rows_per_query: usize,
device_ctx: &GpuDeviceCtx,
) -> Result<(), CudaError>
unsafe fn compress_rows( out: &mut DeviceBuffer<Self::Digest>, matrix: &DeviceBuffer<F>, width: usize, query_stride: usize, log_rows_per_query: usize, device_ctx: &GpuDeviceCtx, ) -> Result<(), CudaError>
Compress rows of a base-field matrix into digest leaves. Read more
Source§unsafe fn compress_rows_ext(
out: &mut DeviceBuffer<Self::Digest>,
matrix: &DeviceBuffer<EF>,
width: usize,
query_stride: usize,
log_rows_per_query: usize,
device_ctx: &GpuDeviceCtx,
) -> Result<(), CudaError>
unsafe fn compress_rows_ext( out: &mut DeviceBuffer<Self::Digest>, matrix: &DeviceBuffer<EF>, width: usize, query_stride: usize, log_rows_per_query: usize, device_ctx: &GpuDeviceCtx, ) -> Result<(), CudaError>
Compress rows of an extension-field matrix into digest leaves. Read more
Source§unsafe fn compress_layer(
output: &mut DeviceBuffer<Self::Digest>,
prev_layer: &DeviceBuffer<Self::Digest>,
output_size: usize,
device_ctx: &GpuDeviceCtx,
) -> Result<(), CudaError>
unsafe fn compress_layer( output: &mut DeviceBuffer<Self::Digest>, prev_layer: &DeviceBuffer<Self::Digest>, output_size: usize, device_ctx: &GpuDeviceCtx, ) -> Result<(), CudaError>
Compress adjacent pairs of digests to build an inner Merkle layer. Read more
Source§impl MerkleTreeConstructor for Poseidon2MerkleHash
impl MerkleTreeConstructor for Poseidon2MerkleHash
fn new_merkle_tree( matrix: DeviceMatrix<F>, rows_per_query: usize, cache_backing_matrix: bool, device_ctx: &GpuDeviceCtx, ) -> Result<MerkleTreeGpu<F, Self::Digest>, MerkleTreeError>
Auto Trait Implementations§
impl Freeze for Poseidon2MerkleHash
impl RefUnwindSafe for Poseidon2MerkleHash
impl Send for Poseidon2MerkleHash
impl Sync for Poseidon2MerkleHash
impl Unpin for Poseidon2MerkleHash
impl UnsafeUnpin for Poseidon2MerkleHash
impl UnwindSafe for Poseidon2MerkleHash
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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