| 294 | } |
| 295 | |
| 296 | TVector<double> Solve(const TVector<double>& olsMatrix, const TVector<double>& olsVector) { |
| 297 | const size_t featuresCount = olsVector.size(); |
| 298 | |
| 299 | TVector<double> decompositionTrace(featuresCount); |
| 300 | TVector<TVector<double>> decompositionMatrix(featuresCount, TVector<double>(featuresCount)); |
| 301 | |
| 302 | LDLDecomposition(olsMatrix, decompositionTrace, decompositionMatrix); |
| 303 | |
| 304 | return SolveUpper(decompositionMatrix, SolveLower(decompositionMatrix, decompositionTrace, olsVector)); |
| 305 | } |
| 306 | |
| 307 | double SumSquaredErrors(const TVector<double>& olsMatrix, |
| 308 | const TVector<double>& olsVector, |
no test coverage detected