Finding Planets · a bookSearchlearn.xhelio.ai
Part VIII · Algorithms and compute · Chapter 38

The geometry of search

How many trial trajectories a blind search must test, and how many of them it must finish. Mismatch metrics, lattice and random template banks, orbit libraries, and the sequential and hierarchical pruning that lets pulsar, gravitational-wave and planet searches decline most hypotheses without losing the faint ones. Geometry buys factors of a few; calibrated pruning can buy more, but only with an honest accounting of what it discards.

In 2010 Alex Parker and JJ Kavelaars went back to three published searches for faint trans-Neptunian objects and asked a question none of the original teams had needed to ask: how many trial motions had each survey really needed? Each search had shifted and stacked its images along a grid of rates and angles, chosen by hand to keep the tracking error below some tolerance. Parker and Kavelaars generated large libraries of physically possible orbits, propagated each one through the actual epochs, and kept only enough shift vectors to cover every library member to the same tolerance. The survey of Fraser and Kavelaars had searched 95 shift vectors. Twenty-eight did the same job (Parker & Kavelaars 2010).

Sixteen years later the numbers had grown beyond recognition, but the question had not. To search fifteen days of archival Hubble images for cold classical Kuiper belt objects, the heliostack team tested 1,148,817 orbital initial conditions and, counting every sky position on each canvas, more than 101410^{14} trajectories (Napier et al. 2026). A study of six years of Zwicky Transient Facility (ZTF) images estimated that a northern-sky search for bodies beyond 100 au would need about 101910^{19} trial orbits (Geringer-Sameth et al. 2025). At that scale a factor of three in the number of templates is a year of a large GPU allocation, and a factor of ten decides whether the search is done at all.

This chapter is about the two questions that set the cost of any blind matched-filter search. The first is geometric: how many hypotheses must be tested so that no real signal falls too far from the nearest one? The answer comes from a mismatch metric, a local measure of how fast the detection statistic decays as a trial template moves away from the truth, and from the mathematics of covering a space with balls. The second is sequential: of the hypotheses that must be tested, how many must be finished? Most trial trajectories describe pure noise, and a search that can recognise that early, without discarding the faint real ones, saves most of its work. Both questions were worked out first for gravitational waves and pulsars. Both now apply, almost line by line, to the search for faint moving bodies in images.

Two questions every blind search must answer

A direct image-domain stacking search costs roughly

C≈Ntemplates×Eˉ×c,C \approx N_{\rm templates}\times \bar E \times c,

where NtemplatesN_{\rm templates} is the number of trial trajectories, Eˉ\bar E is the average number of exposures read per trajectory and cc is the cost of one read-and-add. Earlier chapters attack cc with hardware (Chapter 40) and Eˉ\bar E with reuse of partial sums (Chapter 21, Chapter 39). This chapter attacks NtemplatesN_{\rm templates} with geometry and Eˉ\bar E with early rejection.

The two attacks carry different guarantees. A better template bank keeps every hypothesis within the same mismatch with fewer templates, so its sensitivity guarantee is the same as the old bank’s; it only has to be checked at the boundaries. A pruned search reads fewer exposures for most trajectories, so it necessarily discards some trajectories before seeing all their data; its guarantee is a bound on how many real sources it loses, and that bound must be calibrated. Keeping the two kinds of claim apart is most of the discipline of the subject.

Key idea

Geometry decides how many hypotheses are distinguishable, given the data. Pruning decides how many of them need to be examined in full. The first is fixed by photons, the point-spread function (PSF), the cadence and the signal family. The second is an algorithmic choice whose price is a calibrated probability of missing a source. Neither changes the photons collected.

How far is too far: the mismatch metric

Start from the statistic

Write a data vector as a signal of amplitude AA and unknown parameters λs\lambda_s, plus noise:

x=A h(λs)+n,E[n]=0,E[nnT]=C.x = A\,h(\lambda_s) + n,\qquad E[n]=0,\quad E[nn^T]=C.

For a known noise covariance CC, define the noise-weighted inner product (a∣b)=aTC−1b(a|b)=a^TC^{-1}b and the normalised template u=h/(h∣h)u = h/\sqrt{(h|h)}. The matched-filter statistic for trial parameters λ\lambda is Z(λ)=(x∣u(λ))Z(\lambda)=(x|u(\lambda)). In Gaussian noise it is a unit normal for any single fixed template. Its expected value when the true signal has parameters λs\lambda_s is A(hs∣hs) (us∣u)A\sqrt{(h_s|h_s)}\,(u_s|u), so the fraction of the optimal signal-to-noise ratio (SNR) retained by the wrong template is the match

M(λs,λ)=(us∣u(λ)).M(\lambda_s,\lambda) = (u_s|u(\lambda)).

For a stationary time series the same inner product is written in the frequency domain, (a∣b)=4 Re∫0∞a~∗(f)b~(f)/Sn(f) df(a|b)=4\,\mathrm{Re}\int_0^\infty \tilde a^*(f)\tilde b(f)/S_n(f)\,df, with SnS_n the noise power spectral density (Owen 1996). The weighting is part of the geometry. A noise spectrum that suppresses some frequencies makes waveform differences at those frequencies cheap to ignore. In an image search the PSF and the variance maps play the same role: a sharper image or a better-weighted epoch makes neighbouring trajectories more distinguishable, and therefore makes the bank larger.

Three conventions

Three different numbers are all called “mismatch”, and they must not be mixed.

QuantityDefinitionNear perfect match
Amplitude (SNR) mismatchμA=1−M\mu_A = 1-MOwen’s convention
Power mismatchμP=1−M2\mu_P = 1-M^2μP=2μA−μA2\mu_P = 2\mu_A-\mu_A^2
Orbital quadratic distanceq=gabΔλaΔλbq = g_{ab}\Delta\lambda^a\Delta\lambda^bq≃μAq\simeq\mu_A in the Gaussian-PSF image model below

An amplitude match of 0.97 is a power mismatch of 0.0591, not 0.03. The difference matters because, as shown below, the number of templates scales as the mismatch raised to the power −d/2-d/2 in dd dimensions. Owen defined the match through SNR. Prix’s continuous-wave papers and Allen’s 2021 analysis use power (Prix 2007a; Allen 2021). A template count quoted without its convention is ambiguous by a factor that can reach 2d/22^{d/2}.

The metric

The match is one at λ=λs\lambda=\lambda_s and falls away on all sides. Expand it to second order in the offset Δλ=λ−λs\Delta\lambda=\lambda-\lambda_s. Because (u∣u)=1(u|u)=1 for all λ\lambda, differentiating once gives (u∣∂au)=0(u|\partial_a u)=0 and differentiating twice gives (u∣∂a∂bu)=−(∂au∣∂bu)(u|\partial_a\partial_b u)=-(\partial_a u|\partial_b u). Therefore

M=1−12(∂au∣∂bu) ΔλaΔλb+O(Δλ3),M = 1 - \tfrac12(\partial_a u|\partial_b u)\,\Delta\lambda^a\Delta\lambda^b + O(\Delta\lambda^3),

and the amplitude mismatch is a quadratic form,

μA≃gabΔλaΔλb,gab=12(∂au∣∂bu).\mu_A \simeq g_{ab}\Delta\lambda^a\Delta\lambda^b,\qquad g_{ab}=\tfrac12(\partial_a u|\partial_b u).

The matrix gabg_{ab} is the mismatch metric. Near a perfect match the power metric is twice the amplitude metric. The metric looks like the Fisher information matrix, and the two are built from the same derivatives, but they answer different questions. The Fisher matrix uses the unnormalised template and grows with the signal strength: it says how well a detected signal’s parameters can be measured. The metric uses the normalised template and does not depend on amplitude: it says what fraction of the SNR a wrong template loses (Owen 1996). A bank is designed with the metric.

Parameters that come for free

Some parameters need not be gridded at all. If the statistic can be maximised over a parameter analytically, or over a whole range of it at once by a fast transform, that parameter should be projected out of the metric. Suppose the full quadratic form couples searched parameters λ\lambda to such nuisance offsets aa. Minimising the mismatch over aa leaves the Schur complement

gsearch=Gλλ−GλaGaa−1Gaλ.g_{\rm search} = G_{\lambda\lambda} - G_{\lambda a}G_{aa}^{-1}G_{a\lambda}.

Owen applied this to the arrival time and phase of an inspiral: one fast Fourier transform (FFT) evaluates every arrival time at once, so arrival time should not be counted as a bank dimension costing as much as a new waveform. The same logic applies to sky position in an image search. A stack along one velocity produces a whole image of positions, so in a conventional shift-and-stack search the bank that must be designed is the velocity bank, not the joint position–velocity bank. Counting position twice, once as an image and once as a grid dimension, is a common way to overstate what a better lattice can buy.

For continuous gravitational waves the statistic is the F\mathcal F-statistic, maximised analytically over four amplitude parameters. Prix showed that the resulting metric is not unique: it depends on the unknown amplitude ratios, giving a family of metrics, and an amplitude-averaged metric is a useful design choice rather than a worst-case guarantee. He also showed that adding detectors of comparable sensitivity does not multiply the number of templates by the number of detectors (Prix 2007a).

The imaging metric: a pullback through the orbit

For images the metric was written down explicitly by Geringer-Sameth, Golovich and Iwabuchi in 2025 (Geringer-Sameth et al. 2025). Let exposure ee have a circular Gaussian PSF of standard deviation beb_e, roughly constant local pixel variance σe2\sigma_e^2, and predicted source flux AeA_e. Define each exposure’s fractional contribution to the optimal squared SNR,

ce=Ae2/(σe2be2)∑jAj2/(σj2bj2),∑ece=1.c_e = \frac{A_e^2/(\sigma_e^2 b_e^2)}{\sum_j A_j^2/(\sigma_j^2 b_j^2)},\qquad \sum_e c_e = 1.

A trial trajectory displaced by Δxe\Delta\mathbf x_e in exposure ee retains

