Recent Releases of icicle-core

icicle-core - Release v4.0.0

ICICLE v4.0.0 Release Notes

🎉 Major Release: ICICLE v4.0.0

We're excited to announce the release of ICICLE v4.0.0! This major version introduces significant improvements to the API design, making it more intuitive, object-oriented, and developer-friendly across all supported languages.

🚀 Key Highlights

  • Object-Oriented Field API: Complete redesign of field operations from static methods to instance methods
  • Method Chaining Support: Write more concise and expressive code with method chaining
  • Improved Rust API: Better trait design with standard operator overloading
  • Enhanced Program API: Reorganized Program module with better type safety
  • Backward Compatibility: Comprehensive migration guides for v3 to v4 transition
  • Post Quantum: Implemented a NIST FIPS203 (ML-KEM) protocol on CUDA, fully open-source
  • Lattice Based Cryptography: Add support for Lattice based cryptography, with integer ring support and a full LaBRADOR prover (soon announced)

🔄 Breaking Changes

C++ API Changes

Field Arithmetic Operations

All field operations have been converted from static methods to instance methods Check the migration page for more details

Rust API Changes

Arithmetic Trait Redesign

The FieldImpl trait has been deprecated and split into focused, orthogonal traits

What's Changed

  • Negacyclic NTT for polynomial rings by @yshekel in https://github.com/ingonyama-zk/icicle/pull/930
  • Update README.md by @Shalmoni in https://github.com/ingonyama-zk/icicle/pull/931
  • Fixed devdocs link licensing by @Shalmoni in https://github.com/ingonyama-zk/icicle/pull/933
  • Fix collab instructions for version mismatch error by @jeremyfelder in https://github.com/ingonyama-zk/icicle/pull/935
  • Feat: generate JL-projection matrix rows by @yshekel in https://github.com/ingonyama-zk/icicle/pull/936
  • Curve Montgomery Conversion Fix for Host Memory by @emirsoyturk in https://github.com/ingonyama-zk/icicle/pull/938
  • [FIX] Invalid memory access causes hang by @jeremyfelder in https://github.com/ingonyama-zk/icicle/pull/939
  • PQC ML-KEM by @nonam3e and @dorshmil in https://github.com/ingonyama-zk/icicle/pull/932
  • Add PQC documentation to 3.9.0 by @LeonHibnik in https://github.com/ingonyama-zk/icicle/pull/940
  • Changed broken link on readme by @Shalmoni in https://github.com/ingonyama-zk/icicle/pull/942
  • [FEAT] Rust Polynomial-Ring trait and NegacyclicNTT by @yshekel in https://github.com/ingonyama-zk/icicle/pull/943
  • [FEAT] Decompose Polynomial-rings by @yshekel in https://github.com/ingonyama-zk/icicle/pull/945
  • [FEAT] JL-projection Rust wrapper by @yshekel in https://github.com/ingonyama-zk/icicle/pull/949
  • [FEAT] MatMul API by @lnm-at-work in https://github.com/ingonyama-zk/icicle/pull/871
  • [FEAT] Expose Sumcheck protocol challenge vector by @LeonHibnik in https://github.com/ingonyama-zk/icicle/pull/946
  • Timur/pqc go wrappers by @nonam3e in https://github.com/ingonyama-zk/icicle/pull/944
  • [FEAT] Add flattening utilities for polynomial slices into scalar slices by @yshekel in https://github.com/ingonyama-zk/icicle/pull/952
  • [CI] Separate testing by feature by @jeremyfelder in https://github.com/ingonyama-zk/icicle/pull/913
  • [FEAT] Add reinterpretation utilities and polynomial vector operations by @yshekel in https://github.com/ingonyama-zk/icicle/pull/954
  • [FIX] typo in ci.yml by @yshekel in https://github.com/ingonyama-zk/icicle/pull/959
  • [REFACTOR] move matrix transpose to matrix_ops, add PolyRing support and tests by @yshekel in https://github.com/ingonyama-zk/icicle/pull/961
  • [CI] Fix Go tests and Rust bn254 by @jeremyfelder in https://github.com/ingonyama-zk/icicle/pull/960
  • [CI] Move merkle test to hash crate by @jeremyfelder in https://github.com/ingonyama-zk/icicle/pull/963
  • Determine the scalar size according to configuration if provided by @mickeyasa in https://github.com/ingonyama-zk/icicle/pull/955
  • [FEATURE] Pseudorandom field element sampling from seed by @ChickenLover in https://github.com/ingonyama-zk/icicle/pull/950
  • Validate JL projection consistency across backends by @dorshmil in https://github.com/ingonyama-zk/icicle/pull/956
  • devdocs: June 15 Update by @Shalmoni in https://github.com/ingonyama-zk/icicle/pull/947
  • consistent norm check by @emirsoyturk in https://github.com/ingonyama-zk/icicle/pull/967
  • Devdocs quick fix by @Shalmoni in https://github.com/ingonyama-zk/icicle/pull/969
  • [FIX] fix int devision bug in MSM by @idanfr-ingo in https://github.com/ingonyama-zk/icicle/pull/970
  • [Feat] matrix ops rust by @lnm-at-work in https://github.com/ingonyama-zk/icicle/pull/957
  • [FIX] Matmul rust wrappers identify device memory and assert sizes by @yshekel in https://github.com/ingonyama-zk/icicle/pull/977
  • [FIX] Unify Zq and Rq Balanced Base-b Decomposition Using Digit-Major Layout by @yshekel in https://github.com/ingonyama-zk/icicle/pull/979
  • [FIX] Replace dependent_option with regular option by @jeremyfelder in https://github.com/ingonyama-zk/icicle/pull/976
  • [FEATURE] Add matrix transpose support to Rust matrix_ops wrapper by @yshekel in https://github.com/ingonyama-zk/icicle/pull/984
  • Add manual trigger for full test suite by @jeremyfelder in https://github.com/ingonyama-zk/icicle/pull/987
  • Feat/challenge space sampling by @ChickenLover in https://github.com/ingonyama-zk/icicle/pull/966
  • fix random sampling small size bug by @ChickenLover in https://github.com/ingonyama-zk/icicle/pull/994
  • Relax norm bound API: support size > 2¹⁶ and full-range L∞ values by @yshekel in https://github.com/ingonyama-zk/icicle/pull/998
  • [FEAT] Allow disabling features from rust bindings by @jeremyfelder in https://github.com/ingonyama-zk/icicle/pull/978
  • V4 Rust wrapper redesign by @ChickenLover, @nonam3e, @vhnatyk, @LeonHibnik in https://github.com/ingonyama-zk/icicle/pull/990
  • ICICLE V4 by @ChickenLover, @LeonHibnik in https://github.com/ingonyama-zk/icicle/pull/982
  • [Feat] matmul + transpose fusion by @lnm-at-work in https://github.com/ingonyama-zk/icicle/pull/1000
  • [EXAMPLE] Add Rust example showcasing icicle-lattice APIs by @yshekel in https://github.com/ingonyama-zk/icicle/pull/965
  • [FIX] compilation for arm by @yshekel in https://github.com/ingonyama-zk/icicle/pull/1001
  • Some more changes to devdocs by @Shalmoni in https://github.com/ingonyama-zk/icicle/pull/981
  • ICICLE V4 documentation update by @LeonHibnik in https://github.com/ingonyama-zk/icicle/pull/999
  • [FIX] Enable and fix examples by @jeremyfelder in https://github.com/ingonyama-zk/icicle/pull/972
  • Update release workflow to use examples as reusable workflow by @jeremyfelder in https://github.com/ingonyama-zk/icicle/pull/1004
  • Remove -q from Rust examples to show output by @yshekel in https://github.com/ingonyama-zk/icicle/pull/1003
  • Rename labrador to babykoala by @yshekel in https://github.com/ingonyama-zk/icicle/pull/1005
  • Fix lattice-snark example import by @LeonHibnik in https://github.com/ingonyama-zk/icicle/pull/1006

New Contributors

  • @lnm-at-work made their first contribution in https://github.com/ingonyama-zk/icicle/pull/871

Full Changelog: https://github.com/ingonyama-zk/icicle/compare/v3.9.2...v4.0.0

- C++
Published by github-actions[bot] 11 months ago

icicle-core - Release v3.9.2

What's Changed

  • Fix compilation for g++14.2.0 by @ChickenLover in https://github.com/ingonyama-zk/icicle/pull/924
  • [FEAT] add method to get challenges from sumcheck's Fiat-Shamir by @idanfr-ingo in https://github.com/ingonyama-zk/icicle/pull/921
  • Feat: balanced decomposition for Rq polynomials by @yshekel in https://github.com/ingonyama-zk/icicle/pull/922
  • Added Darkmode, Benchmarks update, fixed mobile display bug, added la… by @Shalmoni in https://github.com/ingonyama-zk/icicle/pull/927
  • fri final polynomial degree check by @krakhit in https://github.com/ingonyama-zk/icicle/pull/928
  • [FIX] Go runtime, hash, and merkle tree package tests for metal by @jeremyfelder in https://github.com/ingonyama-zk/icicle/pull/925

