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

#include <statevector.hpp>

Inheritance diagram for Qrack::StateVectorArray:
Inheritance graph
[legend]
Collaboration diagram for Qrack::StateVectorArray:
Collaboration graph
[legend]

Public Member Functions

 StateVectorArray (bitCapIntOcl cap)
 
virtual ~StateVectorArray ()
 
complex read (const bitCapIntOcl &i)
 
void write (const bitCapIntOcl &i, const complex &c)
 
void write2 (const bitCapIntOcl &i1, const complex &c1, const bitCapIntOcl &i2, const complex &c2)
 Optimized "write" that is only guaranteed to write if either amplitude is nonzero. More...
 
void clear ()
 
void copy_in (complex const *copyIn)
 
void copy_in (complex const *copyIn, const bitCapIntOcl offset, const bitCapIntOcl length)
 
void copy_in (StateVectorPtr copyInSv, const bitCapIntOcl srcOffset, const bitCapIntOcl dstOffset, const bitCapIntOcl length)
 
void copy_out (complex *copyOut)
 
void copy_out (complex *copyOut, const bitCapIntOcl offset, const bitCapIntOcl length)
 
void copy (StateVectorPtr toCopy)
 
void copy (StateVectorArrayPtr toCopy)
 
void shuffle (StateVectorPtr svp)
 
void shuffle (StateVectorArrayPtr svp)
 
void get_probs (real1 *outArray)
 
bool is_sparse ()
 
- Public Member Functions inherited from Qrack::StateVector
 StateVector (bitCapIntOcl cap)
 
virtual ~StateVector ()
 

Public Attributes

std::unique_ptr< complex[], void(*)(complex *)> amplitudes
 
- Public Attributes inherited from Qrack::StateVector
bool isReadLocked
 

Protected Member Functions

std::unique_ptr< complex[], void(*)(complex *)> Alloc (bitCapIntOcl elemCount)
 
virtual void Free ()
 

Static Protected Member Functions

static real1_f normHelper (const complex &c)
 

Additional Inherited Members

- Protected Attributes inherited from Qrack::StateVector
bitCapIntOcl capacity
 

Constructor & Destructor Documentation

◆ StateVectorArray()

Qrack::StateVectorArray::StateVectorArray ( bitCapIntOcl  cap)
inline

◆ ~StateVectorArray()

virtual Qrack::StateVectorArray::~StateVectorArray ( )
inlinevirtual

Member Function Documentation

◆ Alloc()

std::unique_ptr<complex[], void (*)(complex*)> Qrack::StateVectorArray::Alloc ( bitCapIntOcl  elemCount)
inlineprotected

◆ clear()

void Qrack::StateVectorArray::clear ( )
inlinevirtual

Implements Qrack::StateVector.

◆ copy() [1/2]

void Qrack::StateVectorArray::copy ( StateVectorArrayPtr  toCopy)
inline

◆ copy() [2/2]

void Qrack::StateVectorArray::copy ( StateVectorPtr  toCopy)
inlinevirtual

Implements Qrack::StateVector.

◆ copy_in() [1/3]

void Qrack::StateVectorArray::copy_in ( complex const *  copyIn)
inlinevirtual

Implements Qrack::StateVector.

◆ copy_in() [2/3]

void Qrack::StateVectorArray::copy_in ( complex const *  copyIn,
const bitCapIntOcl  offset,
const bitCapIntOcl  length 
)
inlinevirtual

Implements Qrack::StateVector.

◆ copy_in() [3/3]

void Qrack::StateVectorArray::copy_in ( StateVectorPtr  copyInSv,
const bitCapIntOcl  srcOffset,
const bitCapIntOcl  dstOffset,
const bitCapIntOcl  length 
)
inlinevirtual

Implements Qrack::StateVector.

◆ copy_out() [1/2]

void Qrack::StateVectorArray::copy_out ( complex copyOut)
inlinevirtual

Implements Qrack::StateVector.

◆ copy_out() [2/2]

void Qrack::StateVectorArray::copy_out ( complex copyOut,
const bitCapIntOcl  offset,
const bitCapIntOcl  length 
)
inlinevirtual

Implements Qrack::StateVector.

◆ Free()

virtual void Qrack::StateVectorArray::Free ( )
inlineprotectedvirtual

◆ get_probs()

void Qrack::StateVectorArray::get_probs ( real1 outArray)
inlinevirtual

Implements Qrack::StateVector.

◆ is_sparse()

bool Qrack::StateVectorArray::is_sparse ( )
inlinevirtual

Implements Qrack::StateVector.

◆ normHelper()

static real1_f Qrack::StateVectorArray::normHelper ( const complex c)
inlinestaticprotected

◆ read()

complex Qrack::StateVectorArray::read ( const bitCapIntOcl i)
inlinevirtual

Implements Qrack::StateVector.

◆ shuffle() [1/2]

void Qrack::StateVectorArray::shuffle ( StateVectorArrayPtr  svp)
inline

◆ shuffle() [2/2]

void Qrack::StateVectorArray::shuffle ( StateVectorPtr  svp)
inlinevirtual

Implements Qrack::StateVector.

◆ write()

void Qrack::StateVectorArray::write ( const bitCapIntOcl i,
const complex c 
)
inlinevirtual

Implements Qrack::StateVector.

◆ write2()

void Qrack::StateVectorArray::write2 ( const bitCapIntOcl i1,
const complex c1,
const bitCapIntOcl i2,
const complex c2 
)
inlinevirtual

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

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

Implements Qrack::StateVector.

Member Data Documentation

◆ amplitudes

std::unique_ptr<complex[], void (*)(complex*)> Qrack::StateVectorArray::amplitudes

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