qsim::
HybridSimulator
#include <hybrid.h>
Hybrid Feynman-Schrodinger simulator.
Summary
Constructors and Destructors |
|
---|---|
HybridSimulator
(Args &&... args)
|
Public types |
|
---|---|
Fuser
|
using
FuserT<
IO
, GateHybrid >
|
Gate
|
using |
GateFused
|
using
typename Fuser::GateFused
|
GateKind
|
using
typename Gate::GateKind
|
fp_type
|
using
typename Simulator::fp_type
|
Public functions |
|
---|---|
Run
(const
Parameter
& param,
HybridData
& hd, const std::vector< unsigned > & parts, const std::vector< GateFused > & fgates0, const std::vector< GateFused > & fgates1, const std::vector< uint64_t > & bitstrings, std::vector< std::complex< fp_type >> & results) const
|
bool
Runs the hybrid simulator on a sectioned lattice.
|
Public static functions |
|
---|---|
SplitLattice
(const std::vector< unsigned > & parts, const std::vector<
Gate
> & gates,
HybridData
& hd)
|
bool
Splits the lattice into two parts, using Schmidt decomposition for gates on the cut.
|
Structs |
|
---|---|
qsim::
|
Contextual data for hybrid simulation. |
qsim::
|
User-specified parameters for gate fusion and hybrid simulation. |
Public types
GateFused
typename Fuser::GateFused qsim::HybridSimulator::GateFused
GateKind
typename Gate::GateKind qsim::HybridSimulator::GateKind
fp_type
typename Simulator::fp_type qsim::HybridSimulator::fp_type
Public functions
HybridSimulator
qsim::HybridSimulator::HybridSimulator( Args &&... args )
Run
bool qsim::HybridSimulator::Run( const Parameter & param, HybridData & hd, const std::vector< unsigned > & parts, const std::vector< GateFused > & fgates0, const std::vector< GateFused > & fgates1, const std::vector< uint64_t > & bitstrings, std::vector< std::complex< fp_type >> & results ) const
Runs the hybrid simulator on a sectioned lattice.
Details | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parameters |
|
||||||||||||||
Returns |
True if the simulation completed successfully; false otherwise.
|
Public static functions
SplitLattice
bool qsim::HybridSimulator::SplitLattice( const std::vector< unsigned > & parts, const std::vector< Gate > & gates, HybridData & hd )
Splits the lattice into two parts, using Schmidt decomposition for gates on the cut.
Details | |||||||
---|---|---|---|---|---|---|---|
Parameters |
|
||||||
Returns |
True if the splitting done successfully; false otherwise.
|