19 lines
405 B
C++
19 lines
405 B
C++
#pragma once
|
|
|
|
#include "fesa/core/status.hpp"
|
|
|
|
namespace fesa {
|
|
|
|
class SparseMatrix;
|
|
class Vector;
|
|
|
|
// Separates reusable matrix factorization from right-hand-side substitution.
|
|
class LinearSolver {
|
|
public:
|
|
virtual ~LinearSolver() = default;
|
|
virtual Status factorize(const SparseMatrix& matrix) = 0;
|
|
virtual Status solve(const Vector& rhs, Vector& solution) const = 0;
|
|
};
|
|
|
|
} // namespace fesa
|