#include #include #include #include #include #include using namespace boost::accumulators; extern double acc4_data[1001]; int main() { NTL::RR::SetPrecision(1000); // Define an accumulator set for calculating the mean and the // 2nd moment ... accumulator_set > acc; double data[] = {50, 48, 44, 56, 61, 52, 53, 55, 67, 51, }; // push in some data ... for(int i = 0; i < sizeof(data) / sizeof(data[0]); ++i) acc(data[i]); // Display the results ... std::cout << "Mean: " << mean(acc) << std::endl; std::cout << "Variance: " << variance(acc) << std::endl; std::cout << "Standard Deviation: " << sqrt(variance(acc)) << std::endl; accumulator_set > acc4_acc; for(int i = 0; i < sizeof(acc4_data) / sizeof(acc4_data[0]); ++i) acc4_acc(acc4_data[i]); NTL::RR m = mean(acc4_acc); NTL::RR v = variance(acc4_acc); //NTL::RR v1 = v * boost::accumulators::count(acc4_acc) / (boost::accumulators::count(acc4_acc) - 1); NTL::RR sd = sqrt(v); NTL::RR err; std::cout << "\nAccumulator 4 data:\n"; err = fabs(m - 10000000.2) / 10000000.2; std::cout << "Error in mean is: " << err << std::endl; err = fabs(sd - 0.1) / 0.1; std::cout << "Error in SD is: " << err << std::endl; NTL::RR sum = 0; for(unsigned i = 0; i < sizeof(acc4_data) / sizeof(acc4_data[0]); ++i) { NTL::RR diff = acc4_data[i] - 10000000.2; diff *= diff; sum += diff; } sum /= 1001; sum = sqrt(sum); std::cout << sum << " " << fabs(sum - 0.1) / 0.1 << std::endl; std::cout << sd << " " << fabs(sd - 0.1) / 0.1 << std::endl; } double acc4_data[1001] = { 10000000.2, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, 10000000.1, 10000000.3, };