+
    iQE                         ^ RI Ht ^ RIHt ^ RIHt ^ RIHt ^ RIH	t	H
t
HtHtHtHtHtHtHt ^ RIHtHtHtHtHtHtHtHt ^ RIHt RR ltR	 tR
 tR t R t!R t"R t#R t$R t%R t&R t'R# )    )import_module)Mul)Integer)Dagger)	XYZHCNOTIdentityGateCGate	PhaseGateTGate)generate_gate_rulesgenerate_equivalent_idsGateIdentitybfs_identity_searchis_scalar_sparse_matrixis_scalar_nonsparse_matrixis_degenerateis_reducible)skipc                 Z    \        V 4      \        V 4      \        V 4      \        V 4      3pV# )N)r   r   r	   r
   )qubitgatess   & m/var/www/html/photoedit/myenv/lib/python3.14/site-packages/sympy/physics/quantum/tests/test_identitysearch.pycreate_gate_sequencer      s%    uXqx51U84EL    c                     \        4       w  rr#\        ^ 4      p\        ^ \        ^4      4      p\	        V 34      V 3R308X  g   Q hW 3R3V 3V 330p\	        W 34      V8X  g   Q hWV 3R3WV 3R3W V3R3W3V 33W3V 33V3W 330p\	        WV 34      V8X  g   Q hWV3R3WV 3R3W V3R3RWV33RWV33RW!V 33V 3W!33W3V 33V3W33W 3V33V3W33W3V330p\	        WV34      pWv8X  g   Q hRW2W33RWW!33RWW233RW!W33V3W!V 33V 3W2V33V3WV33V3WV33W03W!33W3W233W3W33W#3W33W0V3V33WV3V33WV3V 33W#V 3V33W0W3R3WW#3R3WW03R3W#W3R30p\	        WW#34      pWv8X  g   Q hRVR,          VR,          V 33RVR,          WR,          33RWR,          VR,          33V3VR,          V 33V3WR,          33V 3VR,          VR,          33WP3VR,          33WE3V 33W3VR,          33WPV3R3WEV 3R3WV3R30p\	        WV34      pWv8X  g   Q h\        ^4      VR,          VR,          ,          V ,          3\        ^4      VR,          V ,          VR,          ,          3\        ^4      WR,          ,          VR,          ,          3WTR,          V ,          3W@VR,          ,          3WR,          VR,          ,          3WP,          VR,          3WE,          V 3W,          VR,          3WP,          V,          \        ^4      3WE,          V ,          \        ^4      3W,          V,          \        ^4      30p\	        WV3RR7      pWv8X  g   Q hR# )r   Treturn_as_mulsN )r   r   r   r   r   r   )xyzhphcgate_t
