Input: individual .
) //Determine candidate new neighbors for v.
) .
) if   then
)foreach  in  do
)  Compute the bias due to degree constraints:
         
)  Compute the bias due to the bivariate degree distribution:
         
( )   Compute the bias due to bivariate attribute distributions:
         
)  Compute propensity of edge as the product of the above three biases:
         
)  Normalize propensity to obtain a distribution over :
         
)  choose from randomly according to distribution .
) //Add the edge connecting to .
) 
Listing 5: Procedure AddEdge.