arnaucube
arnaucube/poulpyPublic Self-hosted repository
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 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}