Full Changelog: https://github.com/ingonyama-zk/icicle/compare/v3.9.1...v3.9.2

- C++
Published by github-actions[bot] 12 months ago

icicle-core - Release v3.9.1

What's Changed

  • [FIX] Docs deployment by @jeremyfelder in https://github.com/ingonyama-zk/icicle/pull/903
  • Yshekel/jl projection by @yshekel in https://github.com/ingonyama-zk/icicle/pull/907
  • DevDocs Version 2 by @Shalmoni in https://github.com/ingonyama-zk/icicle/pull/906
  • quickfix by @Shalmoni in https://github.com/ingonyama-zk/icicle/pull/910
  • 2 more broken references fixed by @Shalmoni in https://github.com/ingonyama-zk/icicle/pull/911
  • fix merkle-tree default config and test for segfault by @yshekel in https://github.com/ingonyama-zk/icicle/pull/915
  • Norm API for Lattice by @emirsoyturk in https://github.com/ingonyama-zk/icicle/pull/877
  • [FEAT] Add ext field support to sumcheck by @idanfr-ingo in https://github.com/ingonyama-zk/icicle/pull/917
  • fix Merkle-Tree rust wrapper get_proof() for device-mem by @yshekel in https://github.com/ingonyama-zk/icicle/pull/918

Full Changelog: https://github.com/ingonyama-zk/icicle/compare/v3.9.0...v3.9.1

- C++
Published by github-actions[bot] about 1 year ago

icicle-core - Release v3.9.0

What's Changed

🔥 New Features 🔥

  • [FEAT] Add Golang support for more fields by @jeremyfelder in https://github.com/ingonyama-zk/icicle/pull/882
  • Add Goldilocks Ext by @ChickenLover in https://github.com/ingonyama-zk/icicle/pull/892
  • Feat/fri poseidon by @ChickenLover in https://github.com/ingonyama-zk/icicle/pull/896

🚀 Performance 🚀

  • G2 multiplier optimization by @mickeyasa in https://github.com/ingonyama-zk/icicle/pull/897
  • Miki/msm-optimiations by @mickeyasa in https://github.com/ingonyama-zk/icicle/pull/794

📝 Docs 📝

  • [DOCS] Fix broken FRI documentation link by @LeonHibnik in https://github.com/ingonyama-zk/icicle/pull/876
  • sidebars by @nonam3e in https://github.com/ingonyama-zk/icicle/pull/878
  • Update libraries.md by @ShaniBabayoff in https://github.com/ingonyama-zk/icicle/pull/901
  • changed sm preview by @Otsar-Raikou in https://github.com/ingonyama-zk/icicle/pull/899

Misc

  • Add cla workflow; Update docs workflow to be reusable by @jeremyfelder in https://github.com/ingonyama-zk/icicle/pull/880
  • [FIX] Metal CI to skip FRI by @jeremyfelder in https://github.com/ingonyama-zk/icicle/pull/881
  • [FEAT] Download taskflow if not found on system by @jeremyfelder in https://github.com/ingonyama-zk/icicle/pull/893
  • Reduce FRI test sizes by @ChickenLover in https://github.com/ingonyama-zk/icicle/pull/891
  • [FIX] Correctly link already installed taskflow by @jeremyfelder in https://github.com/ingonyama-zk/icicle/pull/894
  • [FIX] cuda branch output for ring and runtime build/tests by @jeremyfelder in https://github.com/ingonyama-zk/icicle/pull/895
  • [CI] Fix deploy-docs workflow by @jeremyfelder in https://github.com/ingonyama-zk/icicle/pull/902

Full Changelog: https://github.com/ingonyama-zk/icicle/compare/v3.8.0...v3.9.0

- C++
Published by github-actions[bot] about 1 year ago

icicle-core - Release v3.8.0

What's Changed

  • [FEAT] Release ubuntu and build for RTX 40XX,50XX by @LeonHibnik in https://github.com/ingonyama-zk/icicle/pull/868
  • fix: stream type consistency with IcicleStreamHandle alias by @mdqst in https://github.com/ingonyama-zk/icicle/pull/858
  • Danny/poseidon2 consolidate kernels by @danny-shterman in https://github.com/ingonyama-zk/icicle/pull/866
  • fix: resolve compiler warnings across the codebase by @yshekel in https://github.com/ingonyama-zk/icicle/pull/870
  • Add generator functions for projective points in FFI and Rust bindings by @LeonHibnik in https://github.com/ingonyama-zk/icicle/pull/869
  • Serialization by @nonam3e in https://github.com/ingonyama-zk/icicle/pull/861
  • rust docs by @nonam3e in https://github.com/ingonyama-zk/icicle/pull/874
  • FRI rust wrappers by @nonam3e in https://github.com/ingonyama-zk/icicle/pull/813
  • Sha3Large test + bigger batch sizes by @dorshmil in https://github.com/ingonyama-zk/icicle/pull/847
  • [FEAT] Add Metal backend CI by @LeonHibnik in https://github.com/ingonyama-zk/icicle/pull/786

New Contributors

  • @mdqst made their first contribution in https://github.com/ingonyama-zk/icicle/pull/858
  • @dorshmil made their first contribution in https://github.com/ingonyama-zk/icicle/pull/847

Full Changelog: https://github.com/ingonyama-zk/icicle/compare/v3.7.1...v3.8.0

- C++
Published by github-actions[bot] about 1 year ago

icicle-core - Release v3.7.1

V3.7.1

BUG FIX: Memory leak in Sumcheck-cuda

What's Changed

  • Update installgpubackend.md by @ShaniBabayoff in https://github.com/ingonyama-zk/icicle/pull/856
  • Update installgpubackend.md by @ShaniBabayoff in https://github.com/ingonyama-zk/icicle/pull/854
  • Update libraries.md by @ShaniBabayoff in https://github.com/ingonyama-zk/icicle/pull/857
  • Update sidebars.ts by @ShaniBabayoff in https://github.com/ingonyama-zk/icicle/pull/859
  • Update libraries.md by @ShaniBabayoff in https://github.com/ingonyama-zk/icicle/pull/855
  • Update Docusaurus configuration to include Google Analytics tracking ID by @LeonHibnik in https://github.com/ingonyama-zk/icicle/pull/862

Full Changelog: https://github.com/ingonyama-zk/icicle/compare/v3.7.0...v3.7.1

- C++
Published by github-actions[bot] about 1 year ago

icicle-core - Release v3.7.0

ICICLE v3.7.0

Main updates

This version of ICICLE introduces: - Goldilocks field support - Curve pairings

What's Changed

  • Added the new logo by @Otsar-Raikou in https://github.com/ingonyama-zk/icicle/pull/808
  • Update grants.md by @Otsar-Raikou in https://github.com/ingonyama-zk/icicle/pull/810
  • [DOCS] Fix rendering italics from dollar sign by @jeremyfelder in https://github.com/ingonyama-zk/icicle/pull/811
  • format rust code by @yshekel in https://github.com/ingonyama-zk/icicle/pull/814
  • Implement rust wrapper for rns conversions by @yshekel in https://github.com/ingonyama-zk/icicle/pull/815
  • Fix batch for rns conversions by @yshekel in https://github.com/ingonyama-zk/icicle/pull/816
  • Update docs with metal backend installation and licensing by @ShaniBabayoff in https://github.com/ingonyama-zk/icicle/pull/818
  • feat: FRI merkle tree API + CPU Backend by @ShanieWinitz in https://github.com/ingonyama-zk/icicle/pull/795
  • feat: balanced decomposition API by @yshekel in https://github.com/ingonyama-zk/icicle/pull/823
  • [Feat] Rust curves and fields to build with HASH by @LeonHibnik in https://github.com/ingonyama-zk/icicle/pull/828
  • [FEAT] sumcheck rust example fix by @LeonHibnik in https://github.com/ingonyama-zk/icicle/pull/824
  • Update introduction.md by @ElanZK in https://github.com/ingonyama-zk/icicle/pull/830
  • Adding Goldilocks Field by @HadarIngonyama in https://github.com/ingonyama-zk/icicle/pull/837
  • Implement Goldilocks on top of icicle-math for backend-specific optimizations by @HadarIngonyama in https://github.com/ingonyama-zk/icicle/pull/838
  • Accessing ICICLE with MCP by @ShaniBabayoff in https://github.com/ingonyama-zk/icicle/pull/842
  • sum and product scalar operations for golang by @emirsoyturk in https://github.com/ingonyama-zk/icicle/pull/831
  • Fixing bug in the from function in goldilocks and fixing the test for this function by @HadarIngonyama in https://github.com/ingonyama-zk/icicle/pull/845
  • copy | rust by @emirsoyturk in https://github.com/ingonyama-zk/icicle/pull/836
  • python script for generation params for from(bytes) function by @HadarIngonyama in https://github.com/ingonyama-zk/icicle/pull/846
  • Update arch_overview.md by @ElanZK in https://github.com/ingonyama-zk/icicle/pull/841
  • Update grants.md by @ElanZK in https://github.com/ingonyama-zk/icicle/pull/843
  • Update overview.md by @ElanZK in https://github.com/ingonyama-zk/icicle/pull/844
  • Update hash.md by @ShaniBabayoff in https://github.com/ingonyama-zk/icicle/pull/832
  • [FEAT] Rust memset by @LeonHibnik in https://github.com/ingonyama-zk/icicle/pull/849
  • Update installgpubackend.md by @ShaniBabayoff in https://github.com/ingonyama-zk/icicle/pull/852
  • inverse cpu and rust wrappers by @emirsoyturk in https://github.com/ingonyama-zk/icicle/pull/747
  • Make Go bindings work with Metal backend by @jeremyfelder in https://github.com/ingonyama-zk/icicle/pull/825
  • [FEAT] Curve Pairings by @ChickenLover in https://github.com/ingonyama-zk/icicle/pull/829
  • [FEAT] Add goldilocks constants for poseidon2 by @danny-shterman in https://github.com/ingonyama-zk/icicle/pull/840

