.NET大ブーム5 計画的陳腐化 ヤッパJavaカDelphi使ットケ
■ このスレッドは過去ログ倉庫に格納されています
0356Delフサギコ ◆VzDeLphI
NGNG,,,,,,,,,,,,,,,∧,,∧ /ヒント逝っても、
〜′,,,,,,,,,,ミ,,゚Д゚彡< これほどバカレスがつくとは...
UU"""" U ⊃ \いくら厨房に神扱いされても
そりゃ、名無し#タンも愛想つかすわな...
アルゴリズム辞典みてPowerのDouble版を作ってみたさ。
function Power(const Base: Double; const Exponent: Integer): Double register;
begin
if Exponent < 0 then Result := 1 / Power(Base, -Exponent)
else if Exponent = 0 then Result := 1
else if odd(Exponent) then Result := Power(sqr(Base), Exponent div 2) *Base
else Result := Power(sqr(Base), Exponent div 2);
end;
こんな関数作って測定、俺のマシンD6,Pen3,700MHzで
元の時間 CPUTime=16.333sec
が CPUTime=10.625sec
と高速化された
DelphiのPower関数は元々Extended型対応なの。
型 範囲 有効桁数 サイズ(バイト数)
Double 5.0 x 10^-324 .. 1.7 x 10^308 15〜16 8
Extended 3.6 x 10^-4951 .. 1.1 x 10^4932 19〜20 10
これを計算しているんだから時間が余計にかかって当然。
実数型に求められているのは高速な演算ではなくて
正確な計算結果だという思想から実装されてる。わけだ。
■ このスレッドは過去ログ倉庫に格納されています