From: Kenta Murata Date: 2008-04-13T02:11:38+09:00 Subject: [ruby-dev:34367] Re: ComplexFloat むらたです. 2008/4/12 Tanaka Akira : > > 現在の Complex は実部が Float で虚部が Rational のような状態になれます. > > ですから,Complex に対してそのような最適化を行うとすると,成分の型検査を > > 実部・虚部に分けて毎回行う必要があります.ComplexFloat を導入すると, > > データフロー解析で確実に ComplexFloat になることが分かっている部分は > > 型検査なしで最適化できます. > > Ruby プログラムに対するデータフロー解析ってどうやるんですか? ComplexFloat が組み込みで提供されていれば,ComplexFloat が生成される ポイントは (関数の上書きがされていない条件下で) 確定するはずです.さらに, ComplexFloat を伴う演算も組み込みのものは事前に知っているわけですから, ComplexFloat が絡む演算の流れをコンパイラが追うことは可能だと思います. FIxnum,Bignum,Rational,そして Float の演算も同様の方法で最適化可能 だと思います. -- Kenta Murata OpenPGP FP = FA26 35D7 4F98 3498 0810 E0D5 F213 966F E9EB 0BCC