add more SampleExtract functions

This commit is contained in:
Janmajaya Mall
2024-07-01 19:12:42 +05:30
parent 00e431484e
commit 3d735fd082
6 changed files with 105 additions and 21 deletions

View File

@@ -126,20 +126,20 @@ fn main() {
let player_0_moves_enc = {
let c = player_0_enc.unseed::<Vec<Vec<u64>>>().key_switch(0);
(0..no_of_moves)
.map(|i| Coordinates::new(c.extract(2 * i), c.extract(i * 2 + 1)))
.map(|i| Coordinates::new(c.extract_at(2 * i), c.extract_at(i * 2 + 1)))
.collect_vec()
};
let player_1_bomb_enc = {
let c = player_1_enc.unseed::<Vec<Vec<u64>>>().key_switch(1);
Coordinates::new(c.extract(0), c.extract(1))
Coordinates::new(c.extract_at(0), c.extract_at(1))
};
let player_2_bomb_enc = {
let c = player_2_enc.unseed::<Vec<Vec<u64>>>().key_switch(2);
Coordinates::new(c.extract(0), c.extract(1))
Coordinates::new(c.extract_at(0), c.extract_at(1))
};
let player_3_bomb_enc = {
let c = player_3_enc.unseed::<Vec<Vec<u64>>>().key_switch(3);
Coordinates::new(c.extract(0), c.extract(1))
Coordinates::new(c.extract_at(0), c.extract_at(1))
};
// run the game

View File

@@ -105,11 +105,14 @@ fn main() {
// Server parses private inputs from user a and b
let user_a_location_enc = {
let c = user_a_enc.unseed::<Vec<Vec<u64>>>().key_switch(0);
Location::new(c.extract(0), c.extract(1))
Location::new(c.extract_at(0), c.extract_at(1))
};
let (user_b_location_enc, user_b_threshold_enc) = {
let c = user_b_enc.unseed::<Vec<Vec<u64>>>().key_switch(1);
(Location::new(c.extract(0), c.extract(1)), c.extract(2))
(
Location::new(c.extract_at(0), c.extract_at(1)),
c.extract_at(2),
)
};
// run the circuit

View File

@@ -50,7 +50,7 @@ fn main() {
// let now = std::time::Instant::now();
let (ct_c0_a, ct_c0_b) = {
let ct = c0_batched_to_send.unseed::<Vec<Vec<u64>>>().key_switch(0);
(ct.extract(0), ct.extract(1))
(ct.extract_at(0), ct.extract_at(1))
};
// println!(
// "Time to unseed, key switch, and extract 2 ciphertexts: {:?}",
@@ -60,7 +60,7 @@ fn main() {
// extract a and b from client1 inputs
let (ct_c1_a, ct_c1_b) = {
let ct = c1_batch_to_send.unseed::<Vec<Vec<u64>>>().key_switch(1);
(ct.extract(0), ct.extract(1))
(ct.extract_at(0), ct.extract_at(1))
};
let now = std::time::Instant::now();