diff --git a/Cargo.toml b/Cargo.toml index a17e5f7..b99028c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [workspace] members = ["base2k", "rlwe", "sampling", "utils"] - +resolver = "3" [workspace.dependencies] rug = "1.27" diff --git a/base2k/Cargo.toml b/base2k/Cargo.toml index 2ebb8db..089cbde 100644 --- a/base2k/Cargo.toml +++ b/base2k/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "base2k" version = "0.1.0" -edition = "2021" +edition = "2024" [dependencies] rug = {workspace = true} diff --git a/base2k/build.rs b/base2k/build.rs index 4ddb96c..f592b15 100644 --- a/base2k/build.rs +++ b/base2k/build.rs @@ -3,10 +3,11 @@ use std::path::absolute; fn main() { println!( "cargo:rustc-link-search=native={}", - absolute("./spqlios-arithmetic/build/spqlios") + absolute("spqlios-arithmetic/build/spqlios") .unwrap() .to_str() .unwrap() ); - println!("cargo:rustc-link-lib=static=spqlios"); //"cargo:rustc-link-lib=dylib=spqlios" + println!("cargo:rustc-link-lib=static=spqlios"); + // println!("cargo:rustc-link-lib=dylib=spqlios") } diff --git a/base2k/src/module.rs b/base2k/src/module.rs index 205cf62..c1799be 100644 --- a/base2k/src/module.rs +++ b/base2k/src/module.rs @@ -65,21 +65,24 @@ impl Module { (self.n() << 1) as _ } - // Returns GALOISGENERATOR^|gen| * sign(gen) - pub fn galois_element(&self, gen: i64) -> i64 { - if gen == 0 { + // Returns GALOISGENERATOR^|generator| * sign(generator) + pub fn galois_element(&self, generator: i64) -> i64 { + if generator == 0 { return 1; } - ((mod_exp_u64(GALOISGENERATOR, gen.abs() as usize) & (self.cyclotomic_order() - 1)) as i64) * gen.signum() + ((mod_exp_u64(GALOISGENERATOR, generator.abs() as usize) & (self.cyclotomic_order() - 1)) as i64) * generator.signum() } // Returns gen^-1 - pub fn galois_element_inv(&self, gen: i64) -> i64 { - if gen == 0 { + pub fn galois_element_inv(&self, generator: i64) -> i64 { + if generator == 0 { panic!("cannot invert 0") } - ((mod_exp_u64(gen.abs() as u64, (self.cyclotomic_order() - 1) as usize) & (self.cyclotomic_order() - 1)) as i64) - * gen.signum() + ((mod_exp_u64( + generator.abs() as u64, + (self.cyclotomic_order() - 1) as usize, + ) & (self.cyclotomic_order() - 1)) as i64) + * generator.signum() } pub fn free(self) {