in read proof, we just read hint slice directly
|
iter_zip!(builder, proofs).for_each(|idx_vec, builder| { |
|
let ptr = idx_vec[0]; |
|
let proof = IOPProverMessageVec::read(builder); |
|
builder.iter_ptr_set(&proofs, ptr, proof); |
|
}); |
then in multi-observe part, we read hint and write back to new array.
|
let prover_msg = prover_messages |
|
.evaluations |
|
.slice(builder, curr_offset, next_offset); |
|
builder.assign(&curr_offset, next_offset); |
|
|
|
unsafe { |
|
let prover_msg_felts = exts_to_felts(builder, &prover_msg); |
|
challenger_multi_observe(builder, challenger, &prover_msg_felts); |
|
} |
in read proof, we just read hint slice directly
ceno/ceno_recursion/src/zkvm_verifier/binding.rs
Lines 323 to 327 in d79e874
then in multi-observe part, we read hint and write back to new array.
ceno/ceno_recursion/src/tower_verifier/program.rs
Lines 62 to 70 in d79e874