Commit 40b2a246 authored by Nguyen, Thien Minh's avatar Nguyen, Thien Minh
Browse files

Added reset instruction to QRT



Signed-off-by: default avatarThien Nguyen <nguyentm@ornl.gov>
parent 51356e10
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -55,6 +55,10 @@ public:
    applyGate("U", {qidx.second}, {theta, phi, lambda});
  }

  virtual void reset(const qubit &qidx) override {
    applyGate("Reset", {qidx.second});
  }

  // Measure-Z
  virtual bool mz(const qubit &qidx) override {
    applyGate("Measure", {qidx.second});
+2 −0
Original line number Diff line number Diff line
@@ -100,6 +100,8 @@ class NISQ : public ::quantum::QuantumRuntime {
    one_qubit_inst("U", qidx, {theta, phi, lambda});
  }

  void reset(const qubit &qidx) override { one_qubit_inst("Reset", qidx); }

  bool mz(const qubit &qidx) override {
    one_qubit_inst("Measure", qidx);
    return false;
+2 −0
Original line number Diff line number Diff line
@@ -159,6 +159,8 @@ void u3(const qubit &qidx, const double theta, const double phi,
  qrt_impl->u3(qidx, theta, phi, lambda);
}

void reset(const qubit &qidx) { qrt_impl->reset(qidx); }

bool mz(const qubit &qidx) { return qrt_impl->mz(qidx); }

void cnot(const qubit &src_idx, const qubit &tgt_idx) {
+5 −1
Original line number Diff line number Diff line
@@ -39,7 +39,8 @@ public:
  virtual void u1(const qubit &qidx, const double theta) = 0;
  virtual void u3(const qubit &qidx, const double theta, const double phi,
                  const double lambda) = 0;

  // Reset
  virtual void reset(const qubit &qidx) = 0;
  // Measure-Z
  virtual bool mz(const qubit &qidx) = 0;

@@ -126,6 +127,9 @@ void u1(const qubit &qidx, const double theta);
void u3(const qubit &qidx, const double theta, const double phi,
        const double lambda);

// Reset a qubit (to zero state)
void reset(const qubit &qidx);

// Measure-Z
bool mz(const qubit &qidx);