Add capability to execute a Qiskit unitary simulator

master
JavaFXpert 2019-10-04 12:03:55 -04:00
parent 2ed4c4b28f
commit c82fe3d4f8
2 changed files with 22 additions and 1 deletions

8
api.py
View File

@ -32,3 +32,11 @@ def get_statevector(qasm, backend_to_run='statevector_simulator'):
result_sim = job_sim.result()
output_state = result_sim.get_statevector(circuit, decimals=3)
return output_state
def get_unitary(qasm, backend_to_run='unitary_simulator'):
circuit = QuantumCircuit.from_qasm_str(qasm)
backend = BasicAer.get_backend(backend_to_run)
job_sim = execute(circuit, backend)
result_sim = job_sim.result()
output_state = result_sim.get_unitary(circuit, decimals=3)
return output_state

View File

@ -14,7 +14,7 @@
# limitations under the License.
#
from flask import Flask, jsonify, request
from api import run_qasm, get_statevector
from api import run_qasm, get_statevector, get_unitary
import json_tricks
app = Flask(__name__)
@ -53,5 +53,18 @@ def statevector():
return ret_val
@app.route('/api/run/unitary', methods=['GET'])
def unitary():
qasm = request.args['qasm']
backend = request.args['backend']
print("--------------")
print('qasm: ', qasm)
print('backend: ', backend)
print("^^^^^^^^^^^^^^")
output = get_unitary(qasm, backend)
ret_val = json_tricks.dumps(output) # dump complex vector as json strings
return ret_val
if __name__ == '__main__':
app.run(host='127.0.0.1', port=5000)