1
1
export PartialInverseOperator
2
2
3
3
"""
4
- PartialInverseOperator(O::Operator, bandwidths = bandwidths(O ))
4
+ PartialInverseOperator(O::Operator, bandwidths = (0, Infinities.ℵ₀ ))
5
5
6
6
Return an approximate estimate for `inv(O)`, such that `PartialInverseOperator(O) * O` is banded, and
7
7
is approximately `I` up to a bandwidth that is one less than the sum of the bandwidths
8
8
of `O` and `PartialInverseOperator(O)`.
9
9
10
10
!!! note
11
- Only upper triangular operators are supported as of now.
11
+ Only upper- triangular operators are supported as of now.
12
12
13
13
# Examples
14
14
15
15
```jldoctest
16
16
julia> C = Conversion(Chebyshev(), Ultraspherical(1));
17
17
18
- julia> P = PartialInverseOperator(C); # default bandwidth = (0,2)
18
+ julia> P = PartialInverseOperator(C); # default bandwidth
19
19
20
20
julia> P * C
21
21
TimesOperator : Chebyshev() → Chebyshev()
22
- 1.0 0.0 0.0 0.0 -0.5 ⋅ ⋅ ⋅ ⋅ ⋅ ⋅
23
- ⋅ 1.0 0.0 0.0 0.0 -1 .0 ⋅ ⋅ ⋅ ⋅ ⋅
24
- ⋅ ⋅ 1.0 0.0 0.0 0.0 -1 .0 ⋅ ⋅ ⋅ ⋅
25
- ⋅ ⋅ ⋅ 1.0 0.0 0.0 0.0 -1 .0 ⋅ ⋅ ⋅
26
- ⋅ ⋅ ⋅ ⋅ 1.0 0.0 0.0 0.0 -1 .0 ⋅ ⋅
27
- ⋅ ⋅ ⋅ ⋅ ⋅ 1.0 0.0 0.0 0.0 -1 .0 ⋅
28
- ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ 1.0 0.0 0.0 0.0 ⋱
29
- ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ 1.0 0.0 0.0 ⋱
30
- ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ 1.0 0.0 ⋱
31
- ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ 1.0 ⋱
32
- ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋱
33
-
34
- julia> P = PartialInverseOperator(C, (0, 4)); # increase the upper bandwidth
22
+ 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ⋯
23
+ ⋅ 1.0 0.0 0.0 0.0 0 .0 0.0 0.0 0.0 0.0 ⋱
24
+ ⋅ ⋅ 1.0 0.0 0.0 0.0 0 .0 0.0 0.0 0.0 ⋱
25
+ ⋅ ⋅ ⋅ 1.0 0.0 0.0 0.0 0 .0 0.0 0.0 ⋱
26
+ ⋅ ⋅ ⋅ ⋅ 1.0 0.0 0.0 0.0 0 .0 0.0 ⋱
27
+ ⋅ ⋅ ⋅ ⋅ ⋅ 1.0 0.0 0.0 0.0 0 .0 ⋱
28
+ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ 1.0 0.0 0.0 0.0 ⋱
29
+ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ 1.0 0.0 0.0 ⋱
30
+ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ 1.0 0.0 ⋱
31
+ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ 1.0 ⋱
32
+ ⋮ ⋱ ⋱ ⋱ ⋱ ⋱ ⋱ ⋱ ⋱ ⋱ ⋱
33
+
34
+ julia> P = PartialInverseOperator(C, (0, 4)); # specify an upper bandwidth
35
35
36
36
julia> P * C
37
37
TimesOperator : Chebyshev() → Chebyshev()
@@ -58,7 +58,7 @@ function PartialInverseOperator(CO::CachedOperator{T},bandwidths) where T<:Numbe
58
58
return PartialInverseOperator {T,typeof(CO),typeof(bandwidths)} (CO,bandwidths)
59
59
end
60
60
61
- function PartialInverseOperator (B:: Operator , bandwidths = bandwidths (B ))
61
+ function PartialInverseOperator (B:: Operator , bandwidths = ( 0 ,ℵ₀ ))
62
62
PartialInverseOperator (cache (B), bandwidths)
63
63
end
64
64
0 commit comments