Full Changelog: https://github.com/ingonyama-zk/icicle/compare/v3.6.0...v3.7.0

- C++
Published by github-actions[bot] about 1 year ago

icicle-core - Release v3.6.0

ICICLE v3.6.0

  • Introducing a METAL backend!
  • At this release the backend is operable with cpp and Rust frontends.
  • Usage: same as CUDA backend, download, extract and set ICICLE_BACKEND_INSTALL_DIR env var
  • This version also add support for user-defined program to use with sumcheck, faster cpu sumcheck and infrastructure for integer rings

Known Issues

  • Metal backend is missing API implementations for Poseidon and Poseidon2 hashes, Merkle tree, Sumcheck and G2 montgomery conversions
  • Batch msm is only supported in shared-bases mode (where all msms reuse the same bases).

What's Changed

  • Fix release script by @jeremyfelder in https://github.com/ingonyama-zk/icicle/pull/775
  • Feat - batch hashing with multi-threading by @aviadingo in https://github.com/ingonyama-zk/icicle/pull/764
  • Remove MerkleTreeBasic test by @Koren-Brand in https://github.com/ingonyama-zk/icicle/pull/780
  • fix polynomial dividebyvanishinggeneralcase() invalid config for … by @yshekel in https://github.com/ingonyama-zk/icicle/pull/783
  • Integer rings (Zq and instantiation for Labrador protocol) by @yshekel in https://github.com/ingonyama-zk/icicle/pull/769
  • Poseidon2 perf improvement by @danny-shterman in https://github.com/ingonyama-zk/icicle/pull/758
  • Example/sumcheck by @krakhit in https://github.com/ingonyama-zk/icicle/pull/781
  • Handle rou errors on the Rust side by @nonam3e in https://github.com/ingonyama-zk/icicle/pull/784
  • [Fix] ModArith neg when b is u32 by @LeonHibnik in https://github.com/ingonyama-zk/icicle/pull/785
  • Improve sumcheck docs by @idanfr-ingo in https://github.com/ingonyama-zk/icicle/pull/778
  • Make sumcheck tests able to run without cuda backend by @idanfr-ingo in https://github.com/ingonyama-zk/icicle/pull/790
  • Fix/pow misaligned by @nonam3e in https://github.com/ingonyama-zk/icicle/pull/791
  • Fix poseidon2 example to support any backend by @yshekel in https://github.com/ingonyama-zk/icicle/pull/792
  • Parallelize-sumcheck by @mickeyasa in https://github.com/ingonyama-zk/icicle/pull/789
  • docs: fix broken links in libraries and poseidon sections by @youyyytrok in https://github.com/ingonyama-zk/icicle/pull/752
  • Feat/func univariatepolytrait by @krakhit in https://github.com/ingonyama-zk/icicle/pull/793
  • Rust wrapper for porgram functionality by @Koren-Brand in https://github.com/ingonyama-zk/icicle/pull/771
  • Implement Integer Rings in RNS Representation by @yshekel in https://github.com/ingonyama-zk/icicle/pull/787
  • Custom combine functions for sumcheck (ReturningValueProgram) in rust by @Koren-Brand in https://github.com/ingonyama-zk/icicle/pull/798
  • fix sumcheck transcript-config copy rather than move by @yshekel in https://github.com/ingonyama-zk/icicle/pull/799
  • Refactor hash names by @LeonHibnik in https://github.com/ingonyama-zk/icicle/pull/801
  • Rust wrappers for labrador ring by @yshekel in https://github.com/ingonyama-zk/icicle/pull/797
  • [DOCS] Update Overview by @ElanZK in https://github.com/ingonyama-zk/icicle/pull/804
  • Update overview.md by @ElanZK in https://github.com/ingonyama-zk/icicle/pull/805
  • Idan/add sumcheck tests by @idanfr-ingo in https://github.com/ingonyama-zk/icicle/pull/800

New Contributors

  • @youyyytrok made their first contribution in https://github.com/ingonyama-zk/icicle/pull/752

Full Changelog: https://github.com/ingonyama-zk/icicle/compare/v3.5.0...v3.6.0

- C++
Published by github-actions[bot] about 1 year ago

icicle-core - Release v3.5.0

What's Changed

  • Update sidebars.ts by @ShaniBabayoff in https://github.com/ingonyama-zk/icicle/pull/729
  • Update documentation for v3.4 by @ShaniBabayoff in https://github.com/ingonyama-zk/icicle/pull/738
  • Deprecated icicle/api headers and updated examples/docs by @yshekel in https://github.com/ingonyama-zk/icicle/pull/740
  • msm-avoid-double-thread-launch-on-phase1 by @mickeyasa in https://github.com/ingonyama-zk/icicle/pull/737
  • Fix getdevicecount() in Rust release mode by @yshekel in https://github.com/ingonyama-zk/icicle/pull/739
  • Update to the new 2025 grants by @Otsar-Raikou in https://github.com/ingonyama-zk/icicle/pull/726
  • Hadar/base math by @HadarIngonyama in https://github.com/ingonyama-zk/icicle/pull/734
  • Vecops's Rust wrapper fix for batch>1 by @Koren-Brand in https://github.com/ingonyama-zk/icicle/pull/741
  • add sumcheck frontend by @mickeyasa in https://github.com/ingonyama-zk/icicle/pull/692
  • remove submodule by @emirsoyturk in https://github.com/ingonyama-zk/icicle/pull/744
  • Move initialization of the bucket_busy vectors to threads by @mickeyasa in https://github.com/ingonyama-zk/icicle/pull/742
  • Danny/poseidon2 sponge by @danny-shterman in https://github.com/ingonyama-zk/icicle/pull/743
  • fix host-math inv2() by disabling no-aliasing optimization by @yshekel in https://github.com/ingonyama-zk/icicle/pull/755
  • Hadar/reduction from storage by @HadarIngonyama in https://github.com/ingonyama-zk/icicle/pull/745
  • Change constant data of some poseidon2 tests to be random. by @danny-shterman in https://github.com/ingonyama-zk/icicle/pull/753
  • adding mersenne support for reduction function by @HadarIngonyama in https://github.com/ingonyama-zk/icicle/pull/757
  • Support G2 point conversion in Rust example by @LeonHibnik in https://github.com/ingonyama-zk/icicle/pull/749
  • Use Field::from function for hash results by @mickeyasa in https://github.com/ingonyama-zk/icicle/pull/756
  • Allow loaded backend to override default device for all threads by @yshekel in https://github.com/ingonyama-zk/icicle/pull/760
  • uninitialized variable warning fix in M31 by @mickeyasa in https://github.com/ingonyama-zk/icicle/pull/759
  • move cpusumchecktranscript to frontend by @mickeyasa in https://github.com/ingonyama-zk/icicle/pull/762
  • Idan/sumcheck test by @idanfr-ingo in https://github.com/ingonyama-zk/icicle/pull/761
  • tests for single poly input by @idanfr-ingo in https://github.com/ingonyama-zk/icicle/pull/772
  • Feat/blake pow by @nonam3e in https://github.com/ingonyama-zk/icicle/pull/766
  • Fix incorrect clang-format flag by @brawncode in https://github.com/ingonyama-zk/icicle/pull/767
  • add "release" tag to Release CI workflow by @LeonHibnik in https://github.com/ingonyama-zk/icicle/pull/774
  • Update integrations.md by @ElanZK in https://github.com/ingonyama-zk/icicle/pull/727
  • Expose sumcheck API to Rust by @jeremyfelder in https://github.com/ingonyama-zk/icicle/pull/770