gate_rulesactuals           r   test_generate_gate_rules_1r,      s   ')LQ1	1BAuQx Gt$1$44462,taTl$Jv&*444!9b/ay"oay"ovtnvtntaVn&J ay)Z777!9b/Q1Ir?aAYOA!9oQ1IaAYtaVnvtntaVnvtntaVnvtnFJ !!+F 
aA\R!.aA\0B
qQl	qdQ1I.!ay0A$q		aTA!9-/?&1&	QFQF+qfqf-=)aT	aAY-q	A4/@)aT	aA\2.!r0B,	qQlB/1J !!.F"rBx34BHa278A}b2h78zBHa=1uqB-01tgmR"X67|b2h[1}qd+w2 01B',Q',w',.J !!!12F1:w}R"X5a78qz28A:gm#;<qz1r]?28#;<R
+Wr]?+B-R01y"r(+z1otWr]+y|WQZ0z!|WQZ0tG|WQZ02J !!!1$GFr   c                     \        4       w  rr#\        ^ 4      p\        ^ \        ^4      4      pV \	        ^4      30p\        V 3RR7      V8X  g   Q h\	        ^4      \	        ^4      30p\        W ,          RR7      V8X  g   Q hR0p\        W ,          RR7      V8X  g   Q hW,          V ,          \	        ^4      3V\	        ^4      3W,          V 3W,          V 30p\        W,          V ,          RR7      V8X  g   Q hW,          V,          \	        ^4      3W,          V ,          \	        ^4      3W ,          V,          \	        ^4      3\	        ^4      W,          V,          3\	        ^4      W,          V,          3\	        ^4      W!,          V ,          3WV,          3W,          V 3WV,          3W ,          V3W!V ,          3W,          V30p\        W,          V,          RR7      pW8X  g   Q h\	        ^4      W2,          V,          V ,          3\	        ^4      W,          V,          V,          3\	        ^4      W,          V,          V,          3\	        ^4      W!,          V ,          V,          3W2V,          V ,          3WV,          V,          3WV,          V,          3W!V ,          V,          3W0,          W!,          3W#,          W,          3W,          W2,          3W,          W,          3W0,          V,          V3W,          V,          V3W,          V,          V 3W#,          V ,          V3W0,          V,          V,          \	        ^4      3W,          V,          V,          \	        ^4      3W,          V,          V ,          \	        ^4      3W#,          V ,          V,          \	        ^4      30p\        W,          V,          V,          RR7      pW8X  g   Q h\	        ^4      VR,          VR,          ,          V ,          3\	        ^4      VR,          V ,          VR,          ,          3\	        ^4      WR,          ,          VR,          ,          3WTR,          V ,          3W@VR,          ,          3WR,          VR,          ,          3WP,          VR,          3WE,          V 3W,          VR,          3WP,          V,          \	        ^4      3WE,          V ,          \	        ^4      3W,          V,          \	        ^4      30p\        W,          V,          RR7      pW8X  g   Q hRVR,          VR,          V 33RVR,          WR,          33RWR,          VR,          33V3VR,          V 33V3WR,          33V 3VR,          VR,          33WP3VR,          33WE3V 33W3VR,          33WPV3R3WEV 3R3WV3R30p\        W,          V,          4      pW8X  g   Q hR# )r   Tr    FNr"   )r"   r"   r#   )r   r   r   r   r   r   )	r$   r%   r&   r'   r(   r)   expectedr*   r+   s	            r   test_generate_gate_rules_2r/   X   s   ')LQ1	1BAuQx G GAJ HtD9XEEEWQZ()Hqs48HDDDzHqs59XEEE3q5'!*%'!*osAhsAh J qs1uT:jHHH3q5'!*%s1ugaj)s1ugaj)qz13q5)qz13q5)qz13q5)A#hsAhA#hsAhA#hsAh J !Qt<F1:qs1uQw'qz13q57+qz13q57+qz13q57+A#a%j1c!e*A#a%j1c!e*sACj13*sACj13*s1uaj13q5!*s1uaj13q5!*s1uQw
+s1uQw
+s1uQw
+s1uQw
+-J !Qq>F1:w}R"X5a78qz28A:gm#;<qz1r]?28#;<R
+Wr]?+B-R01y"r(+z1otWr]+y|WQZ0z!|WQZ0tG|WQZ02J !gdCF"rBx34BHa278A}b2h78zBHa=1uqB-01tgmR"X67|b2h[1}qd+w2 01B',Q',w',.J !g.Fr   c                      \        4       w  rr#\        V 34      V 308X  g   Q h\        W 34      W 308X  g   Q h\        W34      W3W308X  g   Q hWV3pWV3WV 3W V3W!V 3WV3WV30p\        V4      V8X  g   Q h\        WV4      \        WV 4      \        W V4      \        W!V 4      \        WV4      \        WV4      0p\        VR R7      V8X  g   Q hWW#3pWW#3WW03W0W3W2W3W!W3WW23W#W3WW!30p\        V4      V8X  g   Q hWW3pWW3WW30p\        V4      V8X  g   Q h\        RV4      pWW3pWW3WaWa30p\        V4      V8X  g   Q h\	        ^^ 4      p\        R\        ^4      4      pWsW3pWsW3W8W73W7W83WWs30p\        V4      V8X  g   Q hR# Tr    N   r   )r   r   r   r   r   r	   )	r$   r%   r&   r'   gate_seqgate_idscgate_ycnotcgate_zs	            r   test_generate_equivalent_ids_1r:      s   ')LQ1"A4(aTF222"A6*vh666"A6*vv.>>>>ayHq	A!9qQi!1Iay*H"8,888A!c!lCaLaL#aA,A!>H"8DAXMMMa|HqqQl1L1,1L1,1L1,0H #8,888a|HqqQl+H"8,888D!nGA'HQ(7w*BCH"8,8881:DD!A$G$H'%A'<a)G+@BH"8,888r   c            	         \        4       w  rr#\        V 3R R7      V 08X  g   Q h\        ^4      0p\        W ,          R R7      V8X  g   Q hW,          W,          0p\        W,          R R7      V8X  g   Q hW3W30p\        W,          4      V8X  g   Q h\        WV3!  pW,          V,          W,          V ,          W ,          V,          W!,          V ,          W,          V,          W,          V,          0p\        VR R7      V8X  g   Q h\        WW#3!  pW,          V,          V,          W,          V,          V ,          W0,          V,          V,          W2,          V,          V ,          W!,          V ,          V,          W,          V,          V,          W#,          V ,          V,          W,          V,          V,          0p\        VR R7      V8X  g   Q h\        WW3!  pW,          V ,          V,          W,          V,          V ,          0p\        VR R7      V8X  g   Q h\	        RV4      p\        WW3!  pW,          V,          V,          Wa,          V,          V,          0p\        VR R7      V8X  g   Q h\        ^^ 4      p\	        R\        ^4      4      p\        WsW3!  pWs,          V,          V,          W8,          V,          V,          W7,          V,          V,          W,          V,          V,          0p\        VR R7      V8X  g   Q hR# r1   )r   r   r   r   r   r   r	   )	r$   r%   r&   r'   r6   circuitr7   r8   r9   s	            r   test_generate_equivalent_ids_2r=      s   ')LQ1"A4=!DDD
|H"13t<HHHQSzH"13t<HHHH"13'8333A!9oGAqs1uac!eQSUCE13q5"H"74@HLLLA!< GAaQqCE!GQSU1WCE!GQSU1WCE!GQSU1W&H #74@HLLLA!< GAaQq!H"74@HLLLD!nGA+,G	!G#WYw%6q%89H"74@HLLL1:DD!A$GDW()Gwq !)A+d"2F1HW$ginQ&68H"74@HLLLr   c                     ^p Rp\        ^4      3p\        W V4      pVRJ g   Q h\        ^ 4      pWD3p\        WPV4      pVRJ g   Q h\        ^4      p\        ^4      pWg3p\        WV4      pVRJ g   Q h\	        ^4      p	WgV	3p
\        WV4      pVRJ g   Q h\        ^^ 4      pW3p\        WV4      pVRJ g   Q h\        ^ 4      pW3p\        WV4      pVRJ g   Q h\        ^4      pWoW3p\        VW4      pVRJ g   Q hRp\        VW4      pVRJ g   Q h\        WV4      pVRJ g   Q h\        WV4      pVRJ g   Q h\        WV4      pVRJ g   Q hR# )   FTN)r   r   r   r   r	   r   r
   )	numqubitsid_onlyid_gater+   x0
