2012-05-13 4 views
11

최근에 우수한 라이브러리 boost :: accumulators를 발견했으며 통계를 축적하는 일부 코드를 대체하기 위해 사용하고 싶습니다. 나는이 문서에서 찾을 수없는두 개의 boost :: accumulator_set 인스턴스 합계

한 가지 연산자로, 두 개의 누적 세트를 요약 할 수있는 능력이다 + =

예 :

using namespace boost::accumulators; 
typedef accumulator_set<double, features<tag::variance> > AccumSet; 

class Foo { 
    AccumSet acc; 
public: 
    Foo& operator+=(const Foo& that) { 
     this->acc += that.acc; // error! no such operator 
     return *this; 
    } 
    double GetVariance() { return variance(acc); } 
}; 

가 어떻게이 가능한 API를 사용하여 달성 할 수 있습니까? 라이브러리 (어쩌면 꼬리는 아님)에있는 모든 유형의 누산기에 대해 구현할 수 있는지는 모르겠지만 수, 합계, 평균, 순간, 공분산 등과 같은 중요한 사항에 대해서는 확실히 알 수 있습니다.

+0

'반환 *';이 항목은 관련이 없지만 잊어 버릴 수 있습니다. – Matt

+0

@Matt, 요점 옆에 있지만, 고칠 가치가 여전히 ... – killogre

답변

3

유감스럽게도이 기능은 Boost.Accumulators에서 제공하지 않습니다. 결합은 일부 통계에서만 작동하기 때문일 수 있습니다.

이러한 combine 기능을 묻는 a ticket on the Boost tracker이 있습니다.

+0

고마워. 부스트 메일 링리스트에서 주위를 둘러보고 게시 한 후에도 같은 결론에 도달했습니다. 나는 4 년 전에 문을 열었지만 티켓을 알지 못했습니다! 내 질문은 지원할 수있는 통계에 대한 몇 가지 해결 방법이 있는지 여부입니다. – killogre

1

두 개의 accumulator_set <> 개체를 추가 할 때 적절한 + 연산자가 없습니다.