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

#include <qbdt_node_interface.hpp>

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

Public Member Functions

virtual void PushStateVector (complex const *mtrx, QBdtNodeInterfacePtr &b0, QBdtNodeInterfacePtr &b1, bitLenInt depth, bitLenInt parDepth=1U)
 
 QBdtNodeInterface ()
 
 QBdtNodeInterface (complex scl)
 
 QBdtNodeInterface (complex scl, QBdtNodeInterfacePtr *b)
 
virtual ~QBdtNodeInterface ()
 
virtual void InsertAtDepth (QBdtNodeInterfacePtr b, bitLenInt depth, const bitLenInt &size, bitLenInt parDepth=1U)
 
virtual QBdtNodeInterfacePtr RemoveSeparableAtDepth (bitLenInt depth, const bitLenInt &size, bitLenInt parDepth=1U)
 
virtual void SetZero ()
 
virtual bool isEqual (QBdtNodeInterfacePtr r)
 
virtual bool isEqualUnder (QBdtNodeInterfacePtr r)
 
virtual bool isEqualBranch (QBdtNodeInterfacePtr r, const bool &b)
 
virtual QBdtNodeInterfacePtr ShallowClone ()
 
virtual void PopStateVector (bitLenInt depth=1U, bitLenInt parDepth=1U)
 
virtual void Branch (bitLenInt depth=1U, bitLenInt parDepth=1U)
 
virtual void Prune (bitLenInt depth=1U, bitLenInt parDepth=1U)
 
virtual void Normalize (bitLenInt depth=1U)
 
virtual void Apply2x2 (complex const *mtrx, bitLenInt depth)
 
virtual void PushSpecial (complex const *mtrx, QBdtNodeInterfacePtr &b1)
 

Public Attributes

complex scale
 
QBdtNodeInterfacePtr branches [2U]
 
std::mutex mtx
 

Static Protected Member Functions

static size_t SelectBit (bitCapInt perm, bitLenInt bit)
 
static void _par_for_qbdt (const bitCapInt end, BdtFunc fn)
 

Constructor & Destructor Documentation

◆ QBdtNodeInterface() [1/3]

Qrack::QBdtNodeInterface::QBdtNodeInterface ( )
inline

◆ QBdtNodeInterface() [2/3]

Qrack::QBdtNodeInterface::QBdtNodeInterface ( complex  scl)
inline

◆ QBdtNodeInterface() [3/3]

Qrack::QBdtNodeInterface::QBdtNodeInterface ( complex  scl,
QBdtNodeInterfacePtr b 
)
inline

◆ ~QBdtNodeInterface()

virtual Qrack::QBdtNodeInterface::~QBdtNodeInterface ( )
inlinevirtual

Member Function Documentation

◆ _par_for_qbdt()

void Qrack::QBdtNodeInterface::_par_for_qbdt ( const bitCapInt  end,
BdtFunc  fn 
)
staticprotected

◆ Apply2x2()

virtual void Qrack::QBdtNodeInterface::Apply2x2 ( complex const *  mtrx,
bitLenInt  depth 
)
inlinevirtual

Reimplemented in Qrack::QBdtNode.

◆ Branch()

virtual void Qrack::QBdtNodeInterface::Branch ( bitLenInt  depth = 1U,
bitLenInt  parDepth = 1U 
)
inlinevirtual

Reimplemented in Qrack::QBdtNode.

◆ InsertAtDepth()

virtual void Qrack::QBdtNodeInterface::InsertAtDepth ( QBdtNodeInterfacePtr  b,
bitLenInt  depth,
const bitLenInt size,
bitLenInt  parDepth = 1U 
)
inlinevirtual

Reimplemented in Qrack::QBdtNode.

◆ isEqual()

bool Qrack::QBdtNodeInterface::isEqual ( QBdtNodeInterfacePtr  r)
virtual

◆ isEqualBranch()

bool Qrack::QBdtNodeInterface::isEqualBranch ( QBdtNodeInterfacePtr  r,
const bool &  b 
)
virtual

◆ isEqualUnder()

bool Qrack::QBdtNodeInterface::isEqualUnder ( QBdtNodeInterfacePtr  r)
virtual

◆ Normalize()

virtual void Qrack::QBdtNodeInterface::Normalize ( bitLenInt  depth = 1U)
inlinevirtual

Reimplemented in Qrack::QBdtNode.

◆ PopStateVector()

virtual void Qrack::QBdtNodeInterface::PopStateVector ( bitLenInt  depth = 1U,
bitLenInt  parDepth = 1U 
)
inlinevirtual

Reimplemented in Qrack::QBdtNode.

◆ Prune()

virtual void Qrack::QBdtNodeInterface::Prune ( bitLenInt  depth = 1U,
bitLenInt  parDepth = 1U 
)
inlinevirtual

Reimplemented in Qrack::QBdtNode.

◆ PushSpecial()

virtual void Qrack::QBdtNodeInterface::PushSpecial ( complex const *  mtrx,
QBdtNodeInterfacePtr b1 
)
inlinevirtual

◆ PushStateVector()

virtual void Qrack::QBdtNodeInterface::PushStateVector ( complex const *  mtrx,
QBdtNodeInterfacePtr b0,
QBdtNodeInterfacePtr b1,
bitLenInt  depth,
bitLenInt  parDepth = 1U 
)
inlinevirtual

Reimplemented in Qrack::QBdtNode.

◆ RemoveSeparableAtDepth()

QBdtNodeInterfacePtr Qrack::QBdtNodeInterface::RemoveSeparableAtDepth ( bitLenInt  depth,
const bitLenInt size,
bitLenInt  parDepth = 1U 
)
virtual

◆ SelectBit()

static size_t Qrack::QBdtNodeInterface::SelectBit ( bitCapInt  perm,
bitLenInt  bit 
)
inlinestaticprotected

◆ SetZero()

virtual void Qrack::QBdtNodeInterface::SetZero ( )
inlinevirtual

◆ ShallowClone()

virtual QBdtNodeInterfacePtr Qrack::QBdtNodeInterface::ShallowClone ( )
inlinevirtual

Reimplemented in Qrack::QBdtNode.

Member Data Documentation

◆ branches

QBdtNodeInterfacePtr Qrack::QBdtNodeInterface::branches[2U]

◆ mtx

std::mutex Qrack::QBdtNodeInterface::mtx

◆ scale

complex Qrack::QBdtNodeInterface::scale

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