103 Commits

Author SHA1 Message Date
Jean-Philippe Bossuat
4e90e08a71 Support for bivariate convolution & normalization with offset (#126)
* Add bivariate-convolution
* Add pair-wise convolution + tests + benches
* Add take_cnv_pvec_[left/right] to Scratch & updated CHANGELOG.md
* cross-base2k normalization with positive offset
* clippy & fix CI doctest avx compile error
* more streamlined bounds derivation for normalization
* Working cross-base2k normalization with pos/neg offset
* Update normalization API & tests
* Add glwe tensoring test
* Add relinearization + preliminary test
* Fix GGLWEToGGSW key infos
* Add (X,Y) convolution by const (1, Y) poly
* Faster normalization test + add bench for cnv_by_const
* Update changelog
2025-12-21 16:56:42 +01:00
Rasoul Akhavan Mahdavi
4a6c96dfc8 clippy + cleanup 2025-12-01 22:07:03 -05:00
Rasoul Akhavan Mahdavi
48407ccefc Examples, benchmarks, and minor changes for consistency, in BDD API 2025-12-01 00:41:31 -05:00
Pro7ech
3c818d292b Update to non-avx builds 2025-11-21 16:38:19 +01:00
Rasoul Akhavan Mahdavi
0fb88c9bd3 Non-avx build (wip) 2025-11-20 10:22:20 -05:00
Jean-Philippe Bossuat
8a039e1c3a Update doc & readme (#122)
* update poulpy_arch.svg

* update main readme

* update lib_diagram.png & main readme

* update poulpy-core readme

* update backend readmes

* update poulpy-hal readme

* update poulpy-schemes readme

* update CHANGELOG.md
2025-11-19 17:08:11 +01:00
Rasoul Akhavan Mahdavi
ad837c8fa8 get GGSW multibit 2025-11-19 09:38:53 -05:00
Jean-Philippe Bossuat
9e007c988f Backend refactor (#120)
* remove spqlios, split cpu_ref and cpu_avx into different crates

* remove spqlios submodule

* update crate naming & add avx tests
2025-11-19 15:34:31 +01:00
Pro7ech
43fc5119f4 Added glwe rank switch before glwe -> lwe 2025-11-19 10:15:30 +01:00
Pro7ech
c23cf7803b Working schemes 2025-11-19 09:31:50 +01:00
Pro7ech
48757fac7c working cross-base2k circuit bootstrapping 2025-11-19 09:23:51 +01:00
Pro7ech
59a1b6616a Fix seeded glwe encryption 2025-11-18 23:57:24 +01:00
Pro7ech
2fb1627613 fixed many test noise check + update noise retrieval (not passing) 2025-11-18 17:38:16 +01:00
Pro7ech
f39e3e2865 Remove Zn (replaced by VecZnx), add more cross-base2k ops & tests 2025-11-18 01:08:20 +01:00
Pro7ech
08d3f55af9 fix cross-base2k vec_znx_normalize wrong early carry 2025-11-17 16:46:33 +01:00
Pro7ech
2613bf1450 Add identity BDD 2025-11-16 16:02:59 +01:00
Pro7ech
f9dcddcce1 Add offset to blind retrieval 2025-11-16 13:55:40 +01:00
Pro7ech
b062c722a0 Add support for blind retrieval 2025-11-15 22:41:11 +01:00
Pro7ech
1ad54f53a8 Add bddkey encrypt sk tmp_bytes 2025-11-14 16:47:14 +01:00
Pro7ech
efdadb9592 Add circuit bootstrapping encrypt sk tmp_bytes 2025-11-14 16:44:12 +01:00
Pro7ech
b11213c454 Add glwe_normalize_tmp_bytes & update assertion error 2025-11-12 22:49:12 +01:00
Pro7ech
b034ea8253 fix multithread bdd 2025-11-12 20:25:19 +01:00
Pro7ech
33e1656368 Remove T from GetBitCircuit 2025-11-12 15:08:21 +01:00
Pro7ech
1423de1c46 Add multi-thread bdd eval 2025-11-12 11:04:32 +01:00
Pro7ech
6924ffd94a Add prepare multi thread 2025-11-11 23:30:20 +01:00
Pro7ech
af45595848 Improve noise stats functionality 2025-11-11 11:19:17 +01:00
Jean-Philippe Bossuat
e7bf8e9307 fix sext 2025-11-08 18:14:58 +01:00
Pro7ech
8f7cb9fbc5 Add decrypt on fhe_uint_prepared 2025-11-08 12:14:05 +01:00
Pro7ech
75842cd80a Improve cmux speed 2025-11-07 17:56:33 +01:00
Pro7ech
836df871fe Add normalize in cmux & uint_prepared to uint 2025-11-07 16:30:47 +01:00
Pro7ech
f13d61443c fix api inconsistency 2025-11-07 08:53:53 +01:00
Pro7ech
1d23dfc078 Update to custom fheuint prepare 2025-11-07 08:49:32 +01:00
Rasoul Akhavan Mahdavi
5cf184d950 partial fheuint preparation 2025-11-07 00:47:29 -05:00
Pro7ech
785bb46df2 fix decoding to use rounded division instead of arithmetic right shift 2025-11-06 11:20:53 +01:00
Pro7ech
18652da7e0 fix gglwe to ggsw key layout type 2025-11-05 22:21:26 +01:00
Pro7ech
be6483df75 Add bit/byte extraction to glwe 2025-11-05 15:17:55 +01:00
Pro7ech
92cfef5b60 add zero_byte for fhe_uint & fix test for glwe blind selection 2025-11-05 10:21:55 +01:00
Pro7ech
6cf571c0b0 add sext for fheuint 2025-11-05 09:25:05 +01:00
Pro7ech
f84bb02bc9 Fix API consistency 2025-11-04 15:55:43 +01:00
Pro7ech
5f30168cb5 Add glwe blind selection 2025-11-04 14:07:18 +01:00
Pro7ech
5e1f72402a Add helper trait for BDDKey 2025-11-03 14:22:11 +01:00
Jean-Philippe Bossuat
2feda14b63 removed unused field in macro + fixed BDD circuit eval for bits with 0 nodes 2025-10-31 10:35:23 +01:00
Jean-Philippe Bossuat
578ed45b9a Enables external circuits to be called 2025-10-31 10:01:02 +01:00
Pro7ech
f6170d01d3 update doc 2025-10-30 16:48:24 +01:00
Pro7ech
3cd79e5a90 Updated packing to clean values correctly 2025-10-30 15:58:30 +01:00
Pro7ech
a6970669dd Small API consistency fix 2025-10-30 12:05:42 +01:00
Pro7ech
201a1f64eb Replace hasmap of glweautomorphismkeys by helper trait, enabling not having to pass, for example, but full CBT key for ops that do not require it 2025-10-30 10:42:28 +01:00
Pro7ech
f03bb4931b Add splice u8 and u16 2025-10-29 21:03:58 +01:00
Pro7ech
8743eeb800 Add FheUint from Vec<GLWE> 2025-10-29 16:26:47 +01:00
Pro7ech
9d5bc43632 Update bit encoding to byte interleaving to enable trivial byte-level manipulation 2025-10-29 10:06:02 +01:00