Commit 8f040566 authored by Mccaskey, Alex's avatar Mccaskey, Alex
Browse files

adding -em cmd line arg to control error mitigation

parent d1869d98
Loading
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
// run error mitigation with mitiq with 
// $ qcor -qpu aer[noise-model:noise_model.json] -shots 4096 -em mitiq simple_mitiq.cpp
// $ ./a.out

__qpu__ void noisy_zero(qreg q) {
    for (int i = 0; i < 100; i++) {
        X(q[0]);
    }
    Measure(q[0]);
}

int main() {
    qreg q = qalloc(1);
    noisy_zero(q);
    std::cout << "Expectation: " << q.exp_val_z() << "\n";
}
 No newline at end of file
+3 −0
Original line number Diff line number Diff line
@@ -44,6 +44,9 @@ public:
    xacc::internal_compiler::__qubit_map =
        xacc::internal_compiler::parse_qubit_map(
            __internal__qcor__compile__qubit__map);
#endif
#ifdef __internal__qcor__compile__decorator__list
  xacc::internal_compiler::apply_decorators(__internal__qcor__compile__decorator__list);
#endif
  }
};
+4 −0
Original line number Diff line number Diff line
@@ -91,6 +91,10 @@ std::vector<int> parse_qubit_map(const char *qubit_map_str) {
  return qubitMap;
}

void apply_decorators(const std::string& decorator_cmdline_string) {
    auto decorator = xacc::getAcceleratorDecorator(decorator_cmdline_string, get_qpu());
    xacc::internal_compiler::qpu = decorator;
}
} // namespace internal_compiler
} // namespace xacc
namespace quantum {
+1 −0
Original line number Diff line number Diff line
@@ -130,6 +130,7 @@ extern std::string __placement_name;
// we'll map qubits according to this.
extern std::vector<int> __qubit_map;
extern std::vector<int> parse_qubit_map(const char *qubit_map_str);
extern void apply_decorators(const std::string& decorator_cmdline_string);

void simplified_qrt_call_one_qbit(const char *gate_name,
                                  const char *buffer_name,
+7 −0
Original line number Diff line number Diff line
@@ -124,6 +124,13 @@ def main(argv=None):
        sys.argv.remove('-placement')
        sys.argv += ['-D__internal__qcor__compile__placement__name=\"'+placementName+'\"']
    
    if '-em' in sys.argv[1:]:
        sidx = sys.argv.index('-em')
        decorator_name = sys.argv[sidx+1]
        sys.argv.remove(decorator_name)
        sys.argv.remove('-em')
        sys.argv += ['-D__internal__qcor__compile__decorator__list=\"'+decorator_name+'\"']
        
    # Get the filename we are compiling or the object file
    filename = ''
    fileType = ''