मैं अपने Mandelbrot screensaver के एक नए संस्करण पर काम कर रहा हूं और मैं फ्लोटिंग पॉइंट सटीकता से बाहर चला रहा हूं - सरल double मूल्यों में मेरी ज़रूरतों के लिए पर्याप्त महत्वपूर्ण आंकड़े नहीं हैं।सी # के लिए "विस्तारित" के बराबर कोई समकक्ष?
अधिक महत्वपूर्ण आंकड़े = में भग्न
वापस जूमिंग जब मैं डेल्फी 7 में इस स्क्रीनसेवर के एक संस्करण में लिखा है की अधिक से अधिक स्तर, मैं extended चल बिन्दु प्रकार, आकार में 80 बिट का इस्तेमाल किया।
.NET में, मैं decimal पर स्विच कर सकता था, लेकिन इसके लिए प्रदर्शन हिट भयानक है, 20 या उससे अधिक के कारक द्वारा फ्रैक्टल पीढ़ी को धीमा कर रहा है।
क्या के समतुल्य के लिए कोई समकक्ष है? या, वैकल्पिक रूप से, डबल से उच्च परिशुद्धता वाले कोई संख्यात्मक प्रकार हैं जो अभी भी मूल्यांकन के लिए एफपीयू का उपयोग करते हैं और इसलिए दशमलव का उच्च प्रदर्शन हिट नहीं है?
अद्यतन
मेरे स्क्रीनसेवर पहले से ही कई (! कई) परिमाण के आदेश द्वारा भग्न में ज़ूम करने का प्रबंधन करता है; वर्तमान में यह केवल मूल फ्रैक्टल पर रीसेट करता है जब उपयोग में संख्यात्मक प्रकार आसन्न पिक्सल के लिए ऑर्डिनेट को अलग करने में असमर्थ होता है। डबल-विस्तारित सुधार से परिशुद्धता के अतिरिक्त 16 बिट मुझे आकार के 16 और दोगुनी दोगुना कर देंगे।
प्रदर्शन के रूप में, मेरे एल्गोरिदम पहले से ही गणित के 95-99% को खत्म करने का प्रबंधन करता है (एक निष्पक्ष कार्यान्वयन की तुलना में जो कई पिक्सेल की गणना करता है), जबकि फ्रैक्टल की अखंडता को बनाए रखते हुए।
आपको इसके लिए मूल कोड लिखने की आवश्यकता है, क्योंकि विस्तारित x86 में 80-बिट फ़्लोटिंग पॉइंट रजिस्टर का उपयोग करता है। या मुझे यकीन नहीं है कि कार्यक्रम की भूख को और अधिक सटीकता के लिए कम करना संभव है। मैं इस पर विशेषज्ञ नहीं हूं, इसलिए मैं कोई और सलाह नहीं दे सकता। – nhahtdh