|
FILTLAN
1.0a
|
Classes | |
| class | PolynomialFilterInterface |
| 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... | |
Functions | |
| Matrix | FilteredConjugateResidualPolynomial (const Matrix &pp, const Vector &intv, const Vector &w, mkIndex niter) |
| This routine employs a conjugate-residual-type algorithm in polynomial space to minimize ||P(z)-Q(z)||w, where P(z), the base filter, is the input piecewise polynomial, and Q(z) is the output polynomial satisfying Q(0)==1, i.e. the constant term of Q(z) is 1. More... | |
| Vector | FilteredConjugateResidualMatrixPolynomialVectorProduct (const SparseMatrix &A, const Vector &x0, const Vector &b, const Matrix &pp, const Vector &intv, const Vector &w, mkIndex niter, Real tol=0.0) |
| This routine employs a conjugate-residual-type algorithm in polynomial space to compute x=x0+s(A)*r0 with r0=b-A*x0, such that ||1-z*s(z)-P(z)||w is minimized. More... | |
| Vector FilteredConjugateResidualMatrixPolynomialVectorProduct | ( | const SparseMatrix & | A, |
| const Vector & | x0, | ||
| const Vector & | b, | ||
| const Matrix & | pp, | ||
| const Vector & | intv, | ||
| const Vector & | w, | ||
| mkIndex | niter, | ||
| Real | tol = 0.0 |
||
| ) |
This routine employs a conjugate-residual-type algorithm in polynomial space to compute x=x0+s(A)*r0 with r0=b-A*x0, such that ||1-z*s(z)-P(z)||w is minimized.
| A | is a sparse matrix. |
| x0,b | are vectors. |
| niter | is the number of conjugate-residual iterations. Therefore, the degree of Q(z) is up to niter+1. |
| intv | is a vector which defines the intervals. The jth interval is [intv(j),intv(j+1)). |
| w | is a vector of Chebyshev weights. The weight of jth interval is w(j). The interval weights define the inner product of two continuous functions and then the derived w-norm ||P(z)-Q(z)||w. |
| pp | is a matrix of Chebyshev coefficients which defines the piecewise polynomial P(z). For z in the jth interval [intv(j), intv(j+1)), P(z) equals Pj(z) = pp(1,j)*S0(z) + pp(2,j)*S1(z) + ... + pp(niter+2,j)*Sniter+1(z), |
| tol | is the tolerance; if the residual polynomial in z-norm is dropped by a factor lower than tol, then stop the conjugate-residual iteration. |
1, one can translate P(z). For example, if P(0)==0, one can use 1-P(z) as input instead of P(z).| Matrix FilteredConjugateResidualPolynomial | ( | const Matrix & | pp, |
| const Vector & | intv, | ||
| const Vector & | w, | ||
| mkIndex | niter | ||
| ) |
This routine employs a conjugate-residual-type algorithm in polynomial space to minimize ||P(z)-Q(z)||w, where P(z), the base filter, is the input piecewise polynomial, and Q(z) is the output polynomial satisfying Q(0)==1, i.e. the constant term of Q(z) is 1.
Both P(z) and Q(z) are expanded in the ‘translated’ (scale-and-shift) Chebyshev basis for each interval and presented as matrices of Chebyshev coefficients, denoted by pp and qq, respectively.
| niter | is the number of conjugate-residual iterations. Therefore, the degree of Q(z) is up to niter+1. |
| intv | is a vector which defines the intervals. The jth interval is [intv(j),intv(j+1)). |
| w | is a vector of Chebyshev weights. The weight of jth interval is w(j). The interval weights define the inner product of two continuous functions and then the derived w-norm ||P(z)-Q(z)||w. |
| pp | is a matrix of Chebyshev coefficients which defines the piecewise polynomial P(z). For z in the jth interval [intv(j), intv(j+1)), P(z) equals Pj(z) = pp(1,j)*S0(z) + pp(2,j)*S1(z) + ... + pp(niter+2,j)*Sniter+1(z), |
1, one can translate P(z). For example, if P(0)==0, one can use 1-P(z) as input instead of P(z).
1.8.14