# Observables¶

## Pauli Operators¶

class qucumber.observables.SigmaZ[source]

The observable.

Computes the magnetization in the Z direction of a spin chain.

apply(nn_state, samples)[source]

Computes the magnetization of each sample given a batch of samples.

Parameters: nn_state (qucumber.nn_states.WaveFunctionBase) – The WaveFunction that drew the samples. samples (torch.Tensor) – A batch of samples to calculate the observable on. Must be using the convention.
name

The name of the Observable.

sample(nn_state, k, num_samples=1, initial_state=None, overwrite=False)[source]

Draws samples of the observable using the given WaveFunction.

Parameters: nn_state (qucumber.nn_states.WaveFunctionBase) – The WaveFunction to draw samples from. k (int) – The number of Gibbs Steps to perform before drawing a sample. num_samples (int) – The number of samples to draw. initial_state (torch.Tensor) – The initial state of the Markov Chain. If given, num_samples will be ignored. overwrite (bool) – Whether to overwrite the initial_state tensor, if it is provided, with the updated state of the Markov chain.
statistics(nn_state, num_samples, num_chains=0, burn_in=1000, steps=1)[source]

Estimates the expected value, variance, and the standard error of the observable over the distribution defined by the WaveFunction.

Parameters: nn_state (qucumber.nn_states.WaveFunctionBase) – The WaveFunction to draw samples from. num_samples (int) – The number of samples to draw. The actual number of samples drawn may be slightly higher if num_samples % num_chains != 0. num_chains (int) – The number of Markov chains to run in parallel; if 0, will use a number of chains equal to num_samples. burn_in (int) – The number of Gibbs Steps to perform before recording any samples. steps (int) – The number of Gibbs Steps to take between each sample. A dictionary containing the (estimated) expected value (key: “mean”), variance (key: “variance”), and standard error (key: “std_error”) of the observable. dict(str, float)
statistics_from_samples(nn_state, samples)[source]

Estimates the expected value, variance, and the standard error of the observable using the given samples.

Parameters: nn_state (qucumber.nn_states.WaveFunctionBase) – The WaveFunction that drew the samples. samples (torch.Tensor) – A batch of sample states to calculate the observable on.
symbol

The algebraic symbol representing the Observable.

class qucumber.observables.SigmaX[source]

The observable

Computes the magnetization in the X direction of a spin chain.

apply(nn_state, samples)[source]

Computes the magnetization along X of each sample in the given batch of samples.

Parameters: nn_state (qucumber.nn_states.WaveFunctionBase) – The WaveFunction that drew the samples. samples (torch.Tensor) – A batch of samples to calculate the observable on. Must be using the convention.
name

The name of the Observable.

sample(nn_state, k, num_samples=1, initial_state=None, overwrite=False)[source]

Draws samples of the observable using the given WaveFunction.

Parameters: nn_state (qucumber.nn_states.WaveFunctionBase) – The WaveFunction to draw samples from. k (int) – The number of Gibbs Steps to perform before drawing a sample. num_samples (int) – The number of samples to draw. initial_state (torch.Tensor) – The initial state of the Markov Chain. If given, num_samples will be ignored. overwrite (bool) – Whether to overwrite the initial_state tensor, if it is provided, with the updated state of the Markov chain.
statistics(nn_state, num_samples, num_chains=0, burn_in=1000, steps=1)[source]

Estimates the expected value, variance, and the standard error of the observable over the distribution defined by the WaveFunction.

Parameters: nn_state (qucumber.nn_states.WaveFunctionBase) – The WaveFunction to draw samples from. num_samples (int) – The number of samples to draw. The actual number of samples drawn may be slightly higher if num_samples % num_chains != 0. num_chains (int) – The number of Markov chains to run in parallel; if 0, will use a number of chains equal to num_samples. burn_in (int) – The number of Gibbs Steps to perform before recording any samples. steps (int) – The number of Gibbs Steps to take between each sample. A dictionary containing the (estimated) expected value (key: “mean”), variance (key: “variance”), and standard error (key: “std_error”) of the observable. dict(str, float)
statistics_from_samples(nn_state, samples)[source]

Estimates the expected value, variance, and the standard error of the observable using the given samples.

Parameters: nn_state (qucumber.nn_states.WaveFunctionBase) – The WaveFunction that drew the samples. samples (torch.Tensor) – A batch of sample states to calculate the observable on.
symbol

The algebraic symbol representing the Observable.

class qucumber.observables.SigmaY[source]

The observable

Computes the magnetization in the Y direction of a spin chain.

apply(nn_state, samples)[source]

Computes the magnetization along Y of each sample in the given batch of samples.

Parameters: nn_state (qucumber.nn_states.WaveFunctionBase) – The WaveFunction that drew the samples. samples (torch.Tensor) – A batch of samples to calculate the observable on. Must be using the convention.
name

The name of the Observable.

sample(nn_state, k, num_samples=1, initial_state=None, overwrite=False)[source]

Draws samples of the observable using the given WaveFunction.

Parameters: nn_state (qucumber.nn_states.WaveFunctionBase) – The WaveFunction to draw samples from. k (int) – The number of Gibbs Steps to perform before drawing a sample. num_samples (int) – The number of samples to draw. initial_state (torch.Tensor) – The initial state of the Markov Chain. If given, num_samples will be ignored. overwrite (bool) – Whether to overwrite the initial_state tensor, if it is provided, with the updated state of the Markov chain.
statistics(nn_state, num_samples, num_chains=0, burn_in=1000, steps=1)[source]

Estimates the expected value, variance, and the standard error of the observable over the distribution defined by the WaveFunction.

