code: public static void outerProd(ZMatrixRMaj x, ZMatrixRMaj y, ZMatrixRMaj A ) {
          int m = A.numRows;
          int n = A.numCols;
  
          int index = 0;
          for( int i = 0; i < m; i++ ) {
              double realX = x.data[i*2];
              double imagX = x.data[i*2+1];
  
              int indexY = 0;
              for( int j = 0; j < n; j++ ) {
                  double realY = y.data[indexY++];
                  double imagY = y.data[indexY++];
  
                  A.data[index++] = realX*realY - imagX*imagY;
                  A.data[index++] = realX*imagY + imagX*realY;
              }
          }
      }
docs: <p>
  Sets A &isin; &real; <sup>m &times; n</sup> equal to an outer product multiplication of the two
  vectors.  This is also known as a rank-1 operation.<br>
  <br>
  A = x * y<sup>T</sup>
  where x &isin; &real; <sup>m</sup> and y &isin; &real; <sup>n</sup> are vectors.
  </p>
  <p>
  Which is equivalent to: A<sub>ij</sub> = x<sub>i</sub>*y<sub>j</sub>
  </p>
  
  @param x A vector with m elements. Not modified.
  @param y A vector with n elements. Not modified.
  @param A A Matrix with m by n elements. Modified.