Maestro 0.3.11
Unified interface for quantum circuit simulation
Loading...
Searching...
No Matches
Simulators::GateFusion< Gate > Class Template Reference

#include <GateFusion.h>

Inheritance diagram for Simulators::GateFusion< Gate >:
Collaboration diagram for Simulators::GateFusion< Gate >:

Classes

struct  Block
struct  Sources

Public Member Functions

 GateFusion (unsigned width=2, bool matrices=true)
void Clear ()
bool Empty () const
template<class Emit>
void Flush (Emit &&emit)
void SetWidth (unsigned width)
size_t Size () const
template<class Emit>
void Submit (const Gate &gate, uint64_t source, Emit &&emit, bool preserveStructure=false, bool standalone=false)

Static Public Member Functions

static void ApplyLeft (const Eigen::MatrixXcd &gate, const Types::qubits_vector &order, const Types::qubits_vector &to, Eigen::MatrixXcd &matrix)
static Eigen::MatrixXcd Embed (const Eigen::MatrixXcd &matrix, const Types::qubits_vector &from, const Types::qubits_vector &to)

Detailed Description

template<class Gate>
class Simulators::GateFusion< Gate >

Definition at line 18 of file GateFusion.h.

Constructor & Destructor Documentation

◆ GateFusion()

template<class Gate>
Simulators::GateFusion< Gate >::GateFusion ( unsigned width = 2,
bool matrices = true )
inlineexplicit

Definition at line 58 of file GateFusion.h.

Member Function Documentation

◆ ApplyLeft()

template<class Gate>
void Simulators::GateFusion< Gate >::ApplyLeft ( const Eigen::MatrixXcd & gate,
const Types::qubits_vector & order,
const Types::qubits_vector & to,
Eigen::MatrixXcd & matrix )
inlinestatic

Definition at line 110 of file GateFusion.h.

Referenced by Simulators::GateFusion< FusionGate >::Submit().

◆ Clear()

template<class Gate>
void Simulators::GateFusion< Gate >::Clear ( )
inline

Definition at line 72 of file GateFusion.h.

◆ Embed()

template<class Gate>
Eigen::MatrixXcd Simulators::GateFusion< Gate >::Embed ( const Eigen::MatrixXcd & matrix,
const Types::qubits_vector & from,
const Types::qubits_vector & to )
inlinestatic

Definition at line 87 of file GateFusion.h.

Referenced by Simulators::GateFusion< FusionGate >::Submit().

◆ Empty()

template<class Gate>
bool Simulators::GateFusion< Gate >::Empty ( ) const
inline

Definition at line 62 of file GateFusion.h.

Referenced by Simulators::GateFusion< FusionGate >::SetWidth().

◆ Flush()

template<class Gate>
template<class Emit>
void Simulators::GateFusion< Gate >::Flush ( Emit && emit)
inline

Definition at line 277 of file GateFusion.h.

◆ SetWidth()

template<class Gate>
void Simulators::GateFusion< Gate >::SetWidth ( unsigned width)
inline

Definition at line 78 of file GateFusion.h.

Referenced by Simulators::Private::FusionState::CloneInto().

◆ Size()

template<class Gate>
size_t Simulators::GateFusion< Gate >::Size ( ) const
inline

Definition at line 67 of file GateFusion.h.

◆ Submit()

template<class Gate>
template<class Emit>
void Simulators::GateFusion< Gate >::Submit ( const Gate & gate,
uint64_t source,
Emit && emit,
bool preserveStructure = false,
bool standalone = false )
inline

Definition at line 146 of file GateFusion.h.


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