.NET FrameworkのMath関数は、主に倍精度浮動小数点数で動作し、単精度(浮動小数点)のオーバーロードはありません。高性能シナリオで単精度データを処理する場合、これにより不要なキャストが発生し、必要以上の精度で関数が計算されるため、パフォーマンスにある程度の影響があります。
この追加のCPUオーバーヘッドの一部を回避する方法はありますか?たとえば、基礎となるFPU命令を直接呼び出すfloatオーバーロードを備えたオープンソースの数学ライブラリはありますか?(私の理解では、これにはCLRでのサポートが必要です)。実際、最近のCPUに単精度命令があるかどうかはわかりません。
この質問は、シグモイド関数の最適化に関するこの質問に部分的に触発されています。