Here are the examples of the python api numpy.np_diag taken from open source projects. By voting up you can indicate which examples are most useful and appropriate.
1 Examples
0
Example 1
Project: QNET Source File: to_qutip.py
def _convert_local_operator_to_qutip(expr, full_space, mapping):
"""Convert a LocalOperator instance to qutip"""
n = full_space.get_dimension()
if full_space != expr.space:
all_spaces = full_space.local_factors()
own_space_index = all_spaces.index(expr.space)
return qutip.tensor(
*([qutip.qeye(s.get_dimension())
for s in all_spaces[:own_space_index]] +
[convert_to_qutip(expr, expr.space, mapping=mapping), ] +
[qutip.qeye(s.get_dimension())
for s in all_spaces[own_space_index + 1:]])
)
if isinstance(expr, Create):
return qutip.create(n)
elif isinstance(expr, Jz):
return qutip.jmat((expr.space.get_dimension()-1)/2., "z")
elif isinstance(expr, Jplus):
return qutip.jmat((expr.space.get_dimension()-1)/2., "+")
elif isinstance(expr, Jminus):
return qutip.jmat((expr.space.get_dimension()-1)/2., "-")
elif isinstance(expr, Destroy):
return qutip.destroy(n)
elif isinstance(expr, Phase):
arg = complex(expr.operands[1]) * arange(n)
d = np_cos(arg) + 1j * np_sin(arg)
return qutip.Qobj(np_diag(d))
elif isinstance(expr, Displace):
alpha = expr.operands[1]
return qutip.displace(n, alpha)
elif isinstance(expr, Squeeze):
eta = expr.operands[1]
return qutip.displace(n, eta)
elif isinstance(expr, LocalSigma):
j = expr.j
k = expr.k
ket = qutip.basis(n, expr.space.basis.index(j))
bra = qutip.basis(n, expr.space.basis.index(k)).dag()
return ket * bra
else:
raise ValueError("Cannot convert '%s' of type %s"
% (str(expr), type(expr)))