remove make_stack

This commit is contained in:
Dmitry Vagner 2023-01-17 15:57:46 +07:00
parent 3fbc8bff3e
commit ccd4a38ab4
2 changed files with 48 additions and 61 deletions

View File

@ -14,14 +14,6 @@ fn get_address_from_label(lbl: &str) -> U256 {
U256::from(KERNEL.global_labels[lbl]) U256::from(KERNEL.global_labels[lbl])
} }
fn make_stack(vecs: Vec<Vec<U256>>) -> Vec<U256> {
let mut stack = vec![];
for vec in vecs {
stack.extend(vec)
}
stack
}
fn get_output(lbl: &str, stack: Vec<U256>) -> Vec<U256> { fn get_output(lbl: &str, stack: Vec<U256>) -> Vec<U256> {
let label = KERNEL.global_labels[lbl]; let label = KERNEL.global_labels[lbl];
let mut input = stack; let mut input = stack;
@ -36,20 +28,19 @@ fn make_mul_stack(f: Fp12, g: Fp12, mul_label: &str) -> Vec<U256> {
let in1 = U256::from(76); let in1 = U256::from(76);
let out = U256::from(88); let out = U256::from(88);
make_stack(vec![ let mut stack = vec![in0];
vec![in0], stack.extend(fp12_to_vec(f));
fp12_to_vec(f), stack.extend(vec![in1]);
vec![in1], stack.extend(fp12_to_vec(g));
fp12_to_vec(g), stack.extend(vec![
vec![ get_address_from_label(mul_label),
get_address_from_label(mul_label), in0,
in0, in1,
in1, out,
out, get_address_from_label("return_fp12_on_stack"),
get_address_from_label("return_fp12_on_stack"), out,
out, ]);
], stack
])
} }
#[test] #[test]
@ -83,7 +74,9 @@ fn test_frob_fp12() -> Result<()> {
let f: Fp12 = gen_fp12(); let f: Fp12 = gen_fp12();
let stack = make_stack(vec![vec![ptr], fp12_to_vec(f), vec![ptr]]); let mut stack = vec![ptr];
stack.extend(fp12_to_vec(f));
stack.extend(vec![ptr]);
let out_frob1: Vec<U256> = get_output("test_frob_fp12_1", stack.clone()); let out_frob1: Vec<U256> = get_output("test_frob_fp12_1", stack.clone());
let out_frob2: Vec<U256> = get_output("test_frob_fp12_2", stack.clone()); let out_frob2: Vec<U256> = get_output("test_frob_fp12_2", stack.clone());
@ -109,12 +102,9 @@ fn test_inv_fp12() -> Result<()> {
let inv = U256::from(300); let inv = U256::from(300);
let f: Fp12 = gen_fp12(); let f: Fp12 = gen_fp12();
let mut stack = vec![ptr];
let stack = make_stack(vec![ stack.extend(fp12_to_vec(f));
vec![ptr], stack.extend(vec![ptr, inv, U256::from_str("0xdeadbeef").unwrap()]);
fp12_to_vec(f),
vec![ptr, inv, U256::from_str("0xdeadbeef").unwrap()],
]);
let output: Vec<U256> = get_output("test_inv_fp12", stack); let output: Vec<U256> = get_output("test_inv_fp12", stack);
@ -130,15 +120,13 @@ fn test_power() -> Result<()> {
let f: Fp12 = gen_fp12(); let f: Fp12 = gen_fp12();
let stack = make_stack(vec![ let mut stack = vec![ptr];
vec![ptr], stack.extend(fp12_to_vec(f));
fp12_to_vec(f), stack.extend(vec![
vec![ ptr,
ptr, out,
out, get_address_from_label("return_fp12_on_stack"),
get_address_from_label("return_fp12_on_stack"), out,
out,
],
]); ]);
let output: Vec<U256> = get_output("test_pow", stack); let output: Vec<U256> = get_output("test_pow", stack);
@ -156,17 +144,16 @@ fn make_tate_stack(p: Curve, q: TwistedCurve) -> Vec<U256> {
let p_: Vec<U256> = p.into_iter().collect(); let p_: Vec<U256> = p.into_iter().collect();
let q_: Vec<U256> = q.into_iter().flatten().collect(); let q_: Vec<U256> = q.into_iter().flatten().collect();
make_stack(vec![ let mut stack = vec![ptr];
vec![ptr], stack.extend(p_);
p_, stack.extend(q_);
q_, stack.extend(vec![
vec![ ptr,
ptr, out,
out, get_address_from_label("return_fp12_on_stack"),
get_address_from_label("return_fp12_on_stack"), out,
out, ]);
], stack
])
} }
#[test] #[test]

View File

@ -60,18 +60,18 @@ impl<F: Field> GenerationState<F> {
let xs = stack_peeks(self).expect("Empty stack"); let xs = stack_peeks(self).expect("Empty stack");
// TODO: This sucks... come back later // TODO: This sucks... come back later
let n = match component { let n = match component {
"ext_0" => 0, "component_0" => 0,
"ext_1" => 1, "component_1" => 1,
"ext_2" => 2, "component_2" => 2,
"ext_3" => 3, "component_3" => 3,
"ext_4" => 4, "component_4" => 4,
"ext_5" => 5, "component_5" => 5,
"ext_6" => 6, "component_6" => 6,
"ext_7" => 7, "component_7" => 7,
"ext_8" => 8, "component_8" => 8,
"ext_9" => 9, "component_9" => 9,
"ext_10" => 10, "component_10" => 10,
"ext_11" => 11, "component_11" => 11,
_ => panic!("out of bounds"), _ => panic!("out of bounds"),
}; };
field.inverse_fp12(n, xs) field.inverse_fp12(n, xs)