12:10:58 <m-relay> <a​ntilt:we2.ee> @rucknium:monero.social i dont understand how the PMF of real decoy distribution (red line) could be flat, when recent_spend_window still samples from the real distribution ? Looks great btw
19:22:24 <m-relay> <r​ucknium:monero.social> flip flop: Thanks for looking closely at the analysis! I assume by "real distribution", you mean the Gamma distribution. It's actually not completely flat. The vertical log scale just makes it look like that. Take a sheet of paper, align the left edge with the vertical axis and the top edge with the decoy line.
19:23:20 <m-relay> <r​ucknium:monero.social> IIRC, I don't have a plot in `OSPEAD-docs` that shows the curve more clearly, but my Figure 1 here shows the downward curve after it has been modified by the actual number of outputs in each block:
19:23:22 <m-relay> <r​ucknium:monero.social> https://github.com/Rucknium/misc-research/blob/main/Monero-Decoy-Selection-Closed-Form/pdf/monero-decoy-selection-closed-form.pdf
19:24:02 <m-relay> <r​ucknium:monero.social> When the number of seconds per output (_not_ the number of outputs per second) is 1.4, and the total number of RingCT outputs is 117464545, the probability mass on the first spendable output is 4.74e-05. The probability mass on the last output before the "cliff" (i.e. at index `floor(1800/v)`) is 4.26e-05. That would appear as a small difference on a log scale plot.
19:24:17 <m-relay> <r​ucknium:monero.social> jeffro256 wrote this very nice documentation for the status quo decoy selection algorithm: https://github.com/jeffro256/monero/blob/decoy_selection_md/docs/DECOY_SELECTION.md
22:05:10 <m-relay> <a​ntilt:we2.ee> @rucknium:monero.social thx (sigh - its ot flat!) i actually tried to compare your R code to the source :)
22:05:38 <m-relay> <a​ntilt:we2.ee> @rucknium:monero.social thx (sigh - its not flat!) i actually tried to compare your R code to the source :)