/* Test for the Kahan summation algorithm Copyright 2018 Ahmet Inan */ #include #include #include "const.hh" #include "kahan.hh" template bool Kahan_summation_algorithm_test() { DSP::Kahan sum(3); for (T i = T(2); i < T(181423); i += T(4)) { sum(T(4) / (i * (i + T(1)) * (i + T(2)))); sum(T(-4) / ((i + T(2)) * (i + T(3)) * (i + T(4)))); } return sum() == DSP::Const::Pi(); } int main() { assert(Kahan_summation_algorithm_test()); assert(Kahan_summation_algorithm_test()); std::cerr << "Kahan summation algorithm test passed!" << std::endl; return 0; }