M=∑eceexp⁡ ⁣[−∥Δxe∥24be2].M = \sum_e c_e \exp\!\left[-\frac{\|\Delta\mathbf x_e\|^2}{4b_e^2}\right].

The factor of four comes from the autocorrelation of the PSF, not the PSF itself: the overlap of two Gaussians of variance b2b^2 is a Gaussian of variance 2b22b^2, and its normalised value at offset Δx\Delta x is e−Δx2/4b2e^{-\Delta x^2/4b^2}. With the Jacobian Je=∂xe/∂λJ_e=\partial\mathbf x_e/\partial\lambda of the image-plane position with respect to the orbital parameters, expanding to second order gives

q=∑ece4be2 ∥JeΔλ∥2,gab=∑ece4be2 (JeTJe)ab.q = \sum_e \frac{c_e}{4b_e^2}\,\|J_e\Delta\lambda\|^2,\qquad g_{ab} = \sum_e \frac{c_e}{4b_e^2}\,(J_e^TJ_e)_{ab}.

The metric on orbits is the image-plane metric pulled back through the trajectory model, weighted by how much information each exposure carries. Its construction needs only the Jacobians, the PSF widths and the weights, which costs O(Ed2)O(Ed^2) for EE exposures and dd parameters plus an O(d3)O(d^3) factorisation. That is cheap compared with stacking even one patch of templates. The paper also gives finite-pixel corrections, which matter for undersampled cameras.

Two cautions come with the formula. Writing q=∑eceqeq=\sum_e c_e q_e, Jensen’s inequality gives M≥e−qM\ge e^{-q}, with equality only when every exposure loses the same fraction. So q≤−ln⁡0.9=0.105q\le -\ln 0.9 = 0.105 is a sufficient condition for a 10% SNR loss, provided the local linear trajectory model still holds. The converse fails: the exponential can fall much faster than the true overlap. Sedna makes the point. In 971 unmasked ZTF exposures with a median single-image SNR of about 3, the stack along the known orbit reaches an SNR of 127, and the paper’s noiseless tests show that large errors in some epochs do not erase the contribution of the others (Geringer-Sameth et al. 2025). The local metric is a design tool, not an exact overlap law across a large curved cell.

A worked example: straight lines

For equal weights and widths and straight-line motion x(t)=x0+v(t−t0)\mathbf x(t)=\mathbf x_0+\mathbf v(t-t_0), choose t0t_0 as the mean exposure time and let st2s_t^2 be the variance of the exposure times. In the parameter order (x0,vx,y0,vy)(x_0,v_x,y_0,v_y) the metric is diagonal,

g=14b2 diag(1, st2, 1, st2),det⁡g=st216 b4.g = \frac{1}{4b^2}\,\mathrm{diag}(1,\,s_t^2,\,1,\,s_t^2),\qquad \sqrt{\det g} = \frac{s_t^2}{16\,b^4}.

Time-centring removes the correlation between position and velocity: a trajectory pivoting about the middle of the observations disturbs the earliest and latest positions equally and the average position not at all. (The v1 preprint prints st2/64b4s_t^2/64b^4 for this determinant; the factor 16 follows directly from the displayed metric, and the scaling with st2/b4s_t^2/b^4 is unaffected.)

A hypercubic grid in the whitened coordinates z=Wλz=W\lambda with WTW=gW^TW=g has its worst point at the corner of a cell. In four dimensions the half-diagonal of a cube of side aa is exactly aa, so the cube side equals qmax⁡\sqrt{q_{\max}} and the physical spacings are

Δx0=2bqmax⁡,Δv=2bqmax⁡st.\Delta x_0 = 2b\sqrt{q_{\max}},\qquad \Delta v = \frac{2b\sqrt{q_{\max}}}{s_t}.

Take a PSF with b=0.4b=0.4 arcsec (a full width at half maximum of about 0.94 arcsec), a tolerance qmax⁡=0.05q_{\max}=0.05, and one night of uniform sampling over T=4T=4 hours, for which st=T/12=1.15s_t=T/\sqrt{12}=1.15 h. Then Δx0=0.18\Delta x_0=0.18 arcsec and Δv=0.155\Delta v=0.155 arcsec per hour. A disk of velocities up to 4 arcsec per hour has area 50.350.3 (arcsec/h)2^2 and needs about 50.3/0.1552≈2,10050.3/0.155^2\approx2{,}100 velocity templates. Over 8 hours it needs four times as many (derived example). The velocity count grows as T2T^2 while the SNR of a constant source grows only as T\sqrt T. Better velocity resolution is exactly what makes a longer stack more informative, and it is also what makes it more expensive.

Cadence enters through sts_t alone. Spreading the same total exposure uniformly over TT gives st2=T2/12s_t^2=T^2/12. Putting half of it at each end gives st2=T2/4s_t^2=T^2/4, three times the metric volume. Endpoint cadences resolve velocity best and therefore need the most velocity templates. Information and computing burden rise together.

1001000104110100Total observing baseline (hours)Shift vectors (8, 200) (32, 3359) (56, 7743) (7, 113) (31, 1965) (54, 6864)At opposition45 degrees from opposition
Longer baselines need many more motions. Shift vectors needed to track a simulated Twotino population (objects in the 2:1 resonance with Neptune) to about 0.7 arcsec, for a simulated LSST-like stack of the given total baseline, at opposition and 45 degrees from it. From 8 to 32 hours the count grows almost exactly as the square of the baseline, as the linear-motion metric predicts. These are 2010 design simulations, not Rubin observations. Source: Parker & Kavelaars 2010, arXiv:1004.3287, Table 4; seeing about 0.89 arcsec.

Parker and Kavelaars’ simulated stacks for an LSST-like survey show this scaling on a real orbit population. For Twotinos (objects in the 2:1 resonance with Neptune) observed at opposition, an 8-hour baseline needed 200 shift vectors and a 32-hour baseline 3,359, almost exactly the factor of 16 that T2T^2 predicts. By 56 hours the growth had slowed to 7,743, because at that point the physically allowed population, not the tolerance, bounds the velocity range (Parker & Kavelaars 2010).

Covering the space

Counting templates

Once the metric is known, the bank size follows from volume. If the metric is roughly constant over each template’s neighbourhood and boundaries are negligible,

Ntemp≃θΛ μmax⁡−d/2∫Pdet⁡g(λ) ddλ,N_{\rm temp} \simeq \theta_\Lambda\,\mu_{\max}^{-d/2}\int_{\mathcal P}\sqrt{\det g(\lambda)}\,d^d\lambda,

where dd is the number of resolved search dimensions, μmax⁡\mu_{\max} the largest allowed mismatch and θΛ\theta_\Lambda the normalised thickness of the covering lattice Λ\Lambda (Prix 2007b). The integral is the proper volume of the parameter space. It is invariant under any change of coordinates, which means that no choice of units or parameterisation can shrink it. A good parameterisation makes the volume easy to compute and the bank easy to lay out; it does not reduce the number of distinguishable signals.

The thickness measures how much the covering balls must overlap. Let vd=πd/2/Γ(1+d/2)v_d=\pi^{d/2}/\Gamma(1+d/2) be the volume of the unit ball, R=μmax⁡R=\sqrt{\mu_{\max}} the covering radius in whitened coordinates and vcellv_{\rm cell} the volume of one lattice cell. Then Θ=vdRd/vcell\Theta = v_dR^d/v_{\rm cell} is the average number of balls covering a point, and θ=Θ/vd\theta=\Theta/v_d. A covering cannot have Θ<1\Theta<1: it must overlap, because balls do not tile space. For the two lattices that matter here,

θZd=dd/22d,θAd∗=d+1[d(d+2)12(d+1)]d/2.\theta_{\mathbb Z^d} = \frac{d^{d/2}}{2^d},\qquad \theta_{A_d^*} = \sqrt{d+1}\left[\frac{d(d+2)}{12(d+1)}\right]^{d/2}.

In four dimensions these are 1.00 and 0.358, so a hypercubic bank needs 2.8 times as many templates as an A4∗A_4^* bank at the same maximum mismatch.

Lattices

The lattice Ad∗A_d^* is the dd-dimensional generalisation of the triangular lattice. In two dimensions it is the triangular arrangement whose Voronoi cells are hexagons, and Kershner proved it the thinnest planar covering by circles. In three dimensions it is the body-centred cubic lattice. That is a useful warning: the best packing in three dimensions is face-centred cubic, but the best covering lattice is body-centred cubic. Packing maximises the number of disjoint balls; covering minimises the largest hole. A template bank is a covering problem (Prix 2007b).

Square lattice (Z²) cell area 2R², deep hole at each corner thickness θ = 0.50 in 2D Triangular lattice (A₂*) cell area 2.60R², deep hole at each vertex thickness θ = 0.385: 1.30× fewer templates
Square and triangular coverings at the same covering radius R. In each panel the outlined cell is one template's Voronoi region and the dark dot marks a deep hole, the point farthest from any template. The square cell has area 2R², the hexagonal cell 3√3R²/2 ≈ 2.60R², so the triangular bank needs 1.30 times fewer templates for the same worst-case mismatch. Overlap of the circles is unavoidable in any covering.

Reinhard Prix’s 2007 paper recast template placement as the sphere-covering problem and supplied a practical construction for flat parameter spaces, implemented in the LIGO Algorithm Library. Its Table 1 gives the gain of Ad∗A_d^* over the hypercube at equal maximum quadratic mismatch: 1.3, 1.9, 2.8, 4.3 and 6.8 in dimensions 2 to 6, and 10.9 in dimension 7. Prix reported Ad∗A_d^* as the best known lattice covering up to five dimensions and a convenient near-best choice beyond; the implementation does not depend on its being optimal everywhere (Prix 2007b).

