Advertisement
Guest User

Untitled

a guest
Mar 29th, 2020
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.64 KB | None | 0 0
  1. template<typename T>
  2. std::optional<AGHMatrix<T>> AGHMatrix<T>::LU_factorized() const
  3. {
  4. auto res = *this;
  5. if(cols == rows)
  6. {
  7. throw std::runtime_error("");
  8. }
  9. for(size_t j = 0; j < cols; ++j)
  10. {
  11. if(std::abs(res(j, j)) < eps)
  12. {
  13. return std::nullopt;
  14. }
  15. for(size_t i = 0; i <= j; ++i)
  16. {
  17. T sum = 0;
  18. for(size_t k = 0; k < i; ++k)
  19. {
  20. sum += res(i, j) * res(k, j);
  21. }
  22. res(i, j) -=sum;
  23. }
  24. for(size_t i = j + 1; i < cols; ++i)
  25. {
  26. T sum = 0;
  27. for(size_t k = 0; k < j; ++k)
  28. {
  29. sum += res(i, k) * res(k, j);
  30. }
  31. res.matrix[i][j] = (res(i, j) - sum) / res(j, j);
  32. }
  33. }
  34. return res;
  35. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement