Open Zhuravlev-A-E opened 4 years ago
Hey, I'll take a crack at this this weekend
@Zhuravlev-A-E does this output look right to you?
┌─────────┐
q0_0: ┤ UNITARY ├
└─────────┘
Unitary of result is: [[0.5+0.5j 0.5-0.5j]
[0.5-0.5j 0.5+0.5j]]
Call qasm() raises an error:
OPENQASM 2.0;
include "qelib1.inc";
qreg q0[1];
gate unitary4818764816 p0 {
rz(-pi/2) p0;
ry(-pi/2) p0;
rz(pi/2) p0;
}
unitary4818764816 q0[0];
Hi Scott!
Thank you very much for the answer!
I think yes, it will look quite normal.
Best regards, Zhuravlev-A-E
сб, 16 мая 2020 г. в 07:58, Scott Wyman Neagle notifications@github.com:
@Zhuravlev-A-E https://github.com/Zhuravlev-A-E does this output look right to you?
┌─────────┐
q0_0: ┤ UNITARY ├
└─────────┘
Unitary of result is: [[0.5+0.5j 0.5-0.5j]
[0.5-0.5j 0.5+0.5j]]
Call qasm() raises an error:
OPENQASM 2.0;
include "qelib1.inc";
qreg q0[1];
gate unitary4818764816 p0 {
rz(-pi/2) p0;
ry(-pi/2) p0;
rz(pi/2) p0;
}
unitary4818764816 q0[0];
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Qiskit/qiskit-terra/issues/4447#issuecomment-629553687, or unsubscribe https://github.com/notifications/unsubscribe-auth/ANGQDJL2WIJVCSOCJQI6E5LRRXJLPANCNFSM4NAMSD2A .
I checked the new squ.py - it issued the qasm-code and worked without errors! Thank you very much!!!
In addition: Unfortunately, the same error occurs when qasm () is called for circuit with the addition of the iso() gate:
ru_8 = random_unitary(8)
circ_iso = QuantumCircuit(3)
circ_iso.iso(ru_8.data, [0, 1, 2], [])
print(circ_iso.qasm())
Traceback (most recent call last):
File "/home/za/PycharmProjects/qiskit_env/try_unitary_to_instruction.py", line 40, in <module>
print(circ_iso.qasm())
File "/home/za/anaconda3/envs/qiskit_env/lib/python3.8/site-packages/qiskit/circuit/quantumcircuit.py", line 739, in qasm
string_temp += "%s %s;\n" % (instruction.qasm(),
File "/home/za/anaconda3/envs/qiskit_env/lib/python3.8/site-packages/qiskit/circuit/instruction.py", line 314, in qasm
[pi_check(i, ndigits=8, output='qasm') for i in self.params]))
File "/home/za/anaconda3/envs/qiskit_env/lib/python3.8/site-packages/qiskit/circuit/instruction.py", line 314, in <listcomp>
[pi_check(i, ndigits=8, output='qasm') for i in self.params]))
File "/home/za/anaconda3/envs/qiskit_env/lib/python3.8/site-packages/qiskit/circuit/tools/pi_check.py", line 134, in pi_check
complex_inpt = complex(inpt)
TypeError: only length-1 arrays can be converted to Python scalars
The fix suggested in https://github.com/Qiskit/qiskit-terra/pull/4469 changes the class hierarchy and that sparked a small discussion on the nature/location of Unitary gates. I created #5011 to follow that discussion there.
Is it possible to fix this issue without changing the class hierarchy?
In my program (see below) I use squ() to add unitary gate into my circuit, print this circuit, run it and print result. Then I want to print this circuit as qasm-code by using qasm() but an error is occurred, see below...
Please help me to fix this error
What is the current behavior?
Steps to reproduce the problem
Run this prorgam
What is the expected behavior?
qasm() should be to return qasm-code without error
Suggested solutions
I don't know exactly but may be fix the current implementation of qasm()