110100100010451015Resolved template-space dimension dCubic count / A_d* countvelocity only (2, 1.3)velocity only (3, 1.9)position + velocity (4, 2.8)position + velocity (5, 4.3)six-element orbit (6, 6.8)six-element orbit (7, 10.9) (8, 17.7) (9, 28.9) (10, 47.4) (11, 78.2) (12, 130) (13, 216) (14, 359) (15, 601) (16, 1007) (17, 1692)
What a better lattice buys, by dimension. Ratio of the number of templates in a hypercubic covering to the number in an A_d* covering, at equal maximum quadratic mismatch, for bulk flat-space banks with no boundaries and no hardware overhead. Only the dimensions a search actually resolves count: a velocity-only bank at fixed pixel positions has d = 2, and a six-element orbit d = 6. The gains above d = 6 are a mathematical comparison, not an available orbit-search speed-up. Source: Prix 2007, arXiv:0707.0428, Table 1 (rounded published values).

The figure is easy to misread. The gain belongs to the dimension of the bank that is actually laid out. A shift-and-stack search that evaluates positions as images has a two-dimensional velocity bank, and only the factor 1.3 is available to it. A joint position–velocity bank in four dimensions has 2.8. A six-parameter orbit bank has 6.8. A six-parameter search does not acquire a seventh dimension, and the factor 10.9 that comes with it, by being rewritten.

Building a lattice bank

In a constant metric the construction is mechanical. Factor g=WTWg=W^TW, so that z=W(λ−λ0)z=W(\lambda-\lambda_0) has Euclidean distances. Choose a generator matrix BB for Ad∗A_d^* with covering radius RBR_B. The bank is

λn=λ0+W−1(μmax⁡RB Bn),n∈Zd.\lambda_n = \lambda_0 + W^{-1}\left(\frac{\sqrt{\mu_{\max}}}{R_B}\,Bn\right),\qquad n\in\mathbb Z^d.

One convenient generator uses the vectors ei−1/(d+1)e_i-\mathbf 1/(d+1) in the zero-sum hyperplane of Rd+1\mathbb R^{d+1}, rotated into dd coordinates. Its cell volume is 1/d+11/\sqrt{d+1} and its covering radius d(d+2)/[12(d+1)]\sqrt{d(d+2)/[12(d+1)]}. Setup costs O(d3)O(d^3) and generation O(Nd2)O(Nd^2), and neither matters beside the search itself. A better placement reduces NN; it does not reduce the O(E)O(E) exposure reads each template needs.

Boundaries are part of the algorithm, not a detail. Dropping every lattice point outside the allowed region opens holes along the edges. Karl Wette’s 2014 lattice tiler for all-sky continuous-wave searches represents bounds recursively, enumerates a triangular generator, pads with bounding ellipsoids and solves a “staircase” problem where bounds change between lattice columns. In his tests the mean mismatch was about 0.16 for a maximum of 0.3, and in many narrow bands the boundary templates dominated the count (Wette 2014). A bulk volume integral underestimates the practical cost of thin regions.

Random and stochastic banks

In 2008 Chris Messenger, Reinhard Prix and Maria Alessandra Papa changed the question from certain coverage to a prescribed probability of coverage (Messenger, Prix & Papa 2009). Draw NN templates independently, with density proportional to det⁡g\sqrt{\det g}, in a region of proper volume VV. Ignoring boundaries, the chance that a given signal has no template within mismatch μ\mu is (1−vdμd/2/V)N(1-v_d\mu^{d/2}/V)^N, so

P(μnearest≤μ)≃1−exp⁡ ⁣[−Nvdμd/2V].P(\mu_{\rm nearest}\le\mu) \simeq 1-\exp\!\left[-\frac{Nv_d\mu^{d/2}}{V}\right].

For coverage probability η\eta at mismatch μ∗\mu_* the bank needs N≃−ln⁡(1−η) V/(vdμ∗d/2)N\simeq -\ln(1-\eta)\,V/(v_d\mu_*^{d/2}). The random bank’s thickness is ΘR=−ln⁡(1−η)\Theta_R=-\ln(1-\eta): 2.303, 2.996 and 4.605 for 90%, 95% and 99% coverage, independent of dimension. A lattice’s thickness grows with dimension; a random bank’s does not. Random banks therefore beat strict Ad∗A_d^* coverings above some dimension: 6, 7 and 10 for coverage probabilities of 90%, 95% and 99%.

The comparison has to be fair, and Messenger and colleagues insisted on it. A random bank has holes by construction, so it should be compared with a lattice that is also allowed holes, a relaxed lattice stretched until it covers the same fraction. In four dimensions the normalised thicknesses are 0.36 for strict A4∗A_4^*, 0.24 for A4∗A_4^* relaxed to 95% coverage, and 0.61 for a 95% random bank. At the dimensions that planetary searches use, a well-built lattice still wins. In mismatch units u=μ/μ∗u=\mu/\mu_* the random-bank distribution of nearest-template mismatches is F(u)=1−e−ΘRud/2F(u)=1-e^{-\Theta_Ru^{d/2}}.

00.20.40.60.8100.511.52Nearest-template mismatch / nominal mismatchCumulative probability (0, 0) (0.05, 0.13911) (0.1, 0.25887) (0.15, 0.36196) (0.2, 0.45072) (0.25, 0.52713) (0.3, 0.59291) (0.35, 0.64954) (0.4, 0.69829) (0.45, 0.74026) (0.5, 0.77639) (0.55, 0.8075) (0.6, 0.83428) (0.65, 0.85733) (0.7, 0.87718) (0.75, 0.89426) (0.8, 0.90897) (0.85, 0.92163) (0.9, 0.93254) (0.95, 0.94192) (1, 0.95) (1.05, 0.95696) (1.1, 0.96294) (1.15, 0.9681) (1.2, 0.97254) (1.25, 0.97636) (1.3, 0.97965) (1.35, 0.98248) (1.4, 0.98491) (1.45, 0.98701) (1.5, 0.98882) (1.55, 0.99037) (1.6, 0.99171) (1.65, 0.99287) (1.7, 0.99386) (1.75, 0.99471) (1.8, 0.99545) (1.85, 0.99608) (1.9, 0.99663) (1.95, 0.9971) (2, 0.9975) (0, 0) (0.05, 0.00746) (0.1, 0.02951) (0.15, 0.06518) (0.2, 0.11293) (0.25, 0.17075) (0.3, 0.23633) (0.35, 0.30717) (0.4, 0.38079) (0.45, 0.45482) (0.5, 0.52713) (0.55, 0.59595) (0.6, 0.65988) (0.65, 0.71796) (0.7, 0.76959) (0.75, 0.81457) (0.8, 0.85299) (0.85, 0.88518) (0.9, 0.91166) (0.95, 0.93304) (1, 0.95) (1.05, 0.96322) (1.1, 0.97335) (1.15, 0.98097) (1.2, 0.98662) (1.25, 0.99073) (1.3, 0.99367) (1.35, 0.99575) (1.4, 0.99718) (1.45, 0.99816) (1.5, 0.99882) (1.55, 0.99925) (1.6, 0.99953) (1.65, 0.99971) (1.7, 0.99983) (1.75, 0.9999) (1.8, 0.99994) (1.85, 0.99996) (1.9, 0.99998) (1.95, 0.99999) (2, 0.99999) (0, 0) (0.05, 0.00037) (0.1, 0.00299) (0.15, 0.01006) (0.2, 0.02368) (0.25, 0.04573) (0.3, 0.0777) (0.35, 0.12054) (0.4, 0.17447) (0.45, 0.2389) (0.5, 0.31234) (0.55, 0.39251) (0.6, 0.47643) (0.65, 0.56076) (0.7, 0.64211) (0.75, 0.71743) (0.8, 0.78429) (0.85, 0.84114) (0.9, 0.8874) (0.95, 0.92335) (1, 0.95) (1.05, 0.96882) (1.1, 0.98145) (1.15, 0.9895) (1.2, 0.99435) (1.25, 0.99712) (1.3, 0.99861) (1.35, 0.99937) (1.4, 0.99973) (1.45, 0.99989) (1.5, 0.99996) (1.55, 0.99999) (1.6, 1) (1.65, 1) (1.7, 1) (1.75, 1) (1.8, 1) (1.85, 1) (1.9, 1) (1.95, 1) (2, 1) (0, 0) (0.05, 0) (0.1, 0) (0.15, 3e-05) (0.2, 0.00019) (0.25, 0.00073) (0.3, 0.00218) (0.35, 0.00549) (0.4, 0.0122) (0.45, 0.02457) (0.5, 0.04573) (0.55, 0.07958) (0.6, 0.13044) (0.65, 0.20223) (0.7, 0.29703) (0.75, 0.41326) (0.8, 0.54402) (0.85, 0.67691) (0.9, 0.79649) (0.95, 0.88943) (1, 0.95) (1.05, 0.98195) (1.1, 0.99504) (1.15, 0.99902) (1.2, 0.99987) (1.25, 0.99999) (1.3, 1) (1.35, 1) (1.4, 1) (1.45, 1) (1.5, 1) (1.55, 1) (1.6, 1) (1.65, 1) (1.7, 1) (1.75, 1) (1.8, 1) (1.85, 1) (1.9, 1) (1.95, 1) (2, 1)2 dimensions4 dimensions6 dimensions12 dimensions
Same coverage, different tails: random banks. Cumulative distribution of the mismatch to the nearest template, in units of the nominal mismatch, for independent random banks built for 95% coverage. Every curve passes through (1, 0.95), but in high dimension almost all signals sit close to the nominal mismatch, while in low dimension many lie much closer and a long tail lies beyond it. 95% nominal coverage is not a hard maximum. Analytic curves F(u) = 1 - exp(-2.996 u^(d/2)), ignoring boundaries. Source: Derived from Messenger, Prix & Papa 2009, arXiv:0809.5223, Eqs. 15 and 21, with coverage 0.95; not simulated points.

The tails matter. In their six-dimensional simulations with 10,000 templates at 90% nominal coverage, the largest hole had a mean normalised mismatch of 1.81 (Messenger, Prix & Papa 2009). “95% coverage at mismatch 0.1” describes a distribution of losses. It is not a maximum.

