http://www.math.ias.edu/doc/ruby-docs-1.8.2/refm-ja/refm120.html#L002218