poulpy/poulpy-hal/src/reference/znx/mod.rs
poulpy-hal/src/reference/znx/mod.rsRaw
1mod add;
2mod arithmetic_ref;
3mod automorphism;
4mod copy;
5mod neg;
6mod normalization;
7mod rotate;
8mod sampling;
9mod sub;
10mod switch_ring;
11mod zero;
12
13pub use add::*;
14pub use arithmetic_ref::*;
15pub use automorphism::*;
16pub use copy::*;
17pub use neg::*;
18pub use normalization::*;
19pub use rotate::*;
20pub use sub::*;
21pub use switch_ring::*;
22pub use zero::*;
23
24pub use sampling::*;
25
26pub trait ZnxAdd {
27 fn znx_add(res: &mut [i64], a: &[i64], b: &[i64]);
28}
29
30pub trait ZnxAddInplace {
31 fn znx_add_inplace(res: &mut [i64], a: &[i64]);
32}
33
34pub trait ZnxSub {
35 fn znx_sub(res: &mut [i64], a: &[i64], b: &[i64]);
36}
37
38pub trait ZnxSubABInplace {
39 fn znx_sub_ab_inplace(res: &mut [i64], a: &[i64]);
40}
41
42pub trait ZnxSubBAInplace {
43 fn znx_sub_ba_inplace(res: &mut [i64], a: &[i64]);
44}
45
46pub trait ZnxAutomorphism {
47 fn znx_automorphism(p: i64, res: &mut [i64], a: &[i64]);
48}
49
50pub trait ZnxCopy {
51 fn znx_copy(res: &mut [i64], a: &[i64]);
52}
53
54pub trait ZnxNegate {
55 fn znx_negate(res: &mut [i64], src: &[i64]);
56}
57
58pub trait ZnxNegateInplace {
59 fn znx_negate_inplace(res: &mut [i64]);
60}
61
62pub trait ZnxRotate {
63 fn znx_rotate(p: i64, res: &mut [i64], src: &[i64]);
64}
65
66pub trait ZnxZero {
67 fn znx_zero(res: &mut [i64]);
68}
69
70pub trait ZnxSwitchRing {
71 fn znx_switch_ring(res: &mut [i64], a: &[i64]);
72}
73
74pub trait ZnxNormalizeFirstStepCarryOnly {
75 fn znx_normalize_first_step_carry_only(basek: usize, lsh: usize, x: &[i64], carry: &mut [i64]);
76}
77
78pub trait ZnxNormalizeFirstStepInplace {
79 fn znx_normalize_first_step_inplace(basek: usize, lsh: usize, x: &mut [i64], carry: &mut [i64]);
80}
81
82pub trait ZnxNormalizeFirstStep {
83 fn znx_normalize_first_step(basek: usize, lsh: usize, x: &mut [i64], a: &[i64], carry: &mut [i64]);
84}
85
86pub trait ZnxNormalizeMiddleStepCarryOnly {
87 fn znx_normalize_middle_step_carry_only(basek: usize, lsh: usize, x: &[i64], carry: &mut [i64]);
88}
89
90pub trait ZnxNormalizeMiddleStepInplace {
91 fn znx_normalize_middle_step_inplace(basek: usize, lsh: usize, x: &mut [i64], carry: &mut [i64]);
92}
93
94pub trait ZnxNormalizeMiddleStep {
95 fn znx_normalize_middle_step(basek: usize, lsh: usize, x: &mut [i64], a: &[i64], carry: &mut [i64]);
96}
97
98pub trait ZnxNormalizeFinalStepInplace {
99 fn znx_normalize_final_step_inplace(basek: usize, lsh: usize, x: &mut [i64], carry: &mut [i64]);
100}
101
102pub trait ZnxNormalizeFinalStep {
103 fn znx_normalize_final_step(basek: usize, lsh: usize, x: &mut [i64], a: &[i64], carry: &mut [i64]);
104}