Skip to content
API access

Concept · The number a desk actually needs

Observables and expectations

Most Data-T callers do not want a state. They want a number attached to an operator: energy, a parity, a witness, a factor loading. Lumen Lattice treats that operator as the primary query.

Pauli sums

The 1.0 observable language is a real linear combination of Pauli strings. Products of Paulis reduce by the usual multiplication rules before evaluation, so a caller who sends XYZ on overlapping supports gets one string, not an implicit product inside the engine. The reference page holds the multiplication table.

Coefficients are real in 1.0. A genuinely complex observable is two real ones, Hermitian and anti-Hermitian parts, sent as two queries. The response does not pack them.

Which engine answers

Trace is preferred when every term’s backward cone stays under the string cap. State is preferred when the width is small and the caller also asked for a snapshot in the same session. Weave is preferred when the operator’s support is a small set of wires on a wide circuit, because the open indices are then few. Drift is required if any channel is in the session. The response field engine records the choice and the reason code.

Callers can pin an engine. A pin that cannot meet the memory ceiling fails. Data-T will not silently unpin.

Variational loops

A parameterised layer is a list of rotation angles. The session can update angles without resubmitting gates. Expectations are recomputed. Finite-difference gradients are available as a query that shifts one angle by a stated step and returns both values. Analytic parameter-shift for a single Pauli rotation is available when the generator is X, Y, or Z. Other generators use finite difference and say so.

This is the hand-off into Argo Mesh. Argo Mesh consumes samples and expectations; it does not own the lattice. A combinatorial run that needs a quantum cost may call Lumen for the cost and keep the optimisation loop in Argo Mesh.

All documents