ダブルディスパッチ
↑ http://www.infoq.com/jp/articles/DoubleDispatch_0829
↑ 現在のcrubyには複素数クラスも組込みで存在するので、それが気になるなら四元数クラスなどなんでもよい。