Ian Harry, Bruce Allen and B. S. Sathyaprakash’s 2009 stochastic bank is a different object from a random one (Harry, Allen & Sathyaprakash 2009). It proposes templates one at a time and rejects any that fall too close to an accepted template. Exclusion removes the clumps that waste templates in a random bank and handles curved metrics and irregular regions naturally. Exclusion is a packing condition, though. Coverage follows only in the limit of saturation with complete proposal support, so a finite run’s stopping rule must be checked by independent injections. A naive implementation costs up to O(KN)O(KN) distance tests for KK proposals and NN accepted templates, and cost rises sharply as the acceptance rate falls. In their inspiral example the stochastic bank converged at about 7,500 templates, against 5,914 for a hexagonal lattice and 8,353 for a square one over the same region.

Gian Mario Manca and Michele Vallisneri then showed how large boundary costs can be (Manca & Vallisneri 2010). Covering an eight-dimensional unit cube to 95% with random balls of radius 0.3 needs about 11,000 centres by a boundary-free estimate and about 92,000 once the faces are treated properly. In high dimension most of the volume of a bounded region is near its boundary.

Worst case or average: Allen’s question

A covering minimises the worst loss. A survey does not care about the worst loss as such; it cares about how many sources it finds. In 2021 Bruce Allen made this the objective (Allen 2021). If the number of sources above optimal SNR ρ\rho scales as ρ−k\rho^{-k} and the threshold is fixed, the fraction retained by a bank with power mismatch μP\mu_P is

ffound=⟨(1−μP)k/2⟩,flost≃k2⟨μP⟩.f_{\rm found} = \left\langle (1-\mu_P)^{k/2}\right\rangle,\qquad f_{\rm lost}\simeq \frac k2\langle\mu_P\rangle.

Here kk is the source-count exponent, not the dimension. A uniform three-dimensional population of sources whose amplitude falls as inverse distance gives k=3k=3; a Kuiper belt luminosity function gives something else, and the gravitational-wave value cannot be borrowed. The leading loss depends on the mean squared mismatch, which for a lattice is set by its normalised second moment GG:

⟨r2⟩=d G vcell2/d.\langle r^2\rangle = d\,G\,v_{\rm cell}^{2/d}.

Minimising GG is the lattice quantiser problem, and it has different winners from the covering problem. Allen tabulates G(Zd)=1/12G(\mathbb Z^d)=1/12, G(D4)=0.076603G(D_4)=0.076603, G(A4∗)=0.077559G(A_4^*)=0.077559 and G(E8)=0.071682G(E_8)=0.071682. At fixed template count D4D_4 and E8E_8 reduce the leading loss by about 8% and 14% relative to a hypercubic bank. Turned around, at equal mean squared mismatch the template-count ratio is (G1/G2)d/2(G_1/G_2)^{d/2}, which for A4∗A_4^* against the hypercube is about 1.15, and for D4D_4 about 1.18 (derived). The same lattice that saves a factor of 2.8 at fixed worst-case mismatch saves only 15% at fixed average loss. Both statements are true. They protect different things.

Learned banks

Machine learning has entered bank construction, mostly to make construction cheaper rather than banks smaller. Stefano Schmidt, Bhooshan Gadre and Sarah Caudill’s mbank trains a normalising flow to sample templates with density proportional to det⁡g\sqrt{\det g}, then places a random bank and validates it with injections; its demonstration banks of about 1.6 million precessing and 2.1 million higher-mode templates were built in hours (Schmidt, Gadre & Caudill 2024). A density alone does not capture the metric’s eigenvectors, so it cannot produce a lattice. TemplateGeNN uses a Siamese network that predicts matches (Green, Morice-Atkinson & Lundgren 2025) inside stochastic placement, and reports 31,640 templates in roughly one day on one NVIDIA A100 (Green & Lundgren 2025). Its full-region coverage figure is internally inconsistent: the text says 98%, but the quoted 7,316 of 7,746 injections is 94.45%.

The October 2026 isobank preprint goes further, training an invertible flow so that Euclidean distances in its latent space approximate proper distances, then placing a stochastic bank with ordinary nearest-neighbour queries. In a five-dimensional eccentric-binary example it reached 96.6% coverage at amplitude mismatch 0.03 with about 2.27 million templates, against 94.2% with about 2.95 million for an mbank comparison, a reduction near 23%. In a three-dimensional example the two banks were statistically comparable (Wernersson et al. 2026). No same-dimensional map can flatten a curved manifold everywhere, and the authors say so. These are useful construction tools. None of them accelerates the subsequent billion-template image sum.

Orbits instead of waveforms

Shift vectors from orbit libraries

Parker and Kavelaars re-grid the Kuiper belt surveys

By 2010 several deep pencil-beam surveys had searched for faint trans-Neptunian objects by shifting and stacking images along hand-chosen grids of rates and angles. Parker and Kavelaars replaced the hand-chosen grid with an orbit library. They generated thousands to hundreds of thousands of physically possible orbits, propagated each through the real epochs and observer positions, and stored its displacement from the reference image in every exposure. Two orbits were interchangeable if their displacements never differed by more than a tolerance ϵmax⁡\epsilon_{\max} in any exposure. For short arcs they tiled the plane of final displacements with a triangular grid, kept the cells that contained physically possible motions, and greedily kept whichever cell covered the most still-uncovered library members, trying several grid orientations. For longer arcs they partitioned by a short-arc bank and then chose actual library orbits to cover the rest at every epoch.

The re-gridded surveys of Fraser et al. (2008), Fraser and Kavelaars (2009) and Fuentes et al. (2009) needed 19 instead of 25, 28 instead of 95, and 494 instead of 736 shift vectors at the same maximum tracking error (Parker & Kavelaars 2010). The chart is in Chapter 17. The gains came from removing unphysical and redundant motions and handling edges, not from hexagons alone.

The Parker–Kavelaars criterion is a maximum over epochs, D∞(k,h)=max⁡e∥vk,e−vh,e∥≤ϵmax⁡D_\infty(k,h)=\max_e\|\mathbf v_{k,e}-\mathbf v_{h,e}\|\le\epsilon_{\max}. It controls the worst positional error in any single exposure, which is transparent and suits later linking, but it can spend templates matching a poor-seeing exposure that carries little information. The 2025 metric is an information-weighted mean square instead. The greedy construction is a finite set cover: it covers the sampled library, and a sparse library can miss an unsampled corner of orbit space. Brute-force pairwise comparison of LL library orbits costs O(L2E)O(L^2E).

Parker and Kavelaars also proposed, without implementing, a two-level grid tree whose error budgets add across levels, and estimated pixel-addition savings of 2.25 for two nights and 6.25 for three. That proposal is an ancestor of the hierarchical searches in the second half of this chapter and of the trees of Chapter 21.

Metric banks for orbits

Geringer-Sameth and colleagues replaced the library’s empirical geometry with the Jacobian metric above, rotated to its eigenvectors, and sampled trial orbits by proper volume using Sobol sequences (Geringer-Sameth et al. 2025). Their data were the ZTF archive: 849,750 thirty-second exposures, about 50 million CCD-quadrant files of 3072×30803072\times3080 pixels. In a controlled blind test, one team member defined a randomly shifted box around a known object, the binary trans-Neptunian object Mors–Somnus, and the others searched it without being told the orbit. The box intersected 780 exposures, the object’s predicted median magnitude was V=21.5V=21.5, and its true-orbit SNR was 60.3. The density formula predicted 2.3×1092.3\times10^9 trials at qmax⁡=1q_{\max}=1, and the search used twice that. The best trial reached an SNR of 46.1, and four trials exceeded 22.2.

Reading orbital trial counts

The 2025 density formula, det⁡g/(vdqmax⁡d/2)\sqrt{\det g}/(v_dq_{\max}^{d/2}), places one template per ball volume. It omits a covering thickness. A strict lattice covering needs a factor ΘΛ\Theta_\Lambda more, and a random bank aiming at coverage η\eta needs −ln⁡(1−η)-\ln(1-\eta) more, 3.0 for 95%. The formula is a scale and a sampling prescription, not a coverage certificate, and successful restricted recoveries do not change that. The same preprint also has an apparent factor-of-four slip in its linear-motion determinant. Its scalings (T2b−4T^2b^{-4} for lines, roughly T3T^3 to T4T^4 for orbits over multi-year spans) are robust; copy absolute counts only after redoing the normalisation.

The paper’s most important number for this book is its scaling. Over its multi-year range the sampled orbital density grew roughly as T3T^3 for distant bodies and T4T^4 for nearer ones, while the SNR of a constant source grew as T\sqrt T. The cost of a long stack rises much faster than its depth. That observation motivates the hierarchical searches below: a short stack is far cheaper per unit of significance than a long one. In the six-dimensional Gaussian model, uniformly broadening the PSF by a factor ss cuts the template density as s−6s^{-6}, a large lever, but blurring correlates noise and discards information. It is a trade of sensitivity for compute, not a free acceleration.

heliostack: discretisation at scale

The heliostack search of Kevin Napier, Matthew Holman and colleagues shows what an orbit bank can achieve in practice (Napier et al. 2026). The data were 1,118 Hubble ACS images taken over about fifteen days in 2003 for the deep search of Bernstein et al. (2004). The bank was restricted to cold-classical-like orbits: semimajor axis 42.4 to 47.4 au, eccentricity below 0.2, inclination below 5 degrees, and heliocentric distance 38 to 51 au, which includes more than 95% of known cold classicals. Radial velocity was fixed at zero because over fifteen days it did not measurably change the sky motion. That restriction is specific to the short arc. The result was 1,148,817 initial conditions. The authors note that the full belt beyond 38 au with inclinations below 60 degrees would need about 300 times more, and that their grid could probably be pruned of redundant trajectories.

For each initial condition the pipeline warped every image onto a barycentric canvas with a perspective transformation computed from the image corners, added it with nearest-neighbour sampling, and kept peaks of the significance map at ν≥7\nu\ge7. That gave 109,383 candidates, 533 after merging duplicate trajectories. Pixel-level orbit fitting with a trailed PSF and a final cut at ν≥8.8\nu\ge8.8 left 145 candidates, of which 141 were implanted fakes and four were real: two known faint objects and two new ones at magnitudes 28.99±0.1028.99\pm0.10 and 29.17±0.1129.17\pm0.11. The fitted 50% completeness magnitude was m50=29.21±0.03m_{50}=29.21\pm0.03. The whole search took a few hundred NVIDIA H200 GPU-hours and a few thousand CPU-hours and finished in less than a day.

