A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/qutip/qutip/issues/2680 below:

GitHub ยท Where software is built

Bug Description

It seems that qutip.gates.phasegate somehow neglects the imaginary part in the phase gate if the angle is such that it points to lower half of the complex plane, i.e. for angles between pi and 2pi. Printing the created Qobj looks okay, but taking the Hermitian transpose .dag() actually doesn't change anything, and .diag() outputs only real numbers.

Code to Reproduce the Bug
import numpy as np
import qutip as qt

pg = qt.gates.phasegate(4*np.pi/3)
print(pg)
print(pg.dag())
print(pg.diag())
Code Output
Quantum object: dims=[[2], [2]], shape=(2, 2), type='oper', dtype=CSR, isherm=True
Qobj data =
[[ 1. +0.j         0. +0.j       ]
 [ 0. +0.j        -0.5-0.8660254j]]
Quantum object: dims=[[2], [2]], shape=(2, 2), type='oper', dtype=CSR, isherm=True
Qobj data =
[[ 1. +0.j         0. +0.j       ]
 [ 0. +0.j        -0.5-0.8660254j]]
[ 1.  -0.5]
Expected Behaviour

Taking the .dag() should change the sign of the imaginary part in [1,1] element. For Qutip version 4.7.3 this works as it should.

Your Environment
QuTiP Version:      5.1.1
Numpy Version:      1.26.4
Scipy Version:      1.14.1
Cython Version:     None
Matplotlib Version: 3.6.3
Python Version:     3.11.11
Number of CPUs:     8
BLAS Info:          Generic
INTEL MKL Ext:      None
Platform Info:      Windows (AMD64)
Additional Context

No response


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4