2012-06-18 12 views
5

क्या एंड्रॉइड लॉग 2 का समर्थन करता है?
मुझे पहले से ही पता चला है कि एंड्रॉइड लंबे समय तक समर्थन नहीं करता है।क्या Android समर्थन लॉग 2

जब मैं 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) = लॉग (एक्स)/लॉग (2)', ताकि आप आसानी से अपने खुद के (गणना रोल कर सकते हैं 'लॉग (2)' पहले)। –

+0

धन्यवाद, मुझे स्कूल गणित कार्यक्रम से याद है। लेकिन मैं इसे नहीं कर सकता, क्योंकि मैं इसे कुछ संकलन कुंजी बदल सकता हूं। या log2 फ़ंक्शन का समर्थन करने के लिए एक और जादुई तरीका ढूंढें। मुझे डिफ़ॉल्ट रूप से एंड्रॉइड में लॉग 2 का समर्थन करने में दिलचस्पी है। जैसा कि मैंने पहले ही कुछ जादुई चाबियों के साथ कहा था। – Arseniy

उत्तर

4

ऐसा लगता है कि एंड्रॉइड डिफ़ॉल्ट रूप से लॉग 2 फ़ंक्शन का समर्थन नहीं करता है। क्योंकि मुझे इस फ़ंक्शन का निर्धारण करने वाले स्रोत कोड में कहीं भी नहीं मिला है।

7

आपका जादुई तरीका यहां है। मैं यह परीक्षण किया है और काम किया है:

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

तेजी से गणना:

make CXXFLAGS="-Dlog2\(x\)=\(log\(x\)*1.4426950408889634\)" 
संबंधित मुद्दे