Commit Graph

398 Commits

Author SHA1 Message Date
DmytroTym
3c068ae4e7 Changed long to int64 2024-02-05 14:17:00 +02:00
Jeremy Felder
bfd510b3bb Bump for release 2024-02-05 13:33:00 +02:00
DmytroTym
d2b9ec1908 Fixed overflow in large coset NTTs 2024-02-05 13:14:03 +02:00
Jeremy Felder
77a7613aa2 Release v1.1.0 (#357)
Release v1.1.0:
- Updated examples to use the new API
- [c++] Curve specific functions using macros
- [c++] Consolidate MSM and Batch MSM to single function
- [CI] Add codespell in CI
- [FIX] Windows rust build
- [FIX] G2 on rust bindings
- [FIX] Bw6 using bls12377
v1.1.0
2024-01-31 20:30:44 +02:00
Jeremy Felder
5a96f9937d Bump for release 2024-01-31 16:34:14 +02:00
Stas
aaa3808c81 Update examples for new api (#355)
## Describe the changes

Make sure the examples comply with new API
2024-01-31 08:59:21 +02:00
stas
759b7b26d6 Update examples to use latest API 2024-01-31 08:59:21 +02:00
Leon Hibnik
1874ade68a update readme links (#346)
Update README.md
2024-01-24 12:26:38 +02:00
DmytroTym
96fe5bf283 G2 fix and BW6 scalar field on the Rust side (#341)
* BW scalar field is now the same as BLS base field in Rust

* G2 fixed and added into Rust
2024-01-24 11:51:22 +02:00
Jeremy Felder
f0a0bb5974 Fix/windows build failing (#345)
- Make the curve config's omegas_count conditionally accessed when creating fields
- Remove the extern C function that returns a UDT containing non-POD types and replace it with a default_config function on the Rust bindings side
2024-01-23 10:51:16 +02:00
Jeremy Felder
69af0bef91 [FEAT]: Add codespell to CI and pre-commit hooks (#344)
Add codespell to pre-commit hook/CI and fix typos
2024-01-22 14:27:52 +02:00
Stas
45f6db666b c++ msm uses new API (#338)
## Describe the changes

This PR allows c++ MSM example to compile with new API

## Linked Issues

Resolves #
2024-01-18 11:31:30 -05:00
Stas
4c235bf5f5 Merge branch 'dev' into examples-cpp-msm-new-API 2024-01-18 11:29:54 -05:00
stas
a0f35ea8cd comply with reviewer's comments 2024-01-18 11:13:12 -05:00
yshekel
56fcd2e156 refactor: consolidate msm and batch-msm implementations to one function (#342)
refactor: consolidate msm and batch-msm implementations to one function
    - now batch-msm support parallel BM accumulation in addition to large triangle accumulation
2024-01-18 14:20:34 +02:00
Otsar
c1a32a9879 Update README.md (#339)
Added badge
2024-01-11 18:34:32 +02:00
yshekel
67586e01f8 refactor: generate curve-specific function names with macro (#337)
For exposed functions that are curve-specific, the expected symbol is
based on the curve name.
For example MSMCuda becomes bn254MSMCuda for CURVE=bn254.

currently it is implemented via objcopy by redefining symbols after
compilation.

This PR modifies the function names at preprocessing time instead.
For shared objects, objcopy doesn't work (since it cannot modify the
dynsym section).
2024-01-11 15:04:40 +02:00
Yuval Shekel
9823f87fe2 fix: enable ci for dev branch 2024-01-11 13:49:41 +02:00
Yuval Shekel
5fda751e93 refactor: generate curve-specific function names with macro instead of using objcopy to modify the symbols 2024-01-11 10:54:31 +02:00
stas
0c58fe2b83 c++ msm uses new API 2024-01-09 11:06:10 -05:00
Leon Hibnik
b184befc99 Update readme v1.0.0 (#335)
* Update readme v1.0.0

* update

* update example readme
v1.0.0
2024-01-08 23:48:24 +02:00
DmytroTym
91471fbbc6 New API for Version 1.0.0 (#326) 2024-01-08 20:42:16 +02:00
Jeremy Felder
4cc30474d4 Added conditional PIC for compilation 2024-01-08 18:22:50 +02:00
Jeremy Felder
ad932c6b4a Merge branch 'main' into dev 2024-01-08 17:44:03 +02:00
Jeremy Felder
392fff4e8f fix: remove examples directory from clang formatting 2024-01-08 17:40:40 +02:00
DmytroTym
dc3518c0de Smart pointers and documentation (#333)
* Safer smart pointer that covers host and device

* Fixed MSM test

* Scalars and points in MSM are non-mutable in all cases

* change mont API (#332)

* Some Rust doc comments

---------

Co-authored-by: ChickenLover <Romangg81@gmail.com>
2024-01-08 17:35:27 +02:00
Jeremy Felder
79b86e0edf Added examples for rust and c++ 2024-01-08 17:31:46 +02:00
Jeremy Felder
709009a96a Formatting, fixes tests, and general cleanup 2024-01-08 17:31:46 +02:00
Jeremy Felder
b92bc707d1 Fix main build badge to be on push and not pr 2024-01-08 17:28:11 +02:00
Jeremy Felder
a87f2251da Moved ingo_<curve> output to same directory as original library output allowing rust build script to find it when crate is used as a dependency 2024-01-08 17:28:03 +02:00
ImmanuelSegol
31108ee31d Update READMEs and docs (#303)
---------

Co-authored-by: Jeremy Felder <jeremy.felder1@gmail.com>
2024-01-08 17:22:36 +02:00
DmytroTym
5f7b36d427 Rust NTT updates (#305)
* NTT and MSM bugs fixed and functionality extended

* More Rust tests, refactored Rust wrappers

* Reworked MSM and NTT public functions on the Rust side

---------

Co-authored-by: ImmanuelSegol <3ditds@gmail.com>
Co-authored-by: Jeremy Felder <jeremy.felder1@gmail.com>
Co-authored-by: BigSky77 <simonjudd2@gmail.com>
Co-authored-by: yanziseeker <153156292+AdventureSeeker987@users.noreply.github.com>
Co-authored-by: BigSky <77446076+bigsky77@users.noreply.github.com>
2024-01-08 17:20:39 +02:00
ChickenLover
41affcdadf Add Montgomery conversions API (#321) 2024-01-08 17:19:46 +02:00
VitaliiH
a22c046410 Adds proper error handling for GPU errors and c++ icicle errors 2024-01-08 17:19:45 +02:00
ChickenLover
0eb8560c63 Feat/roman/msm ntt generics (#299)
Add curves to Rust, use generics for NTT, MSM and tests
2024-01-08 17:19:02 +02:00
Jeremy Felder
605c25f9d2 Fix main build badge to be on push and not pr (#325)
## Describe the changes

This PR fixes the build badge to show the status of the `main` branch
build status instead of the status of a PR branch against `main`
2024-01-01 18:45:14 +02:00
Jeremy Felder
5ccf7ff378 Fix main build badge to be on push and not pr 2023-12-31 12:34:17 +02:00
Jeremy Felder
4beda3a900 Fix curve crates not building when used as dependency (#320)
## Describe the changes

This PR moves `ingo_<curve>` archive output to the same directory as the
original library output allowing rust build scripts to find it when a
curve crate is used as a dependency
2023-12-25 14:19:07 +02:00
Jeremy Felder
da122e7ec9 Moved ingo_<curve> output to same directory as original library output allowing rust build script to find it when crate is used as a dependency 2023-12-25 10:11:50 +02:00
Jeremy Felder
f9e46d158c Fix typos (#319)
## Describe the changes
Fix some typos in comment
2023-12-24 09:25:07 +02:00
BigSky
65d4f2ba2e Add Nix Shell Environment Configuration for CUDA (#318)
This PR introduces a Nix Shell configuration for easing the development
of the ICICLE Core using Nix or NixOS.

Changes:

1. Added instructions on how to use Nix Shell to create a development
environment with all required dependencies and environmental variables.
2. Created `cuda-shell.nix` to configure Nix Shell with necessary CUDA
related packages and environmental variables. Specifically, setting the
`PATH`, `LD_LIBRARY_PATH`, `CUDA_PATH`, `CPATH`, `LIBRARY_PATH`, and
`CMAKE_CUDA_COMPILER` associated with the CUDA toolkit.

This configuration allows us to build and run ICICLE Core more
efficiently in Nix environment.
2023-12-22 10:30:36 -07:00
yanziseeker
263b5d95b5 Fix typos 2023-12-22 06:30:28 +00:00
BigSky77
64c8c89424 Update Nix Shell, add Nix instructions 2023-12-19 12:23:04 -07:00
ImmanuelSegol
dcaa0b4513 update readme (#303)
* refactor

* refactor

* refactor: add rust docs

* Update README.md

Co-authored-by: Jeremy Felder <jeremy.felder1@gmail.com>

* Update README.md

Co-authored-by: Jeremy Felder <jeremy.felder1@gmail.com>

* refactor

* Update icicle/README.md

Co-authored-by: Jeremy Felder <jeremy.felder1@gmail.com>

* Update wrappers/rust/README.md

Co-authored-by: Jeremy Felder <jeremy.felder1@gmail.com>

* Update README.md

Co-authored-by: Jeremy Felder <jeremy.felder1@gmail.com>

* refactor

* remove

---------

Co-authored-by: Jeremy Felder <jeremy.felder1@gmail.com>
2023-12-19 09:17:30 -04:00
Jeremy Felder
d5dd16dd9b Fix the need for a dummy bindings.rs file included in the repo (#296) 2023-12-13 12:45:00 +02:00
Jeremy Felder
644aa93d3f New API (#293)
This PR revamps the API and implements the rust bindings for the new API.
2023-12-12 22:30:53 +02:00
Jeremy Felder
73e39c60f6 Fix bw6 test in CI 2023-12-12 21:33:23 +02:00
Jeremy Felder
6d992a9909 Fix CI format workflow 2023-12-12 21:12:20 +02:00
Jeremy Felder
0df6262961 Update CI and prepush hooks 2023-12-12 20:49:57 +02:00
DmytroTym
401ec5afac Merge in 'main' and fmt 2023-12-12 20:08:38 +02:00