Heliostack demonstrates nonlinear orbital stacking with real discoveries. It does not establish that its grid is an optimal covering. Its tolerance of 0.05 arcsec allowed an estimated 0.1–0.2 mag of depth loss before refinement, recovered in part by the fit; Chapter 20 covers the method in full.

Which dimensions are resolved?

A six-element orbit is not necessarily a six-dimensional search. Over one night most of the six parameters are unresolved: the data distinguish two velocities and perhaps an acceleration. Parallax resolves distance after days, and orbital curvature after months. The metric shows this as small eigenvalues, but a small eigenvalue is not permission to drop a parameter. The right test is the maximal displacement along that direction across the whole allowed region, after scaling and boundaries. Taking the determinant of a nearly singular six-dimensional metric is a poor substitute for deciding whether each physical direction is covered. The heliostack choice of zero radial velocity was justified by exactly such a check for its fifteen-day arc.

Geometry is not a false-alarm rate

A template bank fixes the sensitivity loss. It does not fix the false-alarm rate. For normalised templates under correct Gaussian noise,

Cov[Z(λ),Z(λ′)]=(uλ∣uλ′),\mathrm{Cov}[Z(\lambda),Z(\lambda')] = (u_\lambda|u_{\lambda'}),

so neighbouring templates are correlated under the null hypothesis by exactly their match. A bank with fewer templates does not reduce the number of statistically independent trials in the same proportion; it may just sample the same smooth noise maxima less densely. The union bound

P ⁣(max⁡j≤NZj>z)≤N Φˉ(z),P\!\left(\max_{j\le N}Z_j>z\right)\le N\,\bar\Phi(z),

where Φˉ\bar\Phi is the unit-normal upper tail, needs no independence and is safe, but it can be conservative. Treating it as an equality is unjustified. Owen noted in 1996 that the threshold depends on both the template count and their covariance. In practice the search-wide threshold has to be measured with null trials that include masking, interpolation, refinement, deduplication and ranking, as Chapter 1 explains. Optimising a candidate after looking at the data raises its significance, so the threshold for a coarse bank and the threshold for a refined fit are different numbers.

Declining to finish: pruning

Five different operations

“Pruning” covers at least five operations, and each needs its own argument.

  1. A sequential probability ratio test accumulates evidence for two specified hypotheses and stops when it can decide.
  2. A hierarchical search runs a cheaper, less resolved search first and refines selected regions.
  3. Branch-and-bound excludes a whole region of parameter space with a mathematically valid upper bound on the statistic inside it.
  4. Geometric pruning rejects combinations of detections that no allowed trajectory could produce.
  5. Ranking and beam search keep a fixed number of the best candidates, usually with no guarantee at all.

The first three can preserve a sensitivity guarantee, the fourth preserves one if its bounds are physical, and the fifth turns the search’s selection function into a function of the data.

Wald’s sequential test

Abraham Wald’s Sequential Tests of Statistical Hypotheses appeared in the Annals of Mathematical Statistics in June 1945 (Wald 1945), and Wald and Jacob Wolfowitz proved its optimality for simple hypotheses in 1948 (Wald & Wolfowitz 1948). The idea is to replace a fixed sample size with a stopping rule. For independent observations YiY_i and two fully specified hypotheses, accumulate the log likelihood ratio

ℓn=∑i=1nlog⁡p1(Yi)p0(Yi).\ell_n = \sum_{i=1}^n \log\frac{p_1(Y_i)}{p_0(Y_i)}.

Stop and accept H0H_0 if ℓn≤b\ell_n\le b, stop and accept H1H_1 if ℓn≥a\ell_n\ge a, and otherwise take another observation. For false-positive rate α\alpha and false-negative rate β\beta, Wald’s approximate boundaries are

b=log⁡β1−α,a=log⁡1−βα.b = \log\frac{\beta}{1-\alpha},\qquad a=\log\frac{1-\beta}{\alpha}.

They are approximate because the last increment overshoots the boundary. For Gaussian observations, Yi∼N(0,1)Y_i\sim\mathcal N(0,1) under noise and N(μ,1)\mathcal N(\mu,1) under signal, ℓn=μ∑iYi−nμ2/2\ell_n=\mu\sum_iY_i-n\mu^2/2 drifts downward at rate μ2/2\mu^2/2 under noise. Ignoring overshoot, the expected stopping time under noise is

E0N≃(1−α)b+αa−μ2/2.E_0N \simeq \frac{(1-\alpha)b+\alpha a}{-\mu^2/2}.
Worked example: how much a sequential test saves

Let each observation carry SNR μ=0.5\mu=0.5, and ask for α=β=0.01\alpha=\beta=0.01. Then a=−b=ln⁡99=4.60a=-b=\ln 99=4.60, and E0N≈(0.99×4.60−0.01×4.60)/0.125≈36E_0N\approx(0.99\times4.60-0.01\times4.60)/0.125\approx36 observations. A fixed-sample test with the same error rates needs n μ=z0.99+z0.99=4.65\sqrt n\,\mu = z_{0.99}+z_{0.99}=4.65, or n≈87n\approx87. Under noise the sequential test stops after about 40% of the data on average (derived example). For a heteroscedastic image search the same test reads ℓ=F∗An−F∗2Bn/2\ell=F_*A_n-F_*^2B_n/2 at a design flux F∗F_*, with the accumulated information BnB_n in place of the sample count.

A planet search does not fit Wald’s assumptions exactly. The alternative is composite: flux, orbit and nuisance parameters are unknown. Maximising the likelihood over parameters with the same data does not produce a martingale, and a generalised likelihood ratio needs its own calibration. For faint-object work the most useful part of the test is its lower boundary. Use the sequential test only to reject unpromising trajectories early, and keep the ordinary full-data test for detection.

Repeated looks

Inspecting an accumulating statistic at many times and stopping when it looks good inflates the false-alarm rate, just as testing many templates does. The modern theory of time-uniform inference handles this exactly. For a nonnegative null supermartingale EnE_n with expectation at most one, Ville’s inequality gives

P0 ⁣(sup⁡nEn≥1/α)≤α,P_0\!\left(\sup_n E_n\ge 1/\alpha\right)\le\alpha,

with the supremum taken over all inspection times. Steven Howard, Aaditya Ramdas, Jon McAuliffe and Jasjeet Sekhon derive explicit boundaries from it (Howard et al. 2021). For a sum SnS_n of nn unit-variance sub-Gaussian increments, a normal-mixture construction gives the two-sided boundary

∣Sn∣≥(n+ρ)log⁡n+ρρ α2,ρ>0,|S_n| \ge \sqrt{(n+\rho)\log\frac{n+\rho}{\rho\,\alpha^2}},\qquad\rho>0,

valid simultaneously at all nn. This controls optional stopping for one hypothesis. It does nothing about the multiplicity of searching many orbits, which still needs a trials correction.

Pruning cannot raise a fixed bank’s false-alarm rate

There is a simple and important fact about pruning that is easy to miss.

Subset selection is safe for false alarms

Fix a final bank Θ\Theta and a threshold uu. If a pruned search evaluates exactly the same final scores, but only on a data-dependent subset S(D)⊆ΘS(D)\subseteq\Theta, then for every data set max⁡θ∈S(D)Z(θ)≤max⁡θ∈ΘZ(θ)\max_{\theta\in S(D)}Z(\theta)\le\max_{\theta\in\Theta}Z(\theta). Pruning alone cannot increase the probability that noise crosses the threshold. It also earns no credit: using the smaller survivor count as a new trials factor is unjustified, because the survivors were chosen by looking at the data. Continuous re-optimisation, changed statistics and adaptively created templates break the argument and need fresh null calibration.

So the only cost of pruning a fixed bank is lost sensitivity, and the whole design problem is to bound it.

A gate that protects faint sources

For an image search the natural evidence is additive. With matched-filter numerator maps ψi\psi_i and information maps ϕi\phi_i for each exposure (defined in Chapter 39), a trajectory θ\theta has

A(θ)=∑iaiψi[xi(θ)],B(θ)=∑iai2ϕi[xi(θ)],Z=AB,A(\theta)=\sum_i a_i\psi_i[x_i(\theta)],\qquad B(\theta)=\sum_i a_i^2\phi_i[x_i(\theta)],\qquad Z=\frac{A}{\sqrt B},

where aia_i is a known relative light curve or throughput. A block of exposures is summarised exactly by its signed pair (As,Bs)(A_s,B_s), and blocks combine by adding both. Negative measurements remain evidence.

Suppose a trajectory’s epochs are read in a fixed order, and after reading a fraction q=Bn/BNq=B_n/B_N of its information the search asks whether to continue. Let Y=An/BNY=A_n/\sqrt{B_N} be the partial score on the scale of the final one, Z=AN/BNZ=A_N/\sqrt{B_N}. For independent Gaussian increments and a source exactly on the template,

Y∣Z=z  ∼  N(qz,  q(1−q)).Y\mid Z=z \;\sim\; \mathcal N\big(qz,\; q(1-q)\big).

The source flux cancels. A gate

Y≥bn=q u−z1−δnq(1−q)Y \ge b_n = q\,u - z_{1-\delta_n}\sqrt{q(1-q)}

therefore discards at most a fraction δn\delta_n of the realisations whose final score would exceed uu, at that inspection. By the union bound the total loss over all inspections is at most ∑nδn\sum_n\delta_n, without any assumption that the inspections are independent. On the scale of a unit-variance partial score t=Y/qt=Y/\sqrt q, the gate is t(q)=q u−z1−δ1−qt(q)=\sqrt q\,u-z_{1-\delta}\sqrt{1-q}.

