@@ -5,7 +5,7 @@ FastTransforms.set_num_threads(ceil(Int, Base.Sys.CPU_THREADS/2))
5
5
@testset " libfasttransforms" begin
6
6
n = 64
7
7
α, β, γ, δ, λ, μ = 0.1 , 0.2 , 0.3 , 0.4 , 0.5 , 0.6
8
- for T in (Float32, Float64, BigFloat, Complex{Float32}, Complex{Float64}), Complex{BigFloat })
8
+ for T in (Float32, Float64, Complex{Float32}, Complex{Float64})
9
9
x = T (1 )./ (1 : n)
10
10
Id = Matrix {T} (I, n, n)
11
11
for (p1, p2) in ((plan_leg2cheb (Id), plan_cheb2leg (Id)),
@@ -32,7 +32,6 @@ FastTransforms.set_num_threads(ceil(Int, Base.Sys.CPU_THREADS/2))
32
32
y = p2' \ z
33
33
z = p2\ y
34
34
@test z ≈ x
35
- Id = Matrix {T} (I, n, n)
36
35
P = p1* Id
37
36
Q = p2* P
38
37
@test Q ≈ Id
@@ -53,8 +52,55 @@ FastTransforms.set_num_threads(ceil(Int, Base.Sys.CPU_THREADS/2))
53
52
end
54
53
end
55
54
55
+ for T in (BigFloat, Complex{BigFloat})
56
+ x = T (1 )./ (1 : n)
57
+ Id = Matrix {T} (I, n, n)
58
+ for (p1, p2) in ((plan_leg2cheb (Id), plan_cheb2leg (Id)),
59
+ (plan_ultra2ultra (Id, λ, μ), plan_ultra2ultra (Id, μ, λ)),
60
+ (plan_jac2jac (Id, α, β, γ, δ), plan_jac2jac (Id, γ, δ, α, β)),
61
+ (plan_lag2lag (Id, α, β), plan_lag2lag (Id, β, α)),
62
+ (plan_jac2ultra (Id, α, β, λ), plan_ultra2jac (Id, λ, α, β)),
63
+ (plan_jac2cheb (Id, α, β), plan_cheb2jac (Id, α, β)),
64
+ (plan_ultra2cheb (Id, λ), plan_cheb2ultra (Id, λ)))
65
+ y = p1* x
66
+ z = p2* y
67
+ @test z ≈ x
68
+ y = p1* x
69
+ z = p1' y
70
+ y = transpose (p1)* z
71
+ z = transpose (p1)\ y
72
+ y = p1' \ z
73
+ z = p1\ y
74
+ @test z ≈ x
75
+ y = p2* x
76
+ z = p2' y
77
+ y = transpose (p2)* z
78
+ z = transpose (p2)\ y
79
+ y = p2' \ z
80
+ z = p2\ y
81
+ @test z ≈ x
82
+ P = p1* Id
83
+ Q = p2* P
84
+ @test_skip Q ≈ Id
85
+ P = p1* Id
86
+ Q = p1' P
87
+ P = transpose (p1)* Q
88
+ Q = transpose (p1)\ P
89
+ P = p1' \ Q
90
+ Q = p1\ P
91
+ @test_skip Q ≈ Id
92
+ P = p2* Id
93
+ Q = p2' P
94
+ P = transpose (p2)* Q
95
+ Q = transpose (p2)\ P
96
+ P = p2' \ Q
97
+ Q = p2\ P
98
+ @test_skip Q ≈ Id
99
+ end
100
+ end
101
+
56
102
for T in (Float64, Complex{Float64})
57
- A = sphones (T, n, 2 n- 1 )
103
+ A = T <: Real ? sphones (T, n, 2 n - 1 ) : sphones (T, n, 2 n - 1 ) + im * sphones (T, n, 2 n- 1 )
58
104
p = plan_sph2fourier (A)
59
105
ps = plan_sph_synthesis (A)
60
106
pa = plan_sph_analysis (A)
@@ -63,7 +109,7 @@ FastTransforms.set_num_threads(ceil(Int, Base.Sys.CPU_THREADS/2))
63
109
A = p\ (pa* C)
64
110
@test A ≈ B
65
111
66
- A = sphvones (T, n, 2 n- 1 )
112
+ A = T <: Real ? sphvones (T, n, 2 n - 1 ) : sphvones (T, n, 2 n - 1 ) + im * sphvones (T, n, 2 n- 1 )
67
113
p = plan_sphv2fourier (A)
68
114
ps = plan_sphv_synthesis (A)
69
115
pa = plan_sphv_analysis (A)
@@ -72,7 +118,7 @@ FastTransforms.set_num_threads(ceil(Int, Base.Sys.CPU_THREADS/2))
72
118
A = p\ (pa* C)
73
119
@test A ≈ B
74
120
75
- A = diskones (T, n, 4 n- 3 )
121
+ A = T <: Real ? diskones (T, n, 4 n - 3 ) : diskones (T, n, 4 n - 3 ) + im * diskones (T, n, 4 n- 3 )
76
122
p = plan_disk2cxf (A)
77
123
ps = plan_disk_synthesis (A)
78
124
pa = plan_disk_analysis (A)
@@ -81,7 +127,7 @@ FastTransforms.set_num_threads(ceil(Int, Base.Sys.CPU_THREADS/2))
81
127
A = p\ (pa* C)
82
128
@test A ≈ B
83
129
84
- A = triones (T, n, n)
130
+ A = T <: Real ? triones (T, n, n) : triones (T, n, n) + im * triones (T, n, n)
85
131
p = plan_tri2cheb (A, α, β, γ)
86
132
ps = plan_tri_synthesis (A)
87
133
pa = plan_tri_analysis (A)
@@ -90,7 +136,7 @@ FastTransforms.set_num_threads(ceil(Int, Base.Sys.CPU_THREADS/2))
90
136
A = p\ (pa* C)
91
137
@test A ≈ B
92
138
93
- A = tetones (T, n, n, n)
139
+ A = T <: Real ? tetones (T, n, n, n) : tetones (T, n, n, n) + im * tetones (T, n, n, n)
94
140
p = plan_tet2cheb (A, α, β, γ, δ)
95
141
ps = plan_tet_synthesis (A)
96
142
pa = plan_tet_analysis (A)
0 commit comments