[monero-project/monero] Bp multi aggregation pippenger (#4219)

ph4r05 commented on this pull request.

> + aL[j*N+i] = rct::zero();
+ }
+ else if (sv[j][i/8] & (((uint64_t)1)<<(i%8))) + { + aL[j*N+i] = rct::identity(); + } + else + { + aL[j*N+i] = rct::zero(); + } + sc_sub(aR[j*N+i].bytes, aL[j*N+i].bytes, rct::identity().bytes); + } + } + PERF_TIMER_STOP(PROVE_aLaR); + + rct::key hash_cache = rct::hash_to_scalar(V); I was experimenting with this BP version (actually ported it to Python) and this causes me a trouble if anything triggers `goto try_again`. The `hash_cache` is modified by body below `try_again` label so another attempt continues with some intermediate value. BP verification thus fails. If I compute `hash_cache` below `try_again` label then everything works well (I am triggering `goto try_again` at random). Is this intentional? Thanks!