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
- 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
refactor: consolidate msm and batch-msm implementations to one function
- now batch-msm support parallel BM accumulation in addition to large triangle accumulation
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).
* 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>
## 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`
## 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
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.