के साथ एक रैखिक बीजगणित लाइब्रेरी का संयोजन। मैं अच्छी तरह से वैज्ञानिक प्रोग्रामिंग कर रहा हूं और बूस्ट.इनिट्स दोनों के साथ बहुत अच्छे अनुभव कर रहा हूं, जो मात्राओं के लिए संकलन-समय आयामी विश्लेषण प्रदान करता है (यानी इकाइयों के साथ टैग मात्राएं और इस प्रकार शास्त्रीय भौतिक आयाम विश्लेषण के साथ कई त्रुटियों को पकड़ता है) और रैखिक बीजगणित के लिए ईजिन 2 का उपयोग करना।बूस्ट :: यूनिट्स
हालांकि, ईजिन में इकाइयों की कोई अवधारणा नहीं है, और जब आप ईजिन के लिए मैट्रिस में स्केलर मात्रा निर्धारित कर सकते हैं, तो यह अपेक्षा करता है कि दो मात्राओं का गुणा उसी प्रकार उत्पन्न होता है, जो स्पष्ट रूप से इकाइयों के लिए असत्य है। उदाहरण के लिए, कोड जैसे:
using boost::units::quantity;
namespace si = boost::units::si;
Eigen::Matrix< quantity<si::length>, 2, 1 > meter_vector;
quantity<si::area> norm = meter_vector.squaredNorm();
काम नहीं करता है, भले ही यह तर्कसंगत रूप से सही है।
क्या कोई मैट्रिक्स लाइब्रेरी है जो इकाइयों का समर्थन करती है? मुझे पता है कि अतीत में इसे लागू करना कुख्यात रूप से कठिन होगा, और सी ++ 11 और decltype
इतना आसान बना देगा, लेकिन यह निश्चित रूप से सी ++ 03 और टेम्पलेट विशेषज्ञता के साथ संभव था।
रिकॉर्ड के लिए, क्योंकि मुझे थोड़ा सा खोजना पड़ा: [ब्लिट्ज मैनुअल 3.7.1] (http://www.oonumerics.org/blitz/docs/blitz_3.html#SEC90) आपको बताता है कि उपयोगकर्ता को कैसे बढ़ावा देना है परिभाषित प्रकार। संकेत के लिए धन्यवाद। – thiton