Let $A\in\mathbb{R}^{n\times n}$ and suppose that $A$ is of rank $m\leq n$. Moreover suppose we know $u\_1,\ldots, u\_m \in\mathbb{R}^{n\times 1}$ and $v\_1,\ldots, v\_m \in\mathbb{R}^{n\times 1}$ such that 


$
A = \sum\_{k=1}^m u\_kv\_k^T
$


Is there a faster way than $\mathcal{O}(n^2)$ for finding the minimum (or maximum) element of $A$? Here I'm thinking of $m$ being small in comparison to $n$. 


For instance, if $m=1$ it is easy to find the minimum (or maximum) element just by finding the minimum of $u\_1$ and then of $v\_1$, taking $\mathcal{O}(n)$.


For instance, if $m=1$ then to compute the maximum you can do, 


$
\max\{\min u\_1\cdot \min v\_1,\min u\_1\cdot\max v\_1, \max u\_1\cdot\min v\_1,\max u\_1\cdot\max v\_1\}
$


which is $\mathcal{O}(n)$.


Thanks.



Finding minimum (or maximum) element of a low rank matrix. 
Here's a geometrical reformulation of the problem that yields an
$O(n \log n)$ solution for $m=2$ and suggests a context that
may yield good answers for arbitrary fixed $m$.
[**EDIT** but see below for $m=3$ and $m \geq 4$.]


Denote the $i$-th coordinate of $u\_k^{\phantom.}$ and $v\_k^{\phantom.}$ by
$u\_k^{(i)}$ and $v\_k^{(i)}$ respectively.
Consider the $n$ vectors in $V := {\bf R}^m$ given by
$$
x\_i = (u\_1^{(i)}, u\_2^{(i)}, u\_3^{(i)}, \ldots, u\_n^{(i)})
$$
($i=1,2,\ldots,n$), and the $n$ dual vectors
$$
y\_j = (v\_1^{(j)}, v\_2^{(j)}, v\_3^{(j)}, \ldots, v\_n^{(j)}) \in V^\*.
$$
($j=1,2,\ldots,n$). Then the $(i,j)$ entry of $A$ is $y\_j(x\_i)$.
Thus the problem asks for the minimum or maximum of $y\_j(x\_i)$
as $i,j$ range independently over $\lbrace 1, 2, \dots, n \rbrace$.


Note that given $A$ there are many choices of $u\_k$ and $v\_k$, but
the choice is tantamount to a choice of basis on $V$ and of dual
basis on $V^\*$, so geometrically our $y\_j(x\_i)$ problem depends only
on $A$.


Now it's clear that the minimizing and maximizing $x\_i, y\_j$
must be vertices of the convex hull of $\lbrace x\_i \rbrace$ and
$\lbrace y\_j \rbrace$ respectively. This recovers the known solution
for $m=1$, when any bounded convex subset of $V$ has (at most) two
vertices, which can be found in $O(n)$ comparisons.


For $m=2$, it is still known how to find the vertices of the convex hull
(in cyclic order) in $O(n \log n)$ steps [see for instance the
["Convex hull algorithms" Wikipage](http://en.wikipedia.org/wiki/Convex_hull_algorithms) for references]. Once we know
the vertices of the convex hull of the $x\_i$, we can for each $j$
find the minimal and maximal $y\_j(x\_i)$ in $O(\log n)$ steps by bisection,
making the overall computational cost still $O(n \log n)$.


Finding the convex hull and its structure for $m=3$, and larger fixed $m$,
is harder, but at least there's some literature on this problem, and
experts who can suggest good ways to proceed.


**EDIT** Alas the current state of the art for computing convex hulls
apparently limits this approach to $m=2$ and maybe $m=3$.


The Mathworld entry for
"[Convex Hull](http://mathworld.wolfram.com/ConvexHull.html)"
reports on an $O(n \log n)$ algorithm also in dimension 3, referring to



> 
> Skiena, S. S. "Convex Hull." $\S$8.6.2 in *The Algorithm Design Manual*. New 
>  York: Springer-Verlag, pp. 351–354, 1997.
> 
> 
> 


But this still leaves open the question of computing in time $\tilde O(n)$
a data structure that will find the extreme point in each direction in
only $n^{o(1)}$ operations, or even in significantly less than
the number of vertices of the convex hull. Still, if at least
one of $\lbrace x\_i \rbrace$ and $\lbrace y\_j \rbrace$ has a convex hull
with significantly fewer than $n$ vertices then this will improve on the
exhaustive search over $n^2$ entries of the matrix.


Once $m \geq 4$ it seems that it is not even known how to compute
the set of vertices of the convex hull in as few as $n^2$ operations;
unless the number of operations can be brought significantly below $n^2$,
this means that the technique described here is limited to $m=2$ and maybe $m=3$.
**TIDE**


All of this analysis assumes that we don't run into difficulties like
$m=1$, $u\_1 = (-1,2.54)$, $v\_1 = (1,-.3937)$, where there are
two or more very close candidates for the minimum. To deal with that,
we might assume that we can do exact arithmetic (perhaps the coordinates
are quantized with fixed denominator), or tolerate an error that can be
brought below $\epsilon$ in $O(\log(1/\epsilon))$ steps.


