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])
}
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> {
let label = KERNEL.global_labels[lbl];
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 out = U256::from(88);
make_stack(vec![
vec![in0],
fp12_to_vec(f),
vec![in1],
fp12_to_vec(g),
vec![
get_address_from_label(mul_label),
in0,
in1,
out,
get_address_from_label("return_fp12_on_stack"),
out,
],
])
let mut stack = vec![in0];
stack.extend(fp12_to_vec(f));
stack.extend(vec![in1]);
stack.extend(fp12_to_vec(g));
stack.extend(vec![
get_address_from_label(mul_label),
in0,
in1,
out,
get_address_from_label("return_fp12_on_stack"),
out,
]);
stack
}
#[test]
@ -83,7 +74,9 @@ fn test_frob_fp12() -> Result<()> {
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_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 f: Fp12 = gen_fp12();
let stack = make_stack(vec![
vec![ptr],
fp12_to_vec(f),
vec![ptr, inv, U256::from_str("0xdeadbeef").unwrap()],
]);
let mut stack = vec![ptr];
stack.extend(fp12_to_vec(f));
stack.extend(vec![ptr, inv, U256::from_str("0xdeadbeef").unwrap()]);
let output: Vec<U256> = get_output("test_inv_fp12", stack);
@ -130,15 +120,13 @@ fn test_power() -> Result<()> {
let f: Fp12 = gen_fp12();
let stack = make_stack(vec![
vec![ptr],
fp12_to_vec(f),
vec![
ptr,
out,
get_address_from_label("return_fp12_on_stack"),
out,
],
let mut stack = vec![ptr];
stack.extend(fp12_to_vec(f));
stack.extend(vec![
ptr,
out,
get_address_from_label("return_fp12_on_stack"),
out,
]);
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 q_: Vec<U256> = q.into_iter().flatten().collect();
make_stack(vec![
vec![ptr],
p_,
q_,
vec![
ptr,
out,
get_address_from_label("return_fp12_on_stack"),
out,
],
])
let mut stack = vec![ptr];
stack.extend(p_);
stack.extend(q_);
stack.extend(vec![
ptr,
out,
get_address_from_label("return_fp12_on_stack"),
out,
]);
stack
}
#[test]

View File

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