मैं एक मूल्य के साइन और सह-साइन दोनों को एक साथ गणना करना चाहता हूं (उदाहरण के लिए एक रोटेशन मैट्रिक्स बनाने के लिए)। बेशक, मैं उन्हें एक के बाद एक अलग-अलग तरह से गणना कर सकता था a = cos(x); b = sin(x);, लेकिन मुझे आश्चर्य है कि क्या दोनों मूल्यों की आवश्यकता होने पर एक तेज़ तरीका है।
संपादित करें: अब तक के उत्तरों को संक्षेप में प्रस्तुत करने के लिए:
व्लाद ने कहा, कि
FSINCOSदोनों के लिए एक हीकमांडकंप्यूटिंग है (लगभग एक ही समय मेंFSINअकेलेकॉल करने के लिए)जैसा कि ची ने देखा, यह अनुकूलन कभी-कभी कंपाइलर द्वारा किया जाता है (अनुकूलन झंडे का उपयोग करते समय)।
कैफे ने बताया, यह कार्य
sincosऔरsincosfशायद उपलब्ध हैं और सीधे शामिल करके ही बुलाया जा सकता हैmath.hएक नज़र तालिका का उपयोग करने के tanascius दृष्टिकोण विवादास्पद है। (हालांकि मेरे कंप्यूटर पर और एक बेंचमार्क परिदृश्य में यह
sincos32-बिट फ़्लोटिंग पॉइंट के लिए लगभग एक ही सटीकता के साथ3 गुना तेज़ी से चलता है)।जोएल गुडविन काफी अच्छे सटीक (मेरे लिए, यह और भी तेज है तो टेबल लुक-अप) के साथ एक चरम तेजी से सन्निकटन तकनीक के एक दिलचस्प दृष्टिकोण से जुड़ा हुआ है।
sinx ~ x-x^3/6और cosx~1-x^2/4अनुमानों के रूप में आप सटीकता की तुलना में अधिक गति के बारे में परवाह है। आप सटीकता पर और अधिक भार डालते हुए या तो श्रृंखला में शब्दों को जोड़ सकते हैं ( en.wikipedia.org/wiki/Taylor_series taylor श्रृंखला को चालू करने के लिए नीचे स्क्रॉल करें।) ध्यान दें कि यह किसी भी फ़ंक्शन को अनुमानित करने का एक सामान्य तरीका है जिसे आप अलग-अलग समय पर चाहते हैं n। इसलिए यदि आपके पास कुछ बड़ा कार्य है जो कि साइन और कोजाइन का है तो आपको एक बहुत बड़ी गति मिलेगी यदि आप इसे पाप के बजाय अनुमानित करते हैं, तो कॉस स्वतंत्र रूप से।
xकिसी बिंदु के करीब मूल्यों की आवश्यकता है x_0, तो x_00. के बजाय अपनी टेलर श्रृंखला का विस्तार करें । यह आपको उत्कृष्ट सटीकता प्रदान करेगा x_0लेकिन निकटवर्ती खराब परिणाम जाओ। आपने शायद सोचा कि सटीकता बेकार हो जाती है क्योंकि आपने दिए गए asnwer को देखा और इसे मूल्यों से दूर करने की कोशिश की 0। यह जवाब पाप के साथ है, क्योंकि कॉस का विस्तार लगभग 0.