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

#include <qbdt_node.hpp>

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

Public Member Functions

 QBdtNode ()
 
 QBdtNode (complex scl)
 
 QBdtNode (complex scl, QBdtNodeInterfacePtr *b)
 
virtual ~QBdtNode ()
 
virtual QBdtNodeInterfacePtr ShallowClone ()
 
virtual void InsertAtDepth (QBdtNodeInterfacePtr b, bitLenInt depth, const bitLenInt &size, bitLenInt parDepth=1U)
 
virtual void PopStateVector (bitLenInt depth=1U, bitLenInt parDepth=1U)
 
virtual void Branch (bitLenInt depth=1U, bitLenInt parDeth=1U)
 
virtual void Prune (bitLenInt depth=1U, bitLenInt parDepth=1U)
 
virtual void Normalize (bitLenInt depth=1U)
 
virtual void Apply2x2 (complex const *mtrx, bitLenInt depth)
 
- Public Member Functions inherited from Qrack::QBdtNodeInterface
 QBdtNodeInterface ()
 
 QBdtNodeInterface (complex scl)
 
 QBdtNodeInterface (complex scl, QBdtNodeInterfacePtr *b)
 
virtual ~QBdtNodeInterface ()
 
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 void PushSpecial (complex const *mtrx, QBdtNodeInterfacePtr &b1)
 

Protected Member Functions

virtual void PushStateVector (complex const *mtrx, QBdtNodeInterfacePtr &b0, QBdtNodeInterfacePtr &b1, bitLenInt depth, bitLenInt parDepth=1U)
 

Additional Inherited Members

- Public Attributes inherited from Qrack::QBdtNodeInterface
complex scale
 
QBdtNodeInterfacePtr branches [2U]
 
std::mutex mtx
 
- Static Protected Member Functions inherited from Qrack::QBdtNodeInterface
static size_t SelectBit (bitCapInt perm, bitLenInt bit)
 
static void _par_for_qbdt (const bitCapInt end, BdtFunc fn)
 

Constructor & Destructor Documentation

◆ QBdtNode() [1/3]

Qrack::QBdtNode::QBdtNode ( )
inline

◆ QBdtNode() [2/3]

Qrack::QBdtNode::QBdtNode ( complex  scl)
inline

◆ QBdtNode() [3/3]

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

◆ ~QBdtNode()

virtual Qrack::QBdtNode::~QBdtNode ( )
inlinevirtual

Member Function Documentation

◆ Apply2x2()

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

Reimplemented from Qrack::QBdtNodeInterface.

◆ Branch()

void Qrack::QBdtNode::Branch ( bitLenInt  depth = 1U,
bitLenInt  parDeth = 1U 
)
virtual

Reimplemented from Qrack::QBdtNodeInterface.

◆ InsertAtDepth()

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

Reimplemented from Qrack::QBdtNodeInterface.

◆ Normalize()

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

Reimplemented from Qrack::QBdtNodeInterface.

◆ PopStateVector()

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

Reimplemented from Qrack::QBdtNodeInterface.

◆ Prune()

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

Reimplemented from Qrack::QBdtNodeInterface.

◆ PushStateVector()

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

Reimplemented from Qrack::QBdtNodeInterface.

◆ ShallowClone()

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

Reimplemented from Qrack::QBdtNodeInterface.


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