  I propose a way to use non-Euclidean norms to formulate a QR-like
factorization which can unlock interesting and potentially useful properties of
non-Euclidean norms - for example the ability of $l^1$ norm to suppresss
outliers or promote sparsity. A classic QR factorization of a matrix
$\mathbf{A}$ computes an upper triangular matrix $\mathbf{R}$ and orthogonal
matrix $\mathbf{Q}$ such that $\mathbf{A} = \mathbf{QR}$. To generalize this
factorization to a non-Euclidean norm $\| \cdot \|$ I relax the orthogonality
requirement for $\mathbf{Q}$ and instead require it have condition number
$\kappa \left ( \mathbf{Q} \right ) = \| \mathbf{Q} ^{-1} \| \| \mathbf{Q} \|$
that is bounded independently of $\mathbf{A}$. I present the algorithm for
computing $\mathbf{Q}$ and $\mathbf{R}$ and prove that this algorithm results
in $\mathbf{Q}$ with the desired properties. I also prove that this algorithm
generalizes classic QR factorization in the sense that when the norm is chosen
to be Euclidean: $\| \cdot \|=\| \cdot \|_2$ then $\mathbf{Q}$ is orthogonal.
Finally I present numerical results confirming mathematical results with $l^1$
and $l^{\infty}$ norms. I supply Python code for experimentation.