xx_circuitx1y1
xy_circuitz1xyz_circuitr8   cnot_circuitr'   
hh_circuith1xhzh_circuits                    r   test_is_scalar_nonsparse_matrixrN     s   IGA G'GDFT>>	
1BJ'
wGFT>>	
1B	
1BJ'
wGFU??	
1B2,K'HFT>>1:D<L'IFT>>	!AJ'
wGFT>>	
1BB#L'iIFT>>G'iIFT>>'HFU??'IFT>>'
wGFT>>r   c                      \        R 4      p V '       g   \        R4       \        RRR./R7      pV'       g   \        R4       ^pRp\        ^4      3p\        WBV4      RJ g   Q h\	        ^ 4      pWU3p\        WbV4      RJ g   Q h\	        ^4      p\        ^4      pWx3p	\        WV4      RJ g   Q h\        ^4      p
WxV
3p\        WV4      RJ g   Q h\        ^^ 4      pW3p\        WV4      RJ g   Q h\        ^ 4      pW3p\        WV4      RJ g   Q h\        ^4      pVVV
V3p\        VW#4      RJ g   Q hRp\        VW#4      RJ g   Q h\        WV4      RJ g   Q h\        WV4      RJ g   Q h\        WV4      RJ g   Q hR	# )
numpyznumpy not installed.scipyfromlistsparse)import_kwargszscipy not installed.FTN)	r   r   r   r   r   r   r	   r   r
   )nprQ   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   r8   rJ   r'   rK   rL   rM   s                     r   test_is_scalar_sparse_matrixrV   4  s   	w	B#$'*xj1IJE#$IGA G"7w?4GGG	
1BJ":'BdJJJ	
1B	
1BJ":'BeKKK	
1B2,K";7CtKKK1:D<L"<GDLLL	!AJ":'BdJJJ
 
