Gyselalib++
 
Loading...
Searching...
No Matches
matrix_periodic_banded.hpp
1#ifndef MATRIX_PERIODIC_BANDED_H
2#define MATRIX_PERIODIC_BANDED_H
3#include <memory>
4
5#include "sll/matrix_corner_block.hpp"
6#include "sll/view.hpp"
7
8class Matrix;
9
11{
12public:
13 Matrix_Periodic_Banded(int n, int kl, int ku, std::unique_ptr<Matrix> q);
14 virtual double get_element(int i, int j) const override;
15 virtual void set_element(int i, int j, double a_ij) override;
16
17protected:
18 virtual void calculate_delta_to_factorize() override;
19 virtual DSpan1D solve_lambda_section(DSpan1D v, DView1D u) const override;
20 virtual DSpan1D solve_lambda_section_transpose(DSpan1D u, DView1D v) const override;
21 int const kl; // no. of subdiagonals
22 int const ku; // no. of superdiagonals
23};
24
25#endif // MATRIX_PERIODIC_BANDED_H
Definition matrix_corner_block.hpp:10
Definition matrix_periodic_banded.hpp:11
Definition matrix.hpp:9