ICICLE Core
ICICLE Core is a library written in C++/CUDA. All the ICICLE primitives are implemented within ICICLE Core.
The Core is split into logical modules that can be compiled into static libraries using different strategies. You can then link these libraries with your C++ project or write your own bindings for other programming languages. If you want to use ICICLE with existing bindings please refer to the Rust or Golang bindings documentation.
Supported curves, fields and operations
Supported curves and operations
Operation\Curve | bn254 | bls12-377 | bls12-381 | bw6-761 | grumpkin |
---|---|---|---|---|---|
MSM | ✅ | ✅ | ✅ | ✅ | ✅ |
G2 | ✅ | ✅ | ✅ | ✅ | ❌ |
NTT | ✅ | ✅ | ✅ | ✅ | ❌ |
ECNTT | ✅ | ✅ | ✅ | ✅ | ❌ |
VecOps | ✅ | ✅ | ✅ | ✅ | ✅ |
Polynomials | ✅ | ✅ | ✅ | ✅ | ❌ |
Poseidon | ✅ | ✅ | ✅ | ✅ | ✅ |
Merkle Tree |