diff --git a/exercises/ex11_solution/Makefile b/exercises/ex11_solution/Makefile
new file mode 100755
index 0000000000000000000000000000000000000000..7bd55db609488df0034ed1d355941ab3ba3589e6
--- /dev/null
+++ b/exercises/ex11_solution/Makefile
@@ -0,0 +1,4 @@
+include $(ALPS_ROOT)/share/alps/include.mk
+
+ising: ising.cpp
+	$(CXX) -Wall $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) $(LIBS) -o ising ising.cpp
diff --git a/exercises/ex11_solution/continous_time_qmc.ipynb b/exercises/ex11_solution/continous_time_qmc.ipynb
new file mode 100644
index 0000000000000000000000000000000000000000..95cdd79b7c16f563729775feb6455fca27a009d8
--- /dev/null
+++ b/exercises/ex11_solution/continous_time_qmc.ipynb
@@ -0,0 +1,347 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Continous time Quantum Monte Carlo of a single spin\n",
+    "\n",
+    "The Hamiltonian of a single spin in a magnetic field is\n",
+    "$$\n",
+    "H = h \\sigma_z + \\Gamma \\sigma_x.\n",
+    "$$\n",
+    "The analytical solution for the magnetization $\\langle \\sigma_x \\rangle$ is\n",
+    "$$\n",
+    "\\langle \\sigma_x \\rangle = \\frac{\\Gamma}{\\sqrt{\\Gamma^2+h^2}} \\tanh\\left( \\beta \\sqrt{h^2+\\Gamma^2} \\right).\n",
+    "$$\n",
+    "We map the quantum system to a classical continous 1D spin chain of length $\\beta$. The total energy of the system is\n",
+    "$$\n",
+    "E_\\mathrm{tot} = h \\int_0^1 \\mathop{d\\tau} S_z(\\beta\\tau) - \\frac{1}{2} \\log(\\mathop{d\\tau} \\Gamma)\\, n,\n",
+    "$$\n",
+    "wher $n$ is the number of domain walls and $S_z(\\tau)$ is the magnetization. From the above result we can calculate the acceptance probabilities\n",
+    "$$\n",
+    "p_\\mathrm{acc.} = \\min\\left( 1, \\frac{\\pi(Y)\\, T(Y\\rightarrow X)}{\\pi(X)\\, T(X\\rightarrow Y)} \\right).\n",
+    "$$\n",
+    "For adding a domain wall we get\n",
+    "$$\n",
+    "\\frac{\\pi(Y)}{\\pi(X)} = \\exp({-\\beta \\Delta E}) = \\mathop{d\\tau}\\Gamma \\exp({-\\beta h \\mathop{\\Delta S_z^\\mathrm{tot}}}),\\ T(Y\\rightarrow X)=\\frac{1}{n+1}\\ \\mathrm{and}\\ T(X\\rightarrow Y)=\\frac{\\mathop{d\\tau}}{\\beta}.\n",
+    "$$\n",
+    "Therefore, the acceptance probability for adding two domain walls is\n",
+    "$$\n",
+    "p_\\mathrm{acc.}^\\mathrm{add} = \\min\\left( 1, \\frac{\\exp(-\\beta h \\mathop{\\Delta S_z^\\mathrm{tot}}) (\\Gamma \\beta)^2}{(n+1)(n+2)} \\right) ,\n",
+    "$$\n",
+    "and for removing two domain walls it is\n",
+    "$$\n",
+    "p_\\mathrm{acc.}^\\mathrm{rem.} = \\min\\left( 1, \\frac{\\exp(-\\beta h \\mathop{\\Delta S_z^\\mathrm{tot}})n(n+1)}{ (\\Gamma \\beta)^2} \\right) ,\n",
+    "$$"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 133,
+   "metadata": {
+    "collapsed": false
+   },
+   "outputs": [],
+   "source": [
+    "import numpy as np\n",
+    "import numpy.random as rnd\n",
+    "import matplotlib.pyplot as plt\n",
+    "import copy\n",
+    "from sys import stdout\n",
+    "%matplotlib inline\n",
+    "plt.rcParams['figure.figsize'] = 16, 9"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Analytical solution"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 134,
+   "metadata": {
+    "collapsed": true
+   },
+   "outputs": [],
+   "source": [
+    "sx = lambda gamma,h,beta: gamma/np.sqrt(gamma**2+h**2)*np.tanh(beta*np.sqrt(h**2+gamma**2))"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Worldline class for simulation"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 135,
+   "metadata": {
+    "collapsed": true
+   },
+   "outputs": [],
+   "source": [
+    "class Worldline:\n",
+    "    def __init__(self,beta,gamma,h=0):\n",
+    "        self.beta  = beta  # inverse temperature \\beta\n",
+    "        self.gamma = gamma # transverse field \\Gamma\n",
+    "        self.h     = h # magnetic field h\n",
+    "        self.s0    = 1  # spin at \\tau=0\n",
+    "        self.kinks = [] # position of kinks (domain walls), sorted from 0 to beta\n",
+    "        self.magnobs = []\n",
+    "        \n",
+    "    def sz(self,kinks,s0):\n",
+    "        if len(kinks)>0:\n",
+    "            sz = s0 * (self.beta-kinks[-1]+kinks[0])\n",
+    "            for i in range(len(kinks)-1):\n",
+    "                sz += s0*(-1)**(i+1)*(kinks[i+1]-kinks[i])\n",
+    "        else:\n",
+    "            sz = self.beta*s0\n",
+    "        return sz\n",
+    "        \n",
+    "    def szdifference_add(self,ta,tb):\n",
+    "        if ta > tb:\n",
+    "            ns0 = -1*self.s0\n",
+    "        else:\n",
+    "            ns0 = self.s0\n",
+    "        nkinks = copy.deepcopy(self.kinks)\n",
+    "        nkinks += (ta,tb)\n",
+    "        nkinks.sort()\n",
+    "        return self.sz(nkinks,ns0)-self.sz(self.kinks,self.s0)\n",
+    "        \n",
+    "    def szdifference_rem(self,i,j):\n",
+    "        nkinks = copy.deepcopy(self.kinks)\n",
+    "        if i > j:\n",
+    "            del nkinks[i]\n",
+    "            del nkinks[j]\n",
+    "            ns0 = -1*self.s0\n",
+    "        else:\n",
+    "            del nkinks[j]\n",
+    "            del nkinks[i]\n",
+    "            ns0 = self.s0\n",
+    "        return self.sz(nkinks,ns0)-self.sz(self.kinks,self.s0)\n",
+    "    \n",
+    "    def insertUpdate(self):\n",
+    "        # propose to add kinks at times ta, tb, flipping all spins in range (ta,tb)\n",
+    "        ta = rnd.uniform(0,self.beta)\n",
+    "        tb = rnd.uniform(0,self.beta)\n",
+    "        n = len(self.kinks)\n",
+    "        # acceptance ratio\n",
+    "        if abs(self.h) > 0:\n",
+    "            exp_h_dsz = np.exp(self.h*self.szdifference_add(ta,tb))\n",
+    "        else:\n",
+    "            exp_h_dsz = 1.\n",
+    "        pacc = exp_h_dsz*(self.beta*self.gamma)**2 / ((n+1.) * (n+2.))\n",
+    "        if pacc >= 1 or rnd.uniform(0,1) < pacc:\n",
+    "            self.kinks += (ta,tb)\n",
+    "            self.kinks.sort()\n",
+    "            if ta > tb: \n",
+    "                self.s0 *= -1\n",
+    "    \n",
+    "    def removeUpdate(self):\n",
+    "        if len(self.kinks) == 0:\n",
+    "            return\n",
+    "        # propose to remove i'th and j'th kink\n",
+    "        i = j = rnd.randint(0,len(self.kinks))\n",
+    "        while j == i:\n",
+    "            j = rnd.randint(0,len(self.kinks))\n",
+    "        n = len(self.kinks)\n",
+    "        if abs(self.h) > 0:\n",
+    "            exp_h_dsz = np.exp(self.h*self.szdifference_rem(i,j))\n",
+    "        else:\n",
+    "            exp_h_dsz = 1.\n",
+    "        pacc = exp_h_dsz*n*(n-1.) / (self.beta*self.gamma)**2\n",
+    "        if pacc >= 1 or rnd.uniform(0,1) < pacc:\n",
+    "            if i > j:\n",
+    "                del self.kinks[i]\n",
+    "                del self.kinks[j]\n",
+    "                self.s0 *= -1\n",
+    "            else:\n",
+    "                del self.kinks[j]\n",
+    "                del self.kinks[i]\n",
+    "    \n",
+    "    def update(self):\n",
+    "        if rnd.uniform(0,1) < .5:\n",
+    "            self.insertUpdate()\n",
+    "        else:\n",
+    "            self.removeUpdate()\n",
+    "    \n",
+    "    def measure(self):\n",
+    "        self.magnobs.append(len(self.kinks) / (self.beta*self.gamma))"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Binning analysis"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 136,
+   "metadata": {
+    "collapsed": true
+   },
+   "outputs": [],
+   "source": [
+    "def binning_analysis(samples):\n",
+    "    \"\"\"Perform a binning analysis over samples and return an array of the error estimate at each binning level.\"\"\"\n",
+    "    minbins = 2**7 # minimum number of bins (128 still seems to be a reasonable sample size in most cases)\n",
+    "    maxlevel = int(np.log2(len(samples)//minbins))\n",
+    "    maxsamples = minbins * 2**(maxlevel)\n",
+    "    bins = np.array(samples[-maxsamples:]) # clip to power of 2 for simplicity\n",
+    "    errors = np.zeros(maxlevel+1)\n",
+    "    for k in range(maxlevel+1):\n",
+    "        errors[k] = np.std(bins)/np.sqrt(len(bins)-1.)\n",
+    "        bins = np.array([(bins[2*i]+bins[2*i+1])/2. for i in range(len(bins)//2)])\n",
+    "    return errors"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Main part"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 137,
+   "metadata": {
+    "collapsed": false
+   },
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Gamma = 0.05000 , <sigma_x> = 0.04080 +- 0.01025 , tau =  2.72404\n",
+      "Gamma = 0.11020 , <sigma_x> = 0.08893 +- 0.00966 , tau =  2.39282\n",
+      "Gamma = 0.17041 , <sigma_x> = 0.12030 +- 0.01061 , tau =  3.49708\n",
+      "Gamma = 0.23061 , <sigma_x> = 0.16912 +- 0.00989 , tau =  2.84776\n",
+      "Gamma = 0.29082 , <sigma_x> = 0.23623 +- 0.01186 , tau =  3.95704\n",
+      "Gamma = 0.35102 , <sigma_x> = 0.25246 +- 0.01051 , tau =  3.42210\n",
+      "Gamma = 0.41122 , <sigma_x> = 0.30353 +- 0.00946 , tau =  2.64533\n",
+      "Gamma = 0.47143 , <sigma_x> = 0.34983 +- 0.00977 , tau =  2.85520\n",
+      "Gamma = 0.53163 , <sigma_x> = 0.39388 +- 0.00920 , tau =  2.53919\n",
+      "Gamma = 0.59184 , <sigma_x> = 0.41805 +- 0.01037 , tau =  3.62068\n",
+      "Gamma = 0.65204 , <sigma_x> = 0.45316 +- 0.00884 , tau =  2.59253\n",
+      "Gamma = 0.71224 , <sigma_x> = 0.49955 +- 0.00921 , tau =  2.82594\n",
+      "Gamma = 0.77245 , <sigma_x> = 0.50854 +- 0.00892 , tau =  2.87971\n",
+      "Gamma = 0.83265 , <sigma_x> = 0.56300 +- 0.00968 , tau =  3.50656\n",
+      "Gamma = 0.89286 , <sigma_x> = 0.57754 +- 0.00836 , tau =  2.62887\n",
+      "Gamma = 0.95306 , <sigma_x> = 0.60158 +- 0.00819 , tau =  2.63398\n",
+      "Gamma = 1.01327 , <sigma_x> = 0.63964 +- 0.00900 , tau =  3.35473\n",
+      "Gamma = 1.07347 , <sigma_x> = 0.64436 +- 0.00793 , tau =  2.69870\n",
+      "Gamma = 1.13367 , <sigma_x> = 0.67624 +- 0.00834 , tau =  3.15379\n",
+      "Gamma = 1.19388 , <sigma_x> = 0.69681 +- 0.00771 , tau =  2.72524\n",
+      "Gamma = 1.25408 , <sigma_x> = 0.71684 +- 0.00777 , tau =  2.93625\n",
+      "Gamma = 1.31429 , <sigma_x> = 0.72977 +- 0.00766 , tau =  2.98369\n",
+      "Gamma = 1.37449 , <sigma_x> = 0.74628 +- 0.00759 , tau =  3.08141\n",
+      "Gamma = 1.43469 , <sigma_x> = 0.77166 +- 0.00727 , tau =  2.84321\n",
+      "Gamma = 1.49490 , <sigma_x> = 0.79292 +- 0.00764 , tau =  3.30446\n",
+      "Gamma = 1.55510 , <sigma_x> = 0.80355 +- 0.00720 , tau =  3.04400\n",
+      "Gamma = 1.61531 , <sigma_x> = 0.80650 +- 0.00687 , tau =  2.86447\n",
+      "Gamma = 1.67551 , <sigma_x> = 0.82435 +- 0.00656 , tau =  2.67217\n",
+      "Gamma = 1.73571 , <sigma_x> = 0.83533 +- 0.00655 , tau =  2.74454\n",
+      "Gamma = 1.79592 , <sigma_x> = 0.84916 +- 0.00682 , tau =  3.13376\n",
+      "Gamma = 1.85612 , <sigma_x> = 0.86285 +- 0.00609 , tau =  2.51410\n",
+      "Gamma = 1.91633 , <sigma_x> = 0.86177 +- 0.00653 , tau =  3.13095\n",
+      "Gamma = 1.97653 , <sigma_x> = 0.88109 +- 0.00580 , tau =  2.40394\n",
+      "Gamma = 2.03673 , <sigma_x> = 0.88554 +- 0.00583 , tau =  2.56800\n",
+      "Gamma = 2.09694 , <sigma_x> = 0.88787 +- 0.00611 , tau =  2.98930\n",
+      "Gamma = 2.15714 , <sigma_x> = 0.90345 +- 0.00679 , tau =  3.90930\n",
+      "Gamma = 2.21735 , <sigma_x> = 0.89321 +- 0.00511 , tau =  2.12041\n",
+      "Gamma = 2.27755 , <sigma_x> = 0.90012 +- 0.00634 , tau =  3.70383\n",
+      "Gamma = 2.33776 , <sigma_x> = 0.91142 +- 0.00598 , tau =  3.36584\n",
+      "Gamma = 2.39796 , <sigma_x> = 0.91875 +- 0.00621 , tau =  3.66183\n",
+      "Gamma = 2.45816 , <sigma_x> = 0.91799 +- 0.00557 , tau =  3.00434\n",
+      "Gamma = 2.51837 , <sigma_x> = 0.92770 +- 0.00653 , tau =  4.36417\n",
+      "Gamma = 2.57857 , <sigma_x> = 0.93060 +- 0.00579 , tau =  3.44455\n",
+      "Gamma = 2.63878 , <sigma_x> = 0.92407 +- 0.00596 , tau =  3.88062\n",
+      "Gamma = 2.69898 , <sigma_x> = 0.94256 +- 0.00643 , tau =  4.64550\n",
+      "Gamma = 2.75918 , <sigma_x> = 0.93789 +- 0.00604 , tau =  4.18168\n",
+      "Gamma = 2.81939 , <sigma_x> = 0.93478 +- 0.00552 , tau =  3.47634\n",
+      "Gamma = 2.87959 , <sigma_x> = 0.93882 +- 0.00596 , tau =  4.26816\n",
+      "Gamma = 2.93980 , <sigma_x> = 0.93591 +- 0.00551 , tau =  3.74216\n",
+      "Gamma = 3.00000 , <sigma_x> = 0.94264 +- 0.00568 , tau =  4.15874\n"
+     ]
+    },
+    {
+     "data": {
+      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA7sAAAI0CAYAAADcCz5PAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XlcVXX+x/H3F1xAAVkUdxA1F3BJU9MMJW2xJqvJato0\nLW3atGmbyprJmmaaavrltFlNWpaaU9qkNmaWDkqpuVPgvqEiKq5ccIfv7497QVBAlgsXLq/n43Ef\n99x7zz3ncy634O13M9ZaAQAAAADgTXw8XQAAAAAAAO5G2AUAAAAAeB3CLgAAAADA6xB2AQAAAABe\nh7ALAAAAAPA6hF0AAAAAgNch7AIAAAAAvA5hFwAAAADgdQi7AIALMsYkGWP6ebqO/MpaU1W8lurK\nGNPOGLPaGHPUGDPaGPNrST9bY8x2Y8yAIl772BjzUjHv/ZsxZkxZ664sxpifjTEdPV0HANRUtTxd\nAADAs4wx2yXdZ61dWNQ+1tpOlVhSiZS1pvJcS0k+qxrmj5L+Z63t7nr8dkWf0BjTUNJQSW0r+Dxd\nJQ2z1j5Rgn1vlBQjKVvSHmvtZ66XXpf0F0m3VFihAIAiEXYBAHATY4yvtTbb03UUpQLqi5T0uRuP\nVxLDJc211p489wVjTG1Jg1wP91hrV5XlBMaYJyT1lXSkBPsGSfqztfYS1+Olxpi51tqDkuZI+sAY\n09hau68stQAAyo5uzACAPMaYp40xu40xGcaY9caYK1zPF+hy6nr8hDEm0Rhz2BjzuTGmjuu17vm6\ntn5hjJl+gS6pxZ3zGWNMsjHmoDFmYu45zq2puHoKOV+Jr+Wc930qKULSHFetT+Z7/x+NMYmSMo0x\nPq5r2uLaL8kYc1NJz1fY5+F67stz6vmnMWa8a7upMWaGMWa/MWarMWb0OecrrL7zPvMLHeuc8y+Q\ndIWkd13Hueicn0mJjuPat5sxZpXrOzNdkl9R+0q6VtKiQo7hL+k2a+0ca+0cSeOKOUaxrLVvSJpV\nwt37SUrO9zhRzs9FrkC+StLVZa0FAFB2hF0AgCTn+EtJD0u6xFobJOkaSTuKecutcv4RHyWpq6Th\nrpa1ryRNkhQqZ6vfb8txzjslXSWpjaT2kp4vTT3F7Fvq91prh0naKel6a22QtfYf+V6+Xc4QFmyt\nzZG0RVJf1zW9KGmKMabxhc5XzOfxuaRrjTEBrv18XMeYaowxcrYgrpHUVNJASY8aY64qrD45u/8W\n+pmX8Fi5n8dASQmSHnZ9HptzXyvNcVzfmf9Imiznd+ZLSUPO3S+fzpI2FvL8EGvtVNcxg1zXmnuO\n1saYV4xzrO8r52z/zRhzQzHnu5AWKtgCfETSRfker5fzZwwAqGR0YwYA5MqWVEdSJ2PMQWvtzgvs\n/8/crpnGmDmSLpbUW5KvtfYd1z7/McYsL8c537bW7nGd469yjgn9cynqKanSvNcU8f49uQ+stTPz\nbX9pjBkrqZecAbC48xX5eRhjVku6SdIUOcNjlrV2hTHmUkkNrbV/de26wxjzkZwB9/tz6zPGFPeZ\n9yzBsUqiqOPcUchxekuqZa19y/V4pjFmRTHHDpbkyP+Eq2X8uDGmk6TL5Pyc8sbaWmu3SXq2FPWX\nRoikE/ken5IUkO+xQ1KTCjo3AKAYtOwCACRJ1tqtkv4gZ/fPfcaYacaY4v5Izz8G8Zicf+A3k5R6\nzn67ynHO3fm2U+RsJSxNPSVVnvdKBeuUMWaYMWaNq5vyYTknL2p4ofNd4PP4XM6wKNf9NNd2hKTm\nxphDrtthOYNdeGH1FXGO3M81sgTHKomijtOokH0L+86kFHPsw5ICz3mur6Qlru3jkhpICitlzWXl\nUMF/APGXdCjf40CVYOwvAMD9aNkFAOSx1k6XNN3VXfZDSa9KuqcUh0iTs1tnfi3l7NZblnO2zLdr\npKQ98ix7oeeNMRFyXscV1tqlrufWqPAW4fMPVPTn8aWkfxhjmsvZNby36y27JG2z1rYvad2FnOPv\nrnOU5FglUZrjFPadiVDR35lfJLWTcyxsrmbW2v+5jpXk6sbcR9K3krMbs6RROv/nZ1zPLbPWzi5B\nrYXZKqlHvsdhklbne9xR0mcCAFQ6WnYBAJLy1ky9wtUl9JScLWRnSnmYpZLOGGMeNsb4GueSLL3K\ncc6HjTHNjTGhcrYMTi9lPe62V1LrC+xTX1KOpAOuyaBGSCrRckdFfB7ZkmStPSDnxEwfyxkkc8et\nLpeU4ZqEys/1uccYYy4p7TmKOVaPwo5VjNIcZ6mk08a5Tq+vMeZmFfOdkTRXUtw5zzU853FPnW3p\nlbV2m7X2WWvt2HNuuc8VFXQL/AOFa+zvuf9osUhS93yPu0ta4Nq/jqRLVLou4AAANyHsAgByW7vq\nytnCly5nC2ojSc+ds8+57yn4pLWnJd0saaSc3U3vlHOc6nnLxJTgnJKzq+58OVv5tkj6a77XbBHb\nF1KiaynC3yX9ydU19/HC3m+tXS/pDUnL5AzHMZJ+LOH5Cvs8xuZ7fZqc43Wn5jtfjqTBco773S5p\nv6R/ydmVt7DzFXmOYo4VVES9hX6WJTxO7r6535kRcnb/vVXSTBXtUzkn66orScaYQEkDzdnZwHtI\nOmatnVfMMYpljHlE0n2S+htjXnCdQ5Jm6Jzx3NbaY5JeM8Y8b4z5k6TXrbX7XS/fKOc6xHvLWgsA\noOyMtaX5He+mkxozUdL1kvZZa7sUsc9bcs4cmSVpuLV2bSWWCABwE2PMMkkTrLWTS/m+7ZLus9Yu\nrJjKUF0ZY16WtN9a+5Yx5jo5uzbHyjlRVI61tqTLBlUoY8xSOb/D6zxdCwDURJ4as/uxnDNqflrY\ni8aYayW1sdZe5Jpl8n2dHZsEAKjCjDH95Fwa5oCku+VcKqbMrWzAuay1+ZegCrXW7pZzAq8qxVrb\nx9M1AEBN5pFuzNbaH+Xs3laUG+UKwtbanyU1MAXXJwQAVF3tJSXKOQPtY3Kuf7qv+LcUqvK7HqE6\nKnLyMwBAzVZVZ2NuroJLVaS6nivLH0sAgEpkrf2XnOMzy3ucC00EBchau8zTNQAAqqaqOkFVYcsz\n8C/8AAAAAIASqaotu7tVcG3FFipibUVjDCEYAAAAALyYtbZE69Xn58mwa1R4C64kzZb0sKR/G2N6\nSzpS3HgvT8woDe81btw4jRs3ztNlwIvwnYK78Z2CO/F9grvxnYK7nb/Eecl4JOwaY6bJuSB8mDFm\np6QXJNWRZK21H1pr5xpjrjPGbJFz6aERnqgTAAAAAFA9eSTsWmvvLME+j1RGLQAAAAAA71NVJ6gC\nPCYuLs7TJcDL8J2Cu/GdgjvxfYK78Z1CVWGq+3hXY4yt7tcAAAAAACicMabaTVBVoVq1aqWUlBRP\nlwE3iYyM1I4dOzxdBgAAAIBqwmtbdl3p3wMVoSLw8wQAAABqprK27DJmFwAAAADgdQi7AAAAAACv\nQ9gFAAAAAHgdwi4AAAAAwOsQdmuAyZMnKzY21tNlAAAAAEClIezWANZaGVPqycsAAAAAoNoi7HpI\nWlqabrnlFoWHh6tNmzZ65513JEm/+c1v9OSTT+bt97vf/U4jR46UJG3btk0DBw5Uw4YNFR4errvv\nvlsZGRl5++7evVtDhgxReHi4GjVqpDFjxmjDhg168MEHtXTpUgUGBio0NLRyLxQAAAAAPICw6wHW\nWg0ePFjdunVTWlqaFixYoPHjx+v777/XpEmTNGXKFMXHx2vq1KlatWqV3nrrrbz3jR07Vnv37tX6\n9eu1e/dujRs3TpKUk5Oj66+/XlFRUdq5c6dSU1N1++23q0OHDnr//ffVp08fORwOHTp0yINXDgAA\nAACVo5anC/Ak82L5u/baF2yp37NixQodOHBAzz33nCSpVatWGjlypKZPn66rrrpK77//voYNG6YT\nJ05o1qxZqlevniSpTZs2atOmjSQpLCxMjz32mF566SVJ0s8//6y0tDS99tpr8vFx/hvGZZddVu7r\nAwAAAIDqqEaH3bIEVXdISUlRampqXpdia61ycnLUr18/Sc6uzA8//LDat2+vPn365L0vPT1dY8aM\nUUJCgjIzM5WdnZ13jN27dysyMjIv6AIAAABATUYy8oCWLVuqdevWOnTokA4dOqTDhw/r6NGjmjNn\njiRp7Nixio6OVlpamqZPn573vmeffVY+Pj5KSkrSkSNHNGXKFFlr8465c+dO5eTknHc+JqcCAAAA\nUNMQdj2gV69eCgoK0muvvaYTJ04oOztbycnJWrlypRYvXqzJkyfrs88+0+TJkzV69GilpaVJkhwO\nhwICAhQUFKTU1FS9/vrrBY7ZtGlTPfPMMzp27JhOnjypJUuWSJIaN26s3bt36/Tp0x65XgAAAACo\nbIRdD/Dx8dGcOXO0du1aRUVFKTw8XKNGjVJaWpqGDx+ud999V02aNFHfvn01cuRIjRgxQpL0wgsv\naNWqVQoODtbgwYM1ZMiQ8465efNmRUREqGXLlvriiy8kSQMGDFBMTIyaNGmi8PBwj1wzAAAAAFQm\nk9sNtroyxtjCrsEYo+p+bTiLnycAAABQM7myQKnHZtKyCwAAAADwOoRdAAAAAIDXIewCAAAAALxO\njV5nFwAAAABKIz7eecvdjotzbsfFnd1G1cAEVagW+HkCAACgKnE4pKAgKSNDCgz0dDXVX3ZOto6e\nPKrDxw/r8InDil92WD//cliZZ45o3l9/X6YJqmjZBQAAAIBScDik2FjndmyslJBQ/QOvO1qsc2yO\njp44qkPHD+XdDp84nBdg8+5PHNaRE0cKPJ95KlOBdQMV4heiEP8QhfiFKLBdiJbPDynzNdGyi2qB\nnycAAACqiqVLpX79pDNnpNq1pcWLpd69S3eMqtod2uGQgoLPaNuewzrle6hAcC1wO3H+c0dPHFVg\n3UCF+ocq1D+0QHAtsO0fomC/4ALPNfBrIB9TcEqps59z2ZYeqnFht7xfqqr6pfR2hF0AAABUFbkt\nu4mJUteu5WvZreju0MdPH9eBYwd08PhBHTx2UAePH3Q+dm3nf5yedVA70w8qp1amfE+HKKpJqBrW\nD80Lr6F++bYLuQX7BSthsa/b8tLZz5mwe+7zFwxHxkjlufzyvr8mioqK0sSJEzVgwIBSvY+wCwAA\ngKrEHSG1tKH5VPYpZyg9lq70rHQdOHZASxLTlbj5gBzZ6dq294AaND2oEz4HlON3UJnZB5Vts9Ww\nXkOF+YcprF7Y2W1/13a9s9s7N4bpjpvClJ3VQLVr+ZSpxdqdn8/Z45Qt7DJm10NatWqlvXv3as+e\nPQoNDc17/uKLL9Yvv/yiHTt2KCIiolznuOKKKzR06FDde++9ZT7Gd999p7/97W9as2aN/P39FR0d\nrccff1yDBw8uV20AAABAdZYb4MoT5FaszVJS6n6p+X4lnUrXa/MPKKiJM8SmH0tX+jHXtivYZp3O\nygumjeo3ct4HN9KlvRtqyocddGRzQ4U2DdOX7zVURENnuK1fu76MKVlOjG4gdWrjDN/R0VJMTNmu\nyx1jmvP3qC0rwq6HGGMUFRWlzz//XA8//LAkKSkpSSdOnCjxl7GizZgxQ/fdd5/Gjx+vb775RoGB\ngUpISNCUKVNKHXazs7Pl6+tbQZUCAADAW+WGnpMnpXnzpEGDpLp1PTeMMH8I699fGjfOuR0XJ/WN\nPa0Dxw5of9b+wm/HCj7OycmRz4jGyj7SSPV8G2lrTiM1zXQG2YvCLlKjeo3ygm2jeo0KHdcqOce2\n/t8cSWekXRul2gekyLalv7bAQGcwDQoqX9fspCQpOdm5vW6dc7u0LcT5f74vvli2OmpsN+byNquX\n9/1RUVEaNWqUvv76ay1fvlyS9NRTTyk0NFTPP/+8tm/froiICGVkZOiRRx7RvHnzVL9+fY0cOVLP\nPfecJGny5Mn66KOP1Lt3b02cOFEhISF67733dM011+j555/X3//+d9WpU0e1atXS8OHD9dZbb2nD\nhg0aM2aMVq1apfDwcL300ku69dZbC60xMjJSjz76qB5//PFCX9+2bZtGjRqlxMRE+fj46Oqrr9Z7\n772noKCgvGt88MEHNXXqVG3atEmZmZlq27ZtXjfmU6dO6Y9//KO+/PJLGWN066236rXXXlPt2rXP\n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\nAAAANLK6ym7p5HPVCs4pnZwDAAAAr1Oqqvf7Yyll5yTHV1U1ouPjrySpqqr63hLn/KzjnDtLKWsk\nmVNV1Zs7+V4KMAAAQBOrqqqzB6bLtebqCLISZibZupSyRZI5SfZLsv9S51yVZEKSO5OMSzK1s2/U\nnT80AAAAza2WsltV1YJSypFJrk/7UOozqqp6oJRyQpKZVVVdneSMJOeVUh5O8nTaCzEAAACsUC3D\nmAEAAGB1qmuBqi4rpYwopTxYSvlNKeXLnby/dillUinl4VLK7aWUt9eRk8axEtfUhFLKU6WUuzte\nh9SRk8ZQSjmjlPKnUsp9yznnpI571D2llO17Mx+NZ0XXVCll11LKX5e4R329tzPSOEopm5VSppZS\n7i+l/LqU8k/LOM99ipWyMteU+xRdUUpZp5RyZynlVx3X1Dc6OadLna8hym4pZUCSU5J8PMmQJPuX\nUrZb6rRDkzxTVdU7k/wgyfd7NyWNZCWvqSSZVFXV+zpeZ/ZqSBrNWWm/njpVShmZZKuOe9Rnkvyk\nt4LRsJZ7TXW4ZYl71Ld7IxQN65Uk/1pV1eAkuyT5/NL/3XOfootWeE11cJ9ipVRV9VKSj1RV9d4k\n2ycZWUrZaanTutT5GqLsJtkpycNVVT1eVdXLSSYlGb3UOaOTnNNxPCXJR3sxH41nZa6ppPNtsuB1\nqqq6NcmzyzlldJJzO869M8kGpZS39EY2GtNKXFOJexQrqaqqJ6uquqfj+LkkDyTZdKnT3KdYaSt5\nTSXuU3RBVVUvdByuk/b1pZaec9ulztcoZXfTJL9f4uMn8vp/mV49p6qqBUn+Wkp5U+/EowGtzDWV\nJPt0DOWaXErZrHei0aSWvub+kM6vOeiKnTuGe11TShlcdxgaQynl/6b9qcmdS73lPkW3LOeaStyn\n6IJSyoBSyq+SPJnkhqqqZi51Spc6X6OU3c5+IrR0y1/6nNLJObDIylxTVyb5v1VVbZ/kpiz+KRJ0\nx8pcc9AVdyXZomO41ylJLq85Dw2glPLGtD8N+WLH07jXvN3Jl7hPsVwruKbcp+iSqqoWdlwvmyV5\nfyc/IOlS52uUsvtEkiUnH2+W5I9LnfP7JJsnSSlljSSDqqpa0fAv+q8VXlNVVT3bMcQ5SU5PskMv\nZaM5PZGOe1SHzu5jsNKqqnpu0XCvqqp+lmQtI5pYnlLKmmkvJedVVXVFJ6e4T9ElK7qm3Kforqqq\n5iVpTTJiqbe61PkapezOTLJ1KWWLUsraad9z98qlzrkqyYSO43FJpvZiPhrPCq+pUspbl/hwKL0d\nBQAAAg9JREFUdJL7ezEfjalk2XOTrkxyUJKUUnZO8teqqv7UW8FoWMu8ppacS9mxgEepquqZ3gpG\nQzozyf1VVf1wGe+7T9FVy72m3KfoilLKxqWUDTqO10syPMmDS53Wpc63Zk+HXB2qqlpQSjkyyfVp\nL+hnVFX1QCnlhCQzq6q6OskZSc4rpTyc5Om0lxfo1EpeU/9UStkzyctJnknyqdoC0+eVUi5I0pJk\no1LK75J8I8naSaqqqk6rquraUsonSim/TfJ8koPrS0sjWNE1lWRsKeVzab9H/S3JvnVlpe8rpXww\nyQFJft0xH65K8rUkW8R9im5YmWsq7lN0zd8lOadj15QBSS7quC91u/OVqjIVAwAAgObSKMOYAQAA\nYKUpuwAAADQdZRcAAICmo+wCAADQdJRdAAAAmo6yCwAAQNNRdgEAAGg6yi4AAABNZ826AwAAK1ZK\nGZ7k/0syNcmsJIOTLKiq6qhagwFAH6XsAkADqKrqxlLKL5NcWlXVLUlSSjmg5lgA0GcZxgwAjaMs\n9fGsWlIAQANQdgGgQVVVdW/dGQCgr1J2AQAAaDrKLgAAAE1H2QUAAKDpWI0ZABpAx9ZDOySpSikv\nVFX1y7ozAUBfVqqqqjsDAAAA9CjDmAEAAGg6yi4AAABNR9kFAACg6Si7AAAANB1lFwAAgKaj7AIA\nANB0lF0AAACajrILAABA0/n/AcvzWchj6XIuAAAAAElFTkSuQmCC\n",
+      "text/plain": [
+       "<matplotlib.figure.Figure at 0x116904c88>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "steps = int(1e5)\n",
+    "thermsteps = steps//5\n",
+    "beta = 1.\n",
+    "h = 1.\n",
+    "results = []\n",
+    "for gamma in np.linspace(0.05,3.,50):\n",
+    "    wl = Worldline(beta,gamma,h)\n",
+    "    for i in range(thermsteps):    wl.update()\n",
+    "    for i in range(steps):\n",
+    "        wl.update()\n",
+    "        wl.measure()\n",
+    "    mean = np.mean(wl.magnobs)\n",
+    "    errors = binning_analysis(wl.magnobs)\n",
+    "    tau = 0.5*(errors[-1]**2/np.std(wl.magnobs)**2*(len(wl.magnobs)-1.)-1.)\n",
+    "    print('Gamma =',\"{:06.5f}\".format(gamma), ', <sigma_x> =',\"{:06.5f}\".format(mean), '+-', '{:06.5f}'.format(errors[-1]), \", tau = \",'{:06.5f}'.format(tau))\n",
+    "    results.append([gamma, mean, errors[-1], tau])\n",
+    "\n",
+    "results = np.transpose(np.array(results))\n",
+    "plt.figure()\n",
+    "plt.errorbar(results[0],results[1],results[2],fmt='.',label='Monte Carlo')\n",
+    "plt.plot(results[0],sx(results[0],h,beta),label='exact')\n",
+    "plt.xlabel('$\\\\Gamma$')\n",
+    "plt.ylabel('$\\\\langle \\\\sigma_x \\\\rangle$')\n",
+    "plt.title('Ising spin in transverse field ($\\\\beta='+str(beta)+'$)')\n",
+    "plt.legend(loc='best')\n",
+    "plt.show()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "collapsed": true
+   },
+   "outputs": [],
+   "source": []
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3",
+   "language": "python",
+   "name": "python3"
+  },
+  "language_info": {
+   "codemirror_mode": {
+    "name": "ipython",
+    "version": 3
+   },
+   "file_extension": ".py",
+   "mimetype": "text/x-python",
+   "name": "python",
+   "nbconvert_exporter": "python",
+   "pygments_lexer": "ipython3",
+   "version": "3.5.1"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}
diff --git a/exercises/ex11_solution/data/run.py b/exercises/ex11_solution/data/run.py
new file mode 100644
index 0000000000000000000000000000000000000000..19f2df791d1def2db80a9f9cd99f4126676e865f
--- /dev/null
+++ b/exercises/ex11_solution/data/run.py
@@ -0,0 +1,24 @@
+import numpy as np
+from math import *
+
+gamma = 1
+delta = 0.05
+J = np.linspace(0.5,2)
+nsweeps = {8: 1000000, 16: 1000000, 24: 1000000,
+          32: 1000000, 40: 1000000, 48: 1000000}
+
+i = 0
+n = 1
+for Ji in J:
+  if True:
+    basename = 'start_ML1_%s.sh'%n
+    fp = open(basename, 'w')
+    print 'bsub -W 2:00 sh '+basename
+    n += 1
+  i += 1
+  for ML in [1]:
+    for L in reversed([16,24,32,40,48]):
+     Jx = delta*Ji
+     Jy = -.5*log(delta*gamma)
+     fp.write('../ising %s %s %s %s %s\n' % (ML*L, L, Jy, Jx, nsweeps[L]))
+
diff --git a/exercises/ex11_solution/plot.py b/exercises/ex11_solution/plot.py
new file mode 100755
index 0000000000000000000000000000000000000000..acfb0b08875222f11cf02c0393baa0f99e5a0948
--- /dev/null
+++ b/exercises/ex11_solution/plot.py
@@ -0,0 +1,48 @@
+import sys, os
+
+import numpy as np
+import matplotlib.pyplot as plt
+import pyalps
+from pyalps.plot import plot
+
+files = pyalps.getResultFiles(dirname='data')
+data = pyalps.loadMeasurements(files , ['|m|','m^2', 'Connected Susceptibility', 'Binder Cumulant U2'])
+
+for d in pyalps.flatten(data):
+    d.props['M/L'] = d.props['M'] / d.props['L']
+
+m = pyalps.collectXY(data, 'Jx', '|m|', foreach=['L', 'M'])
+chi = pyalps.collectXY(data, 'Jx', 'Connected Susceptibility', foreach=['L', 'M'])
+binder = pyalps.collectXY(data, 'Jx', 'Binder Cumulant U2', foreach=['L', 'M'])
+
+
+for d in pyalps.flatten(m):
+    d.x = np.exp(2.*d.props['Jy'])*d.x
+plt.figure()
+plot(m)
+plt.xlabel('$J/\\Gamma$')
+plt.ylabel('magnetization')
+plt.legend(loc='best', frameon=False)
+
+
+for d in pyalps.flatten(chi):
+    d.x = np.exp(2.*d.props['Jy'])*d.x
+plt.figure()
+plot(chi)
+plt.xlabel('$J/\\Gamma$')
+plt.ylabel('Connected Susceptibility, $\chi = [<m^2> -<|m|>^2] / L / M$')
+plt.legend(loc='best', frameon=False)
+
+
+for d in pyalps.flatten(binder):
+    d.x = np.exp(2.*d.props['Jy'])*d.x
+plt.figure()
+plot(binder)
+plt.axvspan(0.96, 1.02, color=(.4,.4,.4, .3)) # by zooming into the figure
+plt.axvline(0.99, color=(1,.2,.2))
+plt.xlabel('$J/\\Gamma$')
+plt.ylabel('Binder Cumulant, $U_2 = <m^2> / <|m|>^2$')
+plt.legend(loc='best', frameon=False)
+
+
+plt.show()
diff --git a/exercises/ex11_solution/quatum_ising-binder.pdf b/exercises/ex11_solution/quatum_ising-binder.pdf
new file mode 100755
index 0000000000000000000000000000000000000000..18c6547386343d1eb08ff7e31e0611f4ba760086
Binary files /dev/null and b/exercises/ex11_solution/quatum_ising-binder.pdf differ
diff --git a/exercises/ex11_solution/quatum_ising-chi.pdf b/exercises/ex11_solution/quatum_ising-chi.pdf
new file mode 100755
index 0000000000000000000000000000000000000000..feedd0c8ab70a5dd47de861c7b1e5945f030aae9
Binary files /dev/null and b/exercises/ex11_solution/quatum_ising-chi.pdf differ
diff --git a/exercises/ex11_solution/quatum_ising-mag.pdf b/exercises/ex11_solution/quatum_ising-mag.pdf
new file mode 100755
index 0000000000000000000000000000000000000000..da68cbc3964a267d65a8764f18dd3a75676ad060
Binary files /dev/null and b/exercises/ex11_solution/quatum_ising-mag.pdf differ