Open
Description
The multiplication function in a finite field currently checks in runtime what the limb size is, when its instead known at compile time as its a template parameter.
Line where we check this:
libff/libff/algebra/fields/fp.tcc
Line 27 in 52d77c3
I don't know if this is optimized out by the compiler on all platforms, but if it isn't this is potentially quite bad for the instruction cache (in addition to slight overhead due to the branch-predicted conditional)