42 Commits
Author SHA1 Message Date
zeekay eaf864890e feat: release v7.0.0 with GPU acceleration and module update
- Update module path to github.com/luxfi/lattice/v7
- Add GPU acceleration with Metal (macOS) and CUDA backends
- Enhance threshold FHE operations
- Revert to vanilla Apache 2.0 license (remove tfhe)
- Update Go version to 1.25.5
- Merge upstream lattigo improvements
2025-12-30 15:37:37 -08:00
zeekay 96a611356a Update to latest v6 2025-08-06 20:21:56 -05:00
zeekay 78026c60eb Merge in latest updates from lattigo 2025-08-06 20:09:12 -05:00
zeekay bd8c210383 Update package name 2025-08-06 19:52:38 -05:00
lehugueni 70c936ba51 refactor: add separate pool structs 2025-06-19 16:58:07 +02:00
lehugueni c23239019a refactor: remove pools logic for higher-level structs 2025-04-24 09:39:08 +02:00
lehugueni b7dc806728 Merge branch 'main' into uint64-syncpool 2025-02-20 16:17:28 +01:00
Jean-Philippe Bossuat b2686e2dd6 Applied suggested changes 2025-01-21 09:40:37 +01:00
Jean-Philippe Bossuat 6d33e84fcb Cleared all instances of G115 2025-01-21 09:15:17 +01:00
lehugueni 52927eef36 refactor: keep only BuffFromUintPool and cleanup 2025-01-16 11:07:19 +01:00
lehugueni 202c004aeb bufferpool uint64 in ring 2024-12-12 14:26:08 +01:00
lehugueni 7f7ca137da change generic 2024-12-11 15:40:06 +01:00
lehugueni e56814b820 freelist + benchmarking 2024-12-03 10:41:56 +01:00
lehugueni c991147dbb use interface+generic 2024-11-29 14:58:21 +01:00
Andrea Caforio 2fdadd379d Merge pull request #492 from tuneinsight/he-collapse
v6.0.0
2024-08-06 14:46:08 +02:00
Jean-Philippe Bossuat b3a92621bc updated imports to v5 2023-11-14 19:15:38 +01:00
c44961c43d Update utils/structs/map.go
Co-authored-by: Boris Flesch <[email protected]>
2023-10-30 15:05:54 +01:00
66210e695f Update utils/structs/vector.go
Co-authored-by: Boris Flesch <[email protected]>
2023-10-30 15:05:46 +01:00
65b465cc52 Update utils/structs/vector.go
Co-authored-by: Boris Flesch <[email protected]>
2023-10-30 15:05:37 +01:00
ed01c462a3 Update utils/structs/matrix.go
Co-authored-by: Boris Flesch <[email protected]>
2023-10-30 15:05:26 +01:00
2a82021922 Update utils/structs/matrix.go
Co-authored-by: Boris Flesch <[email protected]>
2023-10-30 15:04:04 +01:00
Romain Bouyé 78da8bff1d Typo fixes on v5 pass 2023-10-13 00:14:52 +02:00
Jean-Philippe Bossuat b791305ecc staticcheck 2023-10-05 14:05:40 +02:00
Jean-Philippe Bossuat bc6d3244d0 [utils/buffer]: added equality checks
[ring.Poly]: removed .Buff (not needed anymore)
2023-10-05 14:03:17 +02:00
Jean-Philippe Bossuat da9c308ad7 [utils/structs]: expanded support for floats and integers. 2023-10-05 11:22:36 +02:00
Jean-Philippe Bossuat e5cfd05850 [utils/structs]: fixed error messages 2023-10-05 09:18:08 +02:00
Jean-Philippe Bossuat ef39ad3597 [utils/buffer]: added generics 2023-10-04 10:36:15 +02:00
Jean-Philippe Bossuat 5b1cae4964 generic Operand 2023-07-15 19:27:30 +02:00
Jean-Philippe Bossuat 6186700065 [utils/buffer]: all custom methods returns the number of bytes written as int64 2023-07-12 09:42:11 +02:00
Jean-Philippe Bossuat 795fca3ec2 staticcheck & gosec 2023-06-27 17:14:41 +02:00
Jean-Philippe Bossuat 81618da922 [ex. params][private test params][fix to deep equal][bfv benchmarks] 2023-06-17 01:08:06 +02:00
Christian Mouchet 3cd15afe87 simplified distribution parameter interface and re-enabled parameters marshalling
The distribtion interface was too complicated for what it provided. To achieve its
intended functionality, larger changes needed to occure such as including the base ring
in the Distribution interface and probably moving the samplers to the rlwe package.
Since this is not the envision goal of this PR, I simplified the distribution
parameterization so that it meets these goals.
2023-06-15 12:52:36 +02:00
Christian Mouchet ada58c6e55 centralized rlwe key-related structs in keys.go and used [2]ringqp.Poly as unerlying PublicKey type
The use of OperandQP for public key is correct but a bit of an overkill, especially since public-keys
must be of size two (which requires an additional check at cast/read/write anyway) and because they
should not require to serialize ciphertext-related metadata.
2023-06-12 18:09:22 +02:00
Christian Mouchet 03fff5b385 removed the Encode and Decode interface 2023-06-12 13:53:16 +02:00
Christian Mouchet 87ad1387f9 improved the Writer/Reader-based serialization
The WriterTo and ReaderFrom standard interface should be sufficient for the serialization
of lattigo objects from their pointers. Other interfaces such as BinaryMarshaller should
be based on WriterTo. This is possible in an efficient way if the Writer and Reader interface
expose their internal buffer.
2023-06-12 13:52:43 +02:00
Christian Mouchet 85ef4c6c43 improved Vector, Matrix and Map types
Vector and Matrix now use []T and [][]T as underlying types, which makes them more versatile and easy to cast to from slices.
Map still uses map[K]V as map values cannot be addressed and this is anoying to use.
I also got rid of the Codec[T] type as it can be replaced with a 3-liner (i.e., equivalent to calling the Codex and checking the error).
There is also a small change of the OperendQ.Encode method that now uses OperandQ.WriteTo instead of OperandQ.Encode (since it is a bit fasterfor some reason...). This is an experiment and more work on the serialization is needed.
2023-06-07 20:18:13 +02:00
Jean-Philippe Bossuat e44a9241de [structs]: fixed EOF for readfrom if struct was empty 2023-05-01 21:10:26 +02:00
Jean-Philippe Bossuat 6c216c57ce staticcheck 2023-04-24 21:36:51 +02:00
Jean-Philippe Bossuat 013c5d5cc6 [all]: updated API for encoding/decoding in place 2023-04-24 18:44:05 +02:00
Jean-Philippe Bossuat bbc123a55f [structs]: added generic copynew 2023-04-06 10:40:23 +02:00
Jean-Philippe Bossuat 5ab2d78f58 [rlwe]: adapted structs to the utils/structs package 2023-04-05 15:53:14 +02:00
Jean-Philippe Bossuat 6706f8ebdf [utils]: added structs 2023-04-04 13:40:31 +02:00