0246800.20.40.60.81Information fraction qPartial standardized score (0.0625, -0.992) (0.125, -0.062) (0.25, 1.324) (0.5, 3.472) (0.75, 5.383) (0.9, 6.612) (0.0625, 2) (0.125, 2.828) (0.25, 4) (0.5, 5.657) (0.75, 6.928) (0.9, 7.589)Gate, u = 8, 0.1% loss per lookMean partial score of a threshold source
A permissive gate still rejects most noise early. Partial standardized score of a trial trajectory against the fraction q of its total information read so far. The lower curve is the rejection gate that loses at most 0.1% of the sources whose complete score would cross u = 8 (conditional Gaussian model). The upper curve is the expected partial score of a source exactly at threshold. A noise trajectory has partial score drawn from a unit normal, so the gate at q = 0.25 already removes about 91% of noise and at q = 0.5 all but 0.026%, as single-inspection marginal fractions. Illustrative assumptions, not survey data. Source: Derived from the conditional Gaussian model; optical statistic as in Whidden et al. 2019, arXiv:1901.02492, section 2.1.

With u=8u=8 and δ=0.001\delta=0.001 per inspection, a noise trajectory survives the gate at q=0.25q=0.25 with probability 0.093 and at q=0.5q=0.5 with probability 0.00026, as single-inspection marginal probabilities (derived). Six inspections cost at most 0.6% of the above-threshold sources. Most noise is gone after reading half the information, while sources near threshold are almost all kept. This is a derived Gaussian benchmark, not a published pipeline.

If the gate is evaluated on a coarse representative template rather than the final fine one, its covariance with the final score changes. In general, if the partial statistic has variance vv, covariance kk with the final score and means mYm_Y, mZm_Z, then Y∣Z=z∼N(mY+k(z−mZ), v−k2)Y\mid Z=z\sim\mathcal N(m_Y+k(z-m_Z),\,v-k^2). A coarse-cell gate must bound the mean mismatch and covariance over every fine template the cell represents. Reusing the matched-template formula without that correction has no guarantee.

The gate also shows why an intuitive rule fails. A threshold that follows the expected growth of a signal’s SNR forces the signal’s noise random walk to stay on the favourable side at every stage. Pravir Kumar and Barak Zackay illustrate this with a 127-stage example in which such a rule keeps only about 5% of real signals, consistent with the 1/πL1/\sqrt{\pi L} survival of an LL-step random walk (Kumar & Zackay 2026). A permissive gate sits several conditional standard deviations below the expected path, as in the figure.

Keep the evidence signed

The gate depends on carrying signed sums. Requiring a detection in every night, or summing nightly powers As2/BsA_s^2/B_s, changes the statistic. The project’s own design studies (unpublished models, 2026) estimate that a power sum loses about 0.15, 0.27 and 0.47 mag of depth at 10, 30 and 100 segments relative to the signed coherent sum at a fixed per-path false-alarm rate. These are model calculations, not survey measurements, but the direction is general: forgetting the sign of a weak measurement throws away information that cannot be recovered.

Hierarchies in practice

Patrick Brady and Teviet Creighton’s 1998 preprint, published in 2000, posed wide-parameter continuous-wave searches as a fixed-compute optimisation (Brady & Creighton 2000). Earth’s motion and spin-down make a coherent bank grow steeply with observing time. They proposed short coherent transforms, summed powers across them, and a second search with longer segments around selected candidates. Their two-stage design gave a further 20–60% sensitivity at fixed cost in the search classes they modelled. Curt Cutler, Iraj Gholami and Badri Krishnan generalised this to several semicoherent stages and found three stages about 2–5 times cheaper than two at equal modelled sensitivity, with little gained from more (Cutler, Gholami & Krishnan 2005). Prix and Miroslav Shaltev then separated the coarse- and fine-bank mismatch contributions and derived analytic optima for the StackSlide method at fixed cost (Prix & Shaltev 2012). The lesson that transfers is that threshold, bank resolution, segment duration and follow-up cost must be optimised together.

Wette, Walsh, Prix and Papa’s Weave code adds an exact form of reuse: it maps each fine semicoherent template to the nearest coherent template in each segment, caches coherent statistics in a hash table, and uses a heap to evict entries once no future template can request them (Wette et al. 2018). Eviction is housekeeping, not a detection cut. Weave’s cost model charges coherent filtering, cache work and semicoherent summation separately, which is the right accounting for any image-stack tree.

The 2025 Einstein@Home “bucket” search of LIGO O3 data shows the scale of a real hierarchy (McGloughlin et al. 2025). It searched 30–250 Hz with 2.2×10192.2\times10^{19} templates, using 18 coherent segments of 244 hours. About ten million work units each ran for roughly 40 minutes on an RTX 2070 SUPER-class GPU, which multiplies to about 6.7×1066.7\times10^6 equivalent GPU-hours (an estimate; production used a mix of volunteer and cluster hardware).

2.2×10¹⁹ templates searched 18 segments × 244 h, mean mismatch 48% Stage 0: 13,828,991 clustered candidates Stage 1: 6,556,928 survive finer bank, mean mismatch 36% Stage 2: 6,556,928 (no veto) Bayesian follow-up Stage 3: 6,556,928 in → 4 out 4 signal-compatible: 3 hardware injections, 1 line 0 astrophysical detections Calibration rail 3,000 injected signals 2,667 after Stage 0 2,667 after Stage 1 2,667 after Stage 2 2,667 after Stage 3 retention is conditional on surviving Stage 0
The Einstein@Home O3 bucket search. Left: candidate counts after each stage. Stages 2 and 3 both process the same 6,556,928 candidates, with no veto between them. Of the four survivors, three are hardware injections and one is an instrumental line, so the search makes no astrophysical detection and sets upper limits. Right: the calibration population of injected signals, 2,667 of which survive Stage 0 and all of which survive the follow-up. That is conditional retention, not 100% end-to-end completeness. Data from McGloughlin et al. 2025.

The average squared-SNR mismatch of its first two stages was 48% and 36%, far from lossless; the search accepts large losses early to afford the volume. Its best 90%-confidence strain upper limit was 6.5×10−266.5\times10^{-26} at 173 Hz, about 25% better than comparable broad searches.

Pulsars: coherent pruning

Kendrick Smith’s 2016 paper built a coherent tree for constant-acceleration pulsar searches and a hierarchy that keeps more phase information than power stacking (Smith 2016). A semicoherent first stage marginalises over a family of allowed phase histories with a log-sum-exp recurrence; rare peaks seed searches with longer coherent chunks, four times longer at each level, ending in a coherent fit. Because coherent cost grows as T3T^3 for constant acceleration, NcN_c chunks of length T/NcT/N_c cost T3/Nc2T^3/N_c^2, and with Nc=64N_c=64 the scaling estimate is 642=4,09664^2=4{,}096. That is a scaling argument, not a measured runtime. In simulation the hierarchy detected about 50% of signals at total SNR 9 and 85% at 9.8, and the coherent tree itself was about 6% suboptimal from discretisation. The transferable point is that a weak signal need not be detectable in each short chunk for the hierarchy to find it.

Kumar and Zackay’s LOKI, posted in July 2026, carries coherent pruning to higher-order phase models and circular binary orbits (Kumar & Zackay 2026). It has two stage structures, which are easy to confuse. Its polynomial fast folding algorithm builds base states by dyadic merging, Ti=2iT0T_i=2^iT_0. Its extreme-pruning search instead adds one base segment per stage, Ts=(s+1)TsegT_s=(s+1)T_{\rm seg}, starting from an anchor segment and working outward. At each stage a surviving parameter cell branches into finer children appropriate to the new span. A phase coefficient multiplying tk+1t^{k+1} needs spacing proportional to T−(k+1)T^{-(k+1)}, so the grid grows as

Ngrid(T)∝Tκ,κ=∑k active(k+1),N_{\rm grid}(T)\propto T^\kappa,\qquad \kappa = \sum_{k\ \rm active}(k+1),

with κ=1,3,6,10\kappa=1,3,6,10 for frequency alone, acceleration, jerk and snap. LOKI keeps signed folded profiles and their weights, not segment powers, and finally re-integrates survivors.

Its thresholds are not chosen stage by stage. If ns−1n_{s-1} noise candidates reach stage ss, which has branching factor BsB_s and survival αs\alpha_s conditional on all earlier cuts, then ns≃ns−1Bsαsn_s\simeq n_{s-1}B_s\alpha_s and the cost is C≃∑scsns−1BsC\simeq\sum_s c_sn_{s-1}B_s. LOKI simulates noise and injected populations through the real sequence and runs a Viterbi-style dynamic programme over stage, discretised threshold and cumulative detection probability, typically 128 stages, 100 thresholds, 50 probability bins and at least 1,000 Monte Carlo profiles. The optimisation is approximate, since histories that land in the same bin can differ in their future survivor distributions, but it is a principled way to allocate a miss budget.

10410510610710810910101234Benchmark tierNode reduction vs unpruned hierarchyacceleration (1, 10000)accelerationjerk (2, 1e+06)jerksnap (3, 1e+09)snapcircular orbit (4, 1e+10)circular orbit
LOKI: pruning pays more as the phase model grows. Approximate reduction in cumulative search-tree nodes for LOKI's extreme-pruning search relative to an unpruned hierarchical search, for four binary-pulsar benchmark tiers with final thresholds 8.5, 9.2, 9.8 and 10.0 and memory caps 4, 4, 4 and 8 GB. These are node counts in simulations, not runtime ratios, and each tier has different physical bounds. Source: Kumar & Zackay 2026, arXiv:2607.07700, Table 1 and section 7.5.

The reported reductions in cumulative tree nodes relative to an unpruned hierarchy are about 10410^4, 10610^6, 10910^9 and 101010^{10} for the acceleration, jerk, snap and circular-orbit tiers. These are statements about very steep pulsar parameter spaces. They are not runtime ratios against every pulsar code, and they are not a prediction for optical searches, whose banks grow as roughly T2T^2 to T4T^4 rather than T10T^{10}. On an NVIDIA L40S the shift-and-add and scoring kernels took over 70% of runtime, at about 1/12 FLOP per byte in the time domain: pruning saves arithmetic but leaves a bandwidth-bound kernel. LOKI also raises its thresholds when candidate buffers overflow, which locally blinds the search to faint sources. Any fixed-size GPU output buffer or top-KK list does the same and must be counted in the selection function.

