23 #ifndef VARIATIONAL_QUANTUM_EIGENSOLVER_BASE_H 24 #define VARIATIONAL_QUANTUM_EIGENSOLVER_BASE_H 129 std::string get_density_bridge_source_label()
const;
138 std::vector<DensityBridgeOperationInfo> inspect_density_bridge();
162 void validate_density_anchor_support(
bool require_optimizer_support =
false,
163 bool require_gradient_support =
false);
166 int gate_index)
const;
167 void lower_anchor_circuit_to_noisy_circuit(
170 double expectation_value_of_density_energy_real(
172 bool density_optimizer_supported()
const;
194 std::vector<std::tuple<int, int, double>> zz_terms;
201 std::vector<std::tuple<int, int, double>>
xx_terms;
204 std::vector<std::tuple<int, int, double>>
yy_terms;
226 std::map<std::string, Config_Element> &config_in,
227 int accelerator_num = 0);
257 double Expectation_value_of_energy_real(
Matrix &State_left,
300 void *void_instance)
override;
330 double optimization_problem(
double *
parameters);
343 void *void_instance,
double *f0,
372 void initialize_zero_state();
378 void start_optimization();
400 void set_gate_structure(std::string
filename);
406 void set_custom_gate_structure(
Gates_block *gate_structure_in);
413 void set_initial_state(
Matrix initial_state_in);
419 void set_density_noise_specs(
420 const std::vector<DensityNoiseSpec> &density_noise_specs_in);
ansatz_type ansatz
Ansatz type (HEA stands for hardware efficient ansatz)
vqe_circuit_source_type circuit_source
Provenance of the currently configured circuit.
ansatz_type
Type definition of the fifferent types of ansatz.
std::vector< std::tuple< int, int, double > > yy_terms
Coupling terms of the form coeff * Y_i * Y_j.
std::vector< std::pair< int, double > > z_terms
Local magnetic field terms of the form coeff * Z_i.
Reviewable metadata describing one lowered density-bridge operation.
vqe_backend_type
Supported execution backends for the VQE workflow contract.
Class to store data of complex arrays and its properties.
Matrix initial_state
Quantum state used as an initial state in the VQE iterations.
vqe_backend_type backend_mode
Effective execution backend selected for this VQE instance.
ansatz_type
Type definition of the fifferent types of ansatz.
A base class to determine the decomposition of an N-qubit unitary into a sequence of CNOT and U3 gate...
Quantum density matrix Ï for mixed-state representation.
Container for statistics returned by shot-noise simulations.
density_noise_type
Supported local noise channels.
Structure type representing complex numbers in the SQUANDER package.
A base class to solve VQE problems This class can be used to approximate the ground state of the inpu...
Double-precision complex matrix (float64).
A class responsible for grouping two-qubit (CNOT,CZ,CH) and one-qubit gates into layers.
Matrix_sparse Hamiltonian
The Hamiltonian of the system.
Matrix get_initial_state() const
Return a copy of the stored initial state used for VQE runs.
std::vector< std::tuple< int, int, double > > xx_terms
Coupling terms of the form coeff * X_i * X_j.
Ordered fixed-noise insertion metadata.
vqe_circuit_source_type
Provenance of the active VQE circuit used for backend validation.
std::vector< DensityNoiseSpec > density_noise_specs
Ordered fixed local-noise insertions for the density backend.
Quantum circuit with noise for density matrix simulation.
Class to store data of complex arrays and its properties.
virtual double optimization_problem(const double *parameters)
This is an abstact definition of function giving the cost functions measuring the entaglement of the ...