GCC Code Coverage Report


Directory: ./
Coverage: low: ≥ 0% medium: ≥ 75.0% high: ≥ 90.0%
Coverage Exec / Excl / Total
Lines: 28.7% 29 / 0 / 101
Functions: 35.7% 20 / 0 / 56
Branches: -% 0 / 0 / 0

src/math/sum_ik_flist/lib.hpp
Line Branch Exec Source
1 #pragma once
2
3 #include "../../util/util/lib.hpp"
4
5 namespace tifa_libs {
6
7 template <class T>
8 37014972 CEXP T sum_i0(T n) NE { return n; }
9 template <class T>
10 37015104 CEXP T sum_i1(T n) NE { return n * (n + 1) / 2; }
11 template <class T>
12 36 CEXP T sum_i2(T n) NE { return sum_i1(n) * (n * 2 + 1) / 3; }
13 template <class T>
14 48 CEXP T sum_i3(T n) NE {
15 48 const auto _ = sum_i1(n);
16 48 return _ * _;
17 48 }
18 template <class T>
19 12 CEXP T sum_i4(T n) NE { return sum_i2(n) * (sum_i1(n) * 6 - 1) / 5; }
20 template <class T>
21 24 CEXP T sum_i5(T n) NE { return sum_i3(n) * (sum_i1(n) * 4 - 1) / 3; }
22 template <class T>
23 12 CEXP T sum_i6(T n) NE {
24 12 const auto _ = sum_i1(n);
25 12 return sum_i2(n) * (_ * (_ * 2 - 1) * 6 + 1) / 7;
26 12 }
27 template <class T>
28 12 CEXP T sum_i7(T n) NE {
29 12 const auto _ = sum_i3(n);
30 12 return _ * _ * 2 - sum_i5(n);
31 12 }
32
33 template <class T>
34 // NOLINTNEXTLINE(modernize-avoid-c-arrays)
35 CEXP T (*sum_ik[])(T) NE = {sum_i0<T>, sum_i1<T>, sum_i2<T>, sum_i3<T>, sum_i4<T>, sum_i5<T>, sum_i6<T>, sum_i7<T>};
36
37 } // namespace tifa_libs
38