#ifndef SOLVER_H_ #define SOLVER_H_ #include #include namespace tug { namespace solver { /** * Solving linear equation system with LU-decomposition implemented in Eigen * library. * * \param A_matrix The A matrix represented as a sparse matrix using Eigen * library. * * \param b_vector Right hand side vector of the linear equation system. * * \return Solution represented as vector. */ auto EigenLU(const Eigen::SparseMatrix &A_matrix, const Eigen::VectorXd &b_vector) -> Eigen::VectorXd; /** * Solving linear equation system with brutal implementation of the Thomas * algorithm (a.k.a. Tridiagonal matrix algorithm). * * \param A_matrix The A matrix represented as a sparse matrix using Eigen * library. * * \param b_vector Right hand side vector of the linear equation system. * * \return Solution represented as vector. */ auto ThomasAlgorithm(const Eigen::SparseMatrix &A_matrix, const Eigen::VectorXd &b_vector) -> Eigen::VectorXd; } // namespace solver } // namespace tug #endif // SOLVER_H_