A note on book versions, formats and conventions#

Versions#

This book exists in multiple formats, which are not all equal:

  1. Jupyter notebooks. The original form, interactive computational notebooks includes text, executable code and full outputs. Source notebooks are available via Quantum Metrology Vol. 3 (Github repo).

  2. HTML pages. Compiled from the notebooks, include interactive figures and most computational outputs. The HTML version is available at Quantum Metrology Vol. 3 (HTML version).

  3. PDF and hard-copy. Standard static outputs, compiled from the notebooks. In this form some computational outputs are truncated or omitted for brevity and readability. Since some formats may not support hyperlinks, URLs to external references are also usually included in the bibliography - note that these may not always be the full URLs linked in the main text, and may only list the main index page of a given site in some cases. Some figures may also be omitted.

Conventions#

Code (Python) appears in formatted cells, with comments, and outputs below the cell:

# Example comment in code
value = 3*3
print(f'This is a code cell, value={value}')
This is a code cell, value=9

In HTML and PDF formats some code cells that appear in the source notebooks may be hidden or removed, or have outputs hidden or removed. This is usually for brevity - e.g. to remove additional code-only examples that are only useful when working directly on the code, or repeated code - or to hide additional formatting commands required only for Jupyter Book builds. All code cells are annotated to indicate their contents.

Hide code cell content
# This is a hidden code cell (will not appear in PDF versions)
import numpy as np

value = 2+np.pi
print(f'This is a hidden code cell, with hidden output, value={value}')
This is a hidden code cell, with hidden output, value=5.141592653589793

Code-related terms in the text, e.g. the names of functions, packages etc., usually appear as in-line blocks, e.g. Numpy, and may additionally be linked to relevant web resources, e.g. Numpy.

For more details on the aims, tools and build-chain, see Sect. 1.2.2.

Formatting#

In some cases additional formatting is required for defining Jupter Notebook to HTML and PDF outputs (via the Jupyter Book build-chain, see Sect. 1.2.2), in particular the glue command is used for formatting figure outputs with captions. In general use these are not required, but will transparently display figures when executed in the Jupyter Lab environment. Note that glued tables from Pandas DataFrames are not nicely rendered in the HTML format, but interactive HTML output is usually include too, although this may be hidden in the cell above the glued table.

Numerics#

At the time of writing the main code-bases used in this work (see Sect. 2 are still in active development, bugs, inconsistencies and errors cannot, therefore, be ruled out in the numerical examples. However, the case for 1D alignment and reconstruction has been well-tested in the past (e.g. Refs. [1, 2, 3]), so is expected to be accurate; cases with 3D alignment are presented in a provisional context, with caveats as above, although the general methodology as demonstrated is robust.