LOKI’s runtime benchmark uses cheap passes that each keep only 10% of signals, repeated over 16 anchors. If the passes were independent, 1−0.916=0.8151-0.9^{16}=0.815. They are not independent, because they share data. The project’s own LOKI transfer study (an unpublished CPU simulation, 2026) tested this on Gaussian twenty-night optical paths calibrated to 10% retention per pass, with mean pairwise correlation 0.217 between passes:

Anchor passesPredicted if independentMeasured retention
10.1000.100
40.3440.298
80.5700.360
160.8150.388
200.8790.398

Twenty correlated passes gave less than half the predicted recovery. This does not test LOKI’s own 128-stage pulsar configuration. It does show that aggressive multi-pass completeness cannot be transferred to optical data on an independence assumption.

Linking, bounds and radar

Geometric pruning is older in Solar System work than statistical pruning. Jeremy Kubica, Andrew Moore, Robert Jedicke, Larry Denneau and colleagues built kd-tree and variable-tree searches for the Pan-STARRS Moving Object Processing System that reject combinations of detections when tree-node ranges cannot satisfy the allowed velocities and accelerations, reaching roughly O(ρlog⁡ρ)O(\rho\log\rho) scaling with detection density in their tests (Kubica et al. 2007). Peter Vereš and Steven Chesley’s full-density LSST simulation shows how much survives: about 66 million detections, 77.3% of them false, about 12 million tracklets, and 93.6% linking efficiency for near-Earth objects with H<22H<22 at 96% purity (Vereš & Chesley 2017). These operate on detections above a threshold and are covered in Chapter 12.

Branch-and-bound is the rigorous version. For a parameter cell CC, an admissible bound satisfies U(C)≥sup⁡θ∈CZ(θ)U(C)\ge\sup_{\theta\in C}Z(\theta); if U(C)<uU(C)<u, the whole cell is discarded, otherwise it is split.

queue = initial_cells
while queue not empty:
    cell = pop(queue)
    if admissible_upper_bound(cell) < discovery_threshold:
        continue                      # nothing in this cell can be detected
    if cell is at final resolution:
        evaluate exact scores of its templates
    else:
        push children of split(cell)

A discovery search must compare against the fixed threshold, not against the best score found so far, which would hide fainter sources. The cost is O(VcU+LcZ)O(Vc_U+Lc_Z) for VV visited cells and LL exact leaf tests, and weak bounds can visit the whole tree. A simple optical bound takes, in each exposure, the maximum of aiψia_i\psi_i over the region the cell can reach, and divides their sum by the square root of a minimum information. It is valid but loose, because the per-exposure maxima can belong to mutually incompatible orbits. Peng and colleagues’ globally optimal contrast maximisation for event cameras shows that rigorous motion-cell bounds can work in a related image problem (Peng et al. 2022). No tight bound for the masked, signed optical likelihood has been published.

Radar track-before-detect uses similar ideas operationally. On real X-band coastal radar frames of 511×1711511\times1711 cells, Herrmann and colleagues’ hybrid, which handles strong targets with a cheap point tracker and weak ones with image-level track-before-detect, averaged 1.06 s per update against 1.21 s for track-before-detect alone, within a 2.5 s acquisition interval (Herrmann et al. 2025). That is a modest, real saving from selective effort (Chapter 37).

Optical searches

KBMOD evaluates the signed likelihood exhaustively on a dense velocity bank. Its original GPU implementation reported 2.4×10−112.4\times10^{-11} seconds per image per trajectory, about 240 billion trajectories through 30 images in 180 seconds, and its first application found 39 previously unknown KBOs (Whidden et al. 2019). That is the exhaustive baseline any pruned search must beat.

Geringer-Sameth and colleagues propose a hierarchy for multi-year searches: shorter stacks at lower thresholds, then denser, longer stacks around survivors, justified by the T3T^3–T4T^4 growth of the bank against the T\sqrt T growth of SNR. They do not demonstrate a calibrated speed-up. Heliostack is a two-stage search of a different kind: an approximate nearest-neighbour stack over the whole bank, then exact orbit fitting of survivors. It uses no sequential test.

One implementation detail matters for every optical hierarchy. A refined child trajectory generally follows a different path through the earlier images than its parent. Adding a new night to the parent’s old sum is therefore not the child’s correct prefix. The prefix must be recomputed from exposure-level or segment-level tables, or represented in a form that admits exact updates, or its error must be budgeted.

Landmark results

YearWorkAchievementKey number
1945, 1948Wald; Wald & WolfowitzSequential probability ratio test and its optimalitySimple hypotheses only
1996OwenDetection-oriented metric, minimal match2.4×1052.4\times10^5 / 7.6×1067.6\times10^6 templates, initial / advanced LIGO models
2000Brady & CreightonFixed-cost two-stage CW hierarchy20–60% more sensitivity, modelled
2005Cutler, Gholami & KrishnanMulti-stage semicoherent optimisation3 stages 2–5× cheaper than 2, modelled
2007PrixAd∗A_d^* lattice placement2.8× in 4D, 6.8× in 6D vs cubic
2007Kubica et al.kd-tree linking for Pan-STARRSAbout O(ρlog⁡ρ)O(\rho\log\rho) in tests
2009Messenger, Prix & PapaRandom and relaxed banksThickness −ln⁡(1−η)-\ln(1-\eta) at any dimension
2009Harry, Allen & SathyaprakashStochastic placement7,500 vs 5,914 hexagonal
2010Manca & VallisneriBoundary effects11,000 vs 92,000 balls, 8D cube
2010Parker & KavelaarsOrbit-library TNO grids95 → 28 shift vectors
2014WettePractical lattice tiling with boundariesMean 0.16 at maximum 0.3
2016SmithCoherent pulsar hierarchyNc2=4,096N_c^2=4{,}096 scaling estimate
2019Whidden et al. (KBMOD)Exhaustive GPU likelihood search39 new KBOs
2021AllenYield-optimal banksD4D_4 cuts leading loss about 8%
2025Geringer-Sameth et al.Orbital metric, ZTF blind recoverySNR 46.1 of 60.3 with about 4.6×1094.6\times10^9 trials
2025McGloughlin et al.Einstein@Home O3 bucket search2.2×10192.2\times10^{19} templates, no detection
2026Napier et al. (heliostack)Nonlinear HST orbit stacking2 new KBOs, m50=29.21m_{50}=29.21
2026Kumar & Zackay (LOKI)Coherent high-order pruningAbout 101010^{10} fewer nodes, circular tier
2026Wernersson et al. (isobank)Learned isometric coordinates2.27 M vs 2.95 M templates

Limitations and open problems

Local geometry has nonlocal failures. A Hessian describes a neighbourhood. Two distant orbits can produce nearly identical arcs, and seasonal gaps and parallax create disconnected aliases. Conversely, the metric can change appreciably across one covering cell. Coordinate singularities in eccentricity and inclination variables are not physical singularities. Manca and Vallisneri stress that the determinant, the eigenvalue ratios and the rotation of eigenvectors each cause distinct failures, and a sampler that learns only the determinant controls one of them.

The smooth metric assumes smooth support. Chip gaps, image edges, quality cuts and masks abruptly change which exposures contribute as the orbit changes. Resampling and difference imaging correlate noise. Rotational light curves, colours, trailing, binarity and non-Keplerian motion can move real signals outside the signal family, and a finer bank of the wrong family cannot repair that. Heliostack’s clean, nearly Gaussian candidate distribution came from exceptionally stable HST data, and ground-based images with variable seeing and subtraction residuals need their own null calibration.

Selection is cumulative. When stages share data, survival through all of them is a product of conditional probabilities,

P(survive all)=∏sP(Zs>ts∣Zj>tj ∀j<s),P(\text{survive all})=\prod_s P\big(Z_s>t_s\mid Z_j>t_j\ \forall j<s\big),

not of marginal tails. Optimising each stage separately allocates the miss budget badly. And there are two completeness questions: recovery of a source drawn from a physical population, and recovery conditional on the exhaustive final statistic crossing threshold. The second compares implementations; only the first supports survey science. A gate calibrated on constant-flux on-grid templates does not automatically protect rotating, trailed or off-grid sources.

The final null depends on what changed. Subset selection on a fixed bank is safe. A continuously optimised orbit, a maximum over light-curve shapes, a robustly clipped flux or a data-dependent noise estimate is a new statistic. Tools such as distromax, which fit extreme-value distributions to randomised batch maxima, help calibrate the loudest-candidate distribution, but a population of survivors already truncated by gates is not the full bank they assume (Tenorio et al. 2022).

Average and uniform coverage are scientific choices. A bank optimised for cold classicals can underperform on rare retrograde or very distant objects. A 95% covered volume, or a 95% recovered injection population, does not mean 95% coverage of every dynamical class. Exclusion limits for a hypothetical distant planet (Chapter 9) need uniform coverage of the population being excluded. Published searches would be much easier to compare if they released their mismatch distribution stratified by dynamical class, sky position, magnitude and distance to masks, together with the full-search false-positive calibration and compute.

There is no general tenfold theorem. Pruning gains depend on how steeply the bank grows, the threshold, segment reuse, artifact density and the accepted loss. A short bank that fits in cache may be fastest with a regular exhaustive kernel. No physical law requires work proportional to the number of templates, but nothing guarantees that every noise hypothesis can be dismissed cheaply either.

Where the room is

Separate the physical limits from the engineering ones. The photons, the PSF, the cadence, the noise covariance and the distinguishability of the signal family set the proper volume, and so the minimum number of templates at a given loss. Reparameterisation cannot shrink it. Curvature prevents an exact global flat coordinate map. Covering theory bounds how thin a bank can be. Everything else is engineering: redundant templates, poor boundary handling, repeated orbit propagation, scattered memory access, excessive precision and expensive bank construction. Chapter 42 collects these across the book.

