Author: N. S. Koshlyakov, M. M. Smirnov, E. B. Gliner