pygsti.modelmembers.states.densestate

The DenseState and DensePureState classes and supporting functionality.

Module Contents

Classes

DenseStateInterface

Adds a numpy-array-mimicing interface onto a state object.

DenseState

TODO: update docstring

DensePureState

TODO: docstring - a state that is interfaced as a dense ket

class pygsti.modelmembers.states.densestate.DenseStateInterface

Bases: object

Adds a numpy-array-mimicing interface onto a state object.

property columnvec

Direct access the the underlying data as column vector, i.e, a (dim,1)-shaped array.

to_array()

Return the array used to identify this state within its range of possible values.

For instance, if the state is a pure state, this returns a complex pure-state vector regardless of the evolution type. The related to_dense() method, in contrast, returns the dense representation of the state, which varies by evolution type.

Returns

numpy.ndarray

class pygsti.modelmembers.states.densestate.DenseState(vec, basis, evotype, state_space)

Bases: DenseStateInterface, pygsti.modelmembers.states.state.State

TODO: update docstring A state preparation vector that is interfaced/behaves as a dense super-ket (a numpy array).

This class is the common base class for parameterizations of a state vector that have a dense representation and can be accessed like a numpy array.

Parameters

vecnumpy.ndarray

The SPAM vector as a dense numpy array.

evotype{“statevec”, “densitymx”}

The evolution type.

Attributes

_base_1dnumpy.ndarray

Direct access to the underlying 1D array.

basenumpy.ndarray

Direct access the the underlying data as column vector, i.e, a (dim,1)-shaped array.

Initialize a new state Vector

to_dense(on_space='minimal', scratch=None)

Return the dense array used to represent this state within its evolution type.

The memory in scratch maybe used when it is not-None.

Parameters
on_space{‘minimal’, ‘Hilbert’, ‘HilbertSchmidt’}

The space that the returned dense operation acts upon. For unitary matrices and bra/ket vectors, use ‘Hilbert’. For superoperator matrices and super-bra/super-ket vectors use ‘HilbertSchmidt’. ‘minimal’ means that ‘Hilbert’ is used if possible given this operator’s evolution type, and otherwise ‘HilbertSchmidt’ is used.

scratchnumpy.ndarray, optional

scratch space available for use.

Returns

numpy.ndarray

to_memoized_dict(mmg_memo)

Create a serializable dict with references to other objects in the memo.

Parameters
mmg_memo: dict

Memo dict from a ModelMemberGraph, i.e. keys are object ids and values are ModelMemberGraphNodes (which contain the serialize_id). This is NOT the same as other memos in ModelMember (e.g. copy, allocate_gpindices, etc.).

Returns
mm_dict: dict

A dict representation of this ModelMember ready for serialization This must have at least the following fields: module, class, submembers, params, state_space, evotype Additional fields may be added by derived classes.

class pygsti.modelmembers.states.densestate.DensePureState(purevec, basis, evotype, state_space)

Bases: DenseStateInterface, pygsti.modelmembers.states.state.State

TODO: docstring - a state that is interfaced as a dense ket

Initialize a new state Vector

to_dense(on_space='minimal', scratch=None)

Return the dense array used to represent this state within its evolution type.

The memory in scratch maybe used when it is not-None.

Parameters

on_space{‘minimal’, ‘Hilbert’, ‘HilbertSchmidt’}

The space that the returned dense operation acts upon. For unitary matrices and bra/ket vectors, use ‘Hilbert’. For superoperator matrices and super-bra/super-ket vectors use ‘HilbertSchmidt’. ‘minimal’ means that ‘Hilbert’ is used if possible given this operator’s evolution type, and otherwise ‘HilbertSchmidt’ is used.

scratchnumpy.ndarray, optional

scratch space available for use.

Returns

numpy.ndarray

to_memoized_dict(mmg_memo)

Create a serializable dict with references to other objects in the memo.

Parameters

mmg_memo: dict

Memo dict from a ModelMemberGraph, i.e. keys are object ids and values are ModelMemberGraphNodes (which contain the serialize_id). This is NOT the same as other memos in ModelMember (e.g. copy, allocate_gpindices, etc.).

Returns

mm_dict: dict

A dict representation of this ModelMember ready for serialization This must have at least the following fields: module, class, submembers, params, state_space, evotype Additional fields may be added by derived classes.