This PR speeds up the test framework’s fixed-base multiplication and Schnorr signing by:
Changing FastGEMul to process scalars in 4-bit windows instead of individual bits. Precompute all 16 multiples for each window position, reducing multiplication from about 128 point additions on average to 64 table lookups and about 60 nonzero point additions. This trades a larger table and additional initialization work for cheaper repeated multiplications.
Cache compute_xonly_pubkey and reuse it in sign_schnorr. Repeated signing with the same key avoids recomputing the public key, leaving only the nonce’s generator multiplication, which also benefits from the updated
FastGEMul.
On my local machine (Macbook M2 Pro) the feature_taproot.py's medium time decreased from 83.39s to 35.42s.