1BB#L"<DLLLG"<DLLL";7CuLLL"<GDLLL":'BdJJJr   c                  h    \        4       w  rr#\        WV4      pV0pW!V 3p\        WV4      R J g   Q hR# )TN)r   r   r   )r$   r%   r&   r'   gate_idids
another_ids          r   test_is_degenerater[   f  s=    ')LQ11#G)CJ)T111r   c                     ^p \        4       w  rr4WV3p\        WP^^4      RJ g   Q hWV3p\        WP^^4      RJ g   Q hWW!3p\        WP^ ^4      RJ g   Q hWW!3p\        WP^^4      RJ g   Q hWW2V3p\        WP^^4      RJ g   Q hR# )r?   TFN)r   r   )nqubitsr$   r%   r&   r'   r<   s         r   test_is_reducibler^   p  s    G')LQ1QiG!Q/4777QiG!Q/5888QlG!Q/4777QlG!Q/4777Q1oG!Q/4777r   c                     \        . ^4      \        4       8X  g   Q h\        4       w  rr#V .p\        W 4      0p\        V^^R7      V8X  g   Q hWV.p\        W 4      \        W4      \        W"4      \        WV4      0p\        V^4      V8X  g   Q h\        W 4      \        W4      \        W"4      \        WV4      \        WW4      \        WW4      \        WW4      0p\        V^^R7      V8X  g   Q h\        V^^R7      V8X  g   Q hWW#.p\        W 4      \        W4      \        W"4      \        W34      \        WV4      \        WW4      \        WW4      \        WW#4      \        WW4      \        WW4      0
p\        V^4      V8X  g   Q h\        W 4      \        W4      \        W"4      \        W34      0pV\        V^^RR7      8X  g   Q h\        W 4      \        W4      \        W"4      \        W34      \        WV4      \        WW4      \        WW4      \        WW#4      \        WW4      \        WW4      \        WW0V4      \        WW1V4      \        WW2V4      0p\        V^^R7      V8X  g   Q h\        W 4      \        W4      \        W"4      \        W34      \        WW#4      0pV\        V^^RR7      8X  g   Q h\	        ^^ 4      pW.p\        W 4      \        Wf4      \        WW4      0p\        V^^R7      V8X  g   Q h\        RV 4      pW.p\        W 4      \        Ww4      \        WW4      0p\        V^^R7      V8X  g   Q h\        R\        ^4      4      pWhV.p\        W34      \        W4      \        Wf4      \        WcW4      0p\        V^^R7      V8X  g   Q h\        ^ 4      p	\        ^ 4      p
W.p\        WW4      0p\        V^^R7      V8X  g   Q hR# )r3   	max_depthT)ra   identity_onlyNr2   r4   )	r   setr   r   r   r   r	   r   r   )r$   r%   r&   r'   	gate_listid_setr8   cgate_xr9   sts              r   test_bfs_identity_searchri     s   r1%...')LQ1I1 !Fy!q9VCCC q	I1 q$q$qQ')F y!,6661 q$q$qQ'qQ*qQ*qQ*,F y!q9VCCCy!q9VCCCqI1 q$q$q$qQ'qQ*qQ*qQ*qQ*qQ*	,F y!,6661 q$q$q$&F (A7;= = = = 1 q$q$q$qQ'qQ*qQ*qQ*qQ*qQ*qQ1-qQ1-qQ1-/F y!q9VCCC1 q$q$q$qQ*	,F
 (A7;= = = = 1:D	I1 t*q02F y!q9VCCCD!nGI1 w0q168F y!q9VCCCD!A$G"I1 w0t*t35F y!q9VCCC!AaAI1&'Fy!q9VCCCr   c                      \        ^ 4      p \        ^ 4      p\        V 4      V.p\        \        V 4      W4      0p\	        V^^R7      V8X  g   Q hR# )r   r`   N)r   r   r   r   r   )rg   rh   rd   re   s       r   test_bfs_identity_search_xfailrk     sK    !AaAAI6!9a+,Fy!q9VCCCr   Nr4   )(sympy.externalr   sympy.core.mulr   sympy.core.numbersr   sympy.physics.quantum.daggerr   sympy.physics.quantum.gater   r   r	   r
   r   r   r   r   r   $sympy.physics.quantum.identitysearchr   r   r   r   r   r   r   r   sympy.testing.pytestr   r   r,   r/   r:   r=   rN   rV   r[   r^   ri   rk   r"   r   r   <module>rs      s|    (  & // / /A A A &
B JR j&9R)MX/d/Kd28(`DFDr   