##Imports...
import sys
from quantum.qulib import *
from quantum.plotting import *
from numpy.linalg import norm
from pyview.helpers.datamanager import DataManager
from pyview.lib.datacube import *
from pyview.gui.datamanager import startDataManager
import matplotlib

matplotlib.use("module://pyview.gui.mpl.backend_static")
from matplotlib.pylab import *

dataManager = DataManager()
startDataManager()


def integrate(rho, L, ts, dt=0.1):

    t = 0

    rhos = zeros((len(ts), rho.shape[0], rho.shape[1]), dtype=complex128)

    def rungeKuttaIntegrate(rho, L, t, dt):
        L2 = L(t + dt / 2.)
        k1 = dt * L(t) * rho
        k2 = dt * L2 * (rho + k1 / 2.)
        k3 = dt * L2 * (rho + k2 / 2.)
        k4 = dt * L(t + dt) * (rho + k3 / 2.)
        return rho + 1. / 6. * (k1 + 2. * k2 + 2. * k3 + k4)