Add capability to execute a Qiskit unitary simulator
parent
2ed4c4b28f
commit
c82fe3d4f8
8
api.py
8
api.py
|
@ -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
|
||||
|
|
15
server.py
15
server.py
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue