see http://nsz.repo.hu/libm