New Contributors

  • @brawncode made their first contribution in https://github.com/ingonyama-zk/icicle/pull/767
  • @ElanZK made their first contribution in https://github.com/ingonyama-zk/icicle/pull/727

Full Changelog: https://github.com/ingonyama-zk/icicle/compare/v3.4.0...v3.5.0

- C++
Published by github-actions[bot] over 1 year ago

icicle-core - Release v3.4.0

ICICLE v3.4.0

  • Improved CPU MSM Performance
  • Blake 3 CPU + CUDA

Known issues

  • Blake3 CUDA version currently supports input sizes up to 2kb

What's Changed

  • Update docusaurus.config.ts by @ShaniBabayoff in https://github.com/ingonyama-zk/icicle/pull/720
  • Add capability to set a default device for all threads by @jeremyfelder in https://github.com/ingonyama-zk/icicle/pull/699
  • Hadar/b const mult by @HadarIngonyama in https://github.com/ingonyama-zk/icicle/pull/723
  • Support vulkan backend in build system by @yshekel in https://github.com/ingonyama-zk/icicle/pull/703
  • Redesign CPU MSM with taskflow by @mickeyasa in https://github.com/ingonyama-zk/icicle/pull/718
  • Fix/release script by @LeonHibnik in https://github.com/ingonyama-zk/icicle/pull/721
  • fix bug in CPU vec ops regarding nof workers by @yshekel in https://github.com/ingonyama-zk/icicle/pull/731
  • Support android and vulkan by @yshekel in https://github.com/ingonyama-zk/icicle/pull/735
  • Parallelize-vecop-program-execution by @mickeyasa in https://github.com/ingonyama-zk/icicle/pull/736
  • Create docs for program & program execution by @idanfr-ingo in https://github.com/ingonyama-zk/icicle/pull/722
  • Blake3 CPU support by @aviadingo in https://github.com/ingonyama-zk/icicle/pull/733

Full Changelog: https://github.com/ingonyama-zk/icicle/compare/v3.3.0...v3.4.0

- C++
Published by github-actions[bot] over 1 year ago

icicle-core - v3.3.0

ICICLE v3.3.0

Main features: - This version introduces a new field - Koalabear - Performance: CPU Backend speedups for our multiplier and NTT

What's Changed

  • Define sumcheck transcript configuration and Rust wrappers by @yshekel in https://github.com/ingonyama-zk/icicle/pull/672
  • bump rust crates version to 3.2.0 by @ShaniBabayoff in https://github.com/ingonyama-zk/icicle/pull/682
  • bug: remove invalid early return in field test by @yshekel in https://github.com/ingonyama-zk/icicle/pull/684
  • Add-program-support-for-multiple-outputs by @mickeyasa in https://github.com/ingonyama-zk/icicle/pull/683
  • Update cpp.yml with ' --output-on-failure' by @yshekel in https://github.com/ingonyama-zk/icicle/pull/685
  • add to cpu vecops the function execute_program by @mickeyasa in https://github.com/ingonyama-zk/icicle/pull/689
  • [FIX]: Add nodejs setup for release script by @jeremyfelder in https://github.com/ingonyama-zk/icicle/pull/690
  • Add-returnning-value-functiom-to-program by @mickeyasa in https://github.com/ingonyama-zk/icicle/pull/688
  • performance: (~3x) optimize field multiplier and EC-adder for improved MSM and ECNTT by @yshekel in https://github.com/ingonyama-zk/icicle/pull/693
  • update poseidon2 docs by @krakhit in https://github.com/ingonyama-zk/icicle/pull/681
  • refine barret multiplier by @yshekel in https://github.com/ingonyama-zk/icicle/pull/696
  • CI 2.0 - unified CI for C++, Go and RUST - PHASE1 by @aviadingo in https://github.com/ingonyama-zk/icicle/pull/680
  • Update docusaurus.config.ts by @ShaniBabayoff in https://github.com/ingonyama-zk/icicle/pull/708
  • [FEAT] Add Koalabear field support by @nonam3e in https://github.com/ingonyama-zk/icicle/pull/706
  • CI 2.0 adding Rust examples by @aviadingo in https://github.com/ingonyama-zk/icicle/pull/702
  • fix bug in poly-api regarding copy_coeffs() in rust by @yshekel in https://github.com/ingonyama-zk/icicle/pull/715
  • Update pullrequesttemplate.md by @yshekel in https://github.com/ingonyama-zk/icicle/pull/717
  • fix ntt of size 1 by @HadarIngonyama in https://github.com/ingonyama-zk/icicle/pull/716
  • [FEAT] pow field Arithmetic API by @LeonHibnik in https://github.com/ingonyama-zk/icicle/pull/713
  • register program execution backends by @idanfr-ingo in https://github.com/ingonyama-zk/icicle/pull/707
  • Optimized NTT parallel implementation on CPU with Taskflow by @ShanieWinitz in https://github.com/ingonyama-zk/icicle/pull/714
  • vec_ops: scalar * ext field by @emirsoyturk in https://github.com/ingonyama-zk/icicle/pull/709

New Contributors

  • @ShaniBabayoff made their first contribution in https://github.com/ingonyama-zk/icicle/pull/682
  • @idanfr-ingo made their first contribution in https://github.com/ingonyama-zk/icicle/pull/707

Full Changelog: https://github.com/ingonyama-zk/icicle/compare/v3.2.0...v3.3.0

- C++
Published by LeonHibnik over 1 year ago

icicle-core - v3.2.0

Maximize CPU Performance with Clang

For optimal performance of ICICLE on the CPU backend, we recommend building ICICLE using Clang. • Why Clang? It provides better performance optimizations compared to other compilers. • Automatic Detection: Simply ensure Clang is installed on your system. ICICLE will automatically detect and use it during the build process.

No additional configuration is required—just install Clang, and you’re ready to go!

Important Notice for Upgraders

If you are upgrading from a previous version: Ensure that you update both the frontend and backend Icicle libraries. Failing to update both can result in missing symbols and unexpected crashes due to incompatibilities between versions.

Typical Installation Paths:

• Backend Libraries: Usually installed in /opt/icicle.
• Frontend Libraries: Typically located in /usr/local/lib or a similar system directory based on your setup.

Upgrade Instructions:

1. Uninstall the previous version completely to avoid any residual files.
2. Install the new version of both frontend and backend libraries.

Updating both components ensures compatibility and stability across all Icicle features in the latest release.

What's Changed

  • naming alignemnt for defaultinputchunk_size by @mickeyasa in https://github.com/ingonyama-zk/icicle/pull/646
  • updated banner to show 3.1 by @Otsar-Raikou in https://github.com/ingonyama-zk/icicle/pull/648
  • Dev docs banner update 3.1 by @Otsar-Raikou in https://github.com/ingonyama-zk/icicle/pull/649
  • Golang poseidon docs by @jeremyfelder in https://github.com/ingonyama-zk/icicle/pull/644
  • verify and assert correct t-parameter for Poseidon hasher by @yshekel in https://github.com/ingonyama-zk/icicle/pull/652
  • Update docs for v3.1 by @LeonHibnik in https://github.com/ingonyama-zk/icicle/pull/650
  • support column batch for polynomial division CPU backend by @ShanieWinitz in https://github.com/ingonyama-zk/icicle/pull/645
  • Support padding for the leaves of the merkle tree by @mickeyasa in https://github.com/ingonyama-zk/icicle/pull/647
  • moving poseidon constants to icicle/hash/poseidon_constants by @mickeyasa in https://github.com/ingonyama-zk/icicle/pull/658
  • [Docs]: Update docusaurus to latest and add versioned docs by @jeremyfelder in https://github.com/ingonyama-zk/icicle/pull/661
  • updates for metal backend by @yshekel in https://github.com/ingonyama-zk/icicle/pull/654
  • Program-support by @mickeyasa in https://github.com/ingonyama-zk/icicle/pull/664
  • default to clang for faster CPU performance by @yshekel in https://github.com/ingonyama-zk/icicle/pull/666
  • Replace random function to make CI reproducible by @Koren-Brand in https://github.com/ingonyama-zk/icicle/pull/665
  • Emir/host arithmetic by @emirsoyturk in https://github.com/ingonyama-zk/icicle/pull/669
  • Compute non-large NTTs in CPU backend without parallelism by @ShanieWinitz in https://github.com/ingonyama-zk/icicle/pull/671
  • Replace rand() with randuint32b() for reproducibility by @Koren-Brand in https://github.com/ingonyama-zk/icicle/pull/674
  • add a test to check cpu program executor by @mickeyasa in https://github.com/ingonyama-zk/icicle/pull/675
  • install clang in release dockers by @yshekel in https://github.com/ingonyama-zk/icicle/pull/676
  • feat: Poseidon2 hash function by @danny-shterman in https://github.com/ingonyama-zk/icicle/pull/673
  • Test Merkle-tree padding for all device by @yshekel in https://github.com/ingonyama-zk/icicle/pull/668

