triskele/include/TreeStats.hpp
Git Merciol 22206596ad modifié : MakefileNoOTB
modifié :         include/Appli/Option.hpp
	modifié :         include/ArrayTree/ArrayTreeBuilder.hpp
	modifié :         include/ArrayTree/ArrayTreeBuilder.tpp
	modifié :         include/ArrayTree/triskeleArrayTreeBase.hpp
	modifié :         include/TreeStats.hpp
	modifié :         include/TreeStats.tpp
	modifié :         src/Appli/Option.cpp
	modifié :         src/ArrayTree/triskeleArrayTreeBase.cpp
	modifié :         src/TreeStats.cpp
	modifié :         src/apGenerator.cpp
2018-02-27 08:50:55 +01:00

68 lines
1.8 KiB
C++

#ifndef _OTB_TRISKELE_TREE_STATS_HPP
#define _OTB_TRISKELE_TREE_STATS_HPP
#include <iostream>
#include <boost/accumulators/accumulators.hpp>
#include <boost/accumulators/statistics/stats.hpp>
#include <boost/accumulators/statistics/sum.hpp>
#include <boost/accumulators/statistics/count.hpp>
#include <boost/accumulators/statistics/min.hpp>
#include <boost/accumulators/statistics/max.hpp>
#include <boost/accumulators/statistics/mean.hpp>
#include "ArrayTree/triskeleArrayTreeBase.hpp"
namespace otb {
namespace triskele {
using namespace otb::triskele::arrayTree;
using namespace std;
namespace ba = boost::accumulators;
typedef ba::accumulator_set<DimImg, ba::stats<ba::tag::count,
ba::tag::mean,
ba::tag::min,
ba::tag::max> > TreeStatsDim;
typedef ba::accumulator_set<double, ba::stats<ba::tag::sum,
ba::tag::count,
ba::tag::mean,
ba::tag::min,
ba::tag::max> > TreeStatsDouble;
enum TimeType {
buildTreeStats,
areaStats,
averageStats,
xyStats,
moiStats,
sdStats,
filteringStats,
copyImageStats,
readStats,
writeStats,
allStats,
TimeTypeCard
};
class TreeStats {
public :
//void reset ();
inline void addDim (const TreeType &treeType, const DimImg& leafCount, const DimImg& compCount);
inline void addTime (const TimeType &timeType, const double &duration);
ostream &printDim (ostream &out);
ostream &printTime (ostream &out);
private :
ostream &printDim (ostream &out, const TreeStatsDim stats[], const string &msg);
TreeStatsDim leavesStats[TreeTypeCard], compStats[TreeTypeCard];
TreeStatsDouble timeStats[TimeTypeCard];
};
static TreeStats globalTreeStats;
#include "TreeStats.tpp"
} // triskele
} // otb
#endif // _OTB_TRISKELE_TREE_HPP