एफएफटीडब्ल्यू

फास्टेस्ट फूरियर ट्रांसफॉर्म इन द वेस्ट (एफएफटीडब्ल्यू) मैसाचुसेट्स इंस्टीट्यूट ऑफ टेक्नोलॉजी में माटेओ फ्रिगो और स्टीवन जी. जॉनसन द्वारा विकसित असतत फूरियर ट्रांसफॉर्म (डीएफटी) की गणना के लिए एक सॉफ्टवेयर लाइब्रेरी है।

एफएफटीडब्ल्यू फास्ट फूरियर ट्रांसफॉर्म (एफएफटी) के सबसे नवीनतम मुक्त सॉफ्टवेयर कार्यान्वयनों में से एक है। यह अनियमित आकार और आयाम के वास्तविक और जटिल-मूल्यवान सरणियों के लिए एफएफटी एल्गोरिथ्म को प्रयुक्त करता है।

लाइब्रेरी
एफएफटीडब्ल्यू विभिन्न प्रकार के एल्गोरिदम का समर्थन करके और एक (छोटे परिवर्तनों में परिवर्तन का एक विशेष अपघटन) चुनकर डेटा को तेजी से परिवर्तित करता है, जिसका अनुमान या उपाय विशेष परिस्थितियों में बेहतर होता है। यह छोटे अभाज्य कारकों के साथ आकार के सरणियों पर सबसे अच्छा काम करता है, जिसमें दो की घातें इष्टतम होती हैं और बड़े अभाज्य सबसे निकृष्ट स्थिति होती हैं (लेकिन फिर भी O(n log n))। समग्र आकारों के परिवर्तनों को छोटे परिवर्तनों में विघटित करने के लिए, यह कौली-टुकी एफएफटी एल्गोरिदम (विभिन्न गुणनखंडन और/या विभिन्न मेमोरी-एक्सेस पैटर्न के अनुरूप) के कई प्रकारों में से चुनता है, जबकि अभाज्य आकारों के लिए यह या तो रेडर या ब्लूस्टीन के एफएफटी एल्गोरिदम का उपयोग करता है। एक बार जब परिवर्तन को पर्याप्त रूप से छोटे आकार के उप-रूपांतरणों में विभाजित कर दिया जाता है, तो एफएफटीडब्ल्यू इन छोटे आकारों के लिए हार्ड-कोडेड अनरोल्ड एफएफटी का उपयोग करता है जो कोड जनरेशन द्वारा उत्पादित किए गए थे (संकलन समय पर, रन समय पर नहीं); ये रूटीन विभिन्न प्रकार के एल्गोरिदम का उपयोग करते हैं जिनमें कूली-ट्यूकी वेरिएंट, राडार का एल्गोरिदम और प्राइम-फैक्टर एफएफटी एल्गोरिदम शामिल हैं।

बार-बार होने वाले परिवर्तनों की पर्याप्त संख्या के लिए दिए गए ऐरे साइज और प्लेटफ़ॉर्म पर कुछ या सभी समर्थित एल्गोरिदम के प्रदर्शन को मापना लाभप्रद है। ये माप, जिन्हें लेखक "ज्ञान" के रूप में संदर्भित करते हैं, को बाद में उपयोग के लिए एक फ़ाइल या स्ट्रिंग में संग्रहीत किया जा सकता है।

एफएफटीडब्ल्यू में एक "गुरु इंटरफ़ेस" है जो "अंतर्निहित एफएफटीडब्ल्यू आर्किटेक्चर में फ्लेक्सिबिलिटी के जितना संभव हो उतना अनावृत करने का उद्देश्य रखता है"। यह, अन्य बातों के अतिरिक्त, एक ही कॉल में बहु-आयामी परिवर्तनों और एकाधिक परिवर्तनों की अनुमति देता है (उदाहरण के लिए, जहां डेटा को मेमोरी में इंटरलीव्ड किया जाता है)।

एफएफटीडब्ल्यू के पास आउट-ऑफ़-ऑर्डर ट्रांसफ़ॉर्म (मैसेज पासिंग इंटरफ़ेस (एमपीआई) संस्करण का उपयोग करके) के लिए सीमित समर्थन है। डेटा को पुन: व्यवस्थित करने में एक ओवरहेड खर्च होता है, जिससे अनियमित आकार और आयाम के स्थान-परिवर्तनों से बचना असतहीय है। यह अप्रलेखित है कि किस परिवर्तन के लिए यह ओवरहेड महत्वपूर्ण है।

एफएफटीडब्ल्यू को जीएनयू जनरल पब्लिक लाइसेंस के तहत लाइसेंस प्राप्त है। इसे एमआईटी द्वारा व्यावसायिक रूप से भी लाइसेंस प्राप्त है ($12,500 तक की लागत पर)। और वाणिज्यिक MATLAB में उपयोग किया जाता है एफएफटी की गणना के लिए मैट्रिक्स पैकेज। एफएफटीडब्ल्यू सी (प्रोग्रामिंग भाषा) भाषा में लिखा गया है, लेकिन फोरट्रान और एडा (प्रोग्रामिंग भाषा) इंटरफेस मौजूद हैं, साथ ही कुछ अन्य भाषाओं के लिए इंटरफेस भी मौजूद हैं। जबकि लाइब्रेरी स्वयं सी है, कोड वास्तव में 'नामक प्रोग्राम से उत्पन्न होता है ', जो OCaml में लिखा गया है। 1999 में, एफएफटीडब्ल्यू ने न्यूमेरिकल सॉफ्टवेयर के लिए जे. एच. विल्किंसन पुरस्कार जीता।

यह भी देखें

 * एफएफटीपैक