Skip to content

Commit 8ea50e3

Browse files
authored
Merge pull request #34 from scroll-tech/debug/sumcheck_metered_exe
Fix `NativeSumcheck` Metered Execution
2 parents a695fb9 + fb65953 commit 8ea50e3

1 file changed

Lines changed: 14 additions & 6 deletions

File tree

extensions/native/circuit/src/sumcheck/execution.rs

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -247,15 +247,19 @@ unsafe fn execute_e12_impl<F: PrimeField32, CTX: ExecutionCtxTrait>(
247247
);
248248

249249
if round < max_round - 1 {
250-
let ps: &[F] = if is_hint_space_ids > 0 {
251-
&prod_evals[(start as usize)..(start as usize) + EXT_DEG * 2]
250+
let ps: [F; EXT_DEG * 2] = if is_hint_space_ids > 0 {
251+
prod_evals[(start as usize)..(start as usize) + EXT_DEG * 2].try_into().unwrap()
252252
} else {
253-
&exec_state.vm_read::<_, { EXT_DEG * 2 }>(NATIVE_AS, prod_evals_ptr + start)
253+
exec_state.vm_read::<_, { EXT_DEG * 2 }>(NATIVE_AS, prod_evals_ptr + start).try_into().unwrap()
254254
};
255255

256256
let p1: [F; EXT_DEG] = ps[0..EXT_DEG].try_into().unwrap();
257257
let p2: [F; EXT_DEG] = ps[EXT_DEG..EXT_DEG * 2].try_into().unwrap();
258258

259+
if is_hint_space_ids > 0 {
260+
exec_state.vm_write(NATIVE_AS, prod_evals_ptr + start, &ps);
261+
}
262+
259263
let eval = match mode {
260264
CURRENT_LAYER_MODE => FieldExtension::multiply(p1, p2),
261265
NEXT_LAYER_MODE => FieldExtension::add(
@@ -293,16 +297,20 @@ unsafe fn execute_e12_impl<F: PrimeField32, CTX: ExecutionCtxTrait>(
293297

294298
if round < max_round - 1 {
295299
// read logup_evals
296-
let pqs: &[F] = if is_hint_space_ids > 0 {
297-
&logup_evals[(start as usize)..(start as usize) + EXT_DEG * 4]
300+
let pqs: [F; EXT_DEG * 4] = if is_hint_space_ids > 0 {
301+
logup_evals[(start as usize)..(start as usize) + EXT_DEG * 4].try_into().unwrap()
298302
} else {
299-
&exec_state.vm_read::<_, { EXT_DEG * 4 }>(NATIVE_AS, logup_evals_ptr + start)
303+
exec_state.vm_read::<_, { EXT_DEG * 4 }>(NATIVE_AS, logup_evals_ptr + start).try_into().unwrap()
300304
};
301305
let p1: [F; EXT_DEG] = pqs[0..EXT_DEG].try_into().unwrap();
302306
let p2: [F; EXT_DEG] = pqs[EXT_DEG..EXT_DEG * 2].try_into().unwrap();
303307
let q1: [F; EXT_DEG] = pqs[EXT_DEG * 2..EXT_DEG * 3].try_into().unwrap();
304308
let q2: [F; EXT_DEG] = pqs[EXT_DEG * 3..EXT_DEG * 4].try_into().unwrap();
305309

310+
if is_hint_space_ids > 0 {
311+
exec_state.vm_write(NATIVE_AS, logup_evals_ptr + start, &pqs);
312+
}
313+
306314
// compute p_eval and q_eval
307315
let p_eval = match mode {
308316
CURRENT_LAYER_MODE => FieldExtension::add(

0 commit comments

Comments
 (0)