master-thesis/python/richard_hops/energy_flow_thermal.org
2021-11-02 20:13:03 +01:00

101 KiB
Raw Blame History

Setup

Jupyter

  %load_ext autoreload
  %autoreload 2
  %load_ext jupyter_spaces
The autoreload extension is already loaded. To reload it, use:
  %reload_ext autoreload
The jupyter_spaces extension is already loaded. To reload it, use:
  %reload_ext jupyter_spaces

Matplotlib

  import matplotlib
  import matplotlib.pyplot as plt

  #matplotlib.use("TkCairo", force=True)
  %gui tk
  %matplotlib inline
  plt.style.use('ggplot')

Richard (old) HOPS

  import hierarchyLib
  import hierarchyData
  import numpy as np

  from stocproc.stocproc import StocProc_FFT
  import bcf
  from dataclasses import dataclass, field
  import scipy
  import scipy.misc
  import scipy.signal
  import pickle
  from scipy.special import gamma as gamma_func
  from scipy.optimize import curve_fit

Auxiliary Definitions

  σ1 = np.matrix([[0,1],[1,0]])
  σ2 = np.matrix([[0,-1j],[1j,0]])
  σ3 = np.matrix([[1,0],[0,-1]])

Model Setup

Basic parameters.

  class params:
      T = 2

      t_max = 15
      t_steps = int(t_max * 1/.05)
      k_max = 10
      N = 4000

      seed = 100
      dim = 2
      H_s = σ3 + np.eye(dim)
      L = σ2 #1 / 2 * (σ1 - 1j * σ2)
      ψ_0 = np.array([0, 1])

      s = 1
      num_exp_t = 4

      wc = 1

      with open("good_fit_data_abs_brute_force", "rb") as f:
          good_fit_data_abs = pickle.load(f)

      alpha = 0.8
      # _, g_tilde, w_tilde = good_fit_data_abs[(numExpFit, s)]
      # g_tilde = np.array(g_tilde)
      # w_tilde = np.array(w_tilde)
      # g = 1 / np.pi * gamma_func(s + 1) * wc ** (s + 1) * np.asarray(g_tilde)
      # w = wc * np.asarray(w_tilde)

      bcf_scale = np.pi / 2 * alpha * wc ** (1 - s)

BCF and Thermal BCF

  @dataclass
  class CauchyBCF:
      δ: float
      wc: float

      def I(self, ω):
          return np.sqrt(self.δ) / (self.δ + (ω - self.wc) ** 2 / self.δ)

      def __call__(self, τ):
          return np.sqrt(self.δ) * np.exp(-1j * self.wc * τ - np.abs(τ) * self.δ)

      def __bfkey__(self):
          return self.δ, self.wc

  α = bcf.OBCF(s=params.s, eta=1, gamma=params.wc)
  I = bcf.OSD(s=params.s, eta=1, gamma=params.wc)

Fit

We now fit a sum of exponentials against the BCF.

  from lmfit import minimize, Parameters


  def α_apprx(τ, g, w):
      return np.sum(
          g[np.newaxis, :] * np.exp(-w[np.newaxis, :] * (τ[:, np.newaxis])), axis=1
      )


  def _fit():
      def residual(fit_params, x, data):
          resid = 0
          w = np.array([fit_params[f"w{i}"] for i in range(params.num_exp_t)]) + 1j * np.array(
              [fit_params[f"wi{i}"] for i in range(params.num_exp_t)]
          )
          g = np.array([fit_params[f"g{i}"] for i in range(params.num_exp_t)]) + 1j * np.array(
              [fit_params[f"gi{i}"] for i in range(params.num_exp_t)]
          )
          resid = data - α_apprx(x, g, w)

          return resid.view(float)

      fit_params = Parameters()
      for i in range(params.num_exp_t):
          fit_params.add(f"g{i}", value=.1)
          fit_params.add(f"gi{i}", value=.1)
          fit_params.add(f"w{i}", value=.1)
          fit_params.add(f"wi{i}", value=.1)

      ts = np.linspace(0, params.t_max, 1000)
      out = minimize(residual, fit_params, args=(ts, α(ts)))

      w = np.array([out.params[f"w{i}"] for i in range(params.num_exp_t)]) + 1j * np.array(
          [out.params[f"wi{i}"] for i in range(params.num_exp_t)]
      )
      g = np.array([out.params[f"g{i}"] for i in range(params.num_exp_t)]) + 1j * np.array(
          [out.params[f"gi{i}"] for i in range(params.num_exp_t)]
      )

      return w, g


  w, g = _fit()

Plot

Let's look a the result.

  class bcfplt:
      t = np.linspace(0, params.t_max, 1000)
      ω = np.linspace(params.wc - 10, params.wc + 10, 1000)
      fig, axs = plt.subplots(2)
      axs[0].plot(t, np.real(α(t)))
      axs[0].plot(t, np.imag(α(t)))
      axs[0].plot(t, np.real(α_apprx(t, g, w)))
      axs[0].plot(t, np.imag(α_apprx(t, g, w)))
      axs[1].plot(ω, I(ω).real)
      axs[1].plot(ω, I(ω).imag)

/hiro/master-thesis/media/commit/034f7dc47f81f0644469568e2a322d6d63de206f/python/richard_hops/.ob-jupyter/9f05a1fbf06920c271f0667db664ce2972415437.png

Seems ok for now.

Hops setup

  HierachyParam = hierarchyData.HiP(
      k_max=params.k_max,
      # g_scale=None,
      # sample_method='random',
      seed=params.seed,
      nonlinear=True,
      normalized=False,
      # terminator=False,
      result_type=hierarchyData.RESULT_TYPE_ALL,
      # accum_only=None,
      # rand_skip=None
  )

Integration.

  IntegrationParam = hierarchyData.IntP(
      t_max=params.t_max,
      t_steps=params.t_steps,
      # integrator_name='zvode',
      # atol=1e-8,
      # rtol=1e-8,
      # order=5,
      # nsteps=5000,
      # method='bdf',
      # t_steps_skip=1
  )

And now the system.

  SystemParam = hierarchyData.SysP(
      H_sys=params.H_s,
      L=params.L,
      psi0=params.ψ_0,  # excited qubit
      g=np.array(g),
      w=np.array(w),
      H_dynamic=[],
      bcf_scale=params.bcf_scale,  # some coupling strength (scaling of the fit parameters 'g_i')
      gw_hash=None,  # this is used to load g,w from some database
      len_gw=len(g),
  )

The quantum noise.

  Eta = StocProc_FFT(
      I,
      params.t_max,
      α,
      negative_frequencies=False,
      seed=params.seed,
      intgr_tol=1e-3,
      intpl_tol=1e-3,
      scale=params.bcf_scale,
  )
  stocproc.stocproc - INFO - non neg freq only
  stocproc.method_ft - INFO - get_dt_for_accurate_interpolation, please wait ...
  stocproc.method_ft - INFO - acc interp N 33 dt 9.38e-01 -> diff 2.83e-01
  stocproc.method_ft - INFO - acc interp N 65 dt 4.69e-01 -> diff 8.53e-02
  stocproc.method_ft - INFO - acc interp N 129 dt 2.34e-01 -> diff 1.76e-02
  stocproc.method_ft - INFO - acc interp N 257 dt 1.17e-01 -> diff 3.92e-03
  stocproc.method_ft - INFO - acc interp N 513 dt 5.86e-02 -> diff 9.52e-04
  stocproc.method_ft - INFO - requires dt < 5.859e-02
  stocproc.method_ft - INFO - get_N_a_b_for_accurate_fourier_integral, please wait ...
  stocproc.method_ft - INFO - J_w_min:1.00e-02 N 32 yields: interval [0.00e+00,6.47e+00] diff 9.83e-03
  stocproc.method_ft - INFO - J_w_min:1.00e-03 N 32 yields: interval [0.00e+00,9.12e+00] diff 8.12e-03
  stocproc.method_ft - INFO - J_w_min:1.00e-02 N 64 yields: interval [0.00e+00,6.47e+00] diff 1.11e-02
  stocproc.method_ft - INFO - increasing N while shrinking the interval does lower the error -> try next level
  stocproc.method_ft - INFO - J_w_min:1.00e-04 N 32 yields: interval [0.00e+00,1.17e+01] diff 1.32e-02
  stocproc.method_ft - INFO - J_w_min:1.00e-03 N 64 yields: interval [0.00e+00,9.12e+00] diff 1.22e-03
  stocproc.method_ft - INFO - J_w_min:1.00e-02 N 128 yields: interval [0.00e+00,6.47e+00] diff 1.14e-02
  stocproc.method_ft - INFO - increasing N while shrinking the interval does lower the error -> try next level
  stocproc.method_ft - INFO - J_w_min:1.00e-05 N 32 yields: interval [0.00e+00,1.42e+01] diff 1.94e-02
  stocproc.method_ft - INFO - J_w_min:1.00e-04 N 64 yields: interval [0.00e+00,1.17e+01] diff 2.57e-03
  stocproc.method_ft - INFO - J_w_min:1.00e-03 N 128 yields: interval [0.00e+00,9.12e+00] diff 8.98e-04
  stocproc.method_ft - INFO - return, cause tol of 0.001 was reached
  stocproc.method_ft - INFO - requires dx < 7.123e-02
  stocproc.stocproc - INFO - Fourier Integral Boundaries: [0.000e+00, 1.251e+02]
  stocproc.stocproc - INFO - Number of Nodes            : 2048
  stocproc.stocproc - INFO - yields dx                  : 6.107e-02
  stocproc.stocproc - INFO - yields dt                  : 5.023e-02
  stocproc.stocproc - INFO - yields t_max               : 1.028e+02

The sample trajectories are smooth.

  %%space plot
  ts = np.linspace(0, params.t_max, 1000)
  Eta.new_process()
  plt.plot(ts, Eta(ts).real)
<matplotlib.lines.Line2D at 0x7f708dab9f40>

/hiro/master-thesis/media/commit/034f7dc47f81f0644469568e2a322d6d63de206f/python/richard_hops/.ob-jupyter/10385a90753d7683d5740b88622cc4274de9c86a.png

And now the thermal noise.

  EtaTherm = StocProc_FFT(
      spectral_density=bcf.OFTDens(s=params.s, eta=1, gamma=params.wc, beta=1 / params.T),
      t_max=params.t_max,
      alpha=bcf.OFTCorr(s=params.s, eta=1, gamma=params.wc, beta=1 / params.T),
      intgr_tol=1e-3,
      intpl_tol=1e-3,
      seed=params.seed,
      negative_frequencies=False,
      scale=params.bcf_scale,
  )
  stocproc.method_ft - INFO - acc interp N 129 dt 2.34e-01 -> diff 3.20e-03
  stocproc.method_ft - INFO - acc interp N 257 dt 1.17e-01 -> diff 7.67e-04
  stocproc.method_ft - INFO - requires dt < 1.172e-01
  stocproc.method_ft - INFO - get_N_a_b_for_accurate_fourier_integral, please wait ...
  stocproc.method_ft - INFO - J_w_min:1.00e-02 N 32 yields: interval [0.00e+00,4.10e+00] diff 2.00e-02
  stocproc.method_ft - INFO - J_w_min:1.00e-03 N 32 yields: interval [0.00e+00,5.82e+00] diff 4.75e-02
  stocproc.method_ft - INFO - J_w_min:1.00e-02 N 64 yields: interval [0.00e+00,4.10e+00] diff 7.88e-03
  stocproc.method_ft - INFO - J_w_min:1.00e-04 N 32 yields: interval [0.00e+00,7.50e+00] diff 8.51e-02
  stocproc.method_ft - INFO - J_w_min:1.00e-03 N 64 yields: interval [0.00e+00,5.82e+00] diff 1.01e-02
  stocproc.method_ft - INFO - J_w_min:1.00e-02 N 128 yields: interval [0.00e+00,4.10e+00] diff 7.56e-03
  stocproc.method_ft - INFO - J_w_min:1.00e-05 N 32 yields: interval [0.00e+00,9.16e+00] diff 1.04e-01
  stocproc.method_ft - INFO - J_w_min:1.00e-04 N 64 yields: interval [0.00e+00,7.50e+00] diff 1.78e-02
  stocproc.method_ft - INFO - J_w_min:1.00e-03 N 128 yields: interval [0.00e+00,5.82e+00] diff 2.38e-03
  stocproc.method_ft - INFO - J_w_min:1.00e-02 N 256 yields: interval [0.00e+00,4.10e+00] diff 7.48e-03
  stocproc.method_ft - INFO - increasing N while shrinking the interval does lower the error -> try next level
  stocproc.method_ft - INFO - J_w_min:1.00e-06 N 32 yields: interval [0.00e+00,1.08e+01] diff 1.22e-01
  stocproc.method_ft - INFO - J_w_min:1.00e-05 N 64 yields: interval [0.00e+00,9.16e+00] diff 2.81e-02
  stocproc.method_ft - INFO - J_w_min:1.00e-04 N 128 yields: interval [0.00e+00,7.50e+00] diff 4.17e-03
  stocproc.method_ft - INFO - J_w_min:1.00e-03 N 256 yields: interval [0.00e+00,5.82e+00] diff 7.86e-04
  stocproc.method_ft - INFO - return, cause tol of 0.001 was reached
  stocproc.method_ft - INFO - requires dx < 2.272e-02
  stocproc.stocproc - INFO - Fourier Integral Boundaries: [0.000e+00, 7.064e+01]
  stocproc.stocproc - INFO - Number of Nodes            : 4096
  stocproc.stocproc - INFO - yields dx                  : 1.725e-02
  stocproc.stocproc - INFO - yields dt                  : 8.895e-02
  stocproc.stocproc - INFO - yields t_max               : 3.642e+02
  stocproc.stocproc - INFO - non neg freq only
  stocproc.method_ft - INFO - get_dt_for_accurate_interpolation, please wait ...
  stocproc.method_ft - INFO - acc interp N 33 dt 9.38e-01 -> diff 6.53e-02
  stocproc.method_ft - INFO - acc interp N 65 dt 4.69e-01 -> diff 1.47e-02
  stocproc.method_ft - INFO - acc interp N 129 dt 2.34e-01 -> diff 3.20e-03
  stocproc.method_ft - INFO - acc interp N 257 dt 1.17e-01 -> diff 7.67e-04
  stocproc.method_ft - INFO - requires dt < 1.172e-01
  stocproc.method_ft - INFO - get_N_a_b_for_accurate_fourier_integral, please wait ...
  stocproc.method_ft - INFO - J_w_min:1.00e-02 N 32 yields: interval [0.00e+00,4.10e+00] diff 2.00e-02
  stocproc.method_ft - INFO - J_w_min:1.00e-03 N 32 yields: interval [0.00e+00,5.82e+00] diff 4.75e-02
  stocproc.method_ft - INFO - J_w_min:1.00e-02 N 64 yields: interval [0.00e+00,4.10e+00] diff 7.88e-03
  stocproc.method_ft - INFO - J_w_min:1.00e-04 N 32 yields: interval [0.00e+00,7.50e+00] diff 8.51e-02
  stocproc.method_ft - INFO - J_w_min:1.00e-03 N 64 yields: interval [0.00e+00,5.82e+00] diff 1.01e-02
  stocproc.method_ft - INFO - J_w_min:1.00e-02 N 128 yields: interval [0.00e+00,4.10e+00] diff 7.56e-03
  stocproc.method_ft - INFO - J_w_min:1.00e-05 N 32 yields: interval [0.00e+00,9.16e+00] diff 1.04e-01
  stocproc.method_ft - INFO - J_w_min:1.00e-04 N 64 yields: interval [0.00e+00,7.50e+00] diff 1.78e-02
  stocproc.method_ft - INFO - J_w_min:1.00e-03 N 128 yields: interval [0.00e+00,5.82e+00] diff 2.38e-03
  stocproc.method_ft - INFO - J_w_min:1.00e-02 N 256 yields: interval [0.00e+00,4.10e+00] diff 7.48e-03
  stocproc.method_ft - INFO - increasing N while shrinking the interval does lower the error -> try next level
  stocproc.method_ft - INFO - J_w_min:1.00e-06 N 32 yields: interval [0.00e+00,1.08e+01] diff 1.22e-01
  stocproc.method_ft - INFO - J_w_min:1.00e-05 N 64 yields: interval [0.00e+00,9.16e+00] diff 2.81e-02
  stocproc.method_ft - INFO - J_w_min:1.00e-04 N 128 yields: interval [0.00e+00,7.50e+00] diff 4.17e-03
  stocproc.method_ft - INFO - J_w_min:1.00e-03 N 256 yields: interval [0.00e+00,5.82e+00] diff 7.86e-04
  stocproc.method_ft - INFO - return, cause tol of 0.001 was reached
  stocproc.method_ft - INFO - requires dx < 2.272e-02
  stocproc.stocproc - INFO - Fourier Integral Boundaries: [0.000e+00, 7.064e+01]
  stocproc.stocproc - INFO - Number of Nodes            : 4096
  stocproc.stocproc - INFO - yields dx                  : 1.725e-02
  stocproc.stocproc - INFO - yields dt                  : 8.895e-02
  stocproc.stocproc - INFO - yields t_max               : 3.642e+02

The sample trajectories are smooth too.

  %%space plot
  ts = np.linspace(0, params.t_max, 1000)
  EtaTherm.new_process()
  plt.plot(ts, EtaTherm(ts).real)
<matplotlib.lines.Line2D at 0x7f70a2159100>

/hiro/master-thesis/media/commit/034f7dc47f81f0644469568e2a322d6d63de206f/python/richard_hops/.ob-jupyter/20d0cdb5d62012a02c6ac14bc39a3b9fe59968ce.png

<matplotlib.lines.Line2D at 0x7f708d47b430>

/hiro/master-thesis/media/commit/034f7dc47f81f0644469568e2a322d6d63de206f/python/richard_hops/.ob-jupyter/6d082076097694cb45a42d4608ed411592bfcd3e.png

Actual Hops

Generate the key for binary caching.

  hi_key = hierarchyData.HIMetaKey_type(
      HiP=HierachyParam,
      IntP=IntegrationParam,
      SysP=SystemParam,
      Eta=Eta,
      EtaTherm=EtaTherm,
  )

Initialize Hierarchy.

  myHierarchy = hierarchyLib.HI(hi_key, number_of_samples=params.N, desc="calculate the heat flow")
