1
浮動小数点数は浮動小数点数になります。スカラーを正規化するためのエレガントな方法が必要です(並べ替え)
floatが1より小さいか-1より大きく、0以外の場合は、1または-1に丸める必要があります。
私はトリックを行う機能を持っていますが、これを行うエレガントなインラインmathyの方法があると感じていますが、私はちょうど1つを思いついていません。
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static float NormalizeScalar(float input)
{
if ((input > -1) && (input < 1))
return (input == 0) ? 0 : (input < 0) ? -1 : 1;
return input;
}
完璧でエレガントです。車輪を再発明しないといいですね。 –
これは本当に「スカラーを完全に正規化する」でしょう。私の解決策として、**(Math.Abs(input)> 1?input:Math.Sign(input))**を使うことができます。私が実行したベンチマークに興味のある人は、[ここ](http://pastebin.com/v8Wstvu3)を見つけることができます。結果:1:** 350 **、2:** 400 **、3:** 400 **よりエレガントなアプローチを使用するのが部分的に遅いことを示す。ありがとうございました! – WHol