  The following notion of growth rate can be seen as a generalization of joint
spectral radius: Given a bilinear map $*:\mathbb R^d\times\mathbb R^d\to\mathbb
R^d$ with nonnegative coefficients and a nonnegative vector $s\in\mathbb R^d$,
denote by $g(n)$ the largest possible entry of a vector obtained by combining
$n$ instances of $s$ using $n-1$ applications of $*$. Let $\lambda$ denote the
growth rate $\limsup_{n\to\infty} \sqrt[n]{g(n)}$, Rosenfeld showed that the
problem of checking $\lambda\le 1$ is undecidable by reducing the problem of
joint spectral radius.
  In this article, we provide a simpler reduction using the observation that
matrix multiplication is actually a bilinear map. Suppose there is no
restriction on the signs, an application of this reduction is that the problem
of checking if the system can produce a zero vector is undecidable by reducing
the problem of checking the mortality of a pair of matrices. This answers a
question asked by Rosenfeld. Another application is that the problem does not
become harder when we introduce more bilinear maps or more starting vectors,
which was remarked by Rosenfeld.
  It is known that if the vector $s$ is strictly positive, then the limit
superior $\lambda$ is actually a limit. However, we show that when $s$ is only
nonnegative, the problem of checking the validity of the limit is undecidable.
This also answers a question asked by Rosenfeld.
  We provide a formula for the growth rate $\lambda$. A condition is given so
that the limit is always ensured. This actually gives a simpler proof for the
limit $\lambda$ when $s>0$. An important corollary of the formula is the
computability of the growth rate, which answers another question by Rosenfeld.
Also, we relate the finiteness property of a set of matrices to a special
structure called "linear pattern" for the problem of bilinear system.
