Author: Mark M. Meerschaert