Microsoft DirectX 8.0 (Visual Basic) |
最低 1/220 の完全浮動小数点精度で log2(x) のサポートを提供する。
log vDest, vSrc0
SetDestReg(); SetSrcReg(0); float v = ABSF(m_Source[0].w); if (v != 0) { m_TmpReg.x = m_TmpReg.y = m_TmpReg.z = m_TmpReg.w = (float)(log(v)/log(2)); } else { m_TmpReg.x = m_TmpReg.y = m_TmpReg.z = m_TmpReg.w = minUS_INFINITY(); } WriteResult();
このマクロは 12 の命令スロットを使用する。
この命令では符号ビットを無視したスカラー ソース .w が受け入れられる。結果は 4 つのすべてのチャネルに複製される。
入力指数の範囲は、-128 から 128 まででなければならない。近似エラーは、絶対エラーの 1/220 より小さく、1.0 <= t.y < 2.0 の範囲内になければならない。ソースが 0 の場合は、(-infinity,-infinity,-infinity,-infinity) が生成される。