2012-06-18 5 views
5

Androidはlog2をサポートしていますか?
私はすでにアンドロイドdoesntサポート長いdoubleを見つける。Androidはlog2をサポートしていますか

私はエラー以下、私が受け取ったcdce3.cをコンパイルしようとすると:

g++.dg/cdce3.C: In function 'void mlog2f(int)': 
g++.dg/cdce3.C:87: error: 'log2f' was not declared in this scope 
g++.dg/cdce3.C: In function 'void mlog2(int)': 
g++.dg/cdce3.C:87: error: 'log2' was not declared in this scope 
g++.dg/cdce3.C: In function 'void olog2f(int)': 
g++.dg/cdce3.C:108: error: 'log2f' was not declared in this scope 
g++.dg/cdce3.C: In function 'void olog2(int)': 
g++.dg/cdce3.C:108: error: 'log2' was not declared in this scope 

cdce3.cのソースコードの一部:

#define DEF_MATH_FUNC(prefix, name) NI void prefix##name##f (int x) \ 
{ \ 
    float yy = name##f ((float) x); \ 
    STORE_RESULT; \ 
} \ 
NI void prefix##name (int x) \ 
{ \ 
    double yy = name ((double)x); \ 
    STORE_RESULT; \ 
} 
#endif 
......... 
DEF_MATH_FUNC (m,log2) 
DEF_MATH_FUNC (o,log2) 

がここにフルsource codeを見つけます。

+5

'のLOG2(X)=ログ(X)/ログ(2)'、あなたが簡単に独自の(計算をロールバックすることができますので、最初に 'log(2)')。 –

+0

ありがとう、私は学校の数学のプログラムから覚えています。しかし、私はそれを行うことはできません。すべての編集キーを変更できるからです。あるいは、log2機能をサポートする別の魔法の方法を見つけてください。私はデフォルトでAndroidのlog2をサポートすることに興味があります。私は既に多分いくつかの魔法の鍵で言った​​ように。 – Arseniy

答えて

4

Androidはデフォルトでlog2機能をサポートしていないようです。なぜなら、私はこの機能を決定するソースコードのどこにも見つからないからです。

7

あなたの魔法はここにあります。私はそれをテストし、働いてきた:

make CXXFLAGS="-Dlog2\(x\)=\(log\(x\)/log\(2\)\)" 

速く計算:

make CXXFLAGS="-Dlog2\(x\)=\(log\(x\)*1.4426950408889634\)" 
関連する問題