安卓支持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)
在此处查找完整的源代码。
log2(x) = log(x) / log(2)
,因此您可以轻松地自行计算(先计算log(2)
)。 - Alexandre C.