  NonlinearSchrodinger.jl is a Julia package with a simple interface for
studying solutions of nonlinear Schr\"odinger equations (NLSEs). In
approximately ten lines of code, one can perform a simulation of the cubic NLSE
using one of 32 algorithms, including symplectic and Runge-Kutta-Nystr\"om
integrators up to eighth order. Furthermore, it is possible to compute
analytical solutions via a numerical implementation of the Darboux
transformation for extended NLSEs up to fifth order, with an equally simple
interface. In what follows, we review the fundamentals of solving this class of
equations numerically and analytically, discuss the implementation, and provide
several examples.
