나는 많은 양의 과학적 프로그래밍을하고 있으며 Boost.Units와 함께 매우 좋은 경험을했다. 단위 시간당 대량의 태그를 따라서 고전적 물리적 차원 분석으로 많은 오류를 포착하고 선형 대수학에 Eigen 2를 사용합니다.선형 대수 라이브러리를 Boost :: Units와 결합하기
그러나 Eigen에는 단위 개념이 없으며 Eigen에 대한 행렬에서 스칼라 수량을 설정할 수 있지만 두 수량의 곱셈은 동일한 유형을 산출 할 것으로 예상됩니다. 이는 분명히 단위에 대해서는 사실이 아닙니다. 예를 들어, 같은 코드 :
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();
은 논리적으로 올바른 경우에도 작동하지 않습니다.
단위를 지원하는 매트릭스 라이브러리가 있습니까? 나는 이것이 과거에 구현하기가 아주 어렵다는 것을 잘 알고 있었으며, C++ 11과 decltype
을 사용하면 훨씬 쉬워 질 것입니다. 그러나 C++ 03과 템플릿 전문화는 가능했습니다. http://eigen.tuxfamily.org/dox-devel/TopicCustomizingEigen.html
아이겐는 기본 데이터 유형 이외의 사용하는 몇 가지 작업이 필요하지만 일반적으로 가능 :
기록을 위해 나 자신을 조금씩 검색해야했기 때문에 [The blitz manual 3.7.1] (http://www.oonumerics.org/blitz/docs/blitz_3.html#SEC90)은 사용자를 홍보하는 방법을 알려줍니다 정의 된 유형. 힌트를 가져 주셔서 감사합니다. – thiton