Path: chuka.playstation.co.uk!news1.scei.co.jp!usenet From: krd Newsgroups: playstation.ny.program.freetalk Subject: Re: =?iso-2022-jp?B?GyRCIzI+aCVGITwlViVrJE9JLE1XJEokJCEpGyhK?= Date: Sun, 15 Feb 1998 00:14:52 +0900 Organization: PlayStation Net Yarouze Lines: 66 Message-ID: <34E5B4EC.76BC@246.ne.jp> References: <34E45E3B.E47CDE8D@geocities.com> Reply-To: krd@246.ne.jp NNTP-Posting-Host: 202.222.92.164 Mime-Version: 1.0 Content-Type: text/plain; charset=iso-2022-jp Content-Transfer-Encoding: 7bit X-Mailer: Mozilla 3.01 [ja] (Win95; I)  こんにちは、krdです。  たこのすけさんのソースを改造して私が試した範囲では、  テーブルを使用した方がほんの気持ちだけ早い結果でした。  また以下のソースでテーブルをDキャッシュ使用しても、  ほとんど速度は変わりませんでした。  メモリアクセスの速度と乗算器の速度を考えるかぎり、  アセンブラでコーディングすれば、テーブルの方が、  若干高速であり、Dキャッシュを使用すればさらに  速度の向上は可能だと思われます。  但しR3000では、乗除算中に他の処理を行うことが可能  なので、通常のコーディング中では、通常計算のほうが  有利になる可能性が高いと思われます。  以下、私が実験したソースです。 ----------------------------------------------------------- #include #define LOOP 10000000 /* ループ回数 */ #define TABLE_MAX 30 /* xの範囲の上限 */ void main( void ) { u_int table[TABLE_MAX*2]; int time; int i, x, y; /* テーブルの初期化 */ for( i=TABLE_MAX; i<(TABLE_MAX*2); i++ ){ table[i] = (i-TABLE_MAX)*(i-TABLE_MAX); } printf( "二乗速度比較開始¥n" ); /* 通常計算 */ y = 0; time = VSync( -1 ); for( i=0; i-TABLE_MAX)&&(x