Copyright (C) 2011 and later, Paul D. Nation & Robert J. Johansson
from qutip import *
from qutip.cyQ.spmatfuncs import cy_expect
N = 50
op = rand_herm(N)
ket = rand_ket(N)
rho = ket2dm(ket)
ket_data = ket.full()
op_data = op.data
sop = spre(op)
sop_data = sop.data
rho_vec = operator_to_vector(rho)
rho_vec_data = rho_vec.full()
Test various ways, from high level to low level, of calculating expectation values in qutip.
expect(op, ket)
-7.758978511084069
expect(op, rho)
-7.75897851108407
cy_expect(op_data.data, op_data.indices, op_data.indptr, ket_data, 1)
-7.758978511084069
expect_psi(op_data, ket_data, 1)
-7.758978511084069
expect_rho_vec(sop_data, rho_vec_data, 1)
-7.75897851108407
%%timeit
expect(op, ket)
1000 loops, best of 3: 688 µs per loop
%%timeit
cy_expect(op_data.data, op_data.indices, op_data.indptr, ket_data, 1)
10000 loops, best of 3: 34 µs per loop
%%timeit
expect_psi(op_data, ket_data, 1)
10000 loops, best of 3: 30.2 µs per loop
%%timeit
expect(op, rho)
1000 loops, best of 3: 802 µs per loop
%%timeit
expect_rho_vec(sop_data, rho_vec_data)
1000 loops, best of 3: 640 µs per loop
from qutip.ipynbtools import version_table
version_table()
Software | Version |
---|---|
matplotlib | 1.4.x |
Numpy | 1.8.0.dev-75cdf3d |
Python | 3.3.1 (default, Apr 17 2013, 22:30:32) [GCC 4.7.3] |
IPython | 1.0.dev |
OS | posix [linux] |
SciPy | 0.13.0.dev-d74fd00 |
QuTiP | 2.3.0.dev-7f0ed30 |
Cython | 0.19.1 |
Thu Jul 04 15:50:58 2013 JST |