Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members

SinglyBranchingState Class Reference
[Objects with a TPS]

A sum of product states that can be distinguished perfectly by measuring one (special) subsystem. More...

#include <quantum.h>

Collaboration diagram for SinglyBranchingState:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 SinglyBranchingState (const TensorProductStructure &Uinit)
 Constructor: constructs a zero SinglyBranchingState with the given TensorProductStructure.
 SinglyBranchingState (const SinglyBranchingState &other)
 Copy Constructor: constructs a new SinglyBranchingState that is an exact copy of other.
 SinglyBranchingState (const ProductState &other, ISet SystemIndices)
 Constructor: creates a SinglyBranchingState from a single ProductState, by identifying a (possibly composite) subsystem as the System.
 ~SinglyBranchingState ()
 Destructor: de-allocates component structures.
SinglyBranchingStateoperator= (const SinglyBranchingState &other)
 Assignment operator; sets this SinglyBranchingState equal to other, provided they have identical TensorProductStructures.
StateRealize (State &fullstate) const
 Realizes the dense state vector represented by this SinglyBranchingState, assigning it to the provided fullstate.
StateAddTo (State &fullstate, complex amplitude=complex(1.0, 0)) const
 Realizes a scalar multiple of this SinglyBranchingState, adding it to the provided fullstate.
ProductStateBranch (itype index) const
 Returns a reference to the ProductState describing the index'th branch.
complexBranchAmplitude (itype index)
 Returns a reference to the amplitude of the index'th branch. This is also a component of the System's putative undecohered state.
StateSystemState ()
 Returns a reference to a state vector describing the System's state IF all branches were identical. This is a vector of branch amplitudes.
const StateSystemState () const
 Returns a const reference to a state vector describing the System's state IF all branches were identical.
TensorProductStructureTPS ()
 Returns a reference to this ProductState's underlying TensorProductStructure.
const TensorProductStructureTPS () const
 Returns a const reference to this ProductState's underlying TensorProductStructure.
double Norm ()
 Calculates the squared 2-norm of this state.
SinglyBranchingStateNormalize ()
 Normalizes this state, by normalizing: (1) the vector of amplitudes (System's state); (2) each branch state.

Detailed Description

A sum of product states that can be distinguished perfectly by measuring one (special) subsystem.

A SinglyBranchingState is a particular type of quantum state defined on a Hilbert space endowed with a tensor product structure, where one subsystem is singled out as the "System", and the others are ancillae or "Subenvironments" (i.e., subsystems of the environment). The defining property is that, conditional upon a particular measurement of the System, the remaining subsystems will be found in a product state. If the System has Ds dimensions, then this means that the SinglyBranchingState is a superposition of Ds ProductStates, where the System component of each one has only one nonzero component.

SinglyBranchingStates are, in practice, a fairly straightforward extension of ProductStates. Each of the ProductStates going into the superposition is stored, along with its amplitude. Things that can be done with a SinglyBranchingState include:


Constructor & Destructor Documentation

SinglyBranchingState::SinglyBranchingState const ProductState other,
ISet  SystemIndices
 

Constructor: creates a SinglyBranchingState from a single ProductState, by identifying a (possibly composite) subsystem as the System.

A ProductState can be interpreted as a trivial SinglyBranchingState, in which one subsystem is the System, and all the branches are identical. Such a state generally serves as the starting point for a dynamical evolution into a more complex SinglyBranchingState. This constructor reinterprets a ProductState in this way. However, it can define the System to be a composite of several subsystems from the original ProductState.

EXAMPLE: Suppose Foo is a ProductState with a {2x3x4x5x6} tensor product structure. We could construct a SinglyBranchingState, Bar, by passing {0} as the SystemIndices. Bar would then have a structure {2}x{3x4x5x6}. If we passed {1,4} as the SystemIndices, then Bar would have a structure {18}x{2x4x5}. Foo and Bar would now have incompatible TensorProductStructures, since Bar's got rearranged. This will be the case unless SystemIndices are {0}.


Member Function Documentation

ProductState & SinglyBranchingState::Branch itype  index  )  const
 

Returns a reference to the ProductState describing the index'th branch.

Note that the branch has a different tensor product structure from the full SinglyBranchingState -- it is missing the System component.


The documentation for this class was generated from the following files:
Generated on Wed Jun 14 22:25:29 2006 for linalg by  doxygen 1.4.4