Full Changelog: https://github.com/ingonyama-zk/icicle/compare/v3.1.0...v3.2.0

- C++
Published by yshekel over 1 year ago

icicle-core - v3.1.0

Important Notice for Upgraders

If you are upgrading from a previous version: Ensure that you update both the frontend and backend Icicle libraries. Failing to update both can result in missing symbols and unexpected crashes due to incompatibilities between versions.

Typical Installation Paths:

• Backend Libraries: Usually installed in /opt/icicle.
• Frontend Libraries: Typically located in /usr/local or a similar system directory based on your setup.

Upgrade Instructions:

1. Uninstall the previous version completely to avoid any residual files.
2. Install the new version of both frontend and backend libraries.

Updating both components ensures compatibility and stability across all Icicle features in the latest release.

What's Changed

  • links and typos by @Otsar-Raikou in https://github.com/ingonyama-zk/icicle/pull/603
  • Fixed image NEW by @Otsar-Raikou in https://github.com/ingonyama-zk/icicle/pull/606
  • Update workflows by @jeremyfelder in https://github.com/ingonyama-zk/icicle/pull/607
  • Release for cuda archs 75,80,86 for better compatability by @yshekel in https://github.com/ingonyama-zk/icicle/pull/609
  • Hashing and merkle tree API by @yshekel in https://github.com/ingonyama-zk/icicle/pull/608
  • refined merkle proof and merkle tree C++ APIs by @yshekel in https://github.com/ingonyama-zk/icicle/pull/613
  • [CI] Fix device race in golang tests by @jeremyfelder in https://github.com/ingonyama-zk/icicle/pull/612
  • Rust wrappers for hash and merkle API by @yshekel in https://github.com/ingonyama-zk/icicle/pull/614
  • Arkworks conversion example by @yshekel in https://github.com/ingonyama-zk/icicle/pull/619
  • Keccak CPU backend by @yshekel in https://github.com/ingonyama-zk/icicle/pull/622
  • Blake2s API for V3 by @emirsoyturk in https://github.com/ingonyama-zk/icicle/pull/621
  • example and docs for hash API by @yshekel in https://github.com/ingonyama-zk/icicle/pull/624
  • Batched ec additions msm by @Koren-Brand in https://github.com/ingonyama-zk/icicle/pull/615
  • Miki/MTnewAPI by @mickeyasa in https://github.com/ingonyama-zk/icicle/pull/620
  • Swinitz/improved ntt by @ShanieWinitz in https://github.com/ingonyama-zk/icicle/pull/629
  • example and documentation for Merkle-tree API by @yshekel in https://github.com/ingonyama-zk/icicle/pull/628
  • Update host_math.h to use 64b for add/sub on CPU by @yshekel in https://github.com/ingonyama-zk/icicle/pull/632
  • Add golang bindings for hash + merkle tree APIs by @jeremyfelder in https://github.com/ingonyama-zk/icicle/pull/631
  • perf: window-method for EC scalar multiplication by @yshekel in https://github.com/ingonyama-zk/icicle/pull/633
  • Hash-test-size-fix by @mickeyasa in https://github.com/ingonyama-zk/icicle/pull/634
  • Koren/msm not enough tasks bugfix by @Koren-Brand in https://github.com/ingonyama-zk/icicle/pull/635
  • fix: Use 64-bit index iterator to prevent overflow in CPU Merkle tree by @mickeyasa in https://github.com/ingonyama-zk/icicle/pull/636
  • Danny poseidon v3.1 by @danny-shterman in https://github.com/ingonyama-zk/icicle/pull/630
  • test poseidon hasher on multiple devices by @yshekel in https://github.com/ingonyama-zk/icicle/pull/641
  • add tests for device merkle tree by @ChickenLover in https://github.com/ingonyama-zk/icicle/pull/637
  • Add some documentation on poseidon by @danny-shterman in https://github.com/ingonyama-zk/icicle/pull/640
  • Hadar/vecops by @HadarIngonyama in https://github.com/ingonyama-zk/icicle/pull/639
  • Add Poseidon bindings for golang by @jeremyfelder in https://github.com/ingonyama-zk/icicle/pull/643

New Contributors

  • @danny-shterman made their first contribution in https://github.com/ingonyama-zk/icicle/pull/630

Full Changelog: https://github.com/ingonyama-zk/icicle/compare/v3.0.0...v3.1.0

- C++
Published by yshekel over 1 year ago

icicle-core - v3.0.0

This version introduces a completely new design for ICICLE. We've developed a front-end user API that is backend-agnostic, supporting various hardware configurations. Additionally, we've added CPU support for MSM and NTT, with the CPU backend now set as the default. This allows developers to compile and run ICICLE seamlessly on Apple Mac and Linux machines as well.

What's Changed

  • ICICLE V3 by @yshekel in https://github.com/ingonyama-zk/icicle/pull/526
  • Marketing dev docs review by @Otsar-Raikou in https://github.com/ingonyama-zk/icicle/pull/602
  • NTT simple cpu backend by @ShanieWinitz in #533
  • Add tasks manager classes to ease multithreading for cpu by @Koren-Brand in #573
  • implement multithread CPU vec ops by @mickeyasa in #577
  • make features (G2,ecntt) default on by @yshekel in #583
  • use ccache if available by @yshekel in #585
  • Remove V2 files and rename V3 files by @yshekel in #586
  • use 64b type for add/mul of field elements on CPU by @HadarIngonyama in #588
  • Add Mersenne to v3 by @emirsoyturk and @nonam3e in #579
  • v3 msm by @Koren-Brand in #581
  • mv icicle m31 by @nonam3e, @ChickenLover, @jeremyfelder in #590
  • Release script and install docs by @yshekel in #589
  • fix api by @nonam3e in #592
  • update MSM config struct field for shared bases by @HadarIngonyama in #562
  • add rust test for batch-msm shared and non-shared points cases by @nonam3e in #587
  • Fix typo for license error and updated docs by @yshekel in #593
  • getting started edits by @Otsar-Raikou in #595
  • Update README by @yshekel in #596
  • Edit on README by @Otsar-Raikou, @yshekel and @jeremyfelder in #599
  • edit intro doc by @Otsar-Raikou in #601
  • parallel ntt on cpu by @ShanieWinitz in #591
  • Rename extension field to complex and quatric extension by @ChickenLover in #598
  • V3 golang bindings by @nonam3e, @jeremyfelder and @yshekel in #594

Next Up

  • Hash and Merkle tree API, CPU support
  • Additional Backend devices support

Full Changelog: https://github.com/ingonyama-zk/icicle/compare/v2.8.0...v3.0.0

- C++
Published by LeonHibnik over 1 year ago

icicle-core - Release v2.8.0

What's Changed

  • Field creation automated through macros by @DmytroTym in https://github.com/ingonyama-zk/icicle/pull/551
  • Feat/roman/tree builder by @ChickenLover in https://github.com/ingonyama-zk/icicle/pull/525
  • add keccak tree builder by @ChickenLover in https://github.com/ingonyama-zk/icicle/pull/555
  • Feat/roman/hash docs by @ChickenLover in https://github.com/ingonyama-zk/icicle/pull/556

Full Changelog: https://github.com/ingonyama-zk/icicle/compare/v2.7.1...v2.8.0

- C++
Published by github-actions[bot] almost 2 years ago

icicle-core - Release v2.7.1

What's Changed

  • Fix affine to projective zero point bug by @vladfdp in https://github.com/ingonyama-zk/icicle/pull/552
  • Fix large (>512 elements) ecntt issue by @yshekel in https://github.com/ingonyama-zk/icicle/pull/553

Full Changelog: https://github.com/ingonyama-zk/icicle/compare/v2.7.0...v2.7.1

- C++
Published by github-actions[bot] almost 2 years ago

icicle-core - Release v2.7.0

What's Changed

  • bug fix by @HadarIngonyama in https://github.com/ingonyama-zk/icicle/pull/549
  • RISC0 example using Polynomial API by @svpolonsky in https://github.com/ingonyama-zk/icicle/pull/548
  • Feat/m31 by @nonam3e in https://github.com/ingonyama-zk/icicle/pull/547

