torch.addr
torch.addr(input, vec1, vec2, *, beta=1, alpha=1, out=None) -> Tensor
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.
  \text{out} = \beta\ \text{input} + \alpha\ (\text{vec1} \otimes
  \text{vec2})

If "beta" is 0, then "input" will be ignored, and nan and inf
   in it will not be propagated.
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).
Parameters:
      * input (Tensor) -- matrix to be added
  * **vec1** (*Tensor*) -- the first vector of the outer product

  * **vec2** (*Tensor*) -- the second vector of the outer product

Keyword Arguments: