code: def fill_A(A, right_eigenvectors):
      
      num_micro, num_eigen = right_eigenvectors.shape
  
      A = A.copy()
  
      # compute 1st column of A by row sum condition
      A[1:, 0] = -1 * A[1:, 1:].sum(1)
  
      # compute 1st row of A by maximum condition
      A[0] = -1 * dot(right_eigenvectors[:, 1:].real, A[1:]).min(0)
  
      # rescale A to be in the feasible set
      A /= A[0].sum()
  
      return A
docs: Construct feasible initial guess for transformation matrix A.
  
  
      Parameters
      ----------
      A : ndarray
          Possibly non-feasible transformation matrix.
      right_eigenvectors :  ndarray
          Right eigenvectors of transition matrix
  
      Returns
      -------
      A : ndarray
          Feasible transformation matrix.