Defines the TermCOPALayout class.

Module Contents



A circuit outcome probability array (COPA) layout for circuit simulation by taylor-term path integration.

class pygsti.layouts.termlayout.TermCOPALayout(circuits, model, dataset=None, num_sub_tables=None, num_table_processors=1, num_param_dimension_processors=(), param_dimensions=(), param_dimension_blk_sizes=(), resource_alloc=None, verbosity=0)

Bases: pygsti.layouts.distlayout.DistributableCOPALayout

A circuit outcome probability array (COPA) layout for circuit simulation by taylor-term path integration.

A simple distributed layout that divides a list of circuits among available processors. This layout is designed for Taylor-term based calculations for which there is no straightforward caching/performance-enhancement mechanism. The path-integral specific implementation is present in the atoms, which hold current path sets and compact polynomials for speeding the evaluation of circuit outcome probabilities.



A list of:class:Circuit objects representing the circuits this layout will include.


The model that will be used to compute circuit outcome probabilities using this layout. This model is used to complete and expand the circuits in circuits.

datasetDataSet, optional

If not None, restrict the circuit outcomes stored by this layout to only the outcomes observed in this data set.

num_sub_tablesint, optional

The number of groups (“sub-tables”) to divide the circuits into. This is the number of atoms for this layout.

num_table_processorsint, optional

The number of atom-processors, i.e. groups of processors that process sub-tables.

num_param_dimension_processorstuple, optional

A 1- or 2-tuple of integers specifying how many parameter-block processors are used when dividing the physical processors into a grid. The first and second elements correspond to counts for the first and second parameter dimensions, respecively.

param_dimensionstuple, optional

The number of parameters along each parameter dimension. Can be an empty, 1-, or 2-tuple of integers which dictates how many parameter dimensions this layout supports.

param_dimension_blk_sizestuple, optional

The parameter block sizes along each present parameter dimension, so this should be the same shape as param_dimensions. A block size of None means that there should be no division into blocks, and that each block processor computes all of its parameter indices at once.

resource_allocResourceAllocation, optional

The resources available for computing circuit outcome probabilities.

verbosityint or VerbosityPrinter

Determines how much output to send to stdout. 0 means no output, higher integers mean more output.

property pathset

This layout’s current path set.


TermPathSet or None