Whilst mentoring a student on a project related to elliptic curves, we got talking about the Birch and Swinnerton–Dyer conjecture. I refer you to the Wikipedia page for context, if you need any.

The Wikipedia page features a plot, but no code to produce it. In order to consider more examples, I've written the following Julia code.

using Hecke
using Plots
using Primes
using ThreadsX

# to benefit from multithreading, start Julia using `julia --threads 10`

bound = 1000000
# start at 100 to ignore the erratic early behavior
P = Primes.primes(100, bound)
X = map(log, map(log, P))

function ratio(E, p)
    if p in bad_primes(E)
        return 1
    end
    return order(base_change(GF(p), E)) // p
end

function BSD(E)
    ratios = ThreadsX.collect(Float64(ratio(E, p)) for p in P)
    partials = cumprod(ratios)

    return map(log, partials)
end

Similar to the linked plot, we expect that an elliptic curve of rank $r$ gives rise to something which approaches a line of slope $r$. For elliptic curves of ranks 0 to 4 taken from the LMFDB we can easily plot their associated "BSD-curves" using

curves = [
    elliptic_curve([0, -1, 1, 0, 0]),
    elliptic_curve([0, 0, 1, -1, 0]),
    elliptic_curve([0, -1, 1, -24, 54]),
    elliptic_curve([1, -1, 1, -237, 1365]),
    elliptic_curve([0, -1, 1, -129, 600]),
];

label = permutedims(hcat([string("rank ", i) for i in 0:4]));
plot(X, map(BSD, curves), label=label)
which results in

Does anyone know what the original data supporting the BSD conjecture looked like? Certainly, the EDSAC they purportedly used for the calculations is not going to reproduce the plot above anytime soon.