{
  "cells": [
    {
      "cell_type": "markdown",
      "metadata": {},
      "source": [
        "# Rank-Revealing QR\n",
        "\n",
        "Copyright (C) 2026 Andreas Kloeckner\n",
        "\n",
        "<details>\n",
        "<summary>MIT License</summary>\n",
        "Permission is hereby granted, free of charge, to any person obtaining a copy\n",
        "of this software and associated documentation files (the \"Software\"), to deal\n",
        "in the Software without restriction, including without limitation the rights\n",
        "to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n",
        "copies of the Software, and to permit persons to whom the Software is\n",
        "furnished to do so, subject to the following conditions:\n",
        "\n",
        "The above copyright notice and this permission notice shall be included in\n",
        "all copies or substantial portions of the Software.\n",
        "\n",
        "THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n",
        "IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n",
        "FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n",
        "AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n",
        "LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n",
        "OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n",
        "THE SOFTWARE.\n",
        "</details>"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {},
      "source": [
        "**Note:** `scipy.linalg`, not `numpy.linalg`!"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 39,
      "metadata": {
        "collapsed": false,
        "jupyter": {
          "outputs_hidden": false
        }
      },
      "outputs": [],
      "source": [
        "import numpy as np\n",
        "import scipy.linalg as la\n",
        "import matplotlib.pyplot as pt\n",
        "from random import randrange"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {},
      "source": [
        "## Obtain a low-rank matrix"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 60,
      "metadata": {
        "collapsed": false,
        "jupyter": {
          "outputs_hidden": false
        }
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "2.203435127001163e-13\n"
          ]
        }
      ],
      "source": [
        "n = 100\n",
        "A0 = np.random.randn(n, n)\n",
        "U0, sigma0, VT0 = la.svd(A0)\n",
        "print(la.norm((U0*sigma0)@VT0 - A0))\n",
        "\n",
        "sigma = np.exp(-np.arange(n))\n",
        "\n",
        "A = (U0 * sigma).dot(VT0)\n",
        "\n",
        "# Experiment: turn this on and off\n",
        "for _i in range(n//3):\n",
        "    i, j = randrange(0, n), randrange(0, n)\n",
        "    A[i,j] = 15"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {},
      "source": [
        "## Run vanilla QR"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 61,
      "metadata": {},
      "outputs": [],
      "source": [
        "Q, R = la.qr(A)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 62,
      "metadata": {},
      "outputs": [
        {
          "data": {
            "text/plain": [
              "np.float64(2.3065685982308308e-14)"
            ]
          },
          "execution_count": 62,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "la.norm(A - Q@R, 2)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 63,
      "metadata": {},
      "outputs": [
        {
          "data": {
            "text/plain": [
              "np.float64(8.149851810778503e-15)"
            ]
          },
          "execution_count": 63,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "la.norm(Q@Q.T - np.eye(n))"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 64,
      "metadata": {},
      "outputs": [
        {
          "data": {
            "text/plain": [
              "<matplotlib.colorbar.Colorbar at 0x7f8f58685fd0>"
            ]
          },
          "execution_count": 64,
          "metadata": {},
          "output_type": "execute_result"
        },
        {
          "data": {
            "image/png": "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",
            "text/plain": [
              "<Figure size 640x480 with 2 Axes>"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        }
      ],
      "source": [
        "pt.imshow(np.log10(1e-15+np.abs(R)))\n",
        "pt.colorbar()"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {},
      "source": [
        "## Run the pivoted factorization"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 65,
      "metadata": {},
      "outputs": [],
      "source": [
        "Q, R, perm = la.qr(A, pivoting=True)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {},
      "source": [
        "Compute the QR factorization with `pivoting=True`, storing the result in `Q`, `R`, and `perm`:"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 66,
      "metadata": {
        "collapsed": false,
        "jupyter": {
          "outputs_hidden": false
        }
      },
      "outputs": [],
      "source": [
        "Q, R, perm = la.qr(A, pivoting=True)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {},
      "source": [
        "First of all, check that we've obtained a valid factorization"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 67,
      "metadata": {
        "collapsed": false,
        "jupyter": {
          "outputs_hidden": false
        }
      },
      "outputs": [
        {
          "data": {
            "text/plain": [
              "np.float64(1.3360575383107692e-14)"
            ]
          },
          "execution_count": 67,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "la.norm(A[:, perm] - Q@R, 2)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 68,
      "metadata": {
        "collapsed": false,
        "jupyter": {
          "outputs_hidden": false
        }
      },
      "outputs": [
        {
          "data": {
            "text/plain": [
              "np.float64(7.874932444087291e-15)"
            ]
          },
          "execution_count": 68,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "la.norm(Q@Q.T - np.eye(n))"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {},
      "source": [
        "Next, examine $R$:"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 69,
      "metadata": {
        "collapsed": false,
        "jupyter": {
          "outputs_hidden": false
        }
      },
      "outputs": [
        {
          "data": {
            "text/plain": [
              "<matplotlib.colorbar.Colorbar at 0x7f8f58569550>"
            ]
          },
          "execution_count": 69,
          "metadata": {},
          "output_type": "execute_result"
        },
        {
          "data": {
            "image/png": "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",
            "text/plain": [
              "<Figure size 640x480 with 2 Axes>"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        }
      ],
      "source": [
        "pt.imshow(np.log10(1e-15+np.abs(R)))\n",
        "pt.colorbar()"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {},
      "source": [
        "Specifically, recall that the diagonal of $R$ in QR contains column norms:"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 7,
      "metadata": {
        "collapsed": false,
        "jupyter": {
          "outputs_hidden": false
        }
      },
      "outputs": [
        {
          "data": {
            "text/plain": [
              "[<matplotlib.lines.Line2D at 0x7f8f593e1a90>]"
            ]
          },
          "execution_count": 7,
          "metadata": {},
          "output_type": "execute_result"
        },
        {
          "data": {
            "image/png": "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df3112vr1q3HHNPQ0KD77rtP3bp1U1xcnG688UaVlZWZlDhyPPXUU7JYLHrooYdatnGuQ2f//v363ve+p27duik6Olrnn3++1qxZ07LfMAw99thj6tGjh6Kjo5WXl6ft27ebmDh8BQIBPfroo+rTp4+io6PVr18//frXvz7m+UGc7zOzdOlSTZo0SRkZGbJYLFq4cOEx+1tzXisrK3X77bcrISFBiYmJ+v73v6/a2tqzD2fgjL322muGw+EwXnzxRePLL780pk2bZiQmJhplZWVmRwtrEyZMMP76178aGzduNIqKioyrrrrK6N27t1FbW9tyzD333GNkZmYaBQUFxpo1a4wxY8YYF154oYmpw9+qVauMrKwsY9iwYcaDDz7Ysp1zHRqVlZXGOeecY9x1113GypUrjZ07dxoffvihsWPHjpZjnnrqKcPtdhsLFy401q1bZ1x77bVGnz59jPr6ehOTh6cnnnjC6Natm/Huu+8au3btMubPn2/ExcUZv//971uO4Xyfmffff9/4+c9/brz55puGJGPBggXH7G/Neb3yyiuN7OxsY8WKFcann35q9O/f37jtttvOOhul5iyMHj3auO+++1q+DgQCRkZGhjFz5kwTU0We8vJyQ5Lx73//2zAMw6iqqjKioqKM+fPntxyzefNmQ5KxfPlys2KGtZqaGmPAgAHGxx9/bFx66aUtpYZzHTo//elPjYsvvvik+4PBoJGenm48/fTTLduqqqoMp9NpvPrqqx0RMaJcffXVxt13333MthtuuMG4/fbbDcPgfIfK/y41rTmvmzZtMiQZq1evbjnmX//6l2GxWIz9+/efVR5uP50hv9+vwsJC5eXltWyzWq3Ky8vT8uXLTUwWeaqrqyVJycnJkqTCwkI1NjYec+4HDRqk3r17c+7P0H333aerr776mHMqca5D6e2339bIkSN18803KzU1VcOHD9cLL7zQsn/Xrl0qLS095ly73W7l5uZyrs/AhRdeqIKCAm3btk2StG7dOi1btkwTJ06UxPluL605r8uXL1diYqJGjhzZckxeXp6sVqtWrlx5Vp/fZR5oGWoVFRUKBAJKS0s7ZntaWpq2bNliUqrIEwwG9dBDD+miiy7S0KFDJUmlpaVyOBxKTEw85ti0tDSVlpaakDK8vfbaa1q7dq1Wr1593D7Odejs3LlTf/zjH5Wfn6+f/exnWr16tR544AE5HA5NmTKl5Xye6N8UznXbTZ8+XR6PR4MGDZLNZlMgENATTzyh22+/XZI43+2kNee1tLRUqampx+y32+1KTk4+63NPqUGndt9992njxo1atmyZ2VEiUnFxsR588EF9/PHHcrlcZseJaMFgUCNHjtSTTz4pSRo+fLg2btyoOXPmaMqUKSanizyvv/66XnnlFf3jH//QkCFDVFRUpIceekgZGRmc7wjG7aczlJKSIpvNdtwskLKyMqWnp5uUKrLcf//9evfdd7V48WL16tWrZXt6err8fr+qqqqOOZ5z33aFhYUqLy/XBRdcILvdLrvdrn//+9967rnnZLfblZaWxrkOkR49emjw4MHHbDvvvPO0d+9eSWo5n/ybEhqPPPKIpk+frltvvVXnn3++7rjjDv3Hf/yHZs6cKYnz3V5ac17T09NVXl5+zP6mpiZVVlae9bmn1Jwhh8OhESNGqKCgoGVbMBhUQUGBxo4da2Ky8GcYhu6//34tWLBAixYtUp8+fY7ZP2LECEVFRR1z7rdu3aq9e/dy7tto/Pjx2rBhg4qKilpeI0eO1O23397y35zr0LjooouOW5pg27ZtOueccyRJffr0UXp6+jHn2uPxaOXKlZzrM1BXVyer9dhfcTabTcFgUBLnu7205ryOHTtWVVVVKiwsbDlm0aJFCgaDys3NPbsAZzXMuIt77bXXDKfTabz00kvGpk2bjB/+8IdGYmKiUVpaana0sHbvvfcabrfbWLJkiXHgwIGWV11dXcsx99xzj9G7d29j0aJFxpo1a4yxY8caY8eONTF15Pjm7CfD4FyHyqpVqwy73W488cQTxvbt241XXnnFiImJMf7+97+3HPPUU08ZiYmJxltvvWWsX7/euO6665hifIamTJli9OzZs2VK95tvvmmkpKQYP/nJT1qO4XyfmZqaGuOLL74wvvjiC0OS8cwzzxhffPGFsWfPHsMwWnder7zySmP48OHGypUrjWXLlhkDBgxgSndn8Pzzzxu9e/c2HA6HMXr0aGPFihVmRwp7kk74+utf/9pyTH19vfGjH/3ISEpKMmJiYozJkycbBw4cMC90BPnfpYZzHTrvvPOOMXToUMPpdBqDBg0y/vSnPx2zPxgMGo8++qiRlpZmOJ1OY/z48cbWrVtNShvePB6P8eCDDxq9e/c2XC6X0bdvX+PnP/+54fP5Wo7hfJ+ZxYsXn/Df6ClTphiG0brzeujQIeO2224z4uLijISEBGPq1KlGTU3NWWezGMY3llcEAAAIU4ypAQAAEYFSAwAAIgKlBgAARARKDQAAiAiUGgAAEBEoNQAAICJQagAAQESg1AAAgIhAqQEAABGBUgMAACICpQYAAEQESg0AAIgI/x88AO3ILveqDwAAAABJRU5ErkJggg==",
            "text/plain": [
              "<Figure size 640x480 with 1 Axes>"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        }
      ],
      "source": [
        "pt.semilogy(np.abs(np.diag(R)))"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {},
      "source": [
        "* In the case of `scipy`'s transform, diagonal entries of $R$ are guaranteed non-increasing.\n",
        "* But there is a whole science to how to choose the permutations (or other source vectors)\n",
        "    * and what promises one is able to make as a result of that"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {},
      "outputs": [],
      "source": []
    }
  ],
  "metadata": {
    "kernelspec": {
      "display_name": "Python 3 (ipykernel)",
      "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.14.3"
    }
  },
  "nbformat": 4,
  "nbformat_minor": 2
}