/home/hiro/Documents/Projects/UNI/master/masterarb/python/richard_hops/hierarchyLib.py:1058: UserWarning: sum_k_max is not implemented! DO SO BEFORE NEXT USAGE (use simplex).HierarchyParametersType does not yet know about sum_k_max
  warnings.warn(
init Hi class, use 2002 equation

Run the integration.

  myHierarchy.integrate_simple(data_path="data", data_name="energy_flow_therm_new_again_less.data")
  (10, 300, 1001)
  samples     :0.0%
  integration :0.0%
  samples     :0.1%
  integration :0.0%
  samples     :0.1%
  integration :23.7%
  samples     :0.2%
  integration :22.3%
  samples     :0.3%
  integration :49.7%
  samples     :0.4%
  integration :68.0%
  samples     :0.4%
  integration :96.7%
  samples     :0.5%
  integration :19.7%
  samples     :0.6%
  integration :39.3%
  samples     :0.7%
  integration :58.0%
  samples     :0.8%
  integration :88.0%
  samples     :0.9%
  integration :20.7%
  samples     :0.9%
  integration :44.0%
  samples     :1.0%
  integration :64.0%
  samples     :1.1%
  integration :83.3%
  samples     :1.2%
  integration :5.0%
  samples     :1.2%
  integration :86.3%
  samples     :1.2%
  integration :4.3%
  samples     :1.3%
  integration :99.7%
  samples     :1.3%
  integration :95.7%
  samples     :1.4%
  integration :20.3%
  samples     :1.5%
  integration :79.7%
  samples     :1.6%
  integration :12.0%
  samples     :1.7%
  integration :31.7%
  samples     :1.7%
  integration :62.0%
  samples     :1.8%
  integration :88.0%
  samples     :1.9%
  integration :99.7%
  samples     :2.0%
  integration :25.3%
  samples     :2.1%
  integration :54.0%
  samples     :2.1%
  integration :80.3%
  samples     :2.2%
  integration :4.0%
  samples     :2.3%
  integration :21.3%
  samples     :2.4%
  integration :23.3%
  samples     :2.5%
  integration :45.7%
  samples     :2.5%
  integration :40.0%
  samples     :2.6%
  integration :54.7%
  samples     :2.6%
  integration :75.3%
  samples     :2.7%
  integration :16.3%
  samples     :2.8%
  integration :45.0%
  samples     :2.8%
  integration :99.7%
  samples     :2.9%
  integration :94.7%
  samples     :2.9%
  integration :99.0%
  samples     :3.0%
  integration :44.7%
  samples     :3.1%
  integration :54.7%
  samples     :3.1%
  integration :48.3%
  samples     :3.2%
  integration :50.0%
  samples     :3.3%
  integration :47.0%
  samples     :3.3%
  integration :67.7%
  samples     :3.4%
  integration :75.0%
  samples     :3.5%
  integration :19.7%
  samples     :3.5%
  integration :25.3%
  samples     :3.6%
  integration :33.3%
  samples     :3.7%
  integration :57.3%
  samples     :3.8%
  integration :47.0%
  samples     :3.8%
  integration :99.7%
  samples     :3.9%
  integration :35.7%
  samples     :4.0%
  integration :42.7%
  samples     :4.0%
  integration :17.7%
  samples     :4.1%
  integration :24.3%
  samples     :4.2%
  integration :99.7%
  samples     :4.2%
  integration :66.7%
  samples     :4.3%
  integration :78.0%
  samples     :4.3%
  integration :80.7%
  samples     :4.4%
  integration :87.0%
  samples     :4.5%
  integration :76.0%
  samples     :4.6%
  integration :19.3%
  samples     :4.7%
  integration :0.0%
  samples     :4.7%
  integration :51.3%
  samples     :4.8%
  integration :67.3%
  samples     :4.9%
  integration :75.7%
  samples     :4.9%
  integration :67.3%
  samples     :5.0%
  integration :86.3%
  samples     :5.0%
  integration :99.7%
  samples     :5.1%
  integration :17.0%
  samples     :5.1%
  integration :24.3%
  samples     :5.2%
  integration :84.7%
  samples     :5.3%
  integration :14.7%
  samples     :5.3%
  integration :99.7%
  samples     :5.4%
  integration :79.0%
  samples     :5.5%
  integration :82.0%
  samples     :5.6%
  integration :9.3%
  samples     :5.7%
  integration :7.0%
  samples     :5.7%
  integration :99.7%
  samples     :5.7%
  integration :48.0%
  samples     :5.8%
  integration :65.0%
  samples     :5.9%
  integration :3.3%
  samples     :5.9%
  integration :23.3%
  samples     :6.0%
  integration :99.7%
  samples     :6.0%
  integration :98.3%
  samples     :6.2%
  integration :7.3%
  samples     :6.2%
  integration :51.3%
  samples     :6.3%
  integration :45.7%
  samples     :6.3%
  integration :50.7%
  samples     :6.4%
  integration :41.0%
  samples     :6.5%
  integration :49.3%
  samples     :6.5%
  integration :25.7%
  samples     :6.6%
  integration :50.0%
  samples     :6.7%
  integration :65.7%
  samples     :6.8%
  integration :45.3%
  samples     :6.8%
  integration :66.0%
  samples     :6.9%
  integration :99.7%
  samples     :7.0%
  integration :89.0%
  samples     :7.0%
  integration :75.3%
  samples     :7.1%
  integration :12.3%
  samples     :7.2%
  integration :8.0%
  samples     :7.2%
  integration :93.3%
  samples     :7.3%
  integration :77.0%
  samples     :7.3%
  integration :79.0%
  samples     :7.4%
  integration :91.3%
  samples     :7.5%
  integration :85.0%
  samples     :7.5%
  integration :85.7%
  samples     :7.6%
  integration :3.3%
  samples     :7.7%
  integration :92.3%
  samples     :7.8%
  integration :44.0%
  samples     :7.8%
  integration :54.3%
  samples     :7.9%
  integration :63.7%
  samples     :8.0%
  integration :83.3%
  samples     :8.1%
  integration :10.7%
  samples     :8.1%
  integration :99.7%
  samples     :8.2%
  integration :4.0%
  samples     :8.3%
  integration :25.0%
  samples     :8.3%
  integration :99.7%
  samples     :8.3%
  integration :84.3%
  samples     :8.4%
  integration :97.0%
  samples     :8.5%
  integration :25.7%
  samples     :8.6%
  integration :45.0%
  samples     :8.6%
  integration :80.7%
  samples     :8.7%
  integration :98.7%
  samples     :8.8%
  integration :99.7%
  samples     :8.8%
  integration :98.7%
  samples     :8.9%
  integration :11.0%
  samples     :9.0%
  integration :70.7%
  samples     :9.0%
  integration :53.0%
  samples     :9.1%
  integration :53.0%
  samples     :9.2%
  integration :94.3%
  samples     :9.2%
  integration :93.0%
  samples     :9.3%
  integration :99.7%
  samples     :9.3%
  integration :24.3%
  samples     :9.4%
  integration :19.7%
  samples     :9.5%
  integration :70.0%
  samples     :9.6%
  integration :45.7%
  samples     :9.6%
  integration :99.7%
  samples     :9.7%
  integration :89.0%
  samples     :9.8%
  integration :83.7%
  samples     :9.8%
  integration :32.3%
  samples     :9.9%
  integration :29.0%
  samples     :10.0%
  integration :99.7%
  samples     :10.0%
  integration :64.7%
  samples     :10.1%
  integration :63.3%
  samples     :10.1%
  integration :99.7%
  samples     :10.2%
  integration :32.0%
  samples     :10.2%
  integration :99.7%
  samples     :10.3%
  integration :59.7%
  samples     :10.4%
  integration :62.7%
  samples     :10.4%
  integration :64.7%
  samples     :10.5%
  integration :84.3%
  samples     :10.6%
  integration :99.7%
  samples     :10.7%
  integration :14.0%
  samples     :10.8%
  integration :31.0%
  samples     :10.8%
  integration :31.7%
  samples     :10.9%
  integration :50.7%
  samples     :10.9%
  integration :65.3%
  samples     :11.0%
  integration :65.0%
  samples     :11.1%
  integration :76.7%
  samples     :11.1%
  integration :99.7%
  samples     :11.2%
  integration :85.7%
  samples     :11.3%
  integration :84.7%
  samples     :11.3%
  integration :28.7%
  samples     :11.4%
  integration :32.3%
  samples     :11.5%
  integration :99.7%
  samples     :11.6%
  integration :70.0%
  samples     :11.6%
  integration :79.7%
  samples     :11.7%
  integration :92.7%
  samples     :11.8%
  integration :89.3%
  samples     :11.8%
  integration :85.0%
  samples     :11.9%
  integration :34.3%
  samples     :12.0%
  integration :47.7%
  samples     :12.0%
  integration :63.7%
  samples     :12.1%
  integration :87.7%
  samples     :12.2%
  integration :99.7%
  samples     :12.2%
  integration :6.0%
  samples     :12.3%
  integration :17.7%
  samples     :12.4%
  integration :30.7%
  samples     :12.4%
  integration :42.7%
  samples     :12.5%
  integration :58.0%
  samples     :12.6%
  integration :72.0%
  samples     :12.7%
  integration :72.7%
  samples     :12.7%
  integration :99.7%
  samples     :12.8%
  integration :0.0%
  samples     :12.9%
  integration :21.7%
  samples     :12.9%
  integration :20.7%
  samples     :13.0%
  integration :27.0%
  samples     :13.1%
  integration :99.7%
  samples     :13.1%
  integration :35.0%
  samples     :13.2%
  integration :48.7%
  samples     :13.2%
  integration :49.0%
  samples     :13.3%
  integration :25.7%
  samples     :13.4%
  integration :44.3%
  samples     :13.5%
  integration :55.0%
  samples     :13.6%
  integration :58.7%
  samples     :13.6%
  integration :54.0%
  samples     :13.7%
  integration :57.0%
  samples     :13.8%
  integration :61.3%
  samples     :13.9%
  integration :66.0%
  samples     :13.9%
  integration :82.3%
  samples     :14.0%
  integration :8.3%
  samples     :14.1%
  integration :19.7%
  samples     :14.2%
  integration :41.7%
  samples     :14.2%
  integration :99.7%
  samples     :14.2%
  integration :42.0%
  samples     :14.3%
  integration :48.0%
  samples     :14.4%
  integration :76.0%
  samples     :14.4%
  integration :98.3%
  samples     :14.5%
  integration :27.3%
  samples     :14.6%
  integration :59.0%
  samples     :14.7%
  integration :73.0%
  samples     :14.8%
  integration :96.7%
  samples     :14.9%
  integration :14.7%
  samples     :14.9%
  integration :37.0%
  samples     :15.0%
  integration :54.0%
  samples     :15.1%
  integration :70.7%
  samples     :15.2%
  integration :91.0%
  samples     :15.3%
  integration :1.7%
  samples     :15.3%
  integration :99.7%
  samples     :15.3%
  integration :44.7%
  samples     :15.4%
  integration :59.0%
  samples     :15.5%
  integration :27.7%
  samples     :15.6%
  integration :53.3%
  samples     :15.6%
  integration :0.7%
  samples     :15.7%
  integration :11.7%
  samples     :15.8%
  integration :24.7%
  samples     :15.8%
  integration :59.7%
  samples     :15.9%
  integration :78.0%
  samples     :16.0%
  integration :96.0%
  samples     :16.1%
  integration :3.3%
  samples     :16.2%
  integration :11.3%
  samples     :16.2%
  integration :27.0%
  samples     :16.3%
  integration :50.0%
  samples     :16.4%
  integration :62.7%
  samples     :16.4%
  integration :77.3%
  samples     :16.5%
  integration :96.7%
  samples     :16.6%
  integration :18.7%
  samples     :16.7%
  integration :49.3%
  samples     :16.8%
  integration :56.7%
  samples     :16.9%
  integration :72.0%
  samples     :16.9%
  integration :94.0%
  samples     :17.0%
  integration :99.7%
  samples     :17.0%
  integration :99.7%
  samples     :17.0%
  integration :92.0%
  samples     :17.1%
  integration :84.3%
  samples     :17.2%
  integration :13.0%
  samples     :17.3%
  integration :32.7%
  samples     :17.3%
  integration :53.0%
  samples     :17.4%
  integration :71.7%
  samples     :17.5%
  integration :92.7%
  samples     :17.6%
  integration :12.7%
  samples     :17.7%
  integration :31.0%
  samples     :17.8%
  integration :51.3%
  samples     :17.8%
  integration :68.7%
  samples     :17.9%
  integration :88.7%
  samples     :18.0%
  integration :17.0%
  samples     :18.1%
  integration :99.7%
  samples     :18.1%
  integration :99.7%
  samples     :18.1%
  integration :70.3%
  samples     :18.2%
  integration :81.7%
  samples     :18.2%
  integration :97.3%
  samples     :18.4%
  integration :24.3%
  samples     :18.4%
  integration :47.3%
  samples     :18.5%
  integration :68.7%
  samples     :18.6%
  integration :87.0%
  samples     :18.6%
  integration :99.3%
  samples     :18.8%
  integration :22.3%
  samples     :18.8%
  integration :44.7%
  samples     :18.9%
  integration :57.3%
  samples     :19.0%
  integration :14.0%
  samples     :19.1%
  integration :20.3%
  samples     :19.1%
  integration :32.0%
  samples     :19.1%
  integration :99.7%
  samples     :19.1%
  integration :99.7%
  samples     :19.2%
  integration :97.7%
  samples     :19.2%
  integration :91.0%
  samples     :19.3%
  integration :94.0%
  samples     :19.4%
  integration :0.3%
  samples     :19.5%
  integration :4.0%
  samples     :19.5%
  integration :90.0%
  samples     :19.6%
  integration :66.3%
  samples     :19.6%
  integration :81.3%
  samples     :19.7%
  integration :91.0%
  samples     :19.8%
  integration :8.3%
  samples     :19.8%
  integration :99.7%
  samples     :19.9%
  integration :19.0%
  samples     :20.0%
  integration :38.7%
  samples     :20.0%
  integration :41.7%
  samples     :20.1%
  integration :70.3%
  samples     :20.2%
  integration :86.7%
  samples     :20.2%
  integration :82.7%
  samples     :20.3%
  integration :3.7%
  samples     :20.4%
  integration :0.0%
  samples     :20.4%
  integration :14.3%
  samples     :20.5%
  integration :32.7%
  samples     :20.6%
  integration :46.0%
  samples     :20.6%
  integration :56.0%
  samples     :20.7%
  integration :99.7%
  samples     :20.8%
  integration :72.0%
  samples     :20.8%
  integration :89.0%
  samples     :20.9%
  integration :26.3%
  samples     :21.0%
  integration :57.0%
  samples     :21.1%
  integration :80.0%
  samples     :21.1%
  integration :43.7%
  samples     :21.2%
  integration :69.3%
  samples     :21.2%
  integration :70.7%
  samples     :21.3%
  integration :93.0%
  samples     :21.4%
  integration :99.7%
  samples     :21.5%
  integration :22.0%
  samples     :21.6%
  integration :44.7%
  samples     :21.6%
  integration :27.3%
  samples     :21.7%
  integration :59.0%
  samples     :21.8%
  integration :84.3%
  samples     :21.8%
  integration :2.7%
  samples     :21.9%
  integration :36.0%
  samples     :21.9%
  integration :99.7%
  samples     :22.1%
  integration :23.7%
  samples     :22.1%
  integration :30.0%
  samples     :22.2%
  integration :55.0%
  samples     :22.2%
  integration :85.0%
  samples     :22.3%
  integration :87.7%
  samples     :22.4%
  integration :76.0%
  samples     :22.5%
  integration :93.3%
  samples     :22.6%
  integration :0.0%
  samples     :22.6%
  integration :22.3%
  samples     :22.7%
  integration :99.7%
  samples     :22.7%
  integration :99.7%
  samples     :22.8%
  integration :4.7%
  samples     :22.9%
  integration :0.7%
  samples     :22.9%
  integration :23.7%
  samples     :23.0%
  integration :49.0%
  samples     :23.1%
  integration :6.0%
  samples     :23.2%
  integration :19.7%
  samples     :23.2%
  integration :36.3%
  samples     :23.3%
  integration :44.7%
  samples     :23.4%
  integration :58.3%
  samples     :23.4%
  integration :82.0%
  samples     :23.5%
  integration :98.7%
  samples     :23.5%
  integration :99.7%
  samples     :23.6%
  integration :3.7%
  samples     :23.7%
  integration :8.0%
  samples     :23.8%
  integration :53.7%
  samples     :23.8%
  integration :60.0%
  samples     :23.9%
  integration :99.7%
  samples     :23.9%
  integration :77.0%
  samples     :24.0%
  integration :94.3%
  samples     :24.1%
  integration :32.3%
  samples     :24.1%
  integration :48.0%
  samples     :24.2%
  integration :70.7%
  samples     :24.3%
  integration :30.3%
  samples     :24.4%
  integration :41.3%
  samples     :24.4%
  integration :67.3%
  samples     :24.5%
  integration :89.0%
  samples     :24.6%
  integration :13.3%
  samples     :24.6%
  integration :93.3%
  samples     :24.8%
  integration :19.0%
  samples     :24.8%
  integration :31.7%
  samples     :24.9%
  integration :54.3%
  samples     :24.9%
  integration :83.3%
  samples     :25.0%
  integration :99.7%
  samples     :25.1%
  integration :2.3%
  samples     :25.1%
  integration :5.3%
  samples     :25.2%
  integration :24.7%
  samples     :25.3%
  integration :41.3%
  samples     :25.4%
  integration :27.3%
  samples     :25.4%
  integration :45.7%
  samples     :25.5%
  integration :99.7%
  samples     :25.6%
  integration :75.3%
  samples     :25.7%
  integration :87.7%
  samples     :25.7%
  integration :97.0%
  samples     :25.8%
  integration :11.7%
  samples     :25.9%
  integration :99.7%
  samples     :25.9%
  integration :46.7%
  samples     :26.0%
  integration :70.3%
  samples     :26.1%
  integration :52.0%
  samples     :26.2%
  integration :68.3%
  samples     :26.2%
  integration :79.0%
  samples     :26.3%
  integration :99.0%
  samples     :26.4%
  integration :18.3%
  samples     :26.4%
  integration :30.0%
  samples     :26.5%
  integration :50.0%
  samples     :26.6%
  integration :72.3%
  samples     :26.6%
  integration :58.7%
  samples     :26.7%
  integration :88.0%
  samples     :26.8%
  integration :99.7%
  samples     :26.8%
  integration :99.0%
  samples     :26.9%
  integration :31.3%
  samples     :27.0%
  integration :34.7%
  samples     :27.1%
  integration :47.3%
  samples     :27.1%
  integration :99.7%
  samples     :27.2%
  integration :78.3%
  samples     :27.3%
  integration :98.0%
  samples     :27.3%
  integration :82.3%
  samples     :27.4%
  integration :9.7%
  samples     :27.5%
  integration :99.7%
  samples     :27.6%
  integration :28.7%
  samples     :27.6%
  integration :44.3%
  samples     :27.7%
  integration :60.0%
  samples     :27.8%
  integration :72.7%
  samples     :27.8%
  integration :87.3%
  samples     :27.9%
  integration :5.7%
  samples     :28.0%
  integration :34.7%
  samples     :28.1%
  integration :4.0%
  samples     :28.1%
  integration :33.0%
  samples     :28.2%
  integration :56.7%
  samples     :28.2%
  integration :70.0%
  samples     :28.3%
  integration :82.3%
  samples     :28.4%
  integration :99.7%
  samples     :28.5%
  integration :9.0%
  samples     :28.5%
  integration :41.7%
  samples     :28.6%
  integration :14.3%
  samples     :28.7%
  integration :32.3%
  samples     :28.7%
  integration :99.7%
  samples     :28.8%
  integration :60.0%
  samples     :28.9%
  integration :66.3%
  samples     :28.9%
  integration :90.7%
  samples     :29.0%
  integration :99.3%
  samples     :29.1%
  integration :99.7%
  samples     :29.1%
  integration :71.0%
  samples     :29.2%
  integration :90.0%
  samples     :29.3%
  integration :63.3%
  samples     :29.3%
  integration :84.3%
  samples     :29.4%
  integration :13.3%
  samples     :29.5%
  integration :31.7%
  samples     :29.6%
  integration :62.3%
  samples     :29.6%
  integration :18.0%
  samples     :29.7%
  integration :37.7%
  samples     :29.8%
  integration :66.3%
  samples     :29.9%
  integration :52.3%
  samples     :29.9%
  integration :75.3%
  samples     :30.0%
  integration :99.7%
  samples     :30.1%
  integration :0.0%
  samples     :30.2%
  integration :14.0%
  samples     :30.2%
  integration :30.7%
  samples     :30.3%
  integration :53.3%
  samples     :30.3%
  integration :85.7%
  samples     :30.4%
  integration :67.7%
  samples     :30.5%
  integration :84.0%
  samples     :30.6%
  integration :99.0%
  samples     :30.6%
  integration :27.7%
  samples     :30.7%
  integration :38.0%
  samples     :30.8%
  integration :13.0%
  samples     :30.9%
  integration :25.0%
  samples     :30.9%
  integration :51.0%
  samples     :31.0%
  integration :54.0%
  samples     :31.1%
  integration :74.0%
  samples     :31.1%
  integration :97.3%
  samples     :31.2%
  integration :29.3%
  samples     :31.3%
  integration :99.7%
  samples     :31.4%
  integration :22.7%
  samples     :31.4%
  integration :32.0%
  samples     :31.5%
  integration :24.7%
  samples     :31.6%
  integration :42.7%
  samples     :31.6%
  integration :99.7%
  samples     :31.7%
  integration :91.3%
  samples     :31.8%
  integration :17.7%
  samples     :31.8%
  integration :99.7%
  samples     :31.9%
  integration :80.0%
  samples     :31.9%
  integration :99.7%
  samples     :32.0%
  integration :99.7%
  samples     :32.1%
  integration :98.7%
  samples     :32.1%
  integration :68.3%
  samples     :32.2%
  integration :93.3%
  samples     :32.3%
  integration :99.7%
  samples     :32.4%
  integration :40.0%
  samples     :32.5%
  integration :67.3%
  samples     :32.5%
  integration :31.3%
  samples     :32.6%
  integration :56.3%
  samples     :32.7%
  integration :72.0%
  samples     :32.7%
  integration :95.7%
  samples     :32.8%
  integration :23.0%
  samples     :32.9%
  integration :99.7%
  samples     :33.0%
  integration :6.7%
  samples     :33.1%
  integration :40.0%
  samples     :33.1%
  integration :99.7%
  samples     :33.1%
  integration :62.3%
  samples     :33.2%
  integration :99.7%
  samples     :33.3%
  integration :30.0%
  samples     :33.4%
  integration :48.3%
  samples     :33.4%
  integration :99.0%
  samples     :33.5%
  integration :35.3%
  samples     :33.6%
  integration :99.7%
  samples     :33.6%
  integration :55.3%
  samples     :33.7%
  integration :72.3%
  samples     :33.8%
  integration :81.3%
  samples     :33.9%
  integration :0.0%
  samples     :33.9%
  integration :37.0%
  samples     :34.0%
  integration :81.3%
  samples     :34.1%
  integration :0.7%
  samples     :34.1%
  integration :30.3%
  samples     :34.2%
  integration :45.0%
  samples     :34.3%
  integration :50.0%
  samples     :34.4%
  integration :74.0%
  samples     :34.4%
  integration :94.7%
  samples     :34.5%
  integration :11.7%
  samples     :34.6%
  integration :37.3%
  samples     :34.7%
  integration :59.3%
  samples     :34.8%
  integration :79.0%
  samples     :34.8%
  integration :5.7%
  samples     :34.9%
  integration :89.7%
  samples     :34.9%
  integration :60.7%
  samples     :35.0%
  integration :93.0%
  samples     :35.0%
  integration :99.7%
  samples     :35.1%
  integration :88.7%
  samples     :35.2%
  integration :99.7%
  samples     :35.3%
  integration :68.0%
  samples     :35.4%
  integration :85.0%
  samples     :35.4%
  integration :99.7%
  samples     :35.5%
  integration :3.3%
  samples     :35.6%
  integration :30.0%
  samples     :35.6%
  integration :27.3%
  samples     :35.7%
  integration :47.3%
  samples     :35.8%
  integration :23.0%
  samples     :35.9%
  integration :49.3%
  samples     :35.9%
  integration :74.3%
  samples     :36.0%
  integration :75.0%
  samples     :36.1%
  integration :97.3%
  samples     :36.1%
  integration :1.0%
  samples     :36.2%
  integration :14.3%
  samples     :36.3%
  integration :42.0%
  samples     :36.4%
  integration :39.0%
  samples     :36.4%
  integration :66.0%
  samples     :36.5%
  integration :93.7%
  samples     :36.6%
  integration :83.0%
  samples     :36.7%
  integration :0.0%
  samples     :36.7%
  integration :99.7%
  samples     :36.7%
  integration :69.3%
  samples     :36.8%
  integration :79.3%
  samples     :36.9%
  integration :80.0%
  samples     :37.0%
  integration :99.0%
  samples     :37.0%
  integration :57.0%
  samples     :37.1%
  integration :68.0%
  samples     :37.2%
  integration :85.3%
  samples     :37.2%
  integration :19.0%
  samples     :37.3%
  integration :37.0%
  samples     :37.4%
  integration :99.7%
  samples     :37.4%
  integration :75.0%
  samples     :37.5%
  integration :93.7%
  samples     :37.6%
  integration :4.0%
  samples     :37.6%
  integration :32.7%
  samples     :37.7%
  integration :99.7%
  samples     :37.8%
  integration :60.7%
  samples     :37.9%
  integration :78.3%
  samples     :37.9%
  integration :48.0%
  samples     :38.0%
  integration :82.3%
  samples     :38.1%
  integration :99.7%
  samples     :38.1%
  integration :68.7%
  samples     :38.2%
  integration :99.7%
  samples     :38.3%
  integration :96.3%
  samples     :38.4%
  integration :24.7%
  samples     :38.5%
  integration :50.3%
  samples     :38.5%
  integration :15.7%
  samples     :38.6%
  integration :42.7%
  samples     :38.6%
  integration :80.0%
  samples     :38.7%
  integration :92.0%
  samples     :38.8%
  integration :99.7%
  samples     :38.9%
  integration :20.7%
  samples     :38.9%
  integration :43.3%
  samples     :39.0%
  integration :13.7%
  samples     :39.1%
  integration :40.0%
  samples     :39.1%
  integration :55.7%
  samples     :39.2%
  integration :78.0%
  samples     :39.3%
  integration :97.0%
  samples     :39.4%
  integration :99.7%
  samples     :39.4%
  integration :29.7%
  samples     :39.5%
  integration :63.7%
  samples     :39.6%
  integration :39.3%
  samples     :39.6%
  integration :64.0%
  samples     :39.7%
  integration :97.0%
  samples     :39.8%
  integration :71.7%
  samples     :39.9%
  integration :0.0%
  samples     :40.0%
  integration :86.7%
  samples     :40.1%
  integration :5.7%
  samples     :40.1%
  integration :99.7%
  samples     :40.2%
  integration :50.7%
  samples     :40.2%
  integration :69.7%
  samples     :40.3%
  integration :99.7%
  samples     :40.3%
  integration :29.0%
  samples     :40.4%
  integration :49.0%
  samples     :40.5%
  integration :30.3%
  samples     :40.6%
  integration :60.3%
  samples     :40.6%
  integration :92.0%
  samples     :40.7%
  integration :11.7%
  samples     :40.8%
  integration :49.3%
  samples     :40.9%
  integration :71.3%
  samples     :41.0%
  integration :4.3%
  samples     :41.0%
  integration :39.3%
  samples     :41.1%
  integration :66.0%
  samples     :41.2%
  integration :90.3%
  samples     :41.3%
  integration :40.3%
  samples     :41.3%
  integration :67.7%
  samples     :41.4%
  integration :88.3%
  samples     :41.4%
  integration :68.7%
  samples     :41.5%
  integration :96.3%
  samples     :41.5%
  integration :99.7%
  samples     :41.6%
  integration :72.0%
  samples     :41.7%
  integration :91.0%
  samples     :41.8%
  integration :56.0%
  samples     :41.9%
  integration :86.3%
  samples     :41.9%
  integration :49.3%
  samples     :42.0%
  integration :88.7%
  samples     :42.1%
  integration :26.3%
  samples     :42.1%
  integration :90.3%
  samples     :42.2%
  integration :28.3%
  samples     :42.3%
  integration :22.3%
  samples     :42.4%
  integration :56.0%
  samples     :42.4%
  integration :87.0%
  samples     :42.5%
  integration :23.7%
  samples     :42.6%
  integration :50.3%
  samples     :42.6%
  integration :99.7%
  samples     :42.7%
  integration :27.3%
  samples     :42.8%
  integration :55.0%
  samples     :42.9%
  integration :17.3%
  samples     :43.0%
  integration :43.7%
  samples     :43.0%
  integration :99.7%
  samples     :43.1%
  integration :77.7%
  samples     :43.2%
  integration :2.0%
  samples     :43.2%
  integration :79.3%
  samples     :43.3%
  integration :0.0%
  samples     :43.4%
  integration :13.3%
  samples     :43.5%
  integration :66.0%
  samples     :43.5%
  integration :74.3%
  samples     :43.6%
  integration :57.3%
  samples     :43.7%
  integration :79.3%
  samples     :43.8%
  integration :6.7%
  samples     :43.8%
  integration :76.3%
  samples     :43.9%
  integration :9.7%
  samples     :44.0%
  integration :18.3%
  samples     :44.0%
  integration :31.7%
  samples     :44.1%
  integration :60.3%
  samples     :44.1%
  integration :99.7%
  samples     :44.2%
  integration :54.0%
  samples     :44.3%
  integration :7.0%
  samples     :44.4%
  integration :38.7%
  samples     :44.4%
  integration :55.0%
  samples     :44.5%
  integration :17.3%
  samples     :44.6%
  integration :50.0%
  samples     :44.6%
  integration :99.7%
  samples     :44.7%
  integration :75.3%
  samples     :44.8%
  integration :98.0%
  samples     :44.9%
  integration :76.7%
  samples     :45.0%
  integration :14.0%
  samples     :45.0%
  integration :99.7%
  samples     :45.1%
  integration :23.7%
  samples     :45.1%
  integration :52.3%
  samples     :45.2%
  integration :84.7%
  samples     :45.3%
  integration :16.3%
  samples     :45.4%
  integration :32.7%
  samples     :45.4%
  integration :84.7%
  samples     :45.5%
  integration :9.3%
  samples     :45.6%
  integration :13.0%
  samples     :45.6%
  integration :47.0%
  samples     :45.7%
  integration :64.3%
  samples     :45.8%
  integration :97.3%
  samples     :45.9%
  integration :16.7%
  samples     :45.9%
  integration :99.7%
  samples     :46.0%
  integration :97.3%
  samples     :46.1%
  integration :27.7%
  samples     :46.1%
  integration :99.7%
  samples     :46.2%
  integration :18.7%
  samples     :46.3%
  integration :99.7%
  samples     :46.4%
  integration :85.0%
  samples     :46.5%
  integration :2.0%
  samples     :46.5%
  integration :73.7%
  samples     :46.6%
  integration :99.3%
  samples     :46.7%
  integration :99.7%
  samples     :46.7%
  integration :31.7%
  samples     :46.8%
  integration :67.3%
  samples     :46.9%
  integration :34.3%
  samples     :46.9%
  integration :46.7%
  samples     :47.0%
  integration :70.0%
  samples     :47.1%
  integration :81.3%
  samples     :47.2%
  integration :13.0%
  samples     :47.2%
  integration :11.3%
  samples     :47.3%
  integration :38.3%
  samples     :47.4%
  integration :62.7%
  samples     :47.4%
  integration :35.7%
  samples     :47.5%
  integration :59.7%
  samples     :47.6%
  integration :99.7%
  samples     :47.7%
  integration :11.0%
  samples     :47.8%
  integration :26.0%
  samples     :47.8%
  integration :76.0%
  samples     :47.9%
  integration :87.7%
  samples     :47.9%
  integration :99.7%
  samples     :47.9%
  integration :99.7%
  samples     :48.0%
  integration :30.3%
  samples     :48.1%
  integration :15.0%
  samples     :48.2%
  integration :47.3%
  samples     :48.3%
  integration :69.0%
  samples     :48.4%
  integration :1.0%
  samples     :48.4%
  integration :15.3%
  samples     :48.5%
  integration :41.3%
  samples     :48.5%
  integration :61.0%
  samples     :48.6%
  integration :82.3%
  samples     :48.7%
  integration :83.0%
  samples     :48.8%
  integration :95.3%
  samples     :48.8%
  integration :4.0%
  samples     :48.9%
  integration :24.3%
  samples     :49.0%
  integration :42.3%
  samples     :49.0%
  integration :99.7%
  samples     :49.0%
  integration :77.0%
  samples     :49.1%
  integration :99.7%
  samples     :49.2%
  integration :8.0%
  samples     :49.3%
  integration :36.0%
  samples     :49.4%
  integration :0.7%
  samples     :49.5%
  integration :20.3%
  samples     :49.5%
  integration :99.7%
  samples     :49.6%
  integration :60.7%
  samples     :49.6%
  integration :81.0%
  samples     :49.7%
  integration :65.3%
  samples     :49.8%
  integration :91.7%
  samples     :49.9%
  integration :99.7%
  samples     :49.9%
  integration :63.3%
  samples     :50.0%
  integration :97.0%
  samples     :50.0%
  integration :56.3%
  samples     :50.1%
  integration :86.7%
  samples     :50.2%
  integration :12.7%
  samples     :50.3%
  integration :21.0%
  samples     :50.3%
  integration :40.3%
  samples     :50.4%
  integration :0.3%
  samples     :50.5%
  integration :33.7%
  samples     :50.6%
  integration :81.3%
  samples     :50.6%
  integration :31.3%
  samples     :50.7%
  integration :50.7%
  samples     :50.7%
  integration :99.7%
  samples     :50.8%
  integration :5.3%
  samples     :50.9%
  integration :6.3%
  samples     :51.0%
  integration :18.7%
  samples     :51.0%
  integration :49.3%
  samples     :51.1%
  integration :83.3%
  samples     :51.2%
  integration :40.0%
  samples     :51.3%
  integration :60.7%
  samples     :51.3%
  integration :70.3%
  samples     :51.4%
  integration :97.0%
  samples     :51.5%
  integration :36.0%
  samples     :51.5%
  integration :71.0%
  samples     :51.6%
  integration :98.0%
  samples     :51.7%
  integration :99.7%
  samples     :51.7%
  integration :97.7%
  samples     :51.8%
  integration :15.0%
  samples     :51.9%
  integration :8.7%
  samples     :51.9%
  integration :43.7%
  samples     :52.0%
  integration :99.7%
  samples     :52.1%
  integration :23.3%
  samples     :52.2%
  integration :56.3%
  samples     :52.2%
  integration :28.0%
  samples     :52.3%
  integration :63.7%
  samples     :52.4%
  integration :93.0%
  samples     :52.5%
  integration :83.0%
  samples     :52.6%
  integration :23.3%
  samples     :52.6%
  integration :88.0%
  samples     :52.7%
  integration :16.0%
  samples     :52.8%
  integration :99.7%
  samples     :52.8%
  integration :59.7%
  samples     :52.9%
  integration :80.0%
  samples     :52.9%
  integration :83.0%
  samples     :53.0%
  integration :99.7%
  samples     :53.1%
  integration :36.7%
  samples     :53.2%
  integration :5.0%
  samples     :53.3%
  integration :31.3%
  samples     :53.3%
  integration :18.7%
  samples     :53.4%
  integration :40.3%
  samples     :53.5%
  integration :76.3%
  samples     :53.5%
  integration :90.3%
  samples     :53.6%
  integration :15.3%
  samples     :53.7%
  integration :99.7%
  samples     :53.8%
  integration :6.3%
  samples     :53.8%
  integration :34.0%
  samples     :53.9%
  integration :33.3%
  samples     :54.0%
  integration :54.0%
  samples     :54.0%
  integration :83.7%
  samples     :54.1%
  integration :42.7%
  samples     :54.2%
  integration :74.7%
  samples     :54.2%
  integration :17.7%
  samples     :54.3%
  integration :40.3%
  samples     :54.4%
  integration :63.7%
  samples     :54.5%
  integration :37.7%
  samples     :54.5%
  integration :57.3%
  samples     :54.6%
  integration :69.0%
  samples     :54.7%
  integration :99.7%
  samples     :54.8%
  integration :24.0%
  samples     :54.9%
  integration :0.0%
  samples     :54.9%
  integration :28.3%
  samples     :55.0%
  integration :21.7%
  samples     :55.0%
  integration :62.7%
  samples     :55.1%
  integration :90.3%
  samples     :55.2%
  integration :65.7%
  samples     :55.3%
  integration :92.0%
  samples     :55.4%
  integration :99.7%
  samples     :55.4%
  integration :45.0%
  samples     :55.5%
  integration :69.7%
  samples     :55.6%
  integration :40.0%
  samples     :55.6%
  integration :64.7%
  samples     :55.7%
  integration :85.7%
  samples     :55.8%
  integration :75.0%
  samples     :55.9%
  integration :3.7%
  samples     :55.9%
  integration :99.7%
  samples     :56.0%
  integration :48.0%
  samples     :56.0%
  integration :82.7%
  samples     :56.1%
  integration :87.0%
  samples     :56.2%
  integration :17.7%
  samples     :56.2%
  integration :57.7%
  samples     :56.3%
  integration :86.3%
  samples     :56.4%
  integration :99.7%
  samples     :56.5%
  integration :81.0%
  samples     :56.5%
  integration :12.0%
  samples     :56.6%
  integration :38.0%
  samples     :56.7%
  integration :61.7%
  samples     :56.8%
  integration :94.0%
  samples     :56.8%
  integration :53.7%
  samples     :56.9%
  integration :80.0%
  samples     :57.0%
  integration :99.7%
  samples     :57.0%
  integration :29.3%
  samples     :57.1%
  integration :60.0%
  samples     :57.1%
  integration :41.0%
  samples     :57.2%
  integration :64.7%
  samples     :57.3%
  integration :87.0%
  samples     :57.4%
  integration :57.0%
  samples     :57.5%
  integration :83.3%
  samples     :57.5%
  integration :8.3%
  samples     :57.6%
  integration :42.0%
  samples     :57.7%
  integration :72.0%
  samples     :57.8%
  integration :28.7%
  samples     :57.8%
  integration :51.0%
  samples     :57.9%
  integration :55.0%
  samples     :58.0%
  integration :81.0%
  samples     :58.1%
  integration :13.3%
  samples     :58.1%
  integration :58.0%
  samples     :58.1%
  integration :74.3%
  samples     :58.2%
  integration :31.3%
  samples     :58.3%
  integration :45.3%
  samples     :58.4%
  integration :47.0%
  samples     :58.4%
  integration :62.0%
  samples     :58.5%
  integration :79.3%
  samples     :58.6%
  integration :99.7%
  samples     :58.6%
  integration :94.7%
  samples     :58.7%
  integration :23.3%
  samples     :58.8%
  integration :25.3%
  samples     :58.9%
  integration :55.7%
  samples     :58.9%
  integration :88.3%
  samples     :59.0%
  integration :85.7%
  samples     :59.1%
  integration :16.0%
  samples     :59.1%
  integration :99.0%
  samples     :59.2%
  integration :41.0%
  samples     :59.3%
  integration :59.7%
  samples     :59.4%
  integration :18.3%
  samples     :59.5%
  integration :45.3%
  samples     :59.5%
  integration :53.7%
  samples     :59.6%
  integration :89.7%
  samples     :59.7%
  integration :22.3%
  samples     :59.7%
  integration :86.0%
  samples     :59.8%
  integration :17.3%
  samples     :59.9%
  integration :19.3%
  samples     :60.0%
  integration :57.3%
  samples     :60.0%
  integration :91.3%
  samples     :60.1%
  integration :99.7%
  samples     :60.1%
  integration :98.3%
  samples     :60.2%
  integration :99.7%
  samples     :60.2%
  integration :58.7%
  samples     :60.3%
  integration :79.7%
  samples     :60.4%
  integration :99.7%
  samples     :60.4%
  integration :94.0%
  samples     :60.5%
  integration :99.7%
  samples     :60.6%
  integration :0.0%
  samples     :60.6%
  integration :33.3%
  samples     :60.7%
  integration :59.7%
  samples     :60.8%
  integration :81.3%
  samples     :60.8%
  integration :99.7%
  samples     :60.9%
  integration :62.7%
  samples     :60.9%
  integration :68.0%
  samples     :61.0%
  integration :99.7%
  samples     :61.0%
  integration :60.7%
  samples     :61.1%
  integration :89.3%
  samples     :61.2%
  integration :13.0%
  samples     :61.3%
  integration :42.0%
  samples     :61.3%
  integration :99.7%
  samples     :61.4%
  integration :87.3%
  samples     :61.5%
  integration :17.3%
  samples     :61.5%
  integration :99.7%
  samples     :61.6%
  integration :70.7%
  samples     :61.6%
  integration :99.7%
  samples     :61.7%
  integration :14.3%
  samples     :61.7%
  integration :45.7%
  samples     :61.8%
  integration :78.3%
  samples     :61.9%
  integration :3.7%
  samples     :61.9%
  integration :99.7%
  samples     :62.0%
  integration :35.3%
  samples     :62.0%
  integration :70.0%
  samples     :62.1%
  integration :99.7%
  samples     :62.1%
  integration :84.3%
  samples     :62.2%
  integration :99.7%
  samples     :62.3%
  integration :42.7%
  samples     :62.3%
  integration :71.7%
  samples     :62.4%
  integration :99.7%
  samples     :62.4%
  integration :1.7%
  samples     :62.5%
  integration :41.7%
  samples     :62.5%
  integration :99.7%
  samples     :62.6%
  integration :4.0%
  samples     :62.6%
  integration :99.7%
  samples     :62.7%
  integration :18.3%
  samples     :62.8%
  integration :51.7%
  samples     :62.8%
  integration :56.0%
  samples     :62.9%
  integration :81.0%
  samples     :63.0%
  integration :99.7%
  samples     :63.0%
  integration :53.7%
  samples     :63.1%
  integration :79.0%
  samples     :63.1%
  integration :99.7%
  samples     :63.2%
  integration :36.7%
  samples     :63.3%
  integration :60.0%
  samples     :63.4%
  integration :37.7%
  samples     :63.4%
  integration :60.7%
  samples     :63.5%
  integration :99.7%
  samples     :63.6%
  integration :26.3%
  samples     :63.6%
  integration :44.3%
  samples     :63.7%
  integration :10.7%
  samples     :63.8%
  integration :10.7%
  samples     :63.8%
  integration :99.7%
  samples     :63.9%
  integration :33.0%
  samples     :64.0%
  integration :68.3%
  samples     :64.0%
  integration :92.0%
  samples     :64.1%
  integration :12.3%
  samples     :64.2%
  integration :99.7%
  samples     :64.2%
  integration :96.0%
  samples     :64.3%
  integration :19.3%
  samples     :64.3%
  integration :32.7%
  samples     :64.4%
  integration :62.3%
  samples     :64.5%
  integration :99.7%
  samples     :64.5%
  integration :46.0%
  samples     :64.6%
  integration :73.7%
  samples     :64.6%
  integration :99.7%
  samples     :64.7%
  integration :6.3%
  samples     :64.8%
  integration :99.7%
  samples     :64.8%
  integration :69.3%
  samples     :64.9%
  integration :93.3%
  samples     :65.0%
  integration :62.0%
  samples     :65.0%
  integration :80.3%
  samples     :65.1%
  integration :97.0%
  samples     :65.2%
  integration :18.0%
  samples     :65.3%
  integration :48.7%
  samples     :65.3%
  integration :26.0%
  samples     :65.4%
  integration :47.7%
  samples     :65.5%
  integration :69.3%
  samples     :65.5%
  integration :90.0%
  samples     :65.6%
  integration :18.3%
  samples     :65.7%
  integration :99.7%
  samples     :65.8%
  integration :10.7%
  samples     :65.9%
  integration :32.7%
  samples     :65.9%
  integration :99.7%
  samples     :66.0%
  integration :29.3%
  samples     :66.0%
  integration :99.7%
  samples     :66.1%
  integration :36.7%
  samples     :66.1%
  integration :59.7%
  samples     :66.2%
  integration :99.7%
  samples     :66.2%
  integration :24.3%
  samples     :66.3%
  integration :99.7%
  samples     :66.4%
  integration :77.7%
  samples     :66.5%
  integration :96.0%
  samples     :66.5%
  integration :99.7%
  samples     :66.6%
  integration :81.3%
  samples     :66.6%
  integration :99.7%
  samples     :66.6%
  integration :99.7%
  samples     :66.8%
  integration :0.0%
  samples     :66.8%
  integration :99.7%
  samples     :66.8%
  integration :11.7%
  samples     :66.9%
  integration :36.7%
  samples     :67.0%
  integration :37.7%
  samples     :67.0%
  integration :58.3%
  samples     :67.1%
  integration :99.7%
  samples     :67.2%
  integration :76.7%
  samples     :67.2%
  integration :98.0%
  samples     :67.3%
  integration :99.7%
  samples     :67.4%
  integration :12.7%
  samples     :67.4%
  integration :99.7%
  samples     :67.5%
  integration :17.3%
  samples     :67.6%
  integration :42.0%
  samples     :67.6%
  integration :99.7%
  samples     :67.7%
  integration :48.3%
  samples     :67.8%
  integration :67.7%
  samples     :67.8%
  integration :25.3%
  samples     :67.9%
  integration :46.0%
  samples     :67.9%
  integration :99.7%
  samples     :68.0%
  integration :46.0%
  samples     :68.0%
  integration :65.0%
  samples     :68.1%
  integration :24.0%
  samples     :68.2%
  integration :55.0%
  samples     :68.2%
  integration :99.7%
  samples     :68.2%
  integration :73.0%
  samples     :68.3%
  integration :92.7%
  samples     :68.4%
  integration :20.0%
  samples     :68.5%
  integration :38.0%
  samples     :68.5%
  integration :99.7%
  samples     :68.5%
  integration :86.7%
  samples     :68.6%
  integration :16.3%
  samples     :68.7%
  integration :53.7%
  samples     :68.7%
  integration :73.7%
  samples     :68.8%
  integration :85.3%
  samples     :68.8%
  integration :33.7%
  samples     :68.9%
  integration :57.0%
  samples     :69.0%
  integration :81.0%
  samples     :69.0%
  integration :99.7%
  samples     :69.1%
  integration :99.7%
  samples     :69.2%
  integration :65.7%
  samples     :69.2%
  integration :99.3%
  samples     :69.3%
  integration :99.7%
  samples     :69.4%
  integration :74.3%
  samples     :69.5%
  integration :91.0%
  samples     :69.5%
  integration :99.7%
  samples     :69.5%
  integration :17.7%
  samples     :69.6%
  integration :99.7%
  samples     :69.7%
  integration :7.3%
  samples     :69.8%
  integration :24.7%
  samples     :69.8%
  integration :51.0%
  samples     :69.9%
  integration :83.7%
  samples     :69.9%
  integration :99.7%
  samples     :70.0%
  integration :75.7%
  samples     :70.0%
  integration :0.3%
  samples     :70.1%
  integration :5.3%
  samples     :70.2%
  integration :7.0%
  samples     :70.2%
  integration :99.7%
  samples     :70.3%
  integration :98.7%
  samples     :70.4%
  integration :28.7%
  samples     :70.4%
  integration :99.7%
  samples     :70.5%
  integration :46.3%
  samples     :70.5%
  integration :68.7%
  samples     :70.6%
  integration :94.3%
  samples     :70.7%
  integration :13.3%
  samples     :70.7%
  integration :99.7%
  samples     :70.8%
  integration :43.3%
  samples     :70.9%
  integration :82.3%
  samples     :70.9%
  integration :15.0%
  samples     :71.0%
  integration :52.0%
  samples     :71.0%
  integration :99.7%
  samples     :71.1%
  integration :21.3%
  samples     :71.2%
  integration :58.7%
  samples     :71.2%
  integration :31.3%
  samples     :71.3%
  integration :50.3%
  samples     :71.4%
  integration :99.7%
  samples     :71.4%
  integration :87.7%
  samples     :71.5%
  integration :14.7%
  samples     :71.5%
  integration :58.0%
  samples     :71.6%
  integration :83.7%
  samples     :71.7%
  integration :99.7%
  samples     :71.7%
  integration :41.0%
  samples     :71.8%
  integration :53.3%
  samples     :71.8%
  integration :99.7%
  samples     :71.9%
  integration :33.3%
  samples     :72.0%
  integration :50.0%
  samples     :72.0%
  integration :20.3%
  samples     :72.1%
  integration :52.7%
  samples     :72.2%
  integration :99.7%
  samples     :72.2%
  integration :82.3%
  samples     :72.3%
  integration :99.7%
  samples     :72.4%
  integration :88.7%
  samples     :72.5%
  integration :12.7%
  samples     :72.5%
  integration :99.7%
  samples     :72.6%
  integration :15.0%
  samples     :72.7%
  integration :42.0%
  samples     :72.7%
  integration :26.0%
  samples     :72.8%
  integration :61.7%
  samples     :72.8%
  integration :99.7%
  samples     :72.9%
  integration :28.3%
  samples     :73.0%
  integration :55.7%
  samples     :73.0%
  integration :73.7%
  samples     :73.1%
  integration :99.0%
  samples     :73.2%
  integration :99.7%
  samples     :73.2%
  integration :60.0%
  samples     :73.2%
  integration :90.7%
  samples     :73.3%
  integration :99.7%
  samples     :73.4%
  integration :15.3%
  samples     :73.5%
  integration :43.0%
  samples     :73.5%
  integration :78.3%
  samples     :73.6%
  integration :99.0%
  samples     :73.7%
  integration :99.7%
  samples     :73.7%
  integration :76.3%
  samples     :73.8%
  integration :9.7%
  samples     :73.9%
  integration :93.3%
  samples     :74.0%
  integration :2.7%
  samples     :74.0%
  integration :28.3%
  samples     :74.1%
  integration :48.3%
  samples     :74.2%
  integration :76.7%
  samples     :74.2%
  integration :99.7%
  samples     :74.2%
  integration :56.7%
  samples     :74.3%
  integration :99.7%
  samples     :74.4%
  integration :59.7%
  samples     :74.4%
  integration :75.3%
  samples     :74.5%
  integration :90.7%
  samples     :74.6%
  integration :15.7%
  samples     :74.6%
  integration :99.7%
  samples     :74.7%
  integration :92.0%
  samples     :74.8%
  integration :11.0%
  samples     :74.8%
  integration :99.7%
  samples     :74.9%
  integration :64.0%
  samples     :74.9%
  integration :94.7%
  samples     :75.0%
  integration :6.0%
  samples     :75.1%
  integration :33.0%
  samples     :75.1%
  integration :99.7%
  samples     :75.2%
  integration :4.7%
  samples     :75.2%
  integration :28.7%
  samples     :75.3%
  integration :53.3%
  samples     :75.4%
  integration :75.0%
  samples     :75.5%
  integration :4.7%
  samples     :75.6%
  integration :22.7%
  samples     :75.6%
  integration :48.7%
  samples     :75.7%
  integration :66.3%
  samples     :75.8%
  integration :96.7%
  samples     :75.9%
  integration :99.7%
  samples     :75.9%
  integration :58.0%
  samples     :76.0%
  integration :74.0%
  samples     :76.0%
  integration :64.3%
  samples     :76.1%
  integration :90.3%
  samples     :76.2%
  integration :99.7%
  samples     :76.2%
  integration :22.3%
  samples     :76.3%
  integration :44.3%
  samples     :76.3%
  integration :99.7%
  samples     :76.3%
  integration :93.3%
  samples     :76.4%
  integration :99.7%
  samples     :76.5%
  integration :39.7%
  samples     :76.6%
  integration :72.0%
  samples     :76.6%
  integration :99.7%
  samples     :76.7%
  integration :22.3%
  samples     :76.8%
  integration :58.0%
  samples     :76.8%
  integration :91.7%
  samples     :76.9%
  integration :9.7%
  samples     :76.9%
  integration :99.7%
  samples     :77.0%
  integration :97.0%
  samples     :77.0%
  integration :99.0%
  samples     :77.1%
  integration :0.0%
  samples     :77.1%
  integration :47.3%
  samples     :77.2%
  integration :99.7%
  samples     :77.2%
  integration :79.0%
  samples     :77.3%
  integration :8.0%
  samples     :77.3%
  integration :99.7%
  samples     :77.4%
  integration :61.3%
  samples     :77.5%
  integration :85.3%
  samples     :77.5%
  integration :68.7%
  samples     :77.6%
  integration :0.0%
  samples     :77.6%
  integration :99.7%
  samples     :77.7%
  integration :97.7%
  samples     :77.8%
  integration :32.7%
  samples     :77.9%
  integration :0.7%
  samples     :78.0%
  integration :33.0%
  samples     :78.0%
  integration :99.7%
  samples     :78.0%
  integration :54.7%
  samples     :78.1%
  integration :86.7%
  samples     :78.2%
  integration :2.3%
  samples     :78.3%
  integration :21.3%
  samples     :78.3%
  integration :99.7%
  samples     :78.4%
  integration :90.3%
  samples     :78.5%
  integration :13.3%
  samples     :78.5%
  integration :99.7%
  samples     :78.5%
  integration :67.0%
  samples     :78.6%
  integration :99.7%
  samples     :78.7%
  integration :66.0%
  samples     :78.8%
  integration :87.0%
  samples     :78.8%
  integration :4.0%
  samples     :78.9%
  integration :34.7%
  samples     :79.0%
  integration :62.3%
  samples     :79.0%
  integration :10.0%
  samples     :79.1%
  integration :44.3%
  samples     :79.1%
  integration :99.7%
  samples     :79.1%
  integration :89.7%
  samples     :79.2%
  integration :99.7%
  samples     :79.3%
  integration :70.0%
  samples     :79.4%
  integration :95.7%
  samples     :79.4%
  integration :99.7%
  samples     :79.5%
  integration :11.3%
  samples     :79.6%
  integration :41.3%
  samples     :79.6%
  integration :99.7%
  samples     :79.7%
  integration :77.0%
  samples     :79.7%
  integration :99.7%
  samples     :79.8%
  integration :82.3%
  samples     :79.9%
  integration :9.7%
  samples     :79.9%
  integration :99.7%
  samples     :80.0%
  integration :22.0%
  samples     :80.0%
  integration :99.7%
  samples     :80.1%
  integration :49.7%
  samples     :80.2%
  integration :79.3%
  samples     :80.2%
  integration :90.3%
  samples     :80.3%
  integration :16.0%
  samples     :80.3%
  integration :99.7%
  samples     :80.4%
  integration :81.7%
  samples     :80.5%
  integration :8.3%
  samples     :80.5%
  integration :99.7%
  samples     :80.6%
  integration :80.7%
  samples     :80.7%
  integration :99.7%
  samples     :80.7%
  integration :61.7%
  samples     :80.8%
  integration :86.0%
  samples     :80.8%
  integration :99.7%
  samples     :80.9%
  integration :0.3%
  samples     :81.0%
  integration :29.7%
  samples     :81.0%
  integration :50.3%
  samples     :81.1%
  integration :83.0%
  samples     :81.2%
  integration :99.7%
  samples     :81.2%
  integration :91.3%
  samples     :81.3%
  integration :20.7%
  samples     :81.3%
  integration :4.7%
  samples     :81.4%
  integration :26.3%
  samples     :81.4%
  integration :99.7%
  samples     :81.5%
  integration :99.0%
  samples     :81.6%
  integration :12.7%
  samples     :81.6%
  integration :99.7%
  samples     :81.7%
  integration :18.0%
  samples     :81.8%
  integration :48.0%
  samples     :81.8%
  integration :33.0%
  samples     :81.9%
  integration :60.0%
  samples     :82.0%
  integration :14.7%
  samples     :82.0%
  integration :43.0%
  samples     :82.1%
  integration :85.3%
  samples     :82.2%
  integration :95.0%
  samples     :82.2%
  integration :25.7%
  samples     :82.3%
  integration :19.7%
  samples     :82.4%
  integration :43.7%
  samples     :82.5%
  integration :71.7%
  samples     :82.5%
  integration :99.7%
  samples     :82.5%
  integration :29.3%
  samples     :82.6%
  integration :4.7%
  samples     :82.7%
  integration :32.0%
  samples     :82.8%
  integration :60.0%
  samples     :82.8%
  integration :99.7%
  samples     :82.9%
  integration :25.0%
  samples     :82.9%
  integration :99.7%
  samples     :83.0%
  integration :1.7%
  samples     :83.1%
  integration :28.3%
  samples     :83.1%
  integration :99.7%
  samples     :83.2%
  integration :41.7%
  samples     :83.3%
  integration :74.3%
  samples     :83.3%
  integration :36.7%
  samples     :83.4%
  integration :63.3%
  samples     :83.5%
  integration :34.0%
  samples     :83.5%
  integration :55.7%
  samples     :83.6%
  integration :74.7%
  samples     :83.6%
  integration :99.7%
  samples     :83.7%
  integration :0.0%
  samples     :83.8%
  integration :0.3%
  samples     :83.8%
  integration :38.0%
  samples     :83.9%
  integration :71.0%
  samples     :83.9%
  integration :99.7%
  samples     :84.0%
  integration :7.7%
  samples     :84.0%
  integration :99.7%
  samples     :84.1%
  integration :31.3%
  samples     :84.2%
  integration :42.3%
  samples     :84.2%
  integration :1.7%
  samples     :84.3%
  integration :44.3%
  samples     :84.4%
  integration :99.7%
  samples     :84.4%
  integration :74.3%
  samples     :84.5%
  integration :91.7%
  samples     :84.5%
  integration :99.7%
  samples     :84.6%
  integration :36.3%
  samples     :84.7%
  integration :57.3%
  samples     :84.7%
  integration :23.7%
  samples     :84.8%
  integration :43.0%
  samples     :84.8%
  integration :99.7%
  samples     :84.9%
  integration :62.0%
  samples     :85.0%
  integration :69.0%
  samples     :85.0%
  integration :3.3%
  samples     :85.1%
  integration :19.0%
  samples     :85.2%
  integration :42.7%
  samples     :85.2%
  integration :70.7%
  samples     :85.3%
  integration :96.0%
  samples     :85.4%
  integration :24.7%
  samples     :85.5%
  integration :57.0%
  samples     :85.5%
  integration :86.0%
  samples     :85.7%
  integration :10.0%
  samples     :85.7%
  integration :41.7%
  samples     :85.8%
  integration :74.0%
  samples     :85.9%
  integration :0.0%
  samples     :86.0%
  integration :99.7%
  samples     :86.0%
  integration :99.7%
  samples     :86.0%
  integration :91.0%
  samples     :86.1%
  integration :15.7%
  samples     :86.1%
  integration :49.3%
  samples     :86.2%
  integration :62.0%
  samples     :86.2%
  integration :87.0%
  samples     :86.4%
  integration :3.7%
  samples     :86.4%
  integration :99.7%
  samples     :86.5%
  integration :59.7%
  samples     :86.5%
  integration :80.7%
  samples     :86.6%
  integration :18.3%
  samples     :86.6%
  integration :25.0%
  samples     :86.7%
  integration :99.7%
  samples     :86.7%
  integration :67.7%
  samples     :86.8%
  integration :88.3%
  samples     :86.9%
  integration :34.3%
  samples     :87.0%
  integration :33.7%
  samples     :87.0%
  integration :99.7%
  samples     :87.1%
  integration :29.7%
  samples     :87.1%
  integration :44.7%
  samples     :87.2%
  integration :99.7%
  samples     :87.2%
  integration :85.0%
  samples     :87.3%
  integration :72.3%
  samples     :87.4%
  integration :20.7%
  samples     :87.5%
  integration :56.0%
  samples     :87.5%
  integration :99.7%
  samples     :87.6%
  integration :15.0%
  samples     :87.6%
  integration :17.3%
  samples     :87.6%
  integration :99.7%
  samples     :87.8%
  integration :16.0%
  samples     :87.8%
  integration :99.7%
  samples     :87.8%
  integration :31.0%
  samples     :87.9%
  integration :60.3%
  samples     :87.9%
  integration :55.7%
  samples     :88.0%
  integration :73.3%
  samples     :88.1%
  integration :99.7%
  samples     :88.1%
  integration :79.7%
  samples     :88.2%
  integration :10.7%
  samples     :88.3%
  integration :23.0%
  samples     :88.3%
  integration :64.7%
  samples     :88.4%
  integration :99.7%
  samples     :88.4%
  integration :35.0%
  samples     :88.5%
  integration :54.0%
  samples     :88.6%
  integration :40.7%
  samples     :88.6%
  integration :64.7%
  samples     :88.7%
  integration :59.3%
  samples     :88.8%
  integration :99.0%
  samples     :88.8%
  integration :32.0%
  samples     :88.9%
  integration :0.0%
  samples     :89.0%
  integration :26.3%
  samples     :89.0%
  integration :36.0%
  samples     :89.1%
  integration :73.7%
  samples     :89.1%
  integration :95.7%
  samples     :89.2%
  integration :99.7%
  samples     :89.2%
  integration :99.3%
  samples     :89.3%
  integration :36.7%
  samples     :89.4%
  integration :41.0%
  samples     :89.5%
  integration :53.7%
  samples     :89.5%
  integration :99.7%
  samples     :89.5%
  integration :73.3%
  samples     :89.6%
  integration :90.3%
  samples     :89.6%
  integration :99.7%
  samples     :89.7%
  integration :52.0%
  samples     :89.8%
  integration :99.7%
  samples     :89.8%
  integration :51.7%
  samples     :89.9%
  integration :71.7%
  samples     :90.0%
  integration :24.3%
  samples     :90.0%
  integration :50.7%
  samples     :90.1%
  integration :65.7%
  samples     :90.1%
  integration :15.3%
  samples     :90.2%
  integration :51.0%
  samples     :90.3%
  integration :55.7%
  samples     :90.3%
  integration :90.0%
  samples     :90.4%
  integration :99.7%
  samples     :90.5%
  integration :10.3%
  samples     :90.5%
  integration :36.3%
  samples     :90.6%
  integration :2.3%
  samples     :90.6%
  integration :25.7%
  samples     :90.7%
  integration :50.7%
  samples     :90.7%
  integration :99.7%
  samples     :90.8%
  integration :3.7%
  samples     :90.8%
  integration :99.7%
  samples     :90.9%
  integration :49.7%
  samples     :91.0%
  integration :66.0%
  samples     :91.0%
  integration :99.7%
  samples     :91.1%
  integration :14.0%
  samples     :91.2%
  integration :99.7%
  samples     :91.2%
  integration :41.7%
  samples     :91.3%
  integration :63.0%
  samples     :91.4%
  integration :62.0%
  samples     :91.5%
  integration :94.7%
  samples     :91.5%
  integration :99.7%
  samples     :91.6%
  integration :54.0%
  samples     :91.6%
  integration :85.0%
  samples     :91.7%
  integration :99.7%
  samples     :91.8%
  integration :45.3%
  samples     :91.8%
  integration :80.0%
  samples     :91.9%
  integration :13.3%
  samples     :92.0%
  integration :27.3%
  samples     :92.0%
  integration :99.7%
  samples     :92.1%
  integration :20.3%
  samples     :92.2%
  integration :48.3%
  samples     :92.2%
  integration :7.0%
  samples     :92.2%
  integration :33.0%
  samples     :92.3%
  integration :18.3%
  samples     :92.4%
  integration :43.3%
  samples     :92.5%
  integration :64.7%
  samples     :92.5%
  integration :15.7%
  samples     :92.6%
  integration :41.3%
  samples     :92.7%
  integration :99.7%
  samples     :92.7%
  integration :51.7%
  samples     :92.8%
  integration :69.7%
  samples     :92.8%
  integration :99.7%
  samples     :92.9%
  integration :38.0%
  samples     :92.9%
  integration :99.7%
  samples     :93.0%
  integration :53.7%
  samples     :93.1%
  integration :57.0%
  samples     :93.1%
  integration :68.0%
  samples     :93.2%
  integration :97.7%
  samples     :93.3%
  integration :22.3%
  samples     :93.3%
  integration :79.3%
  samples     :93.4%
  integration :99.7%
  samples     :93.5%
  integration :32.7%
  samples     :93.5%
  integration :65.3%
  samples     :93.6%
  integration :85.3%
  samples     :93.7%
  integration :99.7%
  samples     :93.8%
  integration :16.0%
  samples     :93.8%
  integration :99.7%
  samples     :93.8%
  integration :49.3%
  samples     :93.9%
  integration :72.7%
  samples     :94.0%
  integration :34.0%
  samples     :94.0%
  integration :56.3%
  samples     :94.1%
  integration :99.7%
  samples     :94.2%
  integration :53.0%
  samples     :94.2%
  integration :76.0%
  samples     :94.3%
  integration :73.3%
  samples     :94.4%
  integration :96.3%
  samples     :94.5%
  integration :99.7%
  samples     :94.5%
  integration :4.7%
  samples     :94.6%
  integration :28.7%
  samples     :94.7%
  integration :64.3%
  samples     :94.7%
  integration :94.0%
  samples     :94.8%
  integration :25.0%
  samples     :94.8%
  integration :99.7%
  samples     :94.9%
  integration :83.0%
  samples     :95.0%
  integration :99.7%
  samples     :95.0%
  integration :21.3%
  samples     :95.1%
  integration :35.0%
  samples     :95.2%
  integration :60.0%
  samples     :95.2%
  integration :77.3%
  samples     :95.3%
  integration :99.7%
  samples     :95.3%
  integration :65.0%
  samples     :95.4%
  integration :88.3%
  samples     :95.4%
  integration :99.7%
  samples     :95.5%
  integration :28.7%
  samples     :95.5%
  integration :99.7%
  samples     :95.5%
  integration :99.7%
  samples     :95.6%
  integration :10.7%
  samples     :95.6%
  integration :99.7%
  samples     :95.7%
  integration :37.0%
  samples     :95.8%
  integration :49.0%
  samples     :95.8%
  integration :10.0%
  samples     :95.9%
  integration :42.3%
  samples     :95.9%
  integration :99.7%
  samples     :95.9%
  integration :63.3%
  samples     :96.0%
  integration :86.3%
  samples     :96.0%
  integration :99.7%
  samples     :96.1%
  integration :5.7%
  samples     :96.1%
  integration :99.7%
  samples     :96.2%
  integration :42.7%
  samples     :96.2%
  integration :65.0%
  samples     :96.2%
  integration :99.7%
  samples     :96.3%
  integration :72.0%
  samples     :96.4%
  integration :99.7%
  samples     :96.4%
  integration :91.7%
  samples     :96.5%
  integration :23.7%
  samples     :96.5%
  integration :99.7%
  samples     :96.6%
  integration :43.7%
  samples     :96.6%
  integration :99.7%
  samples     :96.7%
  integration :59.0%
  samples     :96.7%
  integration :81.3%
  samples     :96.8%
  integration :99.7%
  samples     :96.8%
  integration :86.7%
  samples     :96.9%
  integration :99.7%
  samples     :96.9%
  integration :13.0%
  samples     :97.0%
  integration :43.7%
  samples     :97.0%
  integration :99.7%
  samples     :97.0%
  integration :62.0%
  samples     :97.1%
  integration :75.3%
  samples     :97.1%
  integration :99.7%
  samples     :97.2%
  integration :5.0%
  samples     :97.2%
  integration :99.7%
  samples     :97.3%
  integration :19.0%
  samples     :97.4%
  integration :48.7%
  samples     :97.4%
  integration :99.7%
  samples     :97.5%
  integration :80.7%
  samples     :97.5%
  integration :99.7%
  samples     :97.5%
  integration :94.0%
  samples     :97.6%
  integration :0.7%
  samples     :97.6%
  integration :99.7%
  samples     :97.7%
  integration :41.3%
  samples     :97.8%
  integration :99.7%
  samples     :97.8%
  integration :44.3%
  samples     :97.9%
  integration :67.7%
  samples     :97.9%
  integration :99.7%
  samples     :97.9%
  integration :99.0%
  samples     :98.0%
  integration :99.7%
  samples     :98.0%
  integration :11.0%
  samples     :98.1%
  integration :26.0%
  samples     :98.1%
  integration :99.7%
  samples     :98.2%
  integration :65.7%
  samples     :98.2%
  integration :94.0%
  samples     :98.2%
  integration :99.7%
  samples     :98.3%
  integration :48.7%
  samples     :98.4%
  integration :77.7%
  samples     :98.5%
  integration :5.3%
  samples     :98.5%
  integration :26.7%
  samples     :98.6%
  integration :50.7%
  samples     :98.7%
  integration :74.0%
  samples     :98.8%
  integration :96.7%
  samples     :98.9%
  integration :22.0%
  samples     :98.9%
  integration :48.7%
  samples     :99.0%
  integration :99.7%
  samples     :99.0%
  integration :19.3%
  samples     :99.1%
  integration :90.3%
  samples     :99.1%
  integration :30.7%
  samples     :99.2%
  integration :59.3%
  samples     :99.2%
  integration :68.7%
  samples     :99.3%
  integration :94.7%
  samples     :99.4%
  integration :36.7%
  samples     :99.4%
  integration :99.7%
  samples     :99.5%
  integration :23.0%
  samples     :99.6%
  integration :99.7%
  samples     :99.6%
  integration :39.7%
  samples     :99.7%
  integration :68.7%
  samples     :99.8%
  integration :51.3%
  samples     :99.8%
  integration :76.7%
  samples     :99.9%
  integration :99.7%
  samples     :99.9%
  integration :98.0%
  samples     : 100%
  integration :0.0%
  

Get the samples.

  # to access the data the 'hi_key' is used to find the data in the hdf5 file
  class int_result:
      with hierarchyData.HIMetaData(
          hid_name="energy_flow_therm_new_again_less.data", hid_path="data"
      ) as metaData:
          with metaData.get_HIData(hi_key, read_only=True) as data:
              smp = data.get_samples()
              print("{} samples found in database".format(smp))
              τ = data.get_time()
              rho_τ = data.get_rho_t()
              #s_proc = np.array(data.stoc_proc)
              #states = np.array(data.aux_states).copy()
              ψ_1 = np.array(data.aux_states[:, :, 0 : params.num_exp_t * params.dim])
              ψ_0 = np.array(data.stoc_traj)
              y = np.array(data.y)
              #η = np.array(data.stoc_proc)
              temp_y = np.array(data.temp_y)
4000 samples found in database

Calculate energy.

  %matplotlib inline
  energy = np.einsum("ijk,kj", int_result.rho_τ,params.H_s).real
  plt.plot(int_result.τ, energy)
<matplotlib.lines.Line2D at 0x7f70abf84a30>

/hiro/master-thesis/media/commit/034f7dc47f81f0644469568e2a322d6d63de206f/python/richard_hops/.ob-jupyter/8e6031964f047808246e7cc787bff3a3133b953e.png

Energy Flow

  int_result.ψ_1.shape
5120 300 8

Let's look at the norm.

  plt.plot(int_result.τ, (int_result.ψ_0[0].conj() * int_result.ψ_0[0]).sum(axis=1).real)
<matplotlib.lines.Line2D at 0x7f70a9ac3f10>

/hiro/master-thesis/media/commit/034f7dc47f81f0644469568e2a322d6d63de206f/python/richard_hops/.ob-jupyter/46197d5b229e031e905aea1a0f5b517e977f711d.png

And try to calculate the energy flow.

  def flow_for_traj(ψ_0, ψ_1, temp_y):
      a = np.array((params.L @ ψ_0.T).T)
      EtaTherm.new_process(temp_y)
      η_dot = scipy.misc.derivative(EtaTherm, int_result.τ, dx=1e-3, order=5)

      ψ_1 = (-w * g * params.bcf_scale)[None, :, None] * ψ_1.reshape(
          params.t_steps, params.num_exp_t, params.dim
      )

      # return np.array(np.sum(ψ_0.conj() * ψ_0, axis=1)).flatten().real
      j_0 = np.array(
          2
          ,* (
              1j
              ,* (np.sum(a.conj()[:, None, :] * ψ_1, axis=(1, 2)))
              / np.sum(ψ_0.conj() * ψ_0, axis=1)
          ).real
      ).flatten()

      j_therm = np.array(
          2
          ,* (
              1j
              ,* (np.sum(a.conj() * ψ_0, axis=1)) * η_dot
              / np.sum(ψ_0.conj() * ψ_0, axis=1)
          ).real
      ).flatten()
      return j_0, j_therm

Now we calculate the average over all trajectories.

  class Flow:
      j_0 = np.zeros_like(int_result.τ)
      j_therm = np.zeros_like(int_result.τ)
      for i in range(0, params.N):
          dj, dj_therm = flow_for_traj(
              int_result.ψ_0[i], int_result.ψ_1[i], int_result.temp_y[i]
          )

          j_0 += dj
          j_therm += dj_therm
      j_0 /= params.N
      j_therm /= params.N
      j = j_0 + j_therm

And plot it :).

  %matplotlib inline
  plt.plot(int_result.τ, Flow.j_0, label=r"$j_0$")
  plt.plot(int_result.τ, Flow.j_therm, label=r"$j_\mathrm{therm}$")
  plt.plot(int_result.τ, Flow.j, label=r"$j$")
  plt.legend()
<matplotlib.legend.Legend at 0x7f708c3a6880>

/hiro/master-thesis/media/commit/034f7dc47f81f0644469568e2a322d6d63de206f/python/richard_hops/.ob-jupyter/5a475f8087beb6abe79b48efe888fe5c4e4e182d.png

Let's calculate the integrated energy.

  E_t = np.array(
      [0]
      + [
          scipy.integrate.simpson(Flow.j[0:n], int_result.τ[0:n])
          for n in range(1, len(int_result.τ))
      ]
  )
  E_t[-1]
0.18349268980598232

With this we can retrieve the energy of the interaction Hamiltonian.

  E_I = - energy - E_t
  %%space plot
  #plt.plot(τ, j, label="$J$", linestyle='--')
  plt.plot(int_result.τ, E_t, label=r"$\langle H_{\mathrm{B}}\rangle$")
  plt.plot(int_result.τ, E_I, label=r"$\langle H_{\mathrm{I}}\rangle$")
  plt.plot(int_result.τ, energy, label=r"$\langle H_{\mathrm{S}}\rangle$")

  plt.xlabel("τ")
  plt.legend()
  plt.show()
<matplotlib.lines.Line2D at 0x7f709f479d00>
<matplotlib.lines.Line2D at 0x7f709f481130>
<matplotlib.lines.Line2D at 0x7f709f4814f0>
Text(0.5, 0, 'τ')
<matplotlib.legend.Legend at 0x7f709f479f40>

/hiro/master-thesis/media/commit/034f7dc47f81f0644469568e2a322d6d63de206f/python/richard_hops/.ob-jupyter/070f131d17f8426b384f26f16434edde81064452.png

System + Interaction Energy

  def h_si_for_traj(ψ_0, ψ_1, temp_y):
      a = np.array((params.L @ ψ_0.T).T)
      b = np.array((params.H_s @ ψ_0.T).T)
      ψ_1 = (g*params.bcf_scale)[None, :, None] * ψ_1.reshape(
          params.t_steps, params.num_exp_t, params.dim
      )
      EtaTherm.new_process(temp_y)

      E_i = np.array(
          2
          ,* (
              -1j
              ,* np.sum(
                  a.conj()[:, None, :]
                  ,* ψ_1,
                  axis=(1, 2),
              )
          ).real
      ).flatten()

      E_i += np.array(
          2
          ,* (
              EtaTherm(int_result.τ)
              ,* np.sum(
                  a.conj()
                  ,* ψ_0,
                  axis=1,
              )
          ).real
      ).flatten()

      E_s = np.array(np.sum(b.conj() * ψ_0, axis=1)).flatten().real

      return (E_i + E_s) / np.sum(ψ_0.conj() * ψ_0, axis=1).real
  e_si = np.zeros_like(int_result.τ)
  for i in range(0, params.N):
      e_si += h_si_for_traj(int_result.ψ_0[i], int_result.ψ_1[i], int_result.temp_y[i])
  e_si /= params.N

Doesn't work out.

  plt.plot(int_result.τ, e_si -energy, label=r"direct")
  plt.plot(int_result.τ, E_I)
  plt.legend()
<matplotlib.legend.Legend at 0x7f709f3f1f10>

/hiro/master-thesis/media/commit/034f7dc47f81f0644469568e2a322d6d63de206f/python/richard_hops/.ob-jupyter/5d121c7f9496bd6f69931ad6252f2ae57660bd48.png