@@ -325,18 +325,10 @@ var QuantumCircuit = function(numQubits) {
325325 [ [ "-1/sqrt(2)" , "0" ] , [ "1/sqrt(2)" , "0" ] ] ]
326326 } ,
327327 qasm : {
328- replacement : [
329- { name : "h" , params : { } } ,
330- { name : "rx" , params : { theta : "-1*pi/2" } } ,
331- { name : "u1" , params : { lambda : "-1*pi/2" } }
332- ]
328+ name : "sx"
333329 } ,
334330 qiskit : {
335- replacement : [
336- { name : "h" , params : { } } ,
337- { name : "rx" , params : { theta : "-1*pi/2" } } ,
338- { name : "u1" , params : { lambda : "-1*pi/2" } }
339- ]
331+ name : "sx"
340332 } ,
341333 braket : {
342334 name : "v"
@@ -1413,42 +1405,10 @@ var QuantumCircuit = function(numQubits) {
14131405 defgate : "DEFGATE csrn:\n 1, 0, 0, 0\n 0, 1, 0, 0\n 0, 0, 0.5+0.5i, 0.5-0.5i\n 0, 0, 0.5-0.5i, 0.5+0.5i"
14141406 } ,
14151407 qasm : {
1416- equivalent : [
1417- { name : "rz" , params : { phi : "-1*pi/4" } , wires : [ 0 ] } ,
1418- { name : "rx" , params : { theta : "pi/2" } , wires : [ 0 ] } ,
1419- { name : "rz" , params : { phi : "-1*pi/2" } , wires : [ 1 ] } ,
1420- { name : "rx" , params : { theta : "pi/2" } , wires : [ 1 ] } ,
1421- { name : "rz" , params : { phi : "3*pi/4" } , wires : [ 1 ] } ,
1422- { name : "rx" , params : { theta : "pi" } , wires : [ 1 ] } ,
1423- { name : "cz" , wires : [ 0 , 1 ] } ,
1424- { name : "rx" , params : { theta : "pi/2" } , wires : [ 0 ] } ,
1425- { name : "rz" , params : { phi : "pi/4" } , wires : [ 0 ] } ,
1426- { name : "rx" , params : { theta : "-1*pi/2" } , wires : [ 0 ] } ,
1427- { name : "cz" , wires : [ 0 , 1 ] } ,
1428- { name : "rx" , params : { theta : "-1*pi/2" } , wires : [ 0 ] } ,
1429- { name : "rz" , params : { phi : "pi/2" } , wires : [ 0 ] } ,
1430- { name : "rx" , params : { theta : "-1*pi/2" } , wires : [ 1 ] } ,
1431- { name : "rz" , params : { phi : "-1*pi/2" } , wires : [ 1 ] }
1432- ]
1408+ name : "csx"
14331409 } ,
14341410 qiskit : {
1435- equivalent : [
1436- { name : "rz" , params : { phi : "-1*pi/4" } , wires : [ 0 ] } ,
1437- { name : "rx" , params : { theta : "pi/2" } , wires : [ 0 ] } ,
1438- { name : "rz" , params : { phi : "-1*pi/2" } , wires : [ 1 ] } ,
1439- { name : "rx" , params : { theta : "pi/2" } , wires : [ 1 ] } ,
1440- { name : "rz" , params : { phi : "3*pi/4" } , wires : [ 1 ] } ,
1441- { name : "rx" , params : { theta : "pi" } , wires : [ 1 ] } ,
1442- { name : "cz" , wires : [ 0 , 1 ] } ,
1443- { name : "rx" , params : { theta : "pi/2" } , wires : [ 0 ] } ,
1444- { name : "rz" , params : { phi : "pi/4" } , wires : [ 0 ] } ,
1445- { name : "rx" , params : { theta : "-1*pi/2" } , wires : [ 0 ] } ,
1446- { name : "cz" , wires : [ 0 , 1 ] } ,
1447- { name : "rx" , params : { theta : "-1*pi/2" } , wires : [ 0 ] } ,
1448- { name : "rz" , params : { phi : "pi/2" } , wires : [ 0 ] } ,
1449- { name : "rx" , params : { theta : "-1*pi/2" } , wires : [ 1 ] } ,
1450- { name : "rz" , params : { phi : "-1*pi/2" } , wires : [ 1 ] }
1451- ]
1411+ name : "csx"
14521412 } ,
14531413 pyquil : {
14541414 name : "csrn" ,
@@ -7979,11 +7939,14 @@ QuantumCircuit.prototype.exportToQASM = function(options, exportAsGateName, circ
79797939 var qasmEquivalent = null ;
79807940
79817941 if ( gate && gate . connector == 0 ) {
7942+ var qasmName = gate . name ;
79827943 if ( ! compatibilityMode ) {
79837944 var gateDef = circuit . getGateDef ( gate . name ) ;
79847945 if ( gateDef ) {
79857946 if ( gateDef . exportInfo ) {
7986- if ( gateDef . exportInfo . qasm && gateDef . exportInfo . qasm . replacement ) {
7947+ if ( gateDef . exportInfo . qasm && gateDef . exportInfo . qasm . name ) {
7948+ qasmName = gateDef . exportInfo . qasm . name ;
7949+ } else if ( gateDef . exportInfo . qasm && gateDef . exportInfo . qasm . replacement ) {
79877950 qasmReplacement = gateDef . exportInfo . qasm . replacement ;
79887951 qasmReplacement . map ( function ( replacement ) {
79897952 var replacementCircuit = new QuantumCircuit ( ) ;
@@ -8061,7 +8024,8 @@ QuantumCircuit.prototype.exportToQASM = function(options, exportAsGateName, circ
80618024 }
80628025
80638026 if ( ( ! qasmReplacement && ! qasmEquivalent ) || compatibilityMode ) {
8064- var gateName = gate . name ;
8027+ var gateName = compatibilityMode ? gate . name : qasmName ;
8028+
80658029 var gateParams = gate . options && gate . options . params ? gate . options . params : { } ;
80668030 qasm += gateName ;
80678031 if ( gateParams ) {
0 commit comments