मैं अक्सर खुद को एक दिए गए ऑपरेशन / एल्गोरिथ्म के एक, दो और तीन आयामी संस्करणों के लिए बहुत समान कोड लिखता हुआ पाता हूं। इन सभी संस्करणों को बनाए रखना थकाऊ बन सकता है। सरल कोड पीढ़ी काफी अच्छी तरह से काम करती है, लेकिन ऐसा लगता है कि एक बेहतर तरीका होना चाहिए।
क्या एक बार ऑपरेशन लिखने का अपेक्षाकृत सरल तरीका है और क्या यह उच्च या निम्न आयामों के लिए सामान्य है?
एक ठोस उदाहरण है: मान लीजिए कि मुझे वर्णक्रमीय अंतरिक्ष में एक वेग क्षेत्र की ढाल की गणना करने की आवश्यकता है। तीन आयामों में, फोरट्रान छोर कुछ इस तरह दिखाई देंगे:
do k = 1, n
do j = 1, n
do i = 1, n
phi(i,j,k) = ddx(i)*u(i,j,k) + ddx(j)*v(i,j,k) + ddx(k)*w(i,j,k)
end do
end do
end do
जहां ddx
सरणी को उचित रूप से परिभाषित किया गया है। (मैट्रिक्स मैट्रिक्स के साथ भी कोई ऐसा कर सकता है।) द्वि-आयामी प्रवाह के लिए कोड लगभग बिल्कुल समान है, सिवाय इसके: तीसरा आयाम छोरों, अनुक्रमित और घटकों की संख्या से गिरा दिया गया है। क्या इसे व्यक्त करने का एक बेहतर तरीका है?
एक अन्य उदाहरण है: मान लीजिए कि मेरे पास तीन आयामी ग्रिड पर तरल-वेग परिभाषित बिंदु-वार हैं। एक अनियंत्रित स्थान (यानी, ग्रिड बिंदुओं के अनुरूप नहीं) के वेग को प्रक्षेपित करने के लिए, व्यक्ति तीन आयामी (यानी, आयामी कमी) पर एक आयामी नेविल एल्गोरिथम का क्रमिक रूप से उपयोग कर सकता है । क्या एक सरल एल्गोरिथ्म के एक आयामी कार्यान्वयन को देखते हुए आयामी कमी करने का एक आसान तरीका है?