|
1 |
| -export Conversion |
| 1 | +export Conversion, Conversion_normalizedspace |
2 | 2 |
|
3 | 3 | abstract type Conversion{T}<:Operator{T} end
|
4 | 4 |
|
@@ -71,19 +71,27 @@ Assumed to be false by default.
|
71 | 71 | """
|
72 | 72 | hasconcreteconversion_canonical(@nospecialize(sp), @nospecialize(Valfwdback)) = false
|
73 | 73 |
|
74 |
| -function Conversion_maybeconcrete(sp, csp, v::Val{:forward}) |
| 74 | +function Conversion_maybeconcrete(sp, csp, v::Union{Val{:forward}, Val{:backward}}) |
| 75 | + t = v isa Val{:forward} ? (sp, csp) : (csp, sp) |
75 | 76 | if hasconcreteconversion_canonical(sp, v)
|
76 |
| - ConcreteConversion(sp,csp) |
| 77 | + ConcreteConversion(t...) |
77 | 78 | else
|
78 |
| - Conversion(sp,csp) |
| 79 | + Conversion(t...) |
79 | 80 | end
|
80 | 81 | end
|
81 |
| -function Conversion_maybeconcrete(sp, csp, v::Val{:backward}) |
82 |
| - if hasconcreteconversion_canonical(sp, v) |
83 |
| - ConcreteConversion(csp,sp) |
84 |
| - else |
85 |
| - Conversion(csp,sp) |
86 |
| - end |
| 82 | + |
| 83 | +""" |
| 84 | + Conversion_normalizedspace(S::Space, direction::Val{:forward} = Val(:forward)) |
| 85 | +
|
| 86 | +Return `Conversion(S, normalizedspace(S))`. This may be concretely inferred for orthogonal polynomial spaces. |
| 87 | +
|
| 88 | + Conversion_normalizedspace(S::Space, ::Val{:backward}) |
| 89 | +
|
| 90 | +Return `Conversion(normalizedspace(S), S)`. This may be concretely inferred for orthogonal polynomial spaces. |
| 91 | +""" |
| 92 | +function Conversion_normalizedspace(S::Space, v::Union{Val{:forward}, Val{:backward}} = Val(:forward)) |
| 93 | + vflip = v isa Val{:forward} ? Val(:backward) : Val(:forward) |
| 94 | + Conversion_maybeconcrete(normalizedspace(S), S, vflip) |
87 | 95 | end
|
88 | 96 |
|
89 | 97 | """
|
|
0 commit comments