An interface to define R(S), i.e. set R and S, and compute R(S)*v, where R is the residual polynomial, S is a sparse matrix, and v is a vector.
More...
#include <polyfilt.h>
|
|
static const SparseMatrix * | Sptr |
| | A pointer to the input sparse symmetric matrix via setFilter().
|
| |
|
static SparseMatrix | S |
| | The sparse symmetric matrix S in computing R(S)*v; S is translated from the input sparse symmetric matrix S0 in setFilter().
|
| |
| static Vector | intervals |
| | The jth interval is [intervals(j),intervals(j+1)). More...
|
| |
|
static Vector | intervalWeights |
| | intervalWeights(j) is the weight of jth interval [intervals(j),intervals(j+1)).
|
| |
|
static mkIndex | polyDegree |
| | Maximum possible degree of s(z), with z*s(z) the polynomial filter.
|
| |
|
static mkIndex | baseDegree |
| | Left-and-right degree of the base filter in each interval.
|
| |
| static Matrix | baseFilter |
| | A base filter, which is a piecewise polynomial typically from Hermite interpolation. More...
|
| |
|
static Vector | zn |
| | A zero vector of length the number of rows/columns of S.
|
| |
An interface to define R(S), i.e. set R and S, and compute R(S)*v, where R is the residual polynomial, S is a sparse matrix, and v is a vector.
-
S is a sparse symmetric matrix.
-
R(z) is a polynomial which approximates a piecewise polynomial 1-P(z), with P(z) the base filter.
-
v is the input vector.
In short, use setFilter() to define R(S) once, and use filteredSparseMatrixPolynomialVectorProduct() to compute R(S)*v for every v.
◆ filteredSparseMatrixPolynomialVectorProduct()
| static Vector PolynomialFilterInterface::filteredSparseMatrixPolynomialVectorProduct |
( |
const Vector & |
v | ) |
|
|
inlinestatic |
◆ setFilter()
| static Vector PolynomialFilterInterface::setFilter |
( |
const SparseMatrix & |
S0, |
|
|
const Vector & |
frame, |
|
|
mkIndex |
polyDeg, |
|
|
mkIndex |
baseDeg, |
|
|
IntervalOptions & |
opts |
|
) |
| |
|
static |
This member function sets the sparse matrix S translated from S0, and also the base filter P(z).
- Parameters
-
| S0 | is the sparse symmetric matrix of concern. |
| frame | is a vector of 4 ordered elements.
[frame(1),frame(4)] is the interval which (tightly) contains all eigenvalues of S0, and [frame(2),frame(3)] is the interval in which the eigenvalues of S0 are sought. |
| polyDeg | is the (maximum possible) degree of s(z), with z*s(z) the polynomial filter. |
| baseDeg | is the left-and-right degree of the base filter for each interval. |
| opts | is a collection of options to determine the intervals. |
- See also
- GetIntervals().
◆ baseFilter
| Matrix PolynomialFilterInterface::baseFilter |
|
staticprivate |
A base filter, which is a piecewise polynomial typically from Hermite interpolation.
For jth interval, the polynomial is expanded in the ‘translated’ (scale-and-shift) Chebyshev basis, with the Chebyshev coefficients stored in baseFilter(:,j).
◆ intervals
| Vector PolynomialFilterInterface::intervals |
|
staticprivate |
The jth interval is [intervals(j),intervals(j+1)).
The intervals are decided by GetIntervals() invoked by setFilter() which takes parameters frame, baseDeg, and polyDeg:
-
frame is a vector consisting of 4 ordered elements: [frame(1),frame(4)] is the interval which (tightly) contains all eigenvalues of S, and [frame(2),frame(3)] is the interval in which the eigenvalues are sought.
-
baseDeg is the left-and-right degree of the base filter for each interval.
-
polyDeg is the (maximum possible) degree of s(z), with z*s(z) the polynomial filter.
The documentation for this class was generated from the following file: