{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import torch\n",
    "from torchvision.transforms.functional import rotate\n",
    "from pytomography.utils import rotate_detector_z\n",
    "device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Last Time\n",
    "\n",
    "We implemented $g=Hf$ on an object $f$ and for the case of a system matrix $H$ that doesn't model any phenomena"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "x = torch.linspace(-1,1,128)\n",
    "xv, yv, zv = torch.meshgrid(x,x,x, indexing='ij')\n",
    "obj = (xv**2 + 0.9*zv**2 < 0.5) * (torch.abs(yv)<0.8)\n",
    "obj = obj.to(torch.float).unsqueeze(dim=0)\n",
    "\n",
    "angles = np.arange(0,360.,3)\n",
    "image = torch.zeros((1,len(angles),128,128))\n",
    "for i,angle in enumerate(angles):\n",
    "    object_i = rotate_detector_z(obj,angle)\n",
    "    image[:,i] = object_i.sum(axis=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0, 0.5, 'r')"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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+42NjX57e3u5d62iXXLJJX5DQ4P/9NNP+2+//Xb2r7e3N7vMv/7rv/rTp0/3n3zySf/555/358yZ48+ZM6eMe10d9q9i830dx3xt3LjRj0aj/o033uhv27bNv/fee/1x48b5//Vf/5Vd5qabbvIbGxv9X/ziF/5LL73kn3nmmf6MGTP8vr6+Mu555Vm4cKH//ve/33/sscf87du3+z//+c/9973vff6VV16ZXUbH0rZnzx7/hRde8F944QUfgH/rrbf6L7zwQrayKp9j9qlPfco/+uij/Q0bNvjPPvusf8ghh/jnnntuuX5S2eQ6lolEwv/sZz/rH3jggf6LL75o/D9oYGAgu45SHMsxfYPk+75/++23+9OnT/dramr8448/3n/uuefKvUsVD0Dg35133pldpq+vz//KV77iT5o0yR83bpz/uc99zn/77bfLt9NVgm+QdBzz9+ijj/qHH364H4/H/ZkzZ/o//vGPjfme5/nLli3zm5ub/Xg87p966qn+1q1by7S3laurq8u/7LLL/OnTp/u1tbX+Bz/4Qf+b3/ym8T8fHUvbU089Ffjv4sKFC33fz++YvfPOO/65557rT5gwwZ84caJ//vnn+3v27CnDrymvXMdy+/btg/4/6KmnnsquoxTHMuT7+3WPKiIiIiJj9x0kERERkcHoBklERESE6AZJREREhOgGSURERIToBklERESE6AZJREREhOgGSURERIToBklERESE6AZJRMa0L33pS5g3b165d0NEKoxukESkoq1fvx6RSASnn356uXdFRMYQ3SCJSEVbvXo1Lr30Uqxbtw5vvfVWuXdHRMYI3SCJSMXq7u7Ggw8+iEsuuQSnn3467rrrruy8p59+GqFQCGvXrsWsWbMwbtw4nHDCCdi6dauxjhtuuAFTpkxBfX09vvzlL+Pqq6/GUUcdNeg2Pc9DW1sbZsyYgbq6Ohx55JH47//+72H6hSJSqXSDJCIV62c/+xlmzpyJD3/4wzjvvPPw05/+FDy+9je/+U18//vfx/PPP49oNIoLLrggO+/ee+/FjTfeiJtvvhmbN2/G9OnTsXLlypzbbGtrwz333INVq1bhT3/6E6644gqcd955eOaZZ4blN4pIZQr5/K+NiEiFOPHEE3H22WfjsssuQyqVwtSpU/HQQw/h5JNPxtNPP41TTjkFTzzxBE499VQAwK9//Wucfvrp6OvrQ21tLT72sY9h1qxZuOOOO7LrPOmkk9Dd3Y0XX3wRQOYl7Y6ODjzyyCMYGBhAU1MTnnjiCcyZMyf7nS9/+cvo7e3FfffdN6K/X0TKRxkkEalIW7duxcaNG3HuuecCAKLRKL7whS9g9erVxnIf/ehHs/89depUAMCuXbuy6zj++OON5Xl6f3/5y1/Q29uLT3ziE5gwYUL275577sH//u//luR3iUh1iJZ7B0REgqxevRqpVArTpk3Lfub7PuLxuJERisVi2f8OhUIAMu8RFaO7uxsA8Ktf/Qrvf//7jXnxeLyodYpIddINkohUnFQqhXvuuQff//738clPftKYN2/ePNx///2YOXOmcz0f/vCHsWnTJnzxi1/MfrZp06ZBlz/ssMMQj8fx5ptv4h//8R+L/wEiUvV0gyQiFeexxx7Du+++iwsvvBANDQ3GvPnz52P16tX47ne/61zPpZdeiosuugizZs3CCSecgAcffBAvvfQSPvjBDwYuX19fj6997Wu44oor4HkeTjrpJHR2duJ3v/sdJk6ciIULF5bk94lI5dMNkohUnNWrV6O1tdW6OQIyN0i33HILXnrpJed6FixYgNdffx1f+9rX0N/fj7PPPhtf+tKXsHHjxkG/8+1vfxsHHHAA2tra8Prrr6OxsRHHHHMMvvGNbwzpN4lIdVEVm4iMKZ/4xCfQ0tKC//zP/yz3rohIBVMGSURGrd7eXqxatQpz585FJBLB/fffjyeeeAJr1qwp966JSIVTBklERq2+vj6cccYZeOGFF9Df348Pf/jDuOaaa3DWWWeVe9dEpMLpBklERESEqKNIEREREaIbJBERERGiGyQRERERohskEREREaIbJBERERGiGyQRERERohskEREREaIbJBERERHy/wNb4VRYqFFsWgAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.pcolormesh(image[0,:,:,64].T)\n",
    "plt.xlabel('Angle')\n",
    "plt.ylabel('r')"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# This Time"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We'll talk about how to model $\\hat{f} = H^T g$ for the same operator $H$. This time, we'll start by creating an empty object. I claim that the following implements back projection from a single angle:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "torch.Size([1, 1, 128, 128])"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "image[:,0].unsqueeze(dim=1).shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [],
   "source": [
    "bp_single_angle = torch.ones([1, 128, 128, 128]) * image[:,0].unsqueeze(dim=1)"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Example**: If forward projection is\n",
    "\n",
    "$$\\begin{bmatrix} 1&1&1&0&0&0 \\\\ 0&0&0&1&1&1 \\end{bmatrix} \\begin{bmatrix} 2 \\\\ 3 \\\\ 1 \\\\ 4 \\\\ 5 \\\\ 6 \\end{bmatrix} = \\begin{bmatrix} 6 \\\\ 15 \\end{bmatrix} $$\n",
    "\n",
    "then back projection is\n",
    "\n",
    "$$\\begin{bmatrix} 1&0 \\\\ 1&0 \\\\1&0 \\\\ 0&1 \\\\ 0&1\\\\ 0&1\\end{bmatrix} \\begin{bmatrix} 6 \\\\ 15 \\end{bmatrix} = \\begin{bmatrix} 6 \\\\ 6 \\\\ 6 \\\\ 15 \\\\ 15 \\\\ 15 \\end{bmatrix}$$\n",
    "\n",
    "So there is an element of duplication going on."
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Nopw I need to back project for each angle, and rotate the coordinate system back to the original object coordinate axes, and add everything together"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [],
   "source": [
    "obj_bp = torch.zeros([1, 128, 128, 128])\n",
    "for i,angle in enumerate(angles):\n",
    "    bp_single_angle = torch.ones([1, 128, 128, 128]) * image[:,i].unsqueeze(dim=1)\n",
    "    bp_single_angle = rotate_detector_z(bp_single_angle, angle, negative=True)\n",
    "    obj_bp += bp_single_angle"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Just like we did for `obj` in tutorial 1, we'll look at different projections for `obj_bp`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA90AAAEiCAYAAADklbFjAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAACXDklEQVR4nO2deZhVxbX2354ZmxaEblAEHAKOYBwQzHXsBGdxihqvAioYFSNiHMh1wolIjOJAJOZG0ftAHBI1Gg2GoGiMiIpicAgRRTFqt1HsBhrobvrs7w++OtRZXbWr9j5TD+/vefrZXbVr1649rVOr1qpVBUEQBCCEEEIIIYQQQkjGKcx3AwghhBBCCCGEkI4KlW5CCCGEEEIIISRLUOkmhBBCCCGEEEKyBJVuQgghhBBCCCEkS1DpJoQQQgghhBBCsgSVbkIIIYQQQgghJEtQ6SaEEEIIIYQQQrIElW5CCCGEEEIIISRLUOkmhBBCCCGEEEKyBJVuQvLEDTfcgIKCgnw3gxBCIrF48WIUFBRg8eLFOTkfZSUhpD3zySefoKCgAHPnzo187Ny5c1FQUIBPPvkk4+0iuYVKN2mzfPTRR7jggguw8847o0uXLigvL8fBBx+Mu+66C5s2bcp38wghJO+sWLECp556KgYNGoQuXbpghx12wPe//33cc889OW3H/PnzMWvWrFb5X3zxBW644QYsX748p+0hhJBM8Ktf/QoFBQUYOXJkvptC2jnF+W4AISaeffZZnHbaaSgrK8M555yDvfbaC01NTXjllVdwxRVX4L333sP999+f72YSQkjeePXVV3H44Ydjp512wsSJE1FVVYXPPvsMr732Gu666y5ccsklWTnvIYccgk2bNqG0tDSZN3/+fLz77ruYMmVKStkvvvgC06dPx+DBgzFixIistIcQQrLFvHnzMHjwYLz++utYtWoVdt1118h1DBo0CJs2bUJJSUkWWkjaC1S6SZtj9erVOOOMMzBo0CC88MIL6N+/f3LfxRdfjFWrVuHZZ59N6xxBEGDz5s3o2rVrus0lhJC8cMstt6BXr1544403UFFRkbLvq6++ytp5CwsL0aVLl6zVTwghbYHVq1fj1VdfxRNPPIELLrgA8+bNw/XXXx+5noKCAspMQvdy0vaYOXMmNmzYgN/+9rcpCrdi1113xaWXXgoA2LJlC2666SbssssuKCsrw+DBg/Gzn/0MjY2NKccMHjwYxx13HJ5//nnsv//+6Nq1K379618DAD7++GOcdtpp6N27N7p164aDDjqolVKv5jA+9thjuOWWW7DjjjuiS5cuOPLII7Fq1aqUsn/7299w2mmnYaeddkJZWRkGDhyIyy67jC7xhJCM8tFHH2HPPfdspXADQL9+/ZL/P/jggzjiiCPQr18/lJWVYY899sB9993X6phEIoEbbrgBAwYMQLdu3XD44Yfj/fffx+DBgzF+/PhkOTmn+7DDDsOzzz6LTz/9FAUFBSgoKMDgwYOxePFiHHDAAQCACRMmJPepeY2UlYSQtsy8efOw3Xbb4dhjj8Wpp56KefPmpey//vrrUVhYiEWLFqXkT5o0CaWlpXjnnXcAmOd0/+Mf/8D48eOTUyirqqpw7rnn4ptvvsn6dZH8QEs3aXM888wz2HnnnTF69Ghn2fPPPx8PPfQQTj31VFx++eVYunQpZsyYgQ8++ABPPvlkStmVK1fizDPPxAUXXICJEydi6NChqK2txejRo7Fx40b85Cc/QZ8+ffDQQw/hhBNOwO9//3ucdNJJKXX8/Oc/R2FhIX7605+ivr4eM2fOxFlnnYWlS5cmyzz++OPYuHEjLrzwQvTp0wevv/467rnnHvz73//G448/npmbRAjp9AwaNAhLlizBu+++i7322sta7r777sOee+6JE044AcXFxXjmmWdw0UUXIZFI4OKLL06WmzZtGmbOnInjjz8eY8aMwTvvvIMxY8Zg8+bNoe34n//5H9TX1+Pf//437rzzTgBAjx49sPvuu+PGG2/Eddddh0mTJuG//uu/ACAp2ykrCSFtmXnz5uHkk09GaWkpzjzzTNx333144403koOJ11xzDZ555hmcd955WLFiBXr27Innn38ev/nNb3DTTTdh+PDh1roXLlyIjz/+GBMmTEBVVVVy2uR7772H1157jcEjOyIBIW2I+vr6AEBw4oknOssuX748ABCcf/75Kfk//elPAwDBCy+8kMwbNGhQACBYsGBBStkpU6YEAIK//e1vybz169cHQ4YMCQYPHhy0tLQEQRAEL774YgAg2H333YPGxsZk2bvuuisAEKxYsSKZt3HjxlZtnTFjRlBQUBB8+umnybzrr78+4CdICInLX/7yl6CoqCgoKioKRo0aFVx55ZXB888/HzQ1NaWUM8mkMWPGBDvvvHMyXVNTExQXFwdjx45NKXfDDTcEAIJx48Yl85Q8fPHFF5N5xx57bDBo0KBW53njjTcCAMGDDz7Yah9lJSGkrfLmm28GAIKFCxcGQRAEiUQi2HHHHYNLL700pdyKFSuC0tLS4Pzzzw++/fbbYIcddgj233//oLm5OVlm9erVreSgSf797ne/CwAEL7/8cjLvwQcfDAAEq1evzuj1kdxD93LSpli3bh0AoGfPns6yzz33HABg6tSpKfmXX345ALRyER8yZAjGjBnTqo4DDzwQ3/ve95J5PXr0wKRJk/DJJ5/g/fffTyk/YcKElOBBynLz8ccfJ/P0eeINDQ34+uuvMXr0aARBgLffftt5XYQQ4sP3v/99LFmyBCeccALeeecdzJw5E2PGjMEOO+yAp59+OllOl0n19fX4+uuvceihh+Ljjz9GfX09AGDRokXYsmULLrroopRzZCsYm2wXZSUhpC0xb948VFZW4vDDDwewdV726aefjkceeQQtLS3JcnvttRemT5+O//3f/8WYMWPw9ddf46GHHkJxcbgzsS7/Nm/ejK+//hoHHXQQAOCtt97KwhWRfEOlm7QpysvLAQDr1693lv30009RWFjYKpJkVVUVKioq8Omnn6bkDxkyxFjH0KFDW+Xvvvvuyf06O+20U0p6u+22AwB8++23ybw1a9Zg/Pjx6N27N3r06IG+ffvi0EMPBYBkB5cQQjLBAQccgCeeeALffvstXn/9dUybNg3r16/Hqaeemhw0/Pvf/47q6mp0794dFRUV6Nu3L372s58B2CaTlKyT8rR3795JOZdpKCsJIW2RlpYWPPLIIzj88MOxevVqrFq1CqtWrcLIkSNRW1vbag73FVdcgeHDh+P111/H9ddfjz322MN5jrVr1+LSSy9FZWUlunbtir59+yb7qZR/HRPO6SZtivLycgwYMADvvvuu9zG+814yEam8qKjImB8EAYCtgvr73/8+1q5di6uuugrDhg1D9+7d8fnnn2P8+PFIJBJpt4EQQiSlpaU44IADcMABB+A73/kOJkyYgMcffxz//d//jSOPPBLDhg3DHXfcgYEDB6K0tBTPPfcc7rzzzrzJJMpKQkhb5YUXXsCXX36JRx55BI888kir/fPmzcMPfvCDZPrjjz/Ghx9+CABYsWKF1zl++MMf4tVXX8UVV1yBESNGoEePHkgkEjjqqKMo/zooVLpJm+O4447D/fffjyVLlmDUqFHWcoMGDUIikcCHH36YtEwDQG1tLerq6jBo0CDnuQYNGoSVK1e2yv/nP/+Z3B+FFStW4F//+hceeughnHPOOcn8hQsXRqqHEELisv/++wMAvvzySzzzzDNobGzE008/neKp8+KLL6Yco2TdqlWrUryCvvnmmxRPHhu2wU9bPmUlIaStMm/ePPTr1w+zZ89ute+JJ57Ak08+iTlz5qBr165IJBIYP348ysvLMWXKFNx666049dRTcfLJJ1vr//bbb7Fo0SJMnz4d1113XTJfKe6kY0L3ctLmuPLKK9G9e3ecf/75qK2tbbX/o48+wl133YVjjjkGADBr1qyU/XfccQcA4Nhjj3We65hjjsHrr7+OJUuWJPMaGhpw//33Y/DgwV4uQjrKEq4s3+r/u+66K1I9hBDi4sUXX0yRNQoV72Lo0KFGmVRfX48HH3ww5ZgjjzwSxcXFrZYSu/fee73a0r17d6NLZPfu3QEAdXV1KfmUlYSQtsimTZvwxBNP4LjjjsOpp57a6m/y5MlYv359Mm7GHXfcgVdffRX3338/brrpJowePRoXXnghvv76a+s5TPIPaN2fJR0LWrpJm2OXXXbB/Pnzcfrpp2P33XfHOeecg7322gtNTU149dVX8fjjj2P8+PG49NJLMW7cONx///2oq6vDoYceitdffx0PPfQQxo4dmwx+EcbVV1+N3/3udzj66KPxk5/8BL1798ZDDz2E1atX4w9/+AMKC6ONSw0bNgy77LILfvrTn+Lzzz9HeXk5/vCHP3hZigghJAqXXHIJNm7ciJNOOgnDhg1LyshHH30UgwcPxoQJE1BbW4vS0lIcf/zxuOCCC7Bhwwb85je/Qb9+/fDll18m66qsrMSll16KX/7ylzjhhBNw1FFH4Z133sGf//xnbL/99s5pPPvttx8effRRTJ06FQcccAB69OiB448/HrvssgsqKiowZ84c9OzZE927d8fIkSMpKwkhbZKnn34a69evxwknnGDcf9BBB6Fv376YN28e9tlnH1x77bUYP348jj/+eADA3LlzMWLECFx00UV47LHHjHWUl5fjkEMOwcyZM9Hc3IwddtgBf/nLX7B69eqsXRdpA+QrbDohLv71r38FEydODAYPHhyUlpYGPXv2DA4++ODgnnvuCTZv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JqGurg7f+973sGDBAq45Swjp0FBeEkJIdpk6dSrGjRuH/fffHwceeCBmzZqFhoaGZDRzQgjRKQgYJcPJunXr0KtXL9TX13eoURkbne16gc53zZ3teoHOec35oLPdZ15vx6ezXXNnu950uPfee/GLX/wCNTU1GDFiBO6++26MHDnSeRzvcX7h/c8fnfnetxtLdz4pKyvD9ddfb3QN6oh0tusFOt81d7brBTrnNeeDznafeb0dn852zZ3tetNh8uTJRndyF7zH+YX3P3905ntPSzchhBBCCCGEEJIlGCGDEEIIIYQQQgjJElS6CSGEEEIIIYSQLEGlmxBCCCGEEEIIyRJUui3ccsstGD16NLp164aKigqvY4IgwHXXXYf+/fuja9euqK6uxocffpjdhmaItWvX4qyzzkJ5eTkqKipw3nnnYcOGDaHHHHbYYSgoKEj5+/GPf5yjFkdn9uzZGDx4MLp06YKRI0fi9ddfDy3/+OOPY9iwYejSpQv23ntvPPfcczlqaWaIcr1z585t9Szb01JRL7/8Mo4//ngMGDAABQUFeOqpp5zHLF68GN/97ndRVlaGXXfdFXPnzs16OzsinU1WAh1fXnY2WQlQXrqgvMwsUb8xEp0bbrih1Xc6bNiw5P7Nmzfj4osvRp8+fdCjRw+ccsopqK2tzWOL2y8umeLzmx/nd7W9QaXbQlNTE0477TRceOGF3sfMnDkTd999N+bMmYOlS5eie/fuGDNmDDZv3pzFlmaGs846C++99x4WLlyIP/3pT3j55ZcxadIk53ETJ07El19+mfybOXNmDlobnUcffRRTp07F9ddfj7feegvDhw/HmDFj8NVXXxnLv/rqqzjzzDNx3nnn4e2338bYsWMxduxYvPvuuzlueTyiXi8AlJeXpzzLTz/9NIctTo+GhgYMHz4cs2fP9iq/evVqHHvssTj88MOxfPlyTJkyBeeffz6ef/75LLe049HZZCXQseVlZ5OVAOWlC8rLzBLnfSPx2HPPPVO+01deeSW577LLLsMzzzyDxx9/HC+99BK++OILnHzyyXlsbfvFJVN8fvPj/q62KwISyoMPPhj06tXLWS6RSARVVVXBL37xi2ReXV1dUFZWFvzud7/LYgvT5/333w8ABG+88UYy789//nNQUFAQfP7559bjDj300ODSSy/NQQvT58ADDwwuvvjiZLql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",
      "text/plain": [
       "<Figure size 1000x300 with 3 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, _ = plt.subplots(1,3,figsize=(10,3))\n",
    "plt.subplot(131)\n",
    "plt.pcolormesh(x,x,obj_bp[0].sum(axis=0).T, cmap='Greys_r')\n",
    "plt.xlabel('y')\n",
    "plt.ylabel('z')\n",
    "plt.title('Coronal')\n",
    "plt.subplot(132)\n",
    "plt.pcolormesh(x,x,obj_bp[0].sum(axis=1).T, cmap='Greys_r')\n",
    "plt.xlabel('x')\n",
    "plt.ylabel('z')\n",
    "plt.title('Sagittal')\n",
    "plt.subplot(133)\n",
    "plt.pcolormesh(obj_bp[0].sum(axis=2).T, cmap='Greys_r')\n",
    "plt.xlabel('x')\n",
    "plt.ylabel('y')\n",
    "plt.title('Axial')\n",
    "fig.tight_layout()"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Clearly theres some blurring going on: $H^T g$ does **not** give the original object $f$ (if it did, then our job would be easy, and there'd be no need for reconstruction algorithms)."
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "pytomographytest",
   "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.9.16"
  },
  "orig_nbformat": 4
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
