| 2935 | } |
| 2936 | |
| 2937 | double Result::sumProduct(Measure m1, Measure m2) const noexcept { |
| 2938 | auto const& data1 = mNameToMeasurements[detail::u(m1)]; |
| 2939 | auto const& data2 = mNameToMeasurements[detail::u(m2)]; |
| 2940 | |
| 2941 | if (data1.size() != data2.size()) { |
| 2942 | return 0.0; |
| 2943 | } |
| 2944 | |
| 2945 | double result = 0.0; |
| 2946 | for (size_t i = 0, s = data1.size(); i != s; ++i) { |
| 2947 | result += data1[i] * data2[i]; |
| 2948 | } |
| 2949 | return result; |
| 2950 | } |
| 2951 | |
| 2952 | bool Result::has(Measure m) const noexcept { |
| 2953 | return !mNameToMeasurements[detail::u(m)].empty(); |
no test coverage detected