poulpy_hal/reference/znx/
mod.rs

1mod add;
2mod arithmetic_ref;
3mod automorphism;
4mod copy;
5mod mul;
6mod neg;
7mod normalization;
8mod rotate;
9mod sampling;
10mod sub;
11mod switch_ring;
12mod zero;
13
14pub use add::*;
15pub use arithmetic_ref::*;
16pub use automorphism::*;
17pub use copy::*;
18pub use mul::*;
19pub use neg::*;
20pub use normalization::*;
21pub use rotate::*;
22pub use sub::*;
23pub use switch_ring::*;
24pub use zero::*;
25
26pub use sampling::*;
27
28pub trait ZnxAdd {
29    fn znx_add(res: &mut [i64], a: &[i64], b: &[i64]);
30}
31
32pub trait ZnxAddInplace {
33    fn znx_add_inplace(res: &mut [i64], a: &[i64]);
34}
35
36pub trait ZnxSub {
37    fn znx_sub(res: &mut [i64], a: &[i64], b: &[i64]);
38}
39
40pub trait ZnxSubInplace {
41    fn znx_sub_inplace(res: &mut [i64], a: &[i64]);
42}
43
44pub trait ZnxSubNegateInplace {
45    fn znx_sub_negate_inplace(res: &mut [i64], a: &[i64]);
46}
47
48pub trait ZnxAutomorphism {
49    fn znx_automorphism(p: i64, res: &mut [i64], a: &[i64]);
50}
51
52pub trait ZnxCopy {
53    fn znx_copy(res: &mut [i64], a: &[i64]);
54}
55
56pub trait ZnxNegate {
57    fn znx_negate(res: &mut [i64], src: &[i64]);
58}
59
60pub trait ZnxNegateInplace {
61    fn znx_negate_inplace(res: &mut [i64]);
62}
63
64pub trait ZnxRotate {
65    fn znx_rotate(p: i64, res: &mut [i64], src: &[i64]);
66}
67
68pub trait ZnxZero {
69    fn znx_zero(res: &mut [i64]);
70}
71
72pub trait ZnxMulPowerOfTwo {
73    fn znx_mul_power_of_two(k: i64, res: &mut [i64], a: &[i64]);
74}
75
76pub trait ZnxMulAddPowerOfTwo {
77    fn znx_muladd_power_of_two(k: i64, res: &mut [i64], a: &[i64]);
78}
79
80pub trait ZnxMulPowerOfTwoInplace {
81    fn znx_mul_power_of_two_inplace(k: i64, res: &mut [i64]);
82}
83
84pub trait ZnxSwitchRing {
85    fn znx_switch_ring(res: &mut [i64], a: &[i64]);
86}
87
88pub trait ZnxNormalizeFirstStepCarryOnly {
89    fn znx_normalize_first_step_carry_only(base2k: usize, lsh: usize, x: &[i64], carry: &mut [i64]);
90}
91
92pub trait ZnxNormalizeFirstStepInplace {
93    fn znx_normalize_first_step_inplace(base2k: usize, lsh: usize, x: &mut [i64], carry: &mut [i64]);
94}
95
96pub trait ZnxNormalizeFirstStep {
97    fn znx_normalize_first_step(base2k: usize, lsh: usize, x: &mut [i64], a: &[i64], carry: &mut [i64]);
98}
99
100pub trait ZnxNormalizeMiddleStepCarryOnly {
101    fn znx_normalize_middle_step_carry_only(base2k: usize, lsh: usize, x: &[i64], carry: &mut [i64]);
102}
103
104pub trait ZnxNormalizeMiddleStepInplace {
105    fn znx_normalize_middle_step_inplace(base2k: usize, lsh: usize, x: &mut [i64], carry: &mut [i64]);
106}
107
108pub trait ZnxNormalizeMiddleStep {
109    fn znx_normalize_middle_step(base2k: usize, lsh: usize, x: &mut [i64], a: &[i64], carry: &mut [i64]);
110}
111
112pub trait ZnxNormalizeFinalStepInplace {
113    fn znx_normalize_final_step_inplace(base2k: usize, lsh: usize, x: &mut [i64], carry: &mut [i64]);
114}
115
116pub trait ZnxNormalizeFinalStep {
117    fn znx_normalize_final_step(base2k: usize, lsh: usize, x: &mut [i64], a: &[i64], carry: &mut [i64]);
118}
119
120pub trait ZnxExtractDigitAddMul {
121    fn znx_extract_digit_addmul(base2k: usize, lsh: usize, res: &mut [i64], src: &mut [i64]);
122}
123
124pub trait ZnxNormalizeDigit {
125    fn znx_normalize_digit(base2k: usize, res: &mut [i64], src: &mut [i64]);
126}