Microsoft DirectX 8.0 (Visual Basic)

log

最低 1/220 の完全浮動小数点精度で log2(x) のサポートを提供する。

log   vDest, vSrc0

レジスタ

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) が生成される。