56 const std::vector<bool>& ctrlToggles = std::vector<bool>())
80 controls = std::vector<bitLenInt>(controlLen);
Half-precision floating-point type.
Definition: half.hpp:2222
Definition: complex16x2simd.hpp:25
constexpr uint8_t ONE_BCI
Definition: qrack_types.hpp:90
std::complex< half_float::half > complex
Definition: qrack_types.hpp:62
std::shared_ptr< HamiltonianOp > HamiltonianOpPtr
To define a Hamiltonian, give a vector of controlled single bit gates ("HamiltonianOp" instances) tha...
Definition: hamiltonian.hpp:120
std::shared_ptr< complex > BitOp
Definition: qrack_types.hpp:123
std::vector< HamiltonianOpPtr > Hamiltonian
Definition: hamiltonian.hpp:121
MICROSOFT_QUANTUM_DECL void U(_In_ uintq sid, _In_ uintq q, _In_ double theta, _In_ double phi, _In_ double lambda)
(External API) 3-parameter unitary gate
Definition: pinvoke_api.cpp:1362
#define bitLenInt
Definition: qrack_types.hpp:44
#define bitCapIntOcl
Definition: qrack_types.hpp:91
A Hamiltonian can be specified in terms of arbitrary controlled single bit gates, each one an "Hamilt...
Definition: hamiltonian.hpp:27
bool uniform
Definition: hamiltonian.hpp:30
std::vector< bool > toggles
Definition: hamiltonian.hpp:33
HamiltonianOp(bitLenInt target, BitOp mtrx)
Definition: hamiltonian.hpp:45
HamiltonianOp()
Definition: hamiltonian.hpp:35
std::vector< bitLenInt > controls
Definition: hamiltonian.hpp:32
bitLenInt targetBit
Definition: hamiltonian.hpp:28
BitOp matrix
Definition: hamiltonian.hpp:31
bool anti
Definition: hamiltonian.hpp:29
HamiltonianOp(const std::vector< bitLenInt > &ctrls, bitLenInt target, BitOp mtrx, bool antiCtrled=false, const std::vector< bool > &ctrlToggles=std::vector< bool >())
Definition: hamiltonian.hpp:55