Full Changelog: https://github.com/ingonyama-zk/icicle/compare/v2.6.0...v2.7.0

- C++
Published by github-actions[bot] almost 2 years ago

icicle-core - Release v2.6.0

What's Changed

Features

  • [FEAT]: Golang Bindings for pinned host memory by @jeremyfelder in https://github.com/ingonyama-zk/icicle/pull/519

Docs

  • Added v2 paper by @Otsar-Raikou in https://github.com/ingonyama-zk/icicle/pull/544
  • Msm/update docs by @HadarIngonyama in https://github.com/ingonyama-zk/icicle/pull/545

Full Changelog: https://github.com/ingonyama-zk/icicle/compare/v2.5.0...v2.6.0

- C++
Published by github-actions[bot] almost 2 years ago

icicle-core - Release v2.5.0

What's Changed

  • workflow curve fix by @yshekel in https://github.com/ingonyama-zk/icicle/pull/536
  • accumulate stwo by @vhnatyk in https://github.com/ingonyama-zk/icicle/pull/535
  • chore: remove repeat word by @cangqiaoyuzhuo in https://github.com/ingonyama-zk/icicle/pull/540
  • recreated images for poseidon.md by @Otsar-Raikou in https://github.com/ingonyama-zk/icicle/pull/541
  • Fix link and correct path for running test deploy workflow by @jeremyfelder in https://github.com/ingonyama-zk/icicle/pull/542
  • MSM - supporting all window sizes by @HadarIngonyama in https://github.com/ingonyama-zk/icicle/pull/534

New Contributors

  • @cangqiaoyuzhuo made their first contribution in https://github.com/ingonyama-zk/icicle/pull/540

Full Changelog: https://github.com/ingonyama-zk/icicle/compare/v2.4.0...v2.5.0

- C++
Published by github-actions[bot] almost 2 years ago

icicle-core - Release v2.4.0

What's Changed

  • precompute bug fix by @HadarIngonyama in https://github.com/ingonyama-zk/icicle/pull/529
  • bit reverse by @nonam3e in https://github.com/ingonyama-zk/icicle/pull/528
  • added example cpp: examplecommitwithdevicememory_view() by @krakhit in https://github.com/ingonyama-zk/icicle/pull/532
  • perf: projective scalar multiplication use dbl() rather than + by @yshekel in https://github.com/ingonyama-zk/icicle/pull/530

New Contributors

  • @krakhit made their first contribution in https://github.com/ingonyama-zk/icicle/pull/532

Full Changelog: https://github.com/ingonyama-zk/icicle/compare/v2.3.1...v2.4.0

- C++
Published by github-actions[bot] almost 2 years ago

icicle-core - Release v2.3.1

What's Changed

  • Allow overriding compiler's chosen GPU arch via cmake by @liuhao230 in https://github.com/ingonyama-zk/icicle/pull/518
  • bug fix regarding cmake setgpuenv() by @yshekel in https://github.com/ingonyama-zk/icicle/pull/520
  • [HOTFIX] rust msm benchmarks by @LeonHibnik in https://github.com/ingonyama-zk/icicle/pull/521
  • fix: ntt mixed-radix bug regarding large ntts by @yshekel in https://github.com/ingonyama-zk/icicle/pull/523

New Contributors

  • @liuhao230 made their first contribution in https://github.com/ingonyama-zk/icicle/pull/518

Full Changelog: https://github.com/ingonyama-zk/icicle/compare/v2.3.0...v2.3.1

- C++
Published by github-actions[bot] about 2 years ago

icicle-core - Release v2.3.0

This version of ICICLE introduces Poseidon API implementation in Go, as well as Go usage examples and an improved best practice example with NTT, various fixes for polynomial API, CI and our dev docs

What's Changed

  • Fix broken link by @sukrucildirr in https://github.com/ingonyama-zk/icicle/pull/512
  • Update CI to run on some non-code changes by @jeremyfelder in https://github.com/ingonyama-zk/icicle/pull/515
  • Yshekel/poly view fix by @yshekel in https://github.com/ingonyama-zk/icicle/pull/514
  • golang examples init by @nonam3e in https://github.com/ingonyama-zk/icicle/pull/516
  • Stas/best-practice-ntt by @svpolonsky in https://github.com/ingonyama-zk/icicle/pull/517
  • Feat/vlad/poseidon go binding by @vladfdp in https://github.com/ingonyama-zk/icicle/pull/513

New Contributors

  • @sukrucildirr made their first contribution in https://github.com/ingonyama-zk/icicle/pull/512

Full Changelog: https://github.com/ingonyama-zk/icicle/compare/v2.2.0...v2.3.0

- C++
Published by github-actions[bot] about 2 years ago

icicle-core - Release v2.2.0

This version introduces Rust benchmarks, Poseidon2 support for babybear field and bn254, together with fixes for multi GPU environment in Go and polynomial evaluations view in CUDA and polynomial API examples in C++

What's Changed

  • rust classic benches with Criterion for ecntt/msm/ntt by @vhnatyk in https://github.com/ingonyama-zk/icicle/pull/499
  • [DOCS]: Tidy up docs by @jeremyfelder in https://github.com/ingonyama-zk/icicle/pull/502
  • Stas/example poly by @svpolonsky in https://github.com/ingonyama-zk/icicle/pull/434
  • Updated hall of fame by @Otsar-Raikou in https://github.com/ingonyama-zk/icicle/pull/505
  • [FIX]: Fix releasing device set on host thread during multigpu call by @jeremyfelder in https://github.com/ingonyama-zk/icicle/pull/501
  • [CI]: Update Cpp CI to include build args by @jeremyfelder in https://github.com/ingonyama-zk/icicle/pull/503
  • fix: bug regarding polynomial evaluations view in CUDA backend by @yshekel in https://github.com/ingonyama-zk/icicle/pull/506
  • keccak docs by @nonam3e in https://github.com/ingonyama-zk/icicle/pull/508
  • Feat/roman/poseidon2 by @ChickenLover in https://github.com/ingonyama-zk/icicle/pull/507
  • rust ecntt hotfix by @vhnatyk in https://github.com/ingonyama-zk/icicle/pull/509
  • Feat/roman/poseidon2 by @ChickenLover in https://github.com/ingonyama-zk/icicle/pull/510
  • syntax highlight by @LeonHibnik in https://github.com/ingonyama-zk/icicle/pull/511

Full Changelog: https://github.com/ingonyama-zk/icicle/compare/v2.1.0...v2.2.0

- C++
Published by github-actions[bot] about 2 years ago

icicle-core - Release v2.1.0

What's Changed

  • FEAT(stark252 field): Adds Stark252 curve by @PatStiles in https://github.com/ingonyama-zk/icicle/pull/494
  • Nonam3e/golang/keccak by @nonam3e in https://github.com/ingonyama-zk/icicle/pull/496

New Contributors

  • @PatStiles made their first contribution in https://github.com/ingonyama-zk/icicle/pull/494

Known Issues

  • Polynomial API not supporting views in Rust and Golang
  • Rust ECNTT bound to max size of 2^10

Full Changelog: https://github.com/ingonyama-zk/icicle/compare/v2.0.3...v2.1.0

- C++
Published by github-actions[bot] about 2 years ago

icicle-core - Release v2.0.3

What's Changed

  • fix: bug regarding MixedRadix coset NTT for NM/MN ordering by @yshekel in https://github.com/ingonyama-zk/icicle/pull/497

Full Changelog: https://github.com/ingonyama-zk/icicle/compare/v2.0.2...v2.0.3

- C++
Published by yshekel about 2 years ago

icicle-core - Release v2.0.2

What's Changed

  • update imports in golang bindings by @nonam3e in https://github.com/ingonyama-zk/icicle/pull/498

Full Changelog: https://github.com/ingonyama-zk/icicle/compare/v2.0.1...v2.0.2

- C++
Published by LeonHibnik about 2 years ago

icicle-core - Release v2.0.1

What's Changed

  • [PATCH]: Update module with v2 versioning by @jeremyfelder in https://github.com/ingonyama-zk/icicle/pull/495

Full Changelog: https://github.com/ingonyama-zk/icicle/compare/v2.0.0...v2.0.1

- C++
Published by github-actions[bot] about 2 years ago

icicle-core - Release v2.0.0

This version brings a whole new repository structure, to enable support in field and curve acceleration, together with polynomial API and baby bear field arithmetic support

This version is NOT backwards compatible

We have changed the way ICICLE builds and updated the user API in C++, Rust and Golang

