HamiltonianSimulation

Overview

Detailed Documentation

Global Functions

Simulating z-only term like H=coef * (Z0..Zn-1) U=exp(-iHt)

Z-Hamiltonian spreads over the qubit_vec

Parameters:

std::vector<Qubit*>&

the qubit needed to simulate the Hamiltonian

double

the coefficient of hamiltonian

double

time

Returns:

QCircuit

Simulate a single term of Hamilonian like “X0 Y1 Z2” with coefficient and time. U=exp(-it*coef*H)

Parameters:

std::vector<Qubit*>&

the qubit needed to simulate the Hamiltonian

QTerm&

hamiltonian_term: string like “X0 Y1 Z2”

double

coef: the coefficient of hamiltonian

double

t time

Returns:

QCircuit

Simulate a general case of hamiltonian by Trotter-Suzuki approximation. U=exp(-iHt)=(exp(-i H1 t/n)*exp(-i H2 t/n))^n.

Parameters:

std::vector<Qubit*>&

qubit_vec: the qubit needed to simulate the Hamiltonian

QHamiltonian&

hamiltonian: Hamiltonian

double

t: time

size_t

slices: the approximate slices

Returns:

QCircuit

Simulate hamiltonian consists of pauli-Z operators.

Parameters:

std::vector<Qubit*>&

qubit_vec: the qubit needed to simulate the Hamiltonian

QHamiltonian&

hamiltonian: Hamiltonian

double

t: time

Returns:

QCircuit

Apply single gates to all qubits in qubit_list.

Parameters:

std::string&

gate: single gate name.

std::vector<Qubit*>&

qubit_vec: qubit vector

Returns:

QCircuit

Apply single gates to all qubits in qubit_list and insert into circuit.

Parameters:

std::string&

gate: single gate name.

std::vector<Qubit*>&

qubit_vec: qubit vector

QCircuit&

circuit: operated circuit.

Returns:

Ising model.

Parameters:

std::vector<Qubit*>&

qubit_vec: qubit vector

QGraph&

graph: the problem graph

vector_d&

gamma: model para

Returns:

QCircuit

pauli X model

Parameters:

std::vector<Qubit*>&

qubit_vec: qubit vector

vector_d&

beta: model para

Returns:

QCircuit