Qrack  9.0
General classical-emulating-quantum development framework
Public Member Functions | Public Attributes | Protected Attributes | List of all members
Qrack::StateVector Class Referenceabstract

#include <statevector.hpp>

Inheritance diagram for Qrack::StateVector:
Inheritance graph
[legend]

Public Member Functions

 StateVector (bitCapIntOcl cap)
 
virtual ~StateVector ()
 
virtual complex read (const bitCapIntOcl &i)=0
 
virtual void write (const bitCapIntOcl &i, const complex &c)=0
 
virtual void write2 (const bitCapIntOcl &i1, const complex &c1, const bitCapIntOcl &i2, const complex &c2)=0
 Optimized "write" that is only guaranteed to write if either amplitude is nonzero. More...
 
virtual void clear ()=0
 
virtual void copy_in (complex const *inArray)=0
 
virtual void copy_in (complex const *copyIn, const bitCapIntOcl offset, const bitCapIntOcl length)=0
 
virtual void copy_in (StateVectorPtr copyInSv, const bitCapIntOcl srcOffset, const bitCapIntOcl dstOffset, const bitCapIntOcl length)=0
 
virtual void copy_out (complex *outArray)=0
 
virtual void copy_out (complex *copyIn, const bitCapIntOcl offset, const bitCapIntOcl length)=0
 
virtual void copy (StateVectorPtr toCopy)=0
 
virtual void shuffle (StateVectorPtr svp)=0
 
virtual void get_probs (real1 *outArray)=0
 
virtual bool is_sparse ()=0
 

Public Attributes

bool isReadLocked
 

Protected Attributes

bitCapIntOcl capacity
 

Constructor & Destructor Documentation

◆ StateVector()

Qrack::StateVector::StateVector ( bitCapIntOcl  cap)
inline

◆ ~StateVector()

virtual Qrack::StateVector::~StateVector ( )
inlinevirtual

Member Function Documentation

◆ clear()

virtual void Qrack::StateVector::clear ( )
pure virtual

◆ copy()

virtual void Qrack::StateVector::copy ( StateVectorPtr  toCopy)
pure virtual

◆ copy_in() [1/3]

virtual void Qrack::StateVector::copy_in ( complex const *  copyIn,
const bitCapIntOcl  offset,
const bitCapIntOcl  length 
)
pure virtual

◆ copy_in() [2/3]

virtual void Qrack::StateVector::copy_in ( complex const *  inArray)
pure virtual

◆ copy_in() [3/3]

virtual void Qrack::StateVector::copy_in ( StateVectorPtr  copyInSv,
const bitCapIntOcl  srcOffset,
const bitCapIntOcl  dstOffset,
const bitCapIntOcl  length 
)
pure virtual

◆ copy_out() [1/2]

virtual void Qrack::StateVector::copy_out ( complex copyIn,
const bitCapIntOcl  offset,
const bitCapIntOcl  length 
)
pure virtual

◆ copy_out() [2/2]

virtual void Qrack::StateVector::copy_out ( complex outArray)
pure virtual

◆ get_probs()

virtual void Qrack::StateVector::get_probs ( real1 outArray)
pure virtual

◆ is_sparse()

virtual bool Qrack::StateVector::is_sparse ( )
pure virtual

◆ read()

virtual complex Qrack::StateVector::read ( const bitCapIntOcl i)
pure virtual

◆ shuffle()

virtual void Qrack::StateVector::shuffle ( StateVectorPtr  svp)
pure virtual

◆ write()

virtual void Qrack::StateVector::write ( const bitCapIntOcl i,
const complex c 
)
pure virtual

◆ write2()

virtual void Qrack::StateVector::write2 ( const bitCapIntOcl i1,
const complex c1,
const bitCapIntOcl i2,
const complex c2 
)
pure virtual

Optimized "write" that is only guaranteed to write if either amplitude is nonzero.

(Useful for the result of 2x2 tensor slicing.)

Implemented in Qrack::StateVectorSparse, and Qrack::StateVectorArray.

Member Data Documentation

◆ capacity

bitCapIntOcl Qrack::StateVector::capacity
protected

◆ isReadLocked

bool Qrack::StateVector::isReadLocked

The documentation for this class was generated from the following file: