Author: Gérard-Julien Salvy