में इनलाइन विस्तार मैं सी # में अपने डायरेक्टएक्स 3 डी इंजन के लिए गणित पुस्तकालय पर काम कर रहा हूं। मैं स्लिम डीएक्स का उपयोग कर रहा हूं, जो एक अद्भुत और शक्तिशाली लाइब्रेरी है। स्लिमडैक्स काफी गणित वर्ग प्रदान करता है, लेकिन वे वास्तव में मूल डी 3 डीएक्स ऑब्जेक्ट्स के आसपास रैपर होते हैं, इसलिए ऑब्जेक्ट्स स्वयं बहुत तेज होते हैं, इंटरऑप मुझे लगता है, क्योंकि मेरा प्रबंधित सी # कोड उन्हें बेहतर बनाता है।सी #
मेरा विशिष्ट प्रश्न फ्लोटिंग-पॉइंट तुलना के साथ करना है। तरह-का प्रामाणिक तरीका एक एप्सिलॉन मूल्य को परिभाषित करने के लिए, और निकटता निर्धारित करने के लिए है, तो जैसे फ्लोटिंग प्वाइंट मूल्यों के बीच अंतर करने के लिए मूल्य की तुलना है:
float Epsilon = 1.0e-6f;
bool FloatEq(float a, float b)
{
return Math.Abs(a - b) < Epsilon
}
समारोह कॉल उपरि वास्तविक तुलना दलदल हैं, तो यह मामूली फ़ंक्शन सी ++ में रेखांकित किया जाएगा, क्या सी # कंपाइलर ऐसा करेगा? क्या सी # कंपाइलर को बताने का कोई तरीका है कि मैं एक विधि को रेखांकित करना चाहता हूं?
JIT इनलाइनिंग, जब डिबगर के बाहर चलाने के बारे में काफी बुद्धिमान हो सकता है। उदाहरण के लिए, यह 'Math.Abs' विधि को स्वयं रेखांकित कर सकता है। –
अब सवाल यह है: क्या इस मामले में यह होगा (अनुकूलित कोड और कोई डीबगर नहीं मानते)? – Mau
@ मऊ: संपादन ... –