MCPcopy Create free account
hub / github.com/catboost/catboost / SolveUpper

Function SolveUpper

library/cpp/linear_regression/linear_regression.cpp:278–294  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

276 }
277
278 TVector<double> SolveUpper(const TVector<TVector<double>>& decompositionMatrix,
279 const TVector<double>& lowerSolution) {
280 const size_t featuresCount = lowerSolution.size();
281
282 TVector<double> solution(featuresCount);
283 for (size_t featureNumber = featuresCount; featureNumber > 0; --featureNumber) {
284 double& solutionElement = solution[featureNumber - 1];
285 solutionElement = lowerSolution[featureNumber - 1];
286
287 const TVector<double>& decompositionRow = decompositionMatrix[featureNumber - 1];
288 for (size_t i = featureNumber; i < featuresCount; ++i) {
289 solutionElement -= solution[i] * decompositionRow[i];
290 }
291 }
292
293 return solution;
294 }
295
296 TVector<double> Solve(const TVector<double>& olsMatrix, const TVector<double>& olsVector) {
297 const size_t featuresCount = olsVector.size();

Callers 1

SolveFunction · 0.85

Calls 1

sizeMethod · 0.45

Tested by

no test coverage detected