What's Changed

  • v2 new design in #443 by @ChickenLover , @DmytroTym , @vhnatyk , @jeremyfelder , @nonam3e
  • Polynomial API in https://github.com/ingonyama-zk/icicle/commit/6e3eecd8ca2ea7002b87bf04358260af59aada07, #478, #485 by @yshekel and @jeremyfelder
  • Baby bear field support in #470, #472, #481, #490 by @DmytroTym and @jeremyfelder
  • Matrix transpose API in #474 by @vladfdp
  • C-API in https://github.com/ingonyama-zk/icicle/commit/5ec40e4d35debfe291acaf3f082cb260cbeb4706 by @ChickenLover
  • Remove golang generics in #473 by @nonam3e
  • ICICLE Examples for v2 in #477 by @ChickenLover
  • Golang vecOps config fix in #484 by @DmytroTym
  • Rust ECNTT API in #450 by @vhnatyk
  • C++ API in snake_case in #483 by @ChickenLover
  • ICICLE V2 Release by @ChickenLover in https://github.com/ingonyama-zk/icicle/pull/492
  • Updated documentation

Known Issues

  • Polynomial API not supporting views in Rust and Golang
  • Rust ECNTT bound to max size of 2^10

Full Changelog: https://github.com/ingonyama-zk/icicle/compare/v1.10.1...v2.0.0

- C++
Published by github-actions[bot] about 2 years ago

icicle-core - Release v1.10.1

What's Changed

  • [PATCH]: Fix underflow and div by 0 by @jeremyfelder in https://github.com/ingonyama-zk/icicle/pull/471

Full Changelog: https://github.com/ingonyama-zk/icicle/compare/v1.10.0...v1.10.1

- C++
Published by github-actions[bot] about 2 years ago

icicle-core - Release 1.5.1

Backport patch for underflow in get_optimal_c and div by 0 errors when calculating optimal number of blocks per kernel launch

What's Changed

Full Changelog: https://github.com/ingonyama-zk/icicle/compare/v1.5.0...v1.5.1

- C++
Published by jeremyfelder about 2 years ago

icicle-core - Release v1.10.0

This version adds Inplace NTT in Rust, reduced compilation time in Rust, matrix transposing on device and the option to release a NTT domain

What's Changed

  • fix: NTT release domain linkage by @yshekel in https://github.com/ingonyama-zk/icicle/pull/452
  • fix: use the log2 in lib std explicitly to prevent makefile from link… by @JimmyHongjichuan in https://github.com/ingonyama-zk/icicle/pull/459
  • add golang multigpu to sidebar by @LeonHibnik in https://github.com/ingonyama-zk/icicle/pull/449
  • NTT inplace in Rust by @DmytroTym in https://github.com/ingonyama-zk/icicle/pull/453
  • Fix Golang TestNttDeviceAsync by @LeonHibnik in https://github.com/ingonyama-zk/icicle/pull/461
  • [FEAT]: golang device slice ranges by @jeremyfelder in https://github.com/ingonyama-zk/icicle/pull/463
  • Devmode to Reduce compilation time (including G2 and ECNTT) by @vhnatyk in https://github.com/ingonyama-zk/icicle/pull/395
  • transpose kernel in vec_ops and rust binding by @vladfdp in https://github.com/ingonyama-zk/icicle/pull/462
  • [FEAT] ReleaseDomain API by @LeonHibnik in https://github.com/ingonyama-zk/icicle/pull/465

New Contributors

  • @JimmyHongjichuan made their first contribution in https://github.com/ingonyama-zk/icicle/pull/459
  • @vladfdp made their first contribution in https://github.com/ingonyama-zk/icicle/pull/462

Full Changelog: https://github.com/ingonyama-zk/icicle/compare/v1.9.1...v1.10.0

- C++
Published by github-actions[bot] about 2 years ago

icicle-core - Release v1.9.1

Hotfix for ECNTT on large sizes, fix for future polynomial API

What's Changed

  • fix: NTT input is const by @yshekel in https://github.com/ingonyama-zk/icicle/pull/444
  • Docs 1.8 by @ImmanuelSegol in https://github.com/ingonyama-zk/icicle/pull/436
  • Update Hall of fame in 'README.md' by @Otsar-Raikou in https://github.com/ingonyama-zk/icicle/pull/445
  • hotfix for large ecntt by @vhnatyk in https://github.com/ingonyama-zk/icicle/pull/448

Full Changelog: https://github.com/ingonyama-zk/icicle/compare/v1.9.0...v1.9.1

- C++
Published by github-actions[bot] about 2 years ago

icicle-core - Release v1.9.0

This release introduces ECNTT APi on Golang, Keccak hash function in C++, faster build times for cuda 12.2+ and other improvements

What's Changed

  • tidy by @ChickenLover in https://github.com/ingonyama-zk/icicle/pull/437
  • Use multi-threaded CUDA compilation to spped up compilation by @svpolonsky in https://github.com/ingonyama-zk/icicle/pull/439
  • (1) MSM scalars and points params are const and (2) missing NTTAlgorithm in golang NTTConfig by @yshekel in https://github.com/ingonyama-zk/icicle/pull/438
  • Add Keccak hash function by @ChickenLover in https://github.com/ingonyama-zk/icicle/pull/435
  • Golang bindings for ECNTT by @jeremyfelder and @nonam3e in https://github.com/ingonyama-zk/icicle/pull/433
  • Removed "machines using ICICLE" static badge by @Otsar-Raikou in https://github.com/ingonyama-zk/icicle/pull/442

Known Issues

  • ECNTT is not supported in Rust at this time
  • Golang bindings currently do not support:
    • Poseidon
  • NTT batch column mode supported only in MixedRadix mode
  • ECNTT is supported only in Radix2 mode
  • We plan to change Rust-side HostOrDeviceSlice in a breaking way in a future release

Full Changelog: https://github.com/ingonyama-zk/icicle/compare/v1.8.0...v1.9.0

- C++
Published by github-actions[bot] about 2 years ago

icicle-core - Release v1.8.0

This release contains MultiGPU API for Golang, MSM pre-computation, NTT column batch API and general improvements

What's Changed

  • feat: add warmup for CudaStream by @alxiong in https://github.com/ingonyama-zk/icicle/pull/422
  • Fix release flow with deploy key and caching by @jeremyfelder in https://github.com/ingonyama-zk/icicle/pull/425
  • update go install source in Dockerfile by @cyl19970726 in https://github.com/ingonyama-zk/icicle/pull/428
  • FEAT: MultiGPU for golang bindings by @jeremyfelder in https://github.com/ingonyama-zk/icicle/pull/417
  • NTT columns batch by @HadarIngonyama in https://github.com/ingonyama-zk/icicle/pull/424
  • MSM pre-computation by @DmytroTym in https://github.com/ingonyama-zk/icicle/pull/427

New Contributors

  • @alxiong made their first contribution in https://github.com/ingonyama-zk/icicle/pull/422
  • @cyl19970726 made their first contribution in https://github.com/ingonyama-zk/icicle/pull/428

Known issues

  • Golang bindings currently do not support:
    • Poseidon
    • ECNTT
  • NTT batch column mode supported only in MixedRadix mode
  • We plan to change Rust-side HostOrDeviceSlice in a breaking way in a future release

Full Changelog: https://github.com/ingonyama-zk/icicle/compare/v1.7.0...v1.8.0

- C++
Published by github-actions[bot] about 2 years ago

icicle-core - Release v1.7.0

This release contains some documentation updates and general code cleanup.

What's Changed

  • fix docs base url by @ImmanuelSegol in https://github.com/ingonyama-zk/icicle/pull/408
  • Added badges by @Otsar-Raikou in https://github.com/ingonyama-zk/icicle/pull/409
  • Vec ops docs by @ImmanuelSegol in https://github.com/ingonyama-zk/icicle/pull/410
  • fix-primitives-links by @ImmanuelSegol in https://github.com/ingonyama-zk/icicle/pull/411
  • minor changes to cuda by @ChickenLover in https://github.com/ingonyama-zk/icicle/pull/414
  • Fix the changed files glob pattern by @jeremyfelder in https://github.com/ingonyama-zk/icicle/pull/419
  • Fix go setup in CI by @jeremyfelder in https://github.com/ingonyama-zk/icicle/pull/420
  • Small features by @ChickenLover in https://github.com/ingonyama-zk/icicle/pull/415
  • golang docs by @ImmanuelSegol in https://github.com/ingonyama-zk/icicle/pull/413
  • Release flow CI by @jeremyfelder in https://github.com/ingonyama-zk/icicle/pull/423

Known issues

  • Golang bindings do not support:
    • Poseidon
    • Multi GPU
    • ECNTT
  • We plan to change Rust-side HostOrDeviceSlice in a breaking way in a future release

Full Changelog: https://github.com/ingonyama-zk/icicle/compare/v1.6.0...v1.7.0

- C++
Published by jeremyfelder about 2 years ago

icicle-core - v1.6.0

What's Changed

  • CI: move to language specific flows (#398) by @jeremyfelder
  • Pedersen commitment example in c++ (#397) by @svpolonsky
  • Add vector operations for golang bindings (#399) by @jeremyfelder
  • Migrate docs website + improved docs (#389) by @ImmanuelSegol

Known issues

  • Golang bindings do not support:
    • Poseidon
    • Multi GPU
    • ECNTT
  • We plan to change Rust-side HostOrDeviceSlice in a breaking way in a future release

Full Changelog: https://github.com/ingonyama-zk/icicle/compare/v1.5.0...v1.6.0

- C++
Published by jeremyfelder over 2 years ago

icicle-core - Release v1.5.0

This version introduces vector operations on the Rust bindings, brings Golang bindings into the 1.x version, small NTT improvements, implementation of Grumpkin curve with Rust bindings and more examples.

Big shout out to @nonam3e for adding support for Grumpkin curve 💪🏻 🚀

What's Changed

  • Update README.md by @ChickenLover in https://github.com/ingonyama-zk/icicle/pull/385
  • updates example compares Radix2 and MixedRadix NTTs by @svpolonsky in https://github.com/ingonyama-zk/icicle/pull/383
  • Temp/stas/muli gpu example by @svpolonsky in https://github.com/ingonyama-zk/icicle/pull/381
  • add vector operations bindings to Rust by @ChickenLover in https://github.com/ingonyama-zk/icicle/pull/384
  • update examples with new vec ops by @ChickenLover in https://github.com/ingonyama-zk/icicle/pull/388
  • Grumpkin curve implementation by @nonam3e in https://github.com/ingonyama-zk/icicle/pull/379
  • feature: mixed-radix NTT fast twiddles mode by @yshekel in https://github.com/ingonyama-zk/icicle/pull/382
  • Update README.md (#385) by @ChickenLover in https://github.com/ingonyama-zk/icicle/pull/387
  • Update Hall of Fame section by @ChickenLover in https://github.com/ingonyama-zk/icicle/pull/394
  • add rust poseidon example by @ChickenLover in https://github.com/ingonyama-zk/icicle/pull/392
  • GoLang bindings for v1.x by @jeremyfelder in https://github.com/ingonyama-zk/icicle/pull/386
  • Release v1.5.0 by @jeremyfelder in https://github.com/ingonyama-zk/icicle/pull/393

New Contributors

  • @nonam3e made their first contribution in https://github.com/ingonyama-zk/icicle/pull/379

Known issues

  • Golang bindings do not support:
    • Vector Operations
    • Poseidon
    • Multi GPU
    • ECNTT
  • We plan to change Rust-side HostOrDeviceSlice in a breaking way in the next release

Full Changelog: https://github.com/ingonyama-zk/icicle/compare/v1.4.0...v1.5.0

- C++
Published by jeremyfelder over 2 years ago

icicle-core - Release v1.4.0

This version introduces multi-device execution, improved MSM and NTT and more examples.

What's changed

  • ICICLE can now utilise more than one GPU thanks to @vhnatyk in https://github.com/ingonyama-zk/icicle/pull/356
  • Our new mixed-radix NTT now supports cosets, batch mode and different orderings by @yshekel and @HadarIngonyama in https://github.com/ingonyama-zk/icicle/pull/367, https://github.com/ingonyama-zk/icicle/pull/368 and https://github.com/ingonyama-zk/icicle/pull/371
  • Poseidon examples by @ImmanuelSegol and @svpolonsky in https://github.com/ingonyama-zk/icicle/pull/375
  • MSM performance improvements and zero point handling by @DmytroTym in https://github.com/ingonyama-zk/icicle/pull/372

Known issues

  • Golang bindings are missing.
  • We feel the need to change HostOrDeviceSlice in Rust bindings asap, probably in a breaking way.

Full changeling: https://github.com/ingonyama-zk/icicle/compare/v1.3.0...v1.4.0

- C++
Published by DmytroTym over 2 years ago

icicle-core - Release v1.3.0

This version introduces an updated NTT design using a mixed-radix approach

What's Changed

  • Mixed-radix NTT algorithm by @yshekel and @HadarIngonyama in #348, #367, #368
  • Fix: examples path deps by @jeremyfelder in #363
  • Add concurrency group to examples workflow by @jeremyfelder in #361

Known issues

  • Golang bindings are missing
  • In Cmake, if CMAKEBUILDTYPE is Debug and not Release, the build is very slow and memory-heavy.

Full Changelog: https://github.com/ingonyama-zk/icicle/compare/v1.2.0...v1.3.0

- C++
Published by LeonHibnik over 2 years ago

icicle-core - Release v1.2.0

This version introduces support for Poseidon hash and Merkle trees using Poseidon Hash.

What's Changed

  • Implement Poseidon and TreeBuilder by @ChickenLover in https://github.com/ingonyama-zk/icicle/pull/352
  • Fixed overflow in large coset NTTs by @DmytroTym in https://github.com/ingonyama-zk/icicle/pull/358

Known issues

  • Golang bindings are missing
  • In Cmake, if CMAKEBUILDTYPE is Debug and not Release, the build is very slow and memory-heavy.

Full Changelog: https://github.com/ingonyama-zk/icicle/compare/v1.1.0...v1.2.0

- C++
Published by jeremyfelder over 2 years ago

icicle-core - v1.1.0

This version updates examples to work with the latest API and fixes a few bugs including building on windows, MSM improvements, and G2 in Rust bindings.

What's Changed

  • refactor: generate curve-specific function names with macro by @yshekel in https://github.com/ingonyama-zk/icicle/pull/337
  • Update README.md by @Otsar-Raikou in https://github.com/ingonyama-zk/icicle/pull/339
  • refactor: consolidate msm and batch-msm implementations to one function by @yshekel in https://github.com/ingonyama-zk/icicle/pull/342
  • c++ msm uses new API by @svpolonsky in https://github.com/ingonyama-zk/icicle/pull/338
  • [FEAT]: Add codespell to CI and pre-commit hooks by @jeremyfelder in https://github.com/ingonyama-zk/icicle/pull/344
  • Fix/windows build failing by @jeremyfelder in https://github.com/ingonyama-zk/icicle/pull/345
  • G2 fix and BW6 scalar field on the Rust side by @DmytroTym in https://github.com/ingonyama-zk/icicle/pull/341
  • update readme links by @LeonHibnik in https://github.com/ingonyama-zk/icicle/pull/346
  • Release v1.1.0 by @jeremyfelder in https://github.com/ingonyama-zk/icicle/pull/357

Known issues

  • Golang bindings are missing
  • In Cmake, if CMAKEBUILDTYPE is Debug and not Release, the build is very slow and memory-heavy.

New Contributors

  • @yshekel made their first contribution in https://github.com/ingonyama-zk/icicle/pull/337
  • @svpolonsky made their first contribution in https://github.com/ingonyama-zk/icicle/pull/338

Full Changelog: https://github.com/ingonyama-zk/icicle/compare/v1.0.0...v1.1.0

- C++
Published by jeremyfelder over 2 years ago

icicle-core - ICICLE version 1.0

What's Changed

  • Cuda refactoring by @DmytroTym in https://github.com/ingonyama-zk/icicle/pull/240
  • Linting as per google guide by @DmytroTym in https://github.com/ingonyama-zk/icicle/pull/241
  • Update Rust apis by @DmytroTym in https://github.com/ingonyama-zk/icicle/pull/262
  • Update Rust APIs by @DmytroTym in https://github.com/ingonyama-zk/icicle/pull/292
  • New API by @jeremyfelder in https://github.com/ingonyama-zk/icicle/pull/293
  • Fix the need for a dummy bindings.rs file included in the repo by @jeremyfelder in https://github.com/ingonyama-zk/icicle/pull/296
  • update readme by @ImmanuelSegol in https://github.com/ingonyama-zk/icicle/pull/303
  • Add Nix Shell Environment Configuration for CUDA by @bigsky77 in https://github.com/ingonyama-zk/icicle/pull/318
  • Fix typos by @AdventureSeeker987 in https://github.com/ingonyama-zk/icicle/pull/319
  • Fix curve crates not building when used as dependency by @jeremyfelder in https://github.com/ingonyama-zk/icicle/pull/320
  • Fix main build badge to be on push and not pr by @jeremyfelder in https://github.com/ingonyama-zk/icicle/pull/325
  • New API for Version 1.0.0 by @jeremyfelder in https://github.com/ingonyama-zk/icicle/pull/326

Full Changelog: https://github.com/ingonyama-zk/icicle/compare/v0.1.0...v1.0.0

- C++
Published by DmytroTym over 2 years ago