Author: V. M. Cherkassky