मैं @ जसन एस द्वारा प्रदान किए गए उत्तर का विस्तार करना चाहूंगा। @ जैसन एस द्वारा वर्णित डोमेन उपखंड विधि का उपयोग करना और मैकलॉरिन श्रृंखला सन्निकटन का उपयोग करना, तन पर औसत (2-3) एक्स स्पीडअप (), पाप () , cos (), atan (), asin (), और acos () कार्यों के साथ gcc संकलक में बनाया गया -O3 अनुकूलन प्राप्त किया गया था। नीचे बताए गए सबसे अच्छे मैकलॉरीन श्रृंखला के अनुमानित कार्यों में दोगुनी सटीकता हासिल की गई है।
टैन (), पाप (), और कॉस () फ़ंक्शंस के लिए, और सरलता के लिए, 0 से 2pi + pi / 80 डोमेन को एक समान 81 अंतराल में pi / 80, 3pi / 80 पर "एंकर पॉइंट्स" के साथ विभाजित किया गया था। ..., 161pi / 80। फिर इन 81 लंगर बिंदुओं के टैन (), पाप (), और कॉस () का मूल्यांकन किया गया और संग्रहीत किया गया। ट्रिगर आइडेंटिटी की मदद से, प्रत्येक ट्रिगर फ़ंक्शन के लिए एक एकल मैकलॉरीन श्रृंखला फ़ंक्शन विकसित किया गया था। Angle इन्फिनिटी के बीच कोई भी कोण ट्रिगर सन्निकटन कार्यों के लिए प्रस्तुत किया जा सकता है क्योंकि फ़ंक्शन पहले इनपुट कोण को 0 से 2pi डोमेन में अनुवाद करते हैं। यह अनुवाद ओवरहेड सन्निकटन ओवरहेड में शामिल है।
इसी तरह के तरीकों को एटैन (), असिन (), और एसोस () कार्यों के लिए विकसित किया गया था, जहां -1.0 से 1.1 डोमेन को एक-बराबर 21 अंक के साथ -19/20, -17/20, एंकर पॉइंट्स में विभाजित किया गया था। ।, 19/20, 21/20। तब इन 21 लंगर बिंदुओं में से केवल atan () ही संग्रहीत किया गया था। फिर, उलटा ट्रिगर पहचान की मदद से, एटैन () फ़ंक्शन के लिए एक एकल मैकलॉरीन श्रृंखला फ़ंक्शन विकसित किया गया था। अतन () फ़ंक्शन के परिणाम तब आसन्न () और एकोस () के लगभग उपयोग किए गए थे।
चूँकि सभी व्युत्क्रम ट्रिगर सन्निकटन कार्य एटन () सन्निकटन फ़ंक्शन पर आधारित होते हैं, किसी भी दोहरे-सटीक तर्क इनपुट मान की अनुमति है। हालाँकि, असिन () और एसीओस () सन्निकटन कार्यों के लिए तर्क इनपुट को value 1 डोमेन से अलग किया जाता है क्योंकि इसके बाहर कोई भी मूल्य अर्थहीन है।
अनुमानित कार्यों का परीक्षण करने के लिए, एक अरब यादृच्छिक फ़ंक्शन मूल्यांकन का मूल्यांकन करने के लिए मजबूर किया गया (यानी, -O3 अनुकूलन कंपाइलर को कुछ का मूल्यांकन करने की अनुमति नहीं दी गई क्योंकि कुछ गणना किए गए परिणाम का उपयोग नहीं किया जाएगा।) एक अरब का मूल्यांकन करने के पूर्वाग्रह को हटाने के लिए। यादृच्छिक संख्याओं और परिणामों को संसाधित करना, किसी भी ट्रिगर या व्युत्क्रम ट्रिगर फ़ंक्शन का मूल्यांकन किए बिना एक रन की लागत को पहले प्रदर्शन किया गया था। इस पूर्वाग्रह को वास्तविक फ़ंक्शन मूल्यांकन समय के अधिक प्रतिनिधि सन्निकटन प्राप्त करने के लिए प्रत्येक परीक्षण से घटाया गया था।
तालिका 2. संकेतित फ़ंक्शन या फ़ंक्शन को निष्पादित करने में सेकंड में बिताया गया समय एक अरब बार। अनुमान तालिका 1 में शेष पंक्तियों से तालिका 1 की पहली पंक्ति में दिखाए गए एक अरब यादृच्छिक संख्याओं के मूल्यांकन की समय लागत को घटाकर प्राप्त किए जाते हैं।
तन में समय व्यतीत होता है (): १15.०५१५ १ in.२५४५
TAN3 (): 5.93853 6.02349 में समय व्यतीत हुआ
TAN4 (): 6.72216 6.99134 में समय व्यतीत हुआ
पाप () और कॉस (): 19.4052 19.4311 में बिताया गया समय
SINCOS3 (): 7.85564 7.92844 में समय व्यतीत हुआ
SINCOS4 (): 9.36672 9.57946 में समय व्यतीत हुआ
Atan में बिताया गया समय (): 15.7160 15.6599
ATAN1 (): 6.47800 6.55230 में समय व्यतीत हुआ
ATAN2 (): 7.26730 7.24885 में समय व्यतीत हुआ
ATAN3 (): 8.15299 8.21284 में समय व्यतीत हुआ
असिन () और एकोस (): 36.8833 36.9496 में समय व्यतीत हुआ
ASINCOS1 (): 10.1655 9.78479 में समय व्यतीत हुआ
ASINCOS2 (): 10.6236 10.6000 में समय व्यतीत हुआ
ASINCOS3 (): 12.8430 12.0707 में समय व्यतीत हुआ
(अंतरिक्ष को बचाने के हित में, तालिका 1 को नहीं दिखाया गया है।) तालिका 2 प्रत्येक सन्निकटन समारोह के एक अरब मूल्यांकन के दो अलग-अलग रनों के परिणामों को दिखाती है। पहला कॉलम पहला रन और दूसरा कॉलम दूसरा रन है। फ़ंक्शन नामों में संख्या '1', '2', '3' या '4' विशेष ट्रिगर या व्युत्क्रम ट्रिगर सन्निकटन का मूल्यांकन करने के लिए मैकलॉरीन श्रृंखला फ़ंक्शन में उपयोग किए जाने वाले शब्दों की संख्या को इंगित करते हैं। SINCOS # () का अर्थ है कि एक ही समय में पाप और कॉस दोनों का मूल्यांकन किया गया था। इसी तरह, ASINCOS # () का अर्थ है कि एक ही समय में असिन और एको दोनों का मूल्यांकन किया गया था। एक ही समय में दोनों मात्राओं के मूल्यांकन में बहुत अधिक अतिरिक्त ओवरहेड होता है।
परिणाम बताते हैं कि शब्दों की संख्या बढ़ने से निष्पादन समय थोड़ा बढ़ जाता है जैसा कि अपेक्षित होगा। यहां तक कि सबसे छोटी शर्तों ने तन () सन्निकटन को छोड़कर हर जगह लगभग 12-14 अंक सटीकता दी, जहां इसका मूल्य ± अनंत के करीब पहुंचता है। एक भी तन () समारोह वहाँ समस्याओं के लिए उम्मीद करेंगे।
इसी तरह के परिणाम यूनिक्स में एक उच्च अंत मैकबुक प्रो लैपटॉप और लिनक्स में एक उच्च अंत डेस्कटॉप कंप्यूटर पर प्राप्त किए गए थे।