Text this: Computing the Dirichlet-to-Neumann map via an integral equation with the adjoint generalized Neumann kernel