supranational / blst

Multilingual BLS12-381 signature library
Apache License 2.0
458 stars 175 forks source link

FFT operations? #160

Closed nazar-pc closed 1 year ago

nazar-pc commented 1 year ago

I'm using blst through rust-kzg, which uses a very basic (and slow) FFT implementation internally: https://github.com/sifraitech/rust-kzg/blob/049353c9aa54fb0650aac731a2e5c7ed31dc5999/blst/src/fft_fr.rs#L13-L67

Would faster FFT implementation be within scope of this library?

dot-asm commented 1 year ago

Currently there are no plans to provide NTT here. Or maybe more accurately, if we implement NTT [in the scalar field], it will be done in sppark first, to complement the CUDA implementation. But it's not impossible to imagine that it would take an optimized primitive implemented in blst, say a butterfly operation. ~What~ Would that be of interest?

nazar-pc commented 1 year ago

We don't plan to use sppark, but optimized primitives make a lot of sense and will likely help.

dot-asm commented 1 year ago

Resolved in 2300b50 and forward.