Skip to content

Commit 339392a

Browse files
authored
Add and export Conversion_normalizedspace (#460)
* Add Conversion_tonormalizedspace and Conversion_fromnormalizedspace * Use Val-based dispatch in Conversion_normalizedspace * Use forward transform by default * remove doctest examples
1 parent 36d0546 commit 339392a

File tree

2 files changed

+19
-11
lines changed

2 files changed

+19
-11
lines changed

Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name = "ApproxFunBase"
22
uuid = "fbd15aa5-315a-5a7d-a8a4-24992e37be05"
3-
version = "0.8.21"
3+
version = "0.8.22"
44

55
[deps]
66
AbstractFFTs = "621f4979-c628-5d54-868e-fcf4e3e8185c"

src/Operators/banded/Conversion.jl

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
export Conversion
1+
export Conversion, Conversion_normalizedspace
22

33
abstract type Conversion{T}<:Operator{T} end
44

@@ -71,19 +71,27 @@ Assumed to be false by default.
7171
"""
7272
hasconcreteconversion_canonical(@nospecialize(sp), @nospecialize(Valfwdback)) = false
7373

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)
7576
if hasconcreteconversion_canonical(sp, v)
76-
ConcreteConversion(sp,csp)
77+
ConcreteConversion(t...)
7778
else
78-
Conversion(sp,csp)
79+
Conversion(t...)
7980
end
8081
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)
8795
end
8896

8997
"""

0 commit comments

Comments
 (0)