| 176 | }; |
| 177 | |
| 178 | TLinFunc CalcModel(const TSamples& s) { |
| 179 | TKahanSLRSolver solver; |
| 180 | |
| 181 | for (const auto& p : s) { |
| 182 | solver.Add(p.first, p.second); |
| 183 | } |
| 184 | |
| 185 | double c = 0; |
| 186 | double i = 0; |
| 187 | |
| 188 | solver.Solve(c, i); |
| 189 | |
| 190 | return TLinFunc{c, i}; |
| 191 | } |
| 192 | |
| 193 | inline TSamples RemoveOutliers(const TSamples& s, double fraction) { |
| 194 | if (s.size() < 20) { |
no test coverage detected