diff --git a/Cargo.lock b/Cargo.lock
index a1aed8a..1f98230 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -328,6 +328,12 @@ dependencies = [
"libc",
]
+[[package]]
+name = "ethnum"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c8ff382b2fa527fb7fb06eeebfc5bbb3f17e3cc6b9d70b006c41daa8824adac"
+
[[package]]
name = "fastrand"
version = "2.0.1"
@@ -336,7 +342,7 @@ checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
[[package]]
name = "fhe"
-version = "0.1.0-beta.5"
+version = "0.1.0-beta.6"
dependencies = [
"console",
"criterion",
@@ -360,10 +366,11 @@ dependencies = [
[[package]]
name = "fhe-math"
-version = "0.1.0-beta.5"
+version = "0.1.0-beta.6"
dependencies = [
"criterion",
"crypto-bigint",
+ "ethnum",
"fhe-traits",
"fhe-util",
"itertools 0.11.0",
@@ -383,14 +390,14 @@ dependencies = [
[[package]]
name = "fhe-traits"
-version = "0.1.0-beta.5"
+version = "0.1.0-beta.6"
dependencies = [
"rand",
]
[[package]]
name = "fhe-util"
-version = "0.1.0-beta.5"
+version = "0.1.0-beta.6"
dependencies = [
"itertools 0.11.0",
"num-bigint-dig",
@@ -678,9 +685,9 @@ dependencies = [
[[package]]
name = "num-traits"
-version = "0.2.16"
+version = "0.2.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f30b0abd723be7e2ffca1272140fac1a2f084c77ec3e123c192b66af1ee9e6c2"
+checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c"
dependencies = [
"autocfg",
"libm",
diff --git a/Cargo.toml b/Cargo.toml
index 25fa99a..473d224 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -8,25 +8,27 @@ authors = ["Tancrède Lepoint"]
documentation = "https://fhe.rs"
edition = "2021"
repository = "https://github.com/tlepoint/fhe.rs"
-version = "0.1.0-beta.5"
+version = "0.1.0-beta.6"
license-file = "LICENSE"
[workspace.dependencies]
console = "0.15.7"
criterion = "0.5.1"
crypto-bigint = "0.5.3"
+doc-comment = "0.3.3"
+ethnum = "1.4.0"
indicatif = "0.17.7"
itertools = "0.11.0"
ndarray = "0.15.6"
num-bigint = "0.4.4"
num-bigint-dig = "0.8.4"
-num-traits = "0.2.16"
+num-traits = "0.2.17"
proptest = "1.3.1"
+prost = "0.12.1"
+prost-build = "0.12.1"
rand = "0.8.5"
rand_chacha = "0.3.1"
sha2 = "0.10.8"
thiserror = "1.0.49"
zeroize = "1.6.0"
zeroize_derive = "1.4.2"
-prost = "0.12.1"
-prost-build = "0.12.1"
diff --git a/README.md b/README.md
index 4013254..bf25574 100644
--- a/README.md
+++ b/README.md
@@ -31,8 +31,8 @@ To install, add the following to your project's `Cargo.toml` file:
```toml
[dependencies]
-fhe = "0.1.0-beta.5"
-fhe-traits = "0.1.0-beta.5"
+fhe = "0.1.0-beta.6"
+fhe-traits = "0.1.0-beta.6"
```
## Minimum supported version / toolchain
diff --git a/crates/fhe-math/CHANGELOG.md b/crates/fhe-math/CHANGELOG.md
deleted file mode 100644
index 8598d18..0000000
--- a/crates/fhe-math/CHANGELOG.md
+++ /dev/null
@@ -1,90 +0,0 @@
-
-
-## v0.1.0-beta.5 (2023-09-05)
-
-### Commit Statistics
-
-
-
- - 21 commits contributed to the release over the course of 362 calendar days.
- - 363 days passed between releases.
- - 0 commits were understood as [conventional](https://www.conventionalcommits.org).
- - 17 unique issues were worked on: [#130](https://github.com/tlepoint/fhe.rs/issues/130), [#132](https://github.com/tlepoint/fhe.rs/issues/132), [#133](https://github.com/tlepoint/fhe.rs/issues/133), [#134](https://github.com/tlepoint/fhe.rs/issues/134), [#138](https://github.com/tlepoint/fhe.rs/issues/138), [#139](https://github.com/tlepoint/fhe.rs/issues/139), [#140](https://github.com/tlepoint/fhe.rs/issues/140), [#142](https://github.com/tlepoint/fhe.rs/issues/142), [#143](https://github.com/tlepoint/fhe.rs/issues/143), [#144](https://github.com/tlepoint/fhe.rs/issues/144), [#145](https://github.com/tlepoint/fhe.rs/issues/145), [#146](https://github.com/tlepoint/fhe.rs/issues/146), [#148](https://github.com/tlepoint/fhe.rs/issues/148), [#149](https://github.com/tlepoint/fhe.rs/issues/149), [#157](https://github.com/tlepoint/fhe.rs/issues/157), [#168](https://github.com/tlepoint/fhe.rs/issues/168), [#170](https://github.com/tlepoint/fhe.rs/issues/170)
-
-### Commit Details
-
-
-
-view details
-
- * **[#130](https://github.com/tlepoint/fhe.rs/issues/130)**
- - Remove some nightly features, see #117 ([`6361fa3`](https://github.com/tlepoint/fhe.rs/commit/6361fa3ce322b16551cfe4856a49e3933d85c872))
- * **[#132](https://github.com/tlepoint/fhe.rs/issues/132)**
- - Remove the nightly features, except for code coverage and formatting ([`b573138`](https://github.com/tlepoint/fhe.rs/commit/b573138d682e69c3553c2e4ae4a1b7f7a65dbe5d))
- * **[#133](https://github.com/tlepoint/fhe.rs/issues/133)**
- - Explicitely specify the RNG everytime randomness is involved. Fixes #128 ([`8aafe43`](https://github.com/tlepoint/fhe.rs/commit/8aafe4396d0b771e6aa25257c7daa61c109eb367))
- * **[#134](https://github.com/tlepoint/fhe.rs/issues/134)**
- - Remove unnecessary casting by defining more conversions ([`f7cddb3`](https://github.com/tlepoint/fhe.rs/commit/f7cddb358f2ce28483944f99e223c07ae41b0c1c))
- * **[#138](https://github.com/tlepoint/fhe.rs/issues/138)**
- - Bump criterion from 0.3.6 to 0.4.0 ([`db4daf2`](https://github.com/tlepoint/fhe.rs/commit/db4daf29375497bb4331443da86fd520fd71cac8))
- * **[#139](https://github.com/tlepoint/fhe.rs/issues/139)**
- - Bump itertools from 0.10.3 to 0.10.4 ([`75d51b3`](https://github.com/tlepoint/fhe.rs/commit/75d51b3cb1c86fa1603f5e1cd9dc1f3f5859554d))
- * **[#140](https://github.com/tlepoint/fhe.rs/issues/140)**
- - Bump thiserror from 1.0.34 to 1.0.35 ([`195303e`](https://github.com/tlepoint/fhe.rs/commit/195303e93689c20ea6a282e6855762b74145fc59))
- * **[#142](https://github.com/tlepoint/fhe.rs/issues/142)**
- - Bump sha2 from 0.10.5 to 0.10.6 ([`15c3cfe`](https://github.com/tlepoint/fhe.rs/commit/15c3cfead4eea5f8a4610a2d9b571c436e85779b))
- * **[#143](https://github.com/tlepoint/fhe.rs/issues/143)**
- - Bump itertools from 0.10.4 to 0.10.5 ([`72ea4f3`](https://github.com/tlepoint/fhe.rs/commit/72ea4f36256e37e435611e4c28918baeb6e23eae))
- * **[#144](https://github.com/tlepoint/fhe.rs/issues/144)**
- - Bump protobuf from 3.1.0 to 3.2.0 ([`992e8f7`](https://github.com/tlepoint/fhe.rs/commit/992e8f72b42779e96c9cb7828f510a771524aa46))
- * **[#145](https://github.com/tlepoint/fhe.rs/issues/145)**
- - Bump thiserror from 1.0.35 to 1.0.36 ([`2750800`](https://github.com/tlepoint/fhe.rs/commit/27508002ea516d9ba41d0aa756bec7347f8404b2))
- * **[#146](https://github.com/tlepoint/fhe.rs/issues/146)**
- - Bump thiserror from 1.0.36 to 1.0.37 ([`c0022fb`](https://github.com/tlepoint/fhe.rs/commit/c0022fb24bdb191f5ebfe6a2dce31fe6d5b34523))
- * **[#148](https://github.com/tlepoint/fhe.rs/issues/148)**
- - Bump crypto-bigint from 0.4.8 to 0.4.9 ([`e5c94a2`](https://github.com/tlepoint/fhe.rs/commit/e5c94a22d0e0114869d390dc4b2e1e7d0c9d9dcd))
- * **[#149](https://github.com/tlepoint/fhe.rs/issues/149)**
- - Use workspace dependencies et versions + Release 0.1.0-beta4 ([`a0287ba`](https://github.com/tlepoint/fhe.rs/commit/a0287ba3842fcf19b45fd380c56ba7b5e52a387b))
- * **[#157](https://github.com/tlepoint/fhe.rs/issues/157)**
- - Fix clippy warnings. Fixes #154 ([`3d1d9e8`](https://github.com/tlepoint/fhe.rs/commit/3d1d9e8e28853e468dfe974253834d9c242fd0a5))
- * **[#168](https://github.com/tlepoint/fhe.rs/issues/168)**
- - Fix clippy error ([`ee67419`](https://github.com/tlepoint/fhe.rs/commit/ee6741906cfc90ab21c71953b8a1d35e90c56003))
- * **[#170](https://github.com/tlepoint/fhe.rs/issues/170)**
- - Change tabs into space, optimize ntt operator constructor ([`393316f`](https://github.com/tlepoint/fhe.rs/commit/393316ffe1d02efe70e26310ff04318b2e185e87))
- * **Uncategorized**
- - Change concrete to tfhe ([`33146f7`](https://github.com/tlepoint/fhe.rs/commit/33146f77acdc64b7c5a32494d1bd575b6bc9910f))
- - Update dependencies ([`0b4cc99`](https://github.com/tlepoint/fhe.rs/commit/0b4cc9922e6f3bfe0a16f8bf4c7f7b7be548a464))
- - Release fhe-traits v0.1.0-beta.3, fhe-util v0.1.0-beta.3, fhe-math v0.1.0-beta.3, fhe v0.1.0-beta.3 ([`c031c0e`](https://github.com/tlepoint/fhe.rs/commit/c031c0eca3a354e7d1e016dc7da2fba27f061f08))
- - Bump all version to beta.3 ([`913f84d`](https://github.com/tlepoint/fhe.rs/commit/913f84d9f510602283716a5ff310215734337956))
-
-
-## v0.1.0-beta.1 (2022-09-07)
-
-### Commit Statistics
-
-
-
- - 9 commits contributed to the release.
- - 0 commits were understood as [conventional](https://www.conventionalcommits.org).
- - 2 unique issues were worked on: [#120](https://github.com/tlepoint/fhe.rs/issues/120), [#121](https://github.com/tlepoint/fhe.rs/issues/121)
-
-### Commit Details
-
-
-
-view details
-
- * **[#120](https://github.com/tlepoint/fhe.rs/issues/120)**
- - Move internal to crates as they would be published, add changelog ([`cd3ba02`](https://github.com/tlepoint/fhe.rs/commit/cd3ba026d01275672e0c3f5e1d32aa473cde7978))
- * **[#121](https://github.com/tlepoint/fhe.rs/issues/121)**
- - Remove features, remove utilities crate, bump versions ([`570943a`](https://github.com/tlepoint/fhe.rs/commit/570943ae1822888a2ccb27412619ab3355b3ea3a))
- * **Uncategorized**
- - Release fhe-math v0.1.0-beta.1 ([`1b35a2e`](https://github.com/tlepoint/fhe.rs/commit/1b35a2ebd5e2c4d3821e6c967684fdc6e0a77441))
- - Add changelog entry for fhe-math ([`3abb768`](https://github.com/tlepoint/fhe.rs/commit/3abb768ecd236e854bc1c1baa28f2646fb81ecd6))
- - Release fhe-traits v0.1.0-beta.0, fhe-util v0.1.0-beta.0, fhe-math v0.1.0-beta.0, fhe v0.1.0-beta.0 ([`e81e1c6`](https://github.com/tlepoint/fhe.rs/commit/e81e1c60769e63c52ad3885d16249161074ca293))
- - Write changelog ([`ef65eb4`](https://github.com/tlepoint/fhe.rs/commit/ef65eb4b14fd52dfe3796d6c782127d38e551f69))
- - Adjusting changelogs prior to release of fhe-traits v0.1.0-beta.0, fhe-util v0.1.0-beta.0, fhe-math v0.1.0-beta.0, fhe v0.1.0-beta.0 ([`4c9ed5b`](https://github.com/tlepoint/fhe.rs/commit/4c9ed5bc57ccaa4a9d9ac98e4883f6c5c2136b5b))
- - Update changelog ([`85a00a1`](https://github.com/tlepoint/fhe.rs/commit/85a00a1b8113e4dc8b1d4e9d19fc6c354fb6ae0e))
- - Switch version to a pre-release number ([`cd8d3b2`](https://github.com/tlepoint/fhe.rs/commit/cd8d3b2d383367239436adcc2508bdbe816b9981))
-
-
diff --git a/crates/fhe-math/Cargo.toml b/crates/fhe-math/Cargo.toml
index f753bf9..34c43fc 100644
--- a/crates/fhe-math/Cargo.toml
+++ b/crates/fhe-math/Cargo.toml
@@ -12,10 +12,11 @@ version.workspace = true
bench = false # Disable default bench (we use criterion)
[dependencies]
-fhe-traits = { version = "^0.1.0-beta.5", path = "../fhe-traits" }
-fhe-util = { version = "^0.1.0-beta.5", path = "../fhe-util" }
+fhe-traits = { version = "^0.1.0-beta.6", path = "../fhe-traits" }
+fhe-util = { version = "^0.1.0-beta.6", path = "../fhe-util" }
crypto-bigint.workspace = true
+ethnum.workspace = true
itertools.workspace = true
ndarray.workspace = true
num-bigint.workspace = true
diff --git a/crates/fhe-math/src/rns/scaler.rs b/crates/fhe-math/src/rns/scaler.rs
index 3e03fdd..f6cf85b 100644
--- a/crates/fhe-math/src/rns/scaler.rs
+++ b/crates/fhe-math/src/rns/scaler.rs
@@ -4,7 +4,7 @@
use super::RnsContext;
use crypto_bigint::U192;
-use fhe_util::U256;
+use ethnum::u256;
use itertools::{izip, Itertools};
use ndarray::{ArrayView1, ArrayViewMut1};
use num_bigint::BigUint;
@@ -270,7 +270,8 @@ impl RnsScaler {
let mut w_sign = false;
let mut w = 0u128;
if !self.scaling_factor.is_one {
- let mut sum_theta_omega = U256::zero();
+ let mut sum_theta_omega = u256::ZERO;
+ let u64_max = u64::MAX as u128;
for (thetao_lo, thetao_hi, thetao_sign, ri) in izip!(
self.theta_omega_lo.iter(),
self.theta_omega_hi.iter(),
@@ -280,19 +281,11 @@ impl RnsScaler {
let lo = (*ri as u128) * (*thetao_lo as u128);
let hi = (*ri as u128) * (*thetao_hi as u128) + (lo >> 64);
if *thetao_sign {
- sum_theta_omega.wrapping_sub_assign(U256::from([
- lo as u64,
- hi as u64,
- (hi >> 64) as u64,
- 0,
- ]));
+ sum_theta_omega = sum_theta_omega
+ .wrapping_sub(u256::from_words(hi >> 64, (lo & u64_max) | (hi << 64)))
} else {
- sum_theta_omega.wrapping_add_assign(U256::from([
- lo as u64,
- hi as u64,
- (hi >> 64) as u64,
- 0,
- ]));
+ sum_theta_omega = sum_theta_omega
+ .wrapping_add(u256::from_words(hi >> 64, (lo & u64_max) | (hi << 64)))
}
}
@@ -305,29 +298,25 @@ impl RnsScaler {
(vt_lo_lo >> 64) + ((vt_lo_hi as u64) as u128) + ((vt_hi_lo as u64) as u128);
let vt_hi = (vt_lo_hi >> 64) + (vt_mi >> 64) + ((vt_hi_hi as u64) as u128);
if self.theta_gamma_sign {
- sum_theta_omega.wrapping_add_assign(U256::from([
- vt_lo_lo as u64,
- vt_mi as u64,
- vt_hi as u64,
- 0,
- ]))
+ sum_theta_omega = sum_theta_omega.wrapping_add(u256::from_words(
+ vt_hi,
+ (vt_lo_lo & u64_max) | (vt_mi << 64),
+ ))
} else {
- sum_theta_omega.wrapping_sub_assign(U256::from([
- vt_lo_lo as u64,
- vt_mi as u64,
- vt_hi as u64,
- 0,
- ]))
+ sum_theta_omega = sum_theta_omega.wrapping_sub(u256::from_words(
+ vt_hi,
+ (vt_lo_lo & u64_max) | (vt_mi << 64),
+ ))
}
- // Let's compute w = round(sum_theta_omega / 2^127).
- w_sign = sum_theta_omega.msb() > 0;
+ // Let's compute w = round(sum_theta_omega / 2^(192)).
+ w_sign = (sum_theta_omega >> (63 + 128)) > u256::ZERO;
if w_sign {
- w = u128::from(&((!sum_theta_omega) >> 126)) + 1;
+ w = ((!sum_theta_omega) >> 126isize).as_u128() + 1;
w /= 2;
} else {
- w = u128::from(&(sum_theta_omega >> 126));
+ w = (sum_theta_omega >> 126isize).as_u128();
w = w.div_ceil(2)
}
}
diff --git a/crates/fhe-traits/CHANGELOG.md b/crates/fhe-traits/CHANGELOG.md
deleted file mode 100644
index fd1b493..0000000
--- a/crates/fhe-traits/CHANGELOG.md
+++ /dev/null
@@ -1,81 +0,0 @@
-
-
-## v0.1.0-beta.5 (2023-09-05)
-
-### Commit Statistics
-
-
-
- - 6 commits contributed to the release over the course of 361 calendar days.
- - 363 days passed between releases.
- - 0 commits were understood as [conventional](https://www.conventionalcommits.org).
- - 3 unique issues were worked on: [#133](https://github.com/tlepoint/fhe.rs/issues/133), [#149](https://github.com/tlepoint/fhe.rs/issues/149), [#170](https://github.com/tlepoint/fhe.rs/issues/170)
-
-### Commit Details
-
-
-
-view details
-
- * **[#133](https://github.com/tlepoint/fhe.rs/issues/133)**
- - Explicitely specify the RNG everytime randomness is involved. Fixes #128 ([`8aafe43`](https://github.com/tlepoint/fhe.rs/commit/8aafe4396d0b771e6aa25257c7daa61c109eb367))
- * **[#149](https://github.com/tlepoint/fhe.rs/issues/149)**
- - Use workspace dependencies et versions + Release 0.1.0-beta4 ([`a0287ba`](https://github.com/tlepoint/fhe.rs/commit/a0287ba3842fcf19b45fd380c56ba7b5e52a387b))
- * **[#170](https://github.com/tlepoint/fhe.rs/issues/170)**
- - Change tabs into space, optimize ntt operator constructor ([`393316f`](https://github.com/tlepoint/fhe.rs/commit/393316ffe1d02efe70e26310ff04318b2e185e87))
- * **Uncategorized**
- - Change concrete to tfhe ([`33146f7`](https://github.com/tlepoint/fhe.rs/commit/33146f77acdc64b7c5a32494d1bd575b6bc9910f))
- - Release fhe-traits v0.1.0-beta.3, fhe-util v0.1.0-beta.3, fhe-math v0.1.0-beta.3, fhe v0.1.0-beta.3 ([`c031c0e`](https://github.com/tlepoint/fhe.rs/commit/c031c0eca3a354e7d1e016dc7da2fba27f061f08))
- - Bump all version to beta.3 ([`913f84d`](https://github.com/tlepoint/fhe.rs/commit/913f84d9f510602283716a5ff310215734337956))
-
-
-## v0.1.0-beta.1 (2022-09-07)
-
-### Commit Statistics
-
-
-
- - 4 commits contributed to the release.
- - 0 commits were understood as [conventional](https://www.conventionalcommits.org).
- - 1 unique issue was worked on: [#121](https://github.com/tlepoint/fhe.rs/issues/121)
-
-### Commit Details
-
-
-
-view details
-
- * **[#121](https://github.com/tlepoint/fhe.rs/issues/121)**
- - Remove features, remove utilities crate, bump versions ([`570943a`](https://github.com/tlepoint/fhe.rs/commit/570943ae1822888a2ccb27412619ab3355b3ea3a))
- * **Uncategorized**
- - Release fhe-traits v0.1.0-beta.1 ([`bd1094d`](https://github.com/tlepoint/fhe.rs/commit/bd1094d726dc76c777e5916731eec7128c3fb9c7))
- - Add changelog entry ([`f32c4eb`](https://github.com/tlepoint/fhe.rs/commit/f32c4eba1f1f254d0162008919a0088282cc521e))
- - Adjusting changelogs prior to release of fhe-traits v0.1.0-beta.1 ([`3f9506e`](https://github.com/tlepoint/fhe.rs/commit/3f9506ea81277db1fa4da6e3e501061ef6456e4c))
-
-
-## v0.1.0-beta.0 (2022-09-06)
-
-### Commit Statistics
-
-
-
- - 5 commits contributed to the release over the course of 1 calendar day.
- - 0 commits were understood as [conventional](https://www.conventionalcommits.org).
- - 2 unique issues were worked on: [#114](https://github.com/tlepoint/fhe.rs/issues/114), [#120](https://github.com/tlepoint/fhe.rs/issues/120)
-
-### Commit Details
-
-
-
-view details
-
- * **[#114](https://github.com/tlepoint/fhe.rs/issues/114)**
- - Rename crates to fhe and fhe-traits ([`9a3d608`](https://github.com/tlepoint/fhe.rs/commit/9a3d6082976a7e0b6f3cec93c096bfaa4a07ebd6))
- * **[#120](https://github.com/tlepoint/fhe.rs/issues/120)**
- - Move internal to crates as they would be published, add changelog ([`cd3ba02`](https://github.com/tlepoint/fhe.rs/commit/cd3ba026d01275672e0c3f5e1d32aa473cde7978))
- * **Uncategorized**
- - Release fhe-traits v0.1.0-beta.0, fhe-util v0.1.0-beta.0, fhe-math v0.1.0-beta.0, fhe v0.1.0-beta.0 ([`e81e1c6`](https://github.com/tlepoint/fhe.rs/commit/e81e1c60769e63c52ad3885d16249161074ca293))
- - Update changelog ([`85a00a1`](https://github.com/tlepoint/fhe.rs/commit/85a00a1b8113e4dc8b1d4e9d19fc6c354fb6ae0e))
- - Switch version to a pre-release number ([`cd8d3b2`](https://github.com/tlepoint/fhe.rs/commit/cd8d3b2d383367239436adcc2508bdbe816b9981))
-
-
diff --git a/crates/fhe-util/CHANGELOG.md b/crates/fhe-util/CHANGELOG.md
deleted file mode 100644
index e4184de..0000000
--- a/crates/fhe-util/CHANGELOG.md
+++ /dev/null
@@ -1,88 +0,0 @@
-
-
-## v0.1.0-beta.5 (2023-09-05)
-
-### Commit Statistics
-
-
-
- - 11 commits contributed to the release over the course of 362 calendar days.
- - 363 days passed between releases.
- - 0 commits were understood as [conventional](https://www.conventionalcommits.org).
- - 8 unique issues were worked on: [#130](https://github.com/tlepoint/fhe.rs/issues/130), [#132](https://github.com/tlepoint/fhe.rs/issues/132), [#133](https://github.com/tlepoint/fhe.rs/issues/133), [#139](https://github.com/tlepoint/fhe.rs/issues/139), [#143](https://github.com/tlepoint/fhe.rs/issues/143), [#149](https://github.com/tlepoint/fhe.rs/issues/149), [#157](https://github.com/tlepoint/fhe.rs/issues/157), [#170](https://github.com/tlepoint/fhe.rs/issues/170)
-
-### Commit Details
-
-
-
-view details
-
- * **[#130](https://github.com/tlepoint/fhe.rs/issues/130)**
- - Remove some nightly features, see #117 ([`6361fa3`](https://github.com/tlepoint/fhe.rs/commit/6361fa3ce322b16551cfe4856a49e3933d85c872))
- * **[#132](https://github.com/tlepoint/fhe.rs/issues/132)**
- - Remove the nightly features, except for code coverage and formatting ([`b573138`](https://github.com/tlepoint/fhe.rs/commit/b573138d682e69c3553c2e4ae4a1b7f7a65dbe5d))
- * **[#133](https://github.com/tlepoint/fhe.rs/issues/133)**
- - Explicitely specify the RNG everytime randomness is involved. Fixes #128 ([`8aafe43`](https://github.com/tlepoint/fhe.rs/commit/8aafe4396d0b771e6aa25257c7daa61c109eb367))
- * **[#139](https://github.com/tlepoint/fhe.rs/issues/139)**
- - Bump itertools from 0.10.3 to 0.10.4 ([`75d51b3`](https://github.com/tlepoint/fhe.rs/commit/75d51b3cb1c86fa1603f5e1cd9dc1f3f5859554d))
- * **[#143](https://github.com/tlepoint/fhe.rs/issues/143)**
- - Bump itertools from 0.10.4 to 0.10.5 ([`72ea4f3`](https://github.com/tlepoint/fhe.rs/commit/72ea4f36256e37e435611e4c28918baeb6e23eae))
- * **[#149](https://github.com/tlepoint/fhe.rs/issues/149)**
- - Use workspace dependencies et versions + Release 0.1.0-beta4 ([`a0287ba`](https://github.com/tlepoint/fhe.rs/commit/a0287ba3842fcf19b45fd380c56ba7b5e52a387b))
- * **[#157](https://github.com/tlepoint/fhe.rs/issues/157)**
- - Fix clippy warnings. Fixes #154 ([`3d1d9e8`](https://github.com/tlepoint/fhe.rs/commit/3d1d9e8e28853e468dfe974253834d9c242fd0a5))
- * **[#170](https://github.com/tlepoint/fhe.rs/issues/170)**
- - Change tabs into space, optimize ntt operator constructor ([`393316f`](https://github.com/tlepoint/fhe.rs/commit/393316ffe1d02efe70e26310ff04318b2e185e87))
- * **Uncategorized**
- - Change concrete to tfhe ([`33146f7`](https://github.com/tlepoint/fhe.rs/commit/33146f77acdc64b7c5a32494d1bd575b6bc9910f))
- - Release fhe-traits v0.1.0-beta.3, fhe-util v0.1.0-beta.3, fhe-math v0.1.0-beta.3, fhe v0.1.0-beta.3 ([`c031c0e`](https://github.com/tlepoint/fhe.rs/commit/c031c0eca3a354e7d1e016dc7da2fba27f061f08))
- - Bump all version to beta.3 ([`913f84d`](https://github.com/tlepoint/fhe.rs/commit/913f84d9f510602283716a5ff310215734337956))
-
-
-## v0.1.0-beta.1 (2022-09-07)
-
-### Commit Statistics
-
-
-
- - 3 commits contributed to the release.
- - 0 commits were understood as [conventional](https://www.conventionalcommits.org).
- - 1 unique issue was worked on: [#121](https://github.com/tlepoint/fhe.rs/issues/121)
-
-### Commit Details
-
-
-
-view details
-
- * **[#121](https://github.com/tlepoint/fhe.rs/issues/121)**
- - Remove features, remove utilities crate, bump versions ([`570943a`](https://github.com/tlepoint/fhe.rs/commit/570943ae1822888a2ccb27412619ab3355b3ea3a))
- * **Uncategorized**
- - Release fhe-util v0.1.0-beta.1 ([`49d32b7`](https://github.com/tlepoint/fhe.rs/commit/49d32b737bf3e943aab7861c375e269cb7971740))
- - Bump version fhe-util ([`136134c`](https://github.com/tlepoint/fhe.rs/commit/136134ccefb563780a34c356c2a646f18285630b))
-
-
-## v0.1.0-beta.0 (2022-09-06)
-
-### Commit Statistics
-
-
-
- - 4 commits contributed to the release.
- - 0 commits were understood as [conventional](https://www.conventionalcommits.org).
- - 1 unique issue was worked on: [#120](https://github.com/tlepoint/fhe.rs/issues/120)
-
-### Commit Details
-
-
-
-view details
-
- * **[#120](https://github.com/tlepoint/fhe.rs/issues/120)**
- - Move internal to crates as they would be published, add changelog ([`cd3ba02`](https://github.com/tlepoint/fhe.rs/commit/cd3ba026d01275672e0c3f5e1d32aa473cde7978))
- * **Uncategorized**
- - Release fhe-traits v0.1.0-beta.0, fhe-util v0.1.0-beta.0, fhe-math v0.1.0-beta.0, fhe v0.1.0-beta.0 ([`e81e1c6`](https://github.com/tlepoint/fhe.rs/commit/e81e1c60769e63c52ad3885d16249161074ca293))
- - Update changelog ([`85a00a1`](https://github.com/tlepoint/fhe.rs/commit/85a00a1b8113e4dc8b1d4e9d19fc6c354fb6ae0e))
- - Switch version to a pre-release number ([`cd8d3b2`](https://github.com/tlepoint/fhe.rs/commit/cd8d3b2d383367239436adcc2508bdbe816b9981))
-
-
diff --git a/crates/fhe-util/src/lib.rs b/crates/fhe-util/src/lib.rs
index 4135353..5824234 100644
--- a/crates/fhe-util/src/lib.rs
+++ b/crates/fhe-util/src/lib.rs
@@ -5,12 +5,9 @@
//! Utilities for the fhe.rs library.
#[cfg(test)]
-#[macro_use]
extern crate proptest;
-mod u256;
use rand::{CryptoRng, RngCore};
-pub use u256::U256;
use num_bigint_dig::{prime::probably_prime, BigUint, ModInverse};
use num_traits::{cast::ToPrimitive, PrimInt};
diff --git a/crates/fhe-util/src/u256.rs b/crates/fhe-util/src/u256.rs
deleted file mode 100644
index ee679ca..0000000
--- a/crates/fhe-util/src/u256.rs
+++ /dev/null
@@ -1,224 +0,0 @@
-//! Unsigned 256-bit integer.
-
-use std::ops::{Not, Shr, ShrAssign};
-
-/// Unsigned 256-bit integer represented as four u64.
-#[repr(C)]
-#[derive(Eq, PartialEq, Debug, Copy, Clone)]
-pub struct U256(u64, u64, u64, u64);
-
-impl U256 {
- /// Returns the additive identity element, 0.
- pub const fn zero() -> Self {
- Self(0, 0, 0, 0)
- }
-
- /// Add an U256 to self, wrapping modulo 2^256.
- pub fn wrapping_add_assign(&mut self, other: Self) {
- let (a, c1) = self.0.overflowing_add(other.0);
- let (b, c2) = self.1.overflowing_add(other.1);
- let (c, c3) = b.overflowing_add(c1 as u64);
- let (d, c4) = self.2.overflowing_add(other.2);
- let (e, c5) = d.overflowing_add((c2 | c3) as u64);
- let f = self.3.wrapping_add(other.3);
- let g = f.wrapping_add((c4 | c5) as u64);
- self.0 = a;
- self.1 = c;
- self.2 = e;
- self.3 = g;
- }
-
- /// Subtract an U256 to self, wrapping modulo 2^256.
- pub fn wrapping_sub_assign(&mut self, other: Self) {
- let (a, b1) = self.0.overflowing_sub(other.0);
- let (b, b2) = self.1.overflowing_sub(other.1);
- let (c, b3) = b.overflowing_sub(b1 as u64);
- let (d, b4) = self.2.overflowing_sub(other.2);
- let (e, b5) = d.overflowing_sub((b2 | b3) as u64);
- let f = self.3.wrapping_sub(other.3);
- let g = f.wrapping_sub((b4 | b5) as u64);
- self.0 = a;
- self.1 = c;
- self.2 = e;
- self.3 = g;
- }
-
- /// Returns the most significant bit of the unsigned integer.
- pub const fn msb(self) -> u64 {
- self.3 >> 63
- }
-}
-
-impl From<[u64; 4]> for U256 {
- fn from(a: [u64; 4]) -> Self {
- Self(a[0], a[1], a[2], a[3])
- }
-}
-
-impl From<[u128; 2]> for U256 {
- fn from(a: [u128; 2]) -> Self {
- Self(
- a[0] as u64,
- (a[0] >> 64) as u64,
- a[1] as u64,
- (a[1] >> 64) as u64,
- )
- }
-}
-
-impl From for [u64; 4] {
- fn from(a: U256) -> [u64; 4] {
- [a.0, a.1, a.2, a.3]
- }
-}
-
-impl From for [u128; 2] {
- fn from(a: U256) -> [u128; 2] {
- [
- (a.0 as u128) + ((a.1 as u128) << 64),
- (a.2 as u128) + ((a.3 as u128) << 64),
- ]
- }
-}
-
-impl From<&U256> for u128 {
- fn from(v: &U256) -> Self {
- debug_assert!(v.2 == 0 && v.3 == 0);
- (v.0 as u128) + ((v.1 as u128) << 64)
- }
-}
-
-impl Not for U256 {
- type Output = Self;
-
- fn not(self) -> Self {
- Self(!self.0, !self.1, !self.2, !self.3)
- }
-}
-
-impl Shr for U256 {
- type Output = Self;
-
- fn shr(self, rhs: usize) -> Self {
- let mut r = self;
- r >>= rhs;
- r
- }
-}
-
-impl ShrAssign for U256 {
- fn shr_assign(&mut self, rhs: usize) {
- debug_assert!(rhs < 256);
-
- if rhs >= 192 {
- self.0 = self.3 >> (rhs - 192);
- self.1 = 0;
- self.2 = 0;
- self.3 = 0;
- } else if rhs > 128 {
- self.0 = (self.2 >> (rhs - 128)) | (self.3 << (192 - rhs));
- self.1 = self.3 >> (rhs - 128);
- self.2 = 0;
- self.3 = 0;
- } else if rhs == 128 {
- self.0 = self.2;
- self.1 = self.3;
- self.2 = 0;
- self.3 = 0;
- } else if rhs > 64 {
- self.0 = (self.1 >> (rhs - 64)) | (self.2 << (128 - rhs));
- self.1 = (self.2 >> (rhs - 64)) | (self.3 << (128 - rhs));
- self.2 = self.3 >> (rhs - 64);
- self.3 = 0;
- } else if rhs == 64 {
- self.0 = self.1;
- self.1 = self.2;
- self.2 = self.3;
- self.3 = 0;
- } else if rhs > 0 {
- self.0 = (self.0 >> rhs) | (self.1 << (64 - rhs));
- self.1 = (self.1 >> rhs) | (self.2 << (64 - rhs));
- self.2 = (self.2 >> rhs) | (self.3 << (64 - rhs));
- self.3 >>= rhs;
- }
- }
-}
-
-#[cfg(test)]
-mod tests {
- use super::U256;
-
- #[test]
- fn zero() {
- assert_eq!(u128::from(&U256::zero()), 0u128);
- }
-
- proptest! {
-
- #[test]
- fn u128(a: u128) {
- prop_assert_eq!(a, u128::from(&U256::from([a, 0])));
- }
-
- #[test]
- fn from_into_u64(a: u64, b: u64, c: u64, d:u64) {
- prop_assert_eq!(<[u64; 4]>::from(U256::from([a, b, c, d])), [a, b, c, d]);
- }
-
- #[test]
- fn from_into_u128(a: u128, b: u128) {
- prop_assert_eq!(<[u128; 2]>::from(U256::from([a, b])), [a, b]);
- }
-
- #[test]
- fn shift(a: u64, b: u64, c: u64, d:u64, shift in 0..256usize) {
- prop_assert_eq!(<[u64; 4]>::from(U256::from([a, b, c, d]) >> 0), [a, b, c, d]);
- prop_assert_eq!(<[u64; 4]>::from(U256::from([a, b, c, d]) >> 64), [b, c, d, 0]);
- prop_assert_eq!(<[u64; 4]>::from(U256::from([a, b, c, d]) >> 128), [c, d, 0, 0]);
- prop_assert_eq!(<[u64; 4]>::from(U256::from([a, b, c, d]) >> 192), [d, 0, 0, 0]);
-
- prop_assume!(shift % 64 != 0);
- if shift < 64 {
- prop_assert_eq!(<[u64; 4]>::from(U256::from([a, b, c, d]) >> shift), [(a >> shift) | (b << (64 - shift)), (b >> shift) | (c << (64 - shift)), (c >> shift) | (d << (64 - shift)), d >> shift]);
- } else if shift < 128 {
- prop_assert_eq!(<[u64; 4]>::from(U256::from([a, b, c, d]) >> shift), [(b >> (shift - 64)) | (c << (128 - shift)), (c >> (shift - 64)) | (d << (128 - shift)), (d >> (shift - 64)), 0]);
- } else if shift < 192 {
- prop_assert_eq!(<[u64; 4]>::from(U256::from([a, b, c, d]) >> shift), [(c >> (shift - 128)) | (d << (192 - shift)), (d >> (shift - 128)), 0, 0]);
- } else {
- prop_assert_eq!(<[u64; 4]>::from(U256::from([a, b, c, d]) >> shift), [(d >> (shift - 192)), 0, 0, 0]);
- }
- }
-
- #[test]
- fn shift_assign(a: u64, b: u64, c: u64, d:u64, shift in 0..256usize) {
- let mut u = U256::from([a, b, c, d]);
-
- u >>= 0;
- prop_assert_eq!(<[u64; 4]>::from(u), [a, b, c, d]);
-
- u >>= 64;
- prop_assert_eq!(<[u64; 4]>::from(u), [b, c, d, 0]);
-
- u = U256::from([a, b, c, d]);
- u >>= 128;
- prop_assert_eq!(<[u64; 4]>::from(u), [c, d, 0, 0]);
-
- u = U256::from([a, b, c, d]);
- u >>= 192;
- prop_assert_eq!(<[u64; 4]>::from(u), [d, 0, 0, 0]);
-
- prop_assume!(shift % 64 != 0);
- u = U256::from([a, b, c, d]);
- u >>= shift;
- if shift < 64 {
- prop_assert_eq!(<[u64; 4]>::from(u), [(a >> shift) | (b << (64 - shift)), (b >> shift) | (c << (64 - shift)), (c >> shift) | (d << (64 - shift)), d >> shift]);
- } else if shift < 128 {
- prop_assert_eq!(<[u64; 4]>::from(u), [(b >> (shift - 64)) | (c << (128 - shift)), (c >> (shift - 64)) | (d << (128 - shift)), (d >> (shift - 64)), 0]);
- } else if shift < 192 {
- prop_assert_eq!(<[u64; 4]>::from(u), [(c >> (shift - 128)) | (d << (192 - shift)), (d >> (shift - 128)), 0, 0]);
- } else {
- prop_assert_eq!(<[u64; 4]>::from(u), [(d >> (shift - 192)), 0, 0, 0]);
- }
- }
- }
-}
diff --git a/crates/fhe/CHANGELOG.md b/crates/fhe/CHANGELOG.md
deleted file mode 100644
index 03caeaa..0000000
--- a/crates/fhe/CHANGELOG.md
+++ /dev/null
@@ -1,144 +0,0 @@
-
-
-## v0.1.0-beta.5 (2023-09-05)
-
-### Commit Statistics
-
-
-
- - 3 commits contributed to the release over the course of 250 calendar days.
- - 327 days passed between releases.
- - 0 commits were understood as [conventional](https://www.conventionalcommits.org).
- - 2 unique issues were worked on: [#157](https://github.com/tlepoint/fhe.rs/issues/157), [#170](https://github.com/tlepoint/fhe.rs/issues/170)
-
-### Commit Details
-
-
-
-view details
-
- * **[#157](https://github.com/tlepoint/fhe.rs/issues/157)**
- - Fix clippy warnings. Fixes #154 ([`3d1d9e8`](https://github.com/tlepoint/fhe.rs/commit/3d1d9e8e28853e468dfe974253834d9c242fd0a5))
- * **[#170](https://github.com/tlepoint/fhe.rs/issues/170)**
- - Change tabs into space, optimize ntt operator constructor ([`393316f`](https://github.com/tlepoint/fhe.rs/commit/393316ffe1d02efe70e26310ff04318b2e185e87))
- * **Uncategorized**
- - Change concrete to tfhe ([`33146f7`](https://github.com/tlepoint/fhe.rs/commit/33146f77acdc64b7c5a32494d1bd575b6bc9910f))
-
-
-## v0.1.0-beta.4 (2022-10-13)
-
-### Commit Statistics
-
-
-
- - 20 commits contributed to the release over the course of 36 calendar days.
- - 36 days passed between releases.
- - 0 commits were understood as [conventional](https://www.conventionalcommits.org).
- - 18 unique issues were worked on: [#123](https://github.com/tlepoint/fhe.rs/issues/123), [#127](https://github.com/tlepoint/fhe.rs/issues/127), [#130](https://github.com/tlepoint/fhe.rs/issues/130), [#132](https://github.com/tlepoint/fhe.rs/issues/132), [#133](https://github.com/tlepoint/fhe.rs/issues/133), [#134](https://github.com/tlepoint/fhe.rs/issues/134), [#135](https://github.com/tlepoint/fhe.rs/issues/135), [#136](https://github.com/tlepoint/fhe.rs/issues/136), [#138](https://github.com/tlepoint/fhe.rs/issues/138), [#139](https://github.com/tlepoint/fhe.rs/issues/139), [#140](https://github.com/tlepoint/fhe.rs/issues/140), [#141](https://github.com/tlepoint/fhe.rs/issues/141), [#143](https://github.com/tlepoint/fhe.rs/issues/143), [#144](https://github.com/tlepoint/fhe.rs/issues/144), [#145](https://github.com/tlepoint/fhe.rs/issues/145), [#146](https://github.com/tlepoint/fhe.rs/issues/146), [#147](https://github.com/tlepoint/fhe.rs/issues/147), [#149](https://github.com/tlepoint/fhe.rs/issues/149)
-
-### Commit Details
-
-
-
-view details
-
- * **[#123](https://github.com/tlepoint/fhe.rs/issues/123)**
- - RGSW mistakenly appeared to depend on a feature; fixes #122. ([`739d4ce`](https://github.com/tlepoint/fhe.rs/commit/739d4ced784ee4aea20c57f3e042361aab7d5517))
- * **[#127](https://github.com/tlepoint/fhe.rs/issues/127)**
- - Computes correctly the number of bits in the plaintext; fixes #126 ([`432586c`](https://github.com/tlepoint/fhe.rs/commit/432586cecf83a0808cf987882c472acbf1330a36))
- * **[#130](https://github.com/tlepoint/fhe.rs/issues/130)**
- - Remove some nightly features, see #117 ([`6361fa3`](https://github.com/tlepoint/fhe.rs/commit/6361fa3ce322b16551cfe4856a49e3933d85c872))
- * **[#132](https://github.com/tlepoint/fhe.rs/issues/132)**
- - Remove the nightly features, except for code coverage and formatting ([`b573138`](https://github.com/tlepoint/fhe.rs/commit/b573138d682e69c3553c2e4ae4a1b7f7a65dbe5d))
- * **[#133](https://github.com/tlepoint/fhe.rs/issues/133)**
- - Explicitely specify the RNG everytime randomness is involved. Fixes #128 ([`8aafe43`](https://github.com/tlepoint/fhe.rs/commit/8aafe4396d0b771e6aa25257c7daa61c109eb367))
- * **[#134](https://github.com/tlepoint/fhe.rs/issues/134)**
- - Remove unnecessary casting by defining more conversions ([`f7cddb3`](https://github.com/tlepoint/fhe.rs/commit/f7cddb358f2ce28483944f99e223c07ae41b0c1c))
- * **[#135](https://github.com/tlepoint/fhe.rs/issues/135)**
- - Starting better documentation ([`13a633c`](https://github.com/tlepoint/fhe.rs/commit/13a633c0f288d27da15548942a061540365aec10))
- * **[#136](https://github.com/tlepoint/fhe.rs/issues/136)**
- - Add comments to SealPIR and MulPIR ([`f374841`](https://github.com/tlepoint/fhe.rs/commit/f374841f5d9d0bf2ce43fb0c4043d341edf68564))
- * **[#138](https://github.com/tlepoint/fhe.rs/issues/138)**
- - Bump criterion from 0.3.6 to 0.4.0 ([`db4daf2`](https://github.com/tlepoint/fhe.rs/commit/db4daf29375497bb4331443da86fd520fd71cac8))
- * **[#139](https://github.com/tlepoint/fhe.rs/issues/139)**
- - Bump itertools from 0.10.3 to 0.10.4 ([`75d51b3`](https://github.com/tlepoint/fhe.rs/commit/75d51b3cb1c86fa1603f5e1cd9dc1f3f5859554d))
- * **[#140](https://github.com/tlepoint/fhe.rs/issues/140)**
- - Bump thiserror from 1.0.34 to 1.0.35 ([`195303e`](https://github.com/tlepoint/fhe.rs/commit/195303e93689c20ea6a282e6855762b74145fc59))
- * **[#141](https://github.com/tlepoint/fhe.rs/issues/141)**
- - Bump indicatif from 0.17.0 to 0.17.1 ([`02f0674`](https://github.com/tlepoint/fhe.rs/commit/02f0674fb24ee8f3c6129bddbe91edae0a9d7808))
- * **[#143](https://github.com/tlepoint/fhe.rs/issues/143)**
- - Bump itertools from 0.10.4 to 0.10.5 ([`72ea4f3`](https://github.com/tlepoint/fhe.rs/commit/72ea4f36256e37e435611e4c28918baeb6e23eae))
- * **[#144](https://github.com/tlepoint/fhe.rs/issues/144)**
- - Bump protobuf from 3.1.0 to 3.2.0 ([`992e8f7`](https://github.com/tlepoint/fhe.rs/commit/992e8f72b42779e96c9cb7828f510a771524aa46))
- * **[#145](https://github.com/tlepoint/fhe.rs/issues/145)**
- - Bump thiserror from 1.0.35 to 1.0.36 ([`2750800`](https://github.com/tlepoint/fhe.rs/commit/27508002ea516d9ba41d0aa756bec7347f8404b2))
- * **[#146](https://github.com/tlepoint/fhe.rs/issues/146)**
- - Bump thiserror from 1.0.36 to 1.0.37 ([`c0022fb`](https://github.com/tlepoint/fhe.rs/commit/c0022fb24bdb191f5ebfe6a2dce31fe6d5b34523))
- * **[#147](https://github.com/tlepoint/fhe.rs/issues/147)**
- - Bump console from 0.15.1 to 0.15.2 ([`a344fab`](https://github.com/tlepoint/fhe.rs/commit/a344fabf2382dbabca7368cb32b44907735481fc))
- * **[#149](https://github.com/tlepoint/fhe.rs/issues/149)**
- - Use workspace dependencies et versions + Release 0.1.0-beta4 ([`a0287ba`](https://github.com/tlepoint/fhe.rs/commit/a0287ba3842fcf19b45fd380c56ba7b5e52a387b))
- * **Uncategorized**
- - Release fhe-traits v0.1.0-beta.3, fhe-util v0.1.0-beta.3, fhe-math v0.1.0-beta.3, fhe v0.1.0-beta.3 ([`c031c0e`](https://github.com/tlepoint/fhe.rs/commit/c031c0eca3a354e7d1e016dc7da2fba27f061f08))
- - Bump all version to beta.3 ([`913f84d`](https://github.com/tlepoint/fhe.rs/commit/913f84d9f510602283716a5ff310215734337956))
-
-
-## v0.1.0-beta.2 (2022-09-07)
-
-### Commit Statistics
-
-
-
- - 2 commits contributed to the release.
- - 0 commits were understood as [conventional](https://www.conventionalcommits.org).
- - 0 issues like '(#ID)' were seen in commit messages
-
-### Commit Details
-
-
-
-view details
-
- * **Uncategorized**
- - Release fhe v0.1.0-beta.2 ([`d13c33c`](https://github.com/tlepoint/fhe.rs/commit/d13c33caf2850753ed9ef556c41cfaf73700ecd1))
- - Remove forgotten cfg(not(feature ([`2e247f2`](https://github.com/tlepoint/fhe.rs/commit/2e247f235bbe632459259f6ca74a637a2f765187))
-
-
-## v0.1.0-beta.1 (2022-09-07)
-
-### Commit Statistics
-
-
-
- - 13 commits contributed to the release over the course of 1 calendar day.
- - 0 commits were understood as [conventional](https://www.conventionalcommits.org).
- - 6 unique issues were worked on: [#114](https://github.com/tlepoint/fhe.rs/issues/114), [#115](https://github.com/tlepoint/fhe.rs/issues/115), [#116](https://github.com/tlepoint/fhe.rs/issues/116), [#118](https://github.com/tlepoint/fhe.rs/issues/118), [#120](https://github.com/tlepoint/fhe.rs/issues/120), [#121](https://github.com/tlepoint/fhe.rs/issues/121)
-
-### Commit Details
-
-
-
-view details
-
- * **[#114](https://github.com/tlepoint/fhe.rs/issues/114)**
- - Rename crates to fhe and fhe-traits ([`9a3d608`](https://github.com/tlepoint/fhe.rs/commit/9a3d6082976a7e0b6f3cec93c096bfaa4a07ebd6))
- * **[#115](https://github.com/tlepoint/fhe.rs/issues/115)**
- - Bump thiserror from 1.0.33 to 1.0.34 ([`e724edf`](https://github.com/tlepoint/fhe.rs/commit/e724edfec78809593e99b21ba5c9eeaaca1a191c))
- * **[#116](https://github.com/tlepoint/fhe.rs/issues/116)**
- - Use zeroizing instead of manual calls to zeroize ([`1d7bc50`](https://github.com/tlepoint/fhe.rs/commit/1d7bc50c58e8807d696d02f3d64e19f34a4ad0c3))
- * **[#118](https://github.com/tlepoint/fhe.rs/issues/118)**
- - Update the README with minimal example and fix compilation error ([`ecba998`](https://github.com/tlepoint/fhe.rs/commit/ecba99898c86a7908a7e9360a6e62826e2ccc5c6))
- * **[#120](https://github.com/tlepoint/fhe.rs/issues/120)**
- - Move internal to crates as they would be published, add changelog ([`cd3ba02`](https://github.com/tlepoint/fhe.rs/commit/cd3ba026d01275672e0c3f5e1d32aa473cde7978))
- * **[#121](https://github.com/tlepoint/fhe.rs/issues/121)**
- - Remove features, remove utilities crate, bump versions ([`570943a`](https://github.com/tlepoint/fhe.rs/commit/570943ae1822888a2ccb27412619ab3355b3ea3a))
- * **Uncategorized**
- - Release fhe v0.1.0-beta.1 ([`718f0cd`](https://github.com/tlepoint/fhe.rs/commit/718f0cdc1e5b75eaf52a5ea1078c1ed9c2bf46f5))
- - First version fhe crate ([`3f9e80c`](https://github.com/tlepoint/fhe.rs/commit/3f9e80c9bc91b068d00ec6b03ccafb07f150185a))
- - Release fhe-traits v0.1.0-beta.0, fhe-util v0.1.0-beta.0, fhe-math v0.1.0-beta.0, fhe v0.1.0-beta.0 ([`e81e1c6`](https://github.com/tlepoint/fhe.rs/commit/e81e1c60769e63c52ad3885d16249161074ca293))
- - Adjusting changelogs prior to release of fhe-traits v0.1.0-beta.0, fhe-util v0.1.0-beta.0, fhe-math v0.1.0-beta.0, fhe v0.1.0-beta.0 ([`4c9ed5b`](https://github.com/tlepoint/fhe.rs/commit/4c9ed5bc57ccaa4a9d9ac98e4883f6c5c2136b5b))
- - Add space to test ([`f5e82f3`](https://github.com/tlepoint/fhe.rs/commit/f5e82f3708bc15a7f517f19bb482fce0044cf091))
- - Update changelog ([`85a00a1`](https://github.com/tlepoint/fhe.rs/commit/85a00a1b8113e4dc8b1d4e9d19fc6c354fb6ae0e))
- - Switch version to a pre-release number ([`cd8d3b2`](https://github.com/tlepoint/fhe.rs/commit/cd8d3b2d383367239436adcc2508bdbe816b9981))
-
-
diff --git a/crates/fhe/Cargo.toml b/crates/fhe/Cargo.toml
index d2e1289..95b03d6 100644
--- a/crates/fhe/Cargo.toml
+++ b/crates/fhe/Cargo.toml
@@ -12,9 +12,9 @@ version.workspace = true
bench = false # Disable default bench (we use criterion)
[dependencies]
-fhe-math = { version = "^0.1.0-beta.5", path = "../fhe-math" }
-fhe-traits = { version = "^0.1.0-beta.5", path = "../fhe-traits" }
-fhe-util = { version = "^0.1.0-beta.5", path = "../fhe-util" }
+fhe-math = { version = "^0.1.0-beta.6", path = "../fhe-math" }
+fhe-traits = { version = "^0.1.0-beta.6", path = "../fhe-traits" }
+fhe-util = { version = "^0.1.0-beta.6", path = "../fhe-util" }
itertools.workspace = true
num-bigint.workspace = true