常定です。

> 私の環境で実行した結果と常定さんの実行結果には、
> 違いがあるような気がします。
> 私の場合、require "complex"の結果が true になります。
> あと、Complex(2, 3) としても、Complex(nil, nil)が
> 帰ってきます。

 解決になるかどうかわかりませんが、1つ tipsを。
require("gsl")とやると、自動的に include GSL
となります。
# 私が無精で GSL::を省きたいため、こういう
# ふうにしています。
 勝手に include されるのが嫌だという場合は、
require("rbgsl")とします。これだとどうでしょう?