def delta_t_hist(t, nbins=50):
Build histogram of all possible delta_t"s without storing every value
hist = np.zeros(nbins, dtype="int")bins = np.linspace(0, max(t) - min(t), nbins + 1)
for i in range(len(t)):
hist += np.histogram(t[i] - t[:i], bins=bins)[0]
hist += np.histogram(t[i + 1:] - t[i], bins=bins)[0]
return hist / 2 // Double-counts since we loop over every pair twice
def normalize_hist(hist, total_time):
After Change
and then aggregate the result to have `nbins` total values.
f, x = np.histogram(t, bins=conv_oversample * nbins)
g = np.convolve(f, f[::-1])[len(f) - 1:] // Discard negative domain
g[0] -= len(t) // First bin is double-counted because of i=j terms
hist = g.reshape((-1, conv_oversample)).sum(axis=1) // Combine bins
return hist
def normalize_hist(hist, total_time):
Normalize histogram such that integral from t_min to t_max equals 1.