15#ifndef _QISKIT_AER_STATE_H_
16#define _QISKIT_AER_STATE_H_
20#ifdef INCLUDED_BY_FACTORY
22#include "controllers/state_controller.hpp"
28 virtual ~AerStateFake() =
default;
31 uint_t num_of_qubits_;
33 int seed_ = std::random_device()();
34 std::shared_ptr<QuantumState::Base> state_;
53class QiskitAerState :
public AER::AerState {
55 const std::shared_ptr<AER::QuantumState::Base> &get_state()
const {
56 const AER::AerStateFake *fakeState = (AER::AerStateFake *)(
void *)
this;
57 return fakeState->state_;
60 double expval_pauli(
const reg_t &qubits,
const std::string &pauli) {
61 if (qubits.empty() || pauli.empty())
64 const auto &state = get_state();
70 return state->expval_pauli(qubits, pauli);