Lattice shape is worth a factor of a few, at most. For a genuinely joint four-dimensional bank, A4∗A_4^* saves 2.8× at fixed worst-case mismatch, and a six-dimensional bank 6.8×. At fixed average loss the same lattices save only 15–20%. In one finite six-dimensional test in the project’s design studies (unpublished CPU experiments, 2026), a metric lattice bank needed 85,831 templates where the comparison bank needed 531,377, a factor of 6.19. Allowing a coarser cap gave 9.34× with a sampled maximum extra loss of 1.7%, but an independent check of the Voronoi deep holes found 2.19% extra loss, above both the sampled figure and the proposed allowance. Count ratios and elapsed time must be budgeted separately, and irregular banks can lose more in memory coalescing than they save in templates.

The larger geometric gains are in bad banks. A bank that is misaligned with the metric, uses coordinate-wise extreme bounds, includes impossible trajectories or grids an unresolved direction can be far worse than its lattice shape suggests. Parker and Kavelaars’ 95-to-28 is evidence of such combined gains in one survey, not a claim about every modern bank. Measuring the mismatch distribution of existing banks is cheap and would show where the room is.

Loss budgeting is a steep lever. In six dimensions the bank scales as μ−3\mu^{-3}, so halving the allowed mismatch from 0.2 to 0.1 costs eight times more templates. The design studies estimate that coarsening a six-dimensional local bank from mismatch 0.02 to 0.043 gives about 10× fewer trials at 2.4% extra limiting flux. Such a change must be justified by recovered sources, and the same relaxed budget must be offered to every comparator before anyone claims a speed-up.

Pruning is where the larger factors might be, and they are not yet measured on a GPU. The project’s LOKI transfer study (unpublished, 2026) built a four-stage signed-prefix hierarchy for a small image simulation: 20 irregular nights over 30 days, 24 visits per night, curved parallax-like paths and variable nightly PSFs. On CPU it reduced statistic accesses 19.2× against exhaustive stacking and 8.6× against sequential rejection, with identical blind recoveries in 192 injected cubes. Those are measured access counts. Its H100 projections are roofline models: a guarded central 10.3× for a dense multi-night regime, falling to 6.8× with an extra normalisation pass, 6.0× against a sequential comparator allowed a 1.4% flux penalty, and 3.1× (or 1.8×) using the local-state ratio actually measured in the prototype rather than the favourable assumed one. The decisive quantity is the number of local segment states per final trajectory, and it has to be measured on real orbit patches.

Four research directions follow, in order of evidence.

  1. Build the strong baseline first. An exhaustive GPU gather with footprint-aware tiling, the same encoding and a calibrated sequential lower-boundary rejection is the denominator every claim needs. Without it, a hierarchy’s gain over a naive kernel says nothing about the algorithm (Chapter 40).
  2. Signed segment tables with calibrated permissive gates over orbit cells. Use information fractions, not frame counts, to define stages, the subset metric to decide which directions to refine, and conditional covariance bounds over every fine template in a cell. Finish on the original per-exposure maps at the original threshold, so the fixed-bank false-alarm argument holds.
  3. Price the schedule in bytes, not nodes. LOKI’s kernels are bandwidth bound. A larger survivor population that keeps reads coalesced can beat a smaller one with scattered gathers. Checkpoint placement and error allocation should be optimised against measured stage costs.
  4. Tight bounds and learned screens, with audits. Cells that project to small sky regions and rarely touch bright data are where certified bounds could work. A learned screen can decide which cells to refine, provided an unbiased sample of rejected cells is always processed exactly so that misses are measured by orbit class, flux, seeing and artifact environment.

A credible tenfold equal-sensitivity gain for planetary searches will most likely come from geometry, reuse and calibrated pruning together, with every stage timed on the same hardware and recovery measured at the same false-alarm rate on the same injections. The mathematics for each piece exists. The combined, measured result does not yet.

References

  1. Allen, B. (2021). Optimal template banks. Physical Review D 104, 042005. arXiv:2102.11254
  2. Bernstein, G. M., Trilling, D. E., Allen, R. L. et al. (2004). The size distribution of trans-Neptunian bodies. Astronomical Journal 128, 1364. arXiv:astro-ph/0308467
  3. Brady, P. R., Creighton, T. (2000). Searching for periodic sources with LIGO. II: Hierarchical searches. Physical Review D 61, 082001. arXiv:gr-qc/9812014
  4. Cutler, C., Gholami, I., Krishnan, B. (2005). Improved stack-slide searches for gravitational-wave pulsars. Physical Review D 72, 042004. arXiv:gr-qc/0505082
  5. Geringer-Sameth, A., Golovich, N., Iwabuchi, K. (2025). Multi-year stacking searches for solar system bodies. Preprint. arXiv:2509.25428
  6. Green, S., Lundgren, A. (2025). TemplateGeNN: neural networks used to accelerate gravitational wave template bank generation. Preprint. arXiv:2502.15337
  7. Green, S., Morice-Atkinson, X., Lundgren, A. (2025). LearningMatch: Siamese neural network learns the match manifold. Preprint. arXiv:2502.01361
  8. Harry, I. W., Allen, B., Sathyaprakash, B. S. (2009). A stochastic template placement algorithm for gravitational wave data analysis. Physical Review D 80, 104014. arXiv:0908.2090
  9. Herrmann, L., García-Fernández, Á. F., Brekke, E. F., Eide, E. (2025). A scalable hybrid track-before-detect tracking system: application to coastal maritime radar surveillance. Preprint. arXiv:2508.16169
  10. Howard, S. R., Ramdas, A., McAuliffe, J., Sekhon, J. (2021). Time-uniform, nonparametric, nonasymptotic confidence sequences. Annals of Statistics. arXiv:1810.08240
  11. Kubica, J. et al. (2007). Efficient intra- and inter-night linking of asteroid detections using kd-trees. Icarus. arXiv:astro-ph/0703475
  12. Kumar, P., Zackay, B. (2026). Coherent signal detection with pruning. I. Finding short-period binary pulsars in circular orbits. Preprint. arXiv:2607.07700
  13. Manca, G. M., Vallisneri, M. (2010). Cover art: issues in the metric-guided and metric-less placement of random and stochastic template banks. Physical Review D 81, 024004. arXiv:0909.0563
  14. McGloughlin, B. et al. (2025). Einstein@Home all-sky "bucket" search for continuous gravitational waves in LIGO O3 public data. Astrophysical Journal. arXiv:2508.16423
  15. Messenger, C., Prix, R., Papa, M. A. (2009). Random template banks and relaxed lattice coverings. Physical Review D 79, 104017. arXiv:0809.5223
  16. Napier, K. J., Holman, M. J., Lin, H. W., Gerdes, D. W., Ruch, T. R. (2026). heliostack: a novel approach to minor planet discovery. Preprint. arXiv:2604.16731
  17. Owen, B. J. (1996). Search templates for gravitational waves from inspiraling binaries: choice of template spacing. Physical Review D 53, 6749. arXiv:gr-qc/9511032
  18. Parker, A. H., Kavelaars, J. J. (2010). Pencil-beam surveys for trans-Neptunian objects: novel methods for optimization and characterization. PASP. arXiv:1004.3287
  19. Peng, X., Gao, L., Wang, Y., Kneip, L. (2022). Globally-optimal contrast maximisation for event cameras. IEEE TPAMI. arXiv:2206.05127
  20. Prix, R. (2007a). Search for continuous gravitational waves: metric of the multidetector F-statistic. Physical Review D 75, 023004. arXiv:gr-qc/0606088
  21. Prix, R. (2007b). Template-based searches for gravitational waves: efficient lattice covering of flat parameter spaces. Classical and Quantum Gravity 24, S481. arXiv:0707.0428
  22. Prix, R., Shaltev, M. (2012). Search for continuous gravitational waves: optimal StackSlide method at fixed computing cost. Physical Review D 85, 084010. arXiv:1201.4321
  23. Schmidt, S., Gadre, B., Caudill, S. (2024). Gravitational-wave template banks for novel compact binaries. Physical Review D 109, 042005. arXiv:2302.00436
  24. Smith, K. M. (2016). New algorithms for radio pulsar search. Preprint. arXiv:1610.06831
  25. Tenorio, R., Modafferi, L. M., Keitel, D., Sintes, A. M. (2022). Empirically estimating the distribution of the loudest candidate from a gravitational-wave search. Physical Review D 105, 044029. arXiv:2111.12032
  26. Vereš, P., Chesley, S. R. (2017). Near-Earth object orbit linking with the Large Synoptic Survey Telescope. Astronomical Journal. arXiv:1706.09397
  27. Wald, A. (1945). Sequential tests of statistical hypotheses. Annals of Mathematical Statistics 16, 117–186. doi:10.1214/aoms/1177731118
  28. Wald, A., Wolfowitz, J. (1948). Optimum character of the sequential probability ratio test. Annals of Mathematical Statistics 19, 326–339. doi:10.1214/aoms/1177730197
  29. Wernersson, A., Irwin, J., Lopez, M., Caudill, S. (2026). Learning approximate isometric embeddings for efficient template placement. Preprint. arXiv:2610.02448
  30. Wette, K. (2014). Lattice template placement for coherent all-sky searches for gravitational-wave pulsars. Physical Review D 90, 122010. arXiv:1410.6882
  31. Wette, K., Walsh, S., Prix, R., Papa, M. A. (2018). Implementing a semicoherent search for continuous gravitational waves using optimally constructed template banks. Physical Review D 97, 123016. arXiv:1804.03392
  32. Whidden, P. J. et al. (2019). Fast algorithms for slow moving asteroids: constraints on the distribution of Kuiper Belt Objects. Astronomical Journal 157, 119. arXiv:1901.02492
  33. Finding Planets project (2026). Faint-mover search frontier: design studies, LOKI transfer study and CPU prototypes. Unpublished design studies; models and CPU simulations, not measurements on survey data.