Performs the outer-product of vectors vec1 and vec2
and adds it to the matrix input.
Optional values beta and alpha are scaling factors on the
outer product between vec1 and vec2 and the added matrix
input respectively.
$$
\mbox{out} = \beta\ \mbox{input} + \alpha\ (\mbox{vec1} \otimes \mbox{vec2})
$$
If vec1 is a vector of size n and vec2 is a vector
of size m, then input must be
broadcastable with a matrix of size
\((n \times m)\) and out will be a matrix of size
\((n \times m)\).
For inputs of type FloatTensor or DoubleTensor, arguments beta and
alpha must be real numbers, otherwise they should be integers