mirror of
https://github.com/logos-storage/plonky2.git
synced 2026-01-03 06:13:07 +00:00
peculiar...
This commit is contained in:
parent
b37e049abd
commit
16928fd0fb
@ -5,8 +5,9 @@ use rand::Rng;
|
||||
use crate::cpu::kernel::interpreter::{
|
||||
run_interpreter_with_memory, Interpreter, InterpreterMemoryInitialization,
|
||||
};
|
||||
use crate::cpu::kernel::tests::u256ify;
|
||||
use crate::curve_pairings::{bn_final_exponent, bn_miller_loop, gen_bn_fp12_sparse, Curve};
|
||||
use crate::curve_pairings::{
|
||||
bn_final_exponent, bn_miller_loop, gen_bn_fp12_sparse, Curve, CyclicGroup,
|
||||
};
|
||||
use crate::extension_tower::{FieldExt, Fp12, Fp2, Fp6, Stack, BN254};
|
||||
use crate::memory::segments::Segment::BnPairing;
|
||||
|
||||
@ -231,32 +232,35 @@ fn test_bn_pairing() -> Result<()> {
|
||||
let out: usize = 100;
|
||||
let ptr: usize = 112;
|
||||
|
||||
let inputs: Vec<U256> = u256ify(vec![
|
||||
"0x1c76476f4def4bb94541d57ebba1193381ffa7aa76ada664dd31c16024c43f59",
|
||||
"0x3034dd2920f673e204fee2811c678745fc819b55d3e9d294e45c9b03a76aef41",
|
||||
"0x04bf11ca01483bfa8b34b43561848d28905960114c8ac04049af4b6315a41678",
|
||||
"0x209dd15ebff5d46c4bd888e51a93cf99a7329636c63514396b4a452003a35bf7",
|
||||
"0x120a2a4cf30c1bf9845f20c6fe39e07ea2cce61f0c9bb048165fe5e4de877550",
|
||||
"0x2bb8324af6cfc93537a2ad1a445cfd0ca2a71acd7ac41fadbf933c2a51be344d",
|
||||
"0x111e129f1cf1097710d41c4ac70fcdfa5ba2023c6ff1cbeac322de49d1b6df7c",
|
||||
"0x2032c61a830e3c17286de9462bf242fca2883585b93870a73853face6a6bf411",
|
||||
"0x1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed",
|
||||
"0x198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c2",
|
||||
"0x12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa",
|
||||
"0x090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b",
|
||||
])
|
||||
.unwrap();
|
||||
let mut rng = rand::thread_rng();
|
||||
let k: usize = rng.gen_range(1..10);
|
||||
let mut acc: i32 = 0;
|
||||
let mut input: Vec<U256> = vec![];
|
||||
for _ in 1..k {
|
||||
let m: i32 = rng.gen_range(-10..10);
|
||||
let n: i32 = rng.gen_range(-10..10);
|
||||
acc -= m * n;
|
||||
|
||||
let p: Curve<BN254> = Curve::<BN254>::int(m);
|
||||
let q: Curve<Fp2<BN254>> = Curve::<Fp2<BN254>>::int(n);
|
||||
input.extend(p.on_stack());
|
||||
input.extend(q.on_stack());
|
||||
}
|
||||
let p: Curve<BN254> = Curve::<BN254>::int(acc);
|
||||
let q: Curve<Fp2<BN254>> = Curve::<Fp2<BN254>>::GENERATOR;
|
||||
input.extend(p.on_stack());
|
||||
input.extend(q.on_stack());
|
||||
|
||||
let setup = InterpreterMemoryInitialization {
|
||||
label: "bn254_pairing".to_string(),
|
||||
stack: vec![
|
||||
U256::from(2),
|
||||
U256::from(k),
|
||||
U256::from(ptr),
|
||||
U256::from(out),
|
||||
U256::from(0xdeadbeefu32),
|
||||
],
|
||||
segment: BnPairing,
|
||||
memory: vec![(ptr, inputs)],
|
||||
memory: vec![(ptr, input)],
|
||||
};
|
||||
let interpreter = run_interpreter_with_memory(setup).unwrap();
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user