Yeah I meant using public key G for step instead of 1. That way you keep math in public key space. Wouldn't that also make the generations faster? Or would it mess up pivots calculations?
Would you be willing to provide some code or snippets on how to use the public key for base point? I tried changing it but sadly I'm not very skilled in C and trying to figure out the whole libsec naming is not easy either.
I'll add a pubKey option as a base point tomorrow, but a warning will be given. Adding the P@Inf / doubling check inside the batch addition (X1 == X2) would slow down the processing slightly.
The math is already in EC space, There's no reason to provide G itself, it's a constant already. Using some other "step" point automatically means skipping keys. I think maybe you confuse this with the "number of steps" argument, which is just a factor for how many batches are computed per launch, by each thread. In my performance tests, a higher steps count increases the speed slightly, but uses more memory. Optimal values depend on specific hardware.
What's your use case for the lib?
Thanks for the clarification and for adding the pubKey option — I really appreciate it.
I’d like to be able to generate public keys even when the starting private key isn’t known, like in 32BTC puzzle