簡體   English   中英

使用Eigen :: Vector類型的Boost累加器

[英]Using Boost Accumulators with Eigen::Vector types

我在將Eigen::VectorXd類型與Boost累加器庫結合起來時遇到一些問題:

#include <iostream>
#include <Eigen/Core>
#include <boost/accumulators/accumulators.hpp>
#include <boost/accumulators/statistics/stats.hpp>
#include <boost/accumulators/statistics/mean.hpp>

using namespace boost::accumulators;
using namespace Eigen;

int main()
{
   Vector2f a(1.0, 2.0), b(3.0, 10.0);

   accumulator_set<Vector2f, stats<tag::mean> > acc(Vector2f::Zero());

   acc(a);
   acc(b);

   std::cout << mean(acc) << std::endl;
   std::cout << ((a+b)/2.0) << std::endl;

   return 0;
}

在我的系統上會產生:

4.41629e-39
0
2
6

因此,盡管直接計算很好(本征向量支持所有常用的數值運算符),但Boost累加器在運行時不會出現錯誤而失敗。

用戶定義的類型需要專門設置std :: numeric_limits。 參見https://svn.boost.org/trac/boost/ticket/5491

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM