Trait risc0_zkp::hal::Hal

source ·
pub trait Hal {
    type Elem: Elem + RootsOfUnity;
    type ExtElem: ExtElem<SubElem = Self::Elem>;
    type BufferDigest: Buffer<Digest>;
    type BufferElem: Buffer<Self::Elem>;
    type BufferExtElem: Buffer<Self::ExtElem>;
    type BufferU32: Buffer<u32>;

    const CHECK_SIZE: usize = _;
Show 21 methods fn alloc_digest(&self, name: &'static str, size: usize) -> Self::BufferDigest; fn alloc_elem(&self, name: &'static str, size: usize) -> Self::BufferElem; fn alloc_extelem(
        &self,
        name: &'static str,
        size: usize
    ) -> Self::BufferExtElem; fn alloc_u32(&self, name: &'static str, size: usize) -> Self::BufferU32; fn copy_from_digest(
        &self,
        name: &'static str,
        slice: &[Digest]
    ) -> Self::BufferDigest; fn copy_from_elem(
        &self,
        name: &'static str,
        slice: &[Self::Elem]
    ) -> Self::BufferElem; fn copy_from_extelem(
        &self,
        name: &'static str,
        slice: &[Self::ExtElem]
    ) -> Self::BufferExtElem; fn copy_from_u32(&self, name: &'static str, slice: &[u32]) -> Self::BufferU32; fn batch_expand(
        &self,
        output: &Self::BufferElem,
        input: &Self::BufferElem,
        count: usize
    ); fn batch_evaluate_ntt(
        &self,
        io: &Self::BufferElem,
        count: usize,
        expand_bits: usize
    ); fn batch_interpolate_ntt(&self, io: &Self::BufferElem, count: usize); fn batch_bit_reverse(&self, io: &Self::BufferElem, count: usize); fn batch_evaluate_any(
        &self,
        coeffs: &Self::BufferElem,
        poly_count: usize,
        which: &Self::BufferU32,
        xs: &Self::BufferExtElem,
        out: &Self::BufferExtElem
    ); fn zk_shift(&self, io: &Self::BufferElem, count: usize); fn mix_poly_coeffs(
        &self,
        out: &Self::BufferExtElem,
        mix_start: &Self::ExtElem,
        mix: &Self::ExtElem,
        input: &Self::BufferElem,
        combos: &Self::BufferU32,
        input_size: usize,
        count: usize
    ); fn eltwise_add_elem(
        &self,
        output: &Self::BufferElem,
        input1: &Self::BufferElem,
        input2: &Self::BufferElem
    ); fn eltwise_sum_extelem(
        &self,
        output: &Self::BufferElem,
        input: &Self::BufferExtElem
    ); fn eltwise_copy_elem(
        &self,
        output: &Self::BufferElem,
        input: &Self::BufferElem
    ); fn fri_fold(
        &self,
        output: &Self::BufferElem,
        input: &Self::BufferElem,
        mix: &Self::ExtElem
    ); fn sha_rows(&self, output: &Self::BufferDigest, matrix: &Self::BufferElem); fn sha_fold(
        &self,
        io: &Self::BufferDigest,
        input_size: usize,
        output_size: usize
    );
}

Required Associated Types§

Provided Associated Constants§

Required Methods§

Implementors§