Parameters: nn_state (qucumber.nn_states.WaveFunctionBase) – The WaveFunction to draw samples from. num_samples (int) – The number of samples to draw. The actual number of samples drawn may be slightly higher if num_samples % num_chains != 0. num_chains (int) – The number of Markov chains to run in parallel; if 0, will use a number of chains equal to num_samples. burn_in (int) – The number of Gibbs Steps to perform before recording any samples. steps (int) – The number of Gibbs Steps to take between each sample. A dictionary containing the (estimated) expected value (key: “mean”), variance (key: “variance”), and standard error (key: “std_error”) of the observable. dict(str, float)
statistics_from_samples(nn_state, samples)[source]

Estimates the expected value, variance, and the standard error of the observable using the given samples.

Parameters: nn_state (qucumber.nn_states.WaveFunctionBase) – The WaveFunction that drew the samples. samples (torch.Tensor) – A batch of sample states to calculate the observable on.
symbol

The algebraic symbol representing the Observable.

## Neighbour Interactions¶

class qucumber.observables.NeighbourInteraction(periodic_bcs=False, c=1)[source]

The observable

Computes the c-th nearest neighbour interaction for a spin chain with either open or periodic boundary conditions.

Parameters: periodic_bcs (bool) – Specifies whether the system has periodic boundary conditions. c (int) – Interaction distance.
apply(nn_state, samples)[source]

Computes the energy of this neighbour interaction for each sample given a batch of samples.

Parameters: nn_state (qucumber.nn_states.WaveFunctionBase) – The WaveFunction that drew the samples. samples (torch.Tensor) – A batch of samples to calculate the observable on. Must be using the convention.
name

The name of the Observable.

sample(nn_state, k, num_samples=1, initial_state=None, overwrite=False)[source]

Draws samples of the observable using the given WaveFunction.

Parameters: nn_state (qucumber.nn_states.WaveFunctionBase) – The WaveFunction to draw samples from. k (int) – The number of Gibbs Steps to perform before drawing a sample. num_samples (int) – The number of samples to draw. initial_state (torch.Tensor) – The initial state of the Markov Chain. If given, num_samples will be ignored. overwrite (bool) – Whether to overwrite the initial_state tensor, if it is provided, with the updated state of the Markov chain.
statistics(nn_state, num_samples, num_chains=0, burn_in=1000, steps=1)[source]

Estimates the expected value, variance, and the standard error of the observable over the distribution defined by the WaveFunction.

Parameters: nn_state (qucumber.nn_states.WaveFunctionBase) – The WaveFunction to draw samples from. num_samples (int) – The number of samples to draw. The actual number of samples drawn may be slightly higher if num_samples % num_chains != 0. num_chains (int) – The number of Markov chains to run in parallel; if 0, will use a number of chains equal to num_samples. burn_in (int) – The number of Gibbs Steps to perform before recording any samples. steps (int) – The number of Gibbs Steps to take between each sample. A dictionary containing the (estimated) expected value (key: “mean”), variance (key: “variance”), and standard error (key: “std_error”) of the observable. dict(str, float)
statistics_from_samples(nn_state, samples)[source]

Estimates the expected value, variance, and the standard error of the observable using the given samples.

Parameters: nn_state (qucumber.nn_states.WaveFunctionBase) – The WaveFunction that drew the samples. samples (torch.Tensor) – A batch of sample states to calculate the observable on.
symbol

The algebraic symbol representing the Observable.

## Abstract Observable¶

Note

This is an Abstract Base Class, it is not meant to be used directly. The following API reference is mostly for developers.

class qucumber.observables.ObservableBase[source]

Bases: abc.ABC

Base class for observables.

apply(nn_state, samples)[source]

Computes the value of the observable, row-wise, on a batch of samples. Must be implemented by any subclasses.

Parameters: nn_state (qucumber.nn_states.WaveFunctionBase) – The WaveFunction that drew the samples. samples (torch.Tensor) – A batch of sample states to calculate the observable on.
name

The name of the Observable.

sample(nn_state, k, num_samples=1, initial_state=None, overwrite=False)[source]

Draws samples of the observable using the given WaveFunction.

Parameters: nn_state (qucumber.nn_states.WaveFunctionBase) – The WaveFunction to draw samples from. k (int) – The number of Gibbs Steps to perform before drawing a sample. num_samples (int) – The number of samples to draw. initial_state (torch.Tensor) – The initial state of the Markov Chain. If given, num_samples will be ignored. overwrite (bool) – Whether to overwrite the initial_state tensor, if it is provided, with the updated state of the Markov chain.
statistics(nn_state, num_samples, num_chains=0, burn_in=1000, steps=1)[source]

Estimates the expected value, variance, and the standard error of the observable over the distribution defined by the WaveFunction.

Parameters: nn_state (qucumber.nn_states.WaveFunctionBase) – The WaveFunction to draw samples from. num_samples (int) – The number of samples to draw. The actual number of samples drawn may be slightly higher if num_samples % num_chains != 0. num_chains (int) – The number of Markov chains to run in parallel; if 0, will use a number of chains equal to num_samples. burn_in (int) – The number of Gibbs Steps to perform before recording any samples. steps (int) – The number of Gibbs Steps to take between each sample. A dictionary containing the (estimated) expected value (key: “mean”), variance (key: “variance”), and standard error (key: “std_error”) of the observable. dict(str, float)
statistics_from_samples(nn_state, samples)[source]

Estimates the expected value, variance, and the standard error of the observable using the given samples.

Parameters: nn_state (qucumber.nn_states.WaveFunctionBase) – The WaveFunction that drew the samples. samples (torch.Tensor) – A batch of sample states to calculate the observable on.
symbol

The algebraic symbol representing the Observable.