|
===================================== 〔語彙分解〕的な部分一致の検索結果は以下の通りです。 ・ 演算 : [えんざん] 1. (n,vs) operation ・ 子 : [こ, ね] (n) first sign of Chinese zodiac (The Rat, 11p.m.-1a.m., north, November) ・ 強 : [きょう] 1. (n-suf) a little over 2. a little more than ・ 強度 : [きょうど] 1. (adj-na,n) strength 2. intensity ・ 度 : [ど] 1. (n,n-suf) (1) degree (angle, temperature, scale, 2. (2) counter for occurrences 3. times 4. (3) strength (of alcohol) 5. (4) (uk) (pref) very 6. totally ・ 低減 : [ていげん] 1. (n,vs) decrease 2. reduction 3. fall 4. depreciation 5. mitigation ・ 減 : [げん] (suf) reduction
演算子強度低減(英: Strength reduction)とはコンパイラ最適化手法の一つで、コストの高い演算式を等価でコストの低い演算式に置き換えるものである。 演算子強度低減では、数学的な同一性を用いて低速な演算式を高速な演算式で置換する。置換したことによるコストと利点は対象の CPU や、時には周辺のコード(CPU 内の機能ユニットが利用できるかどうか)に大きく依存する。 * 整数の乗除算を 2 の累乗と論理シフトや算術シフトで置き換える〔 C のような言語では、整数の除算は切捨てであり、負の数に対して特殊な扱いが必要になる〕。 * 整数の乗算をシフト、加減算によって置き換える 帰納変数の強度低減、再帰的な強度低減では、自動的に変化するような結果を返す関数を以前の結果を用いて簡単な演算結果に置き換える。これは、手続き型プログラミングでは、ループ変数に関連する式に適用でき、宣言型プログラミングでは再帰呼び出しの引数に適用できる。 例えば、 f x = ... (2 * x) ... (f (x + 1)) ... は、以下のようになる。 f x = f' x (2 * x) ここで f' x z = ... z ... (f' (x + 1) (2 * z)) ... である。 このようにして、高価な演算 (2 * x) は再帰的関数 f' でコストの低い (2 * z) に置換された。いかなる f' の呼び出しに関しても、z = 2 * x との等価性を維持している。 ==脚注== 〔 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「演算子強度低減」の詳細全文を読む スポンサード リンク
|