Skip to content

Commit acd4f4e

Browse files
reactivate documenter and Coverage
1 parent 8dd3943 commit acd4f4e

File tree

3 files changed

+49
-166
lines changed

3 files changed

+49
-166
lines changed

.travis.yml

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,5 @@ matrix:
2222
notifications:
2323
email: false
2424
after_success:
25-
- julia -e 'cd(Pkg.dir("FastTransforms")); Pkg.add("Documenter"); include(joinpath("docs", "make.jl")); Pkg.add("Coverage"); using Coverage; Codecov.submit(Codecov.process_folder())'
26-
# uncomment the following lines to override the default test script
27-
#script:
28-
# - if [[ -a .git/shallow ]]; then git fetch --unshallow; fi
29-
# - julia -e 'Pkg.clone(pwd()); Pkg.build("FastTransforms"); Pkg.test("FastTransforms"; coverage=true)'
25+
- julia -e 'using Pkg; cd(Pkg.dir("FastTransforms")); Pkg.add("Documenter"); include(joinpath("docs", "make.jl"))'
26+
- julia -e 'using Pkg; cd(Pkg.dir("FastTransforms")); Pkg.add("Coverage"); using Coverage; Codecov.submit(Codecov.process_folder())'

docs/src/index.md

Lines changed: 4 additions & 108 deletions
Original file line numberDiff line numberDiff line change
@@ -4,31 +4,13 @@
44

55
`FastTransforms.jl` allows the user to conveniently work with orthogonal polynomials with degrees well into the millions.
66

7-
Transforms include conversion between Jacobi polynomial expansions, with Chebyshev, Legendre, and ultraspherical polynomial transforms as special cases. For the signal processor, all three types of nonuniform fast Fourier transforms available. As well, spherical harmonic transforms and transforms between orthogonal polynomials on the triangle allow for the efficient simulation of partial differential equations of evolution.
7+
This package provides a Julia wrapper for the [C library](https://github.com/MikaelSlevinsky/FastTransforms) of the same name. Additionally, all three types of nonuniform fast Fourier transforms available, as well as the Padua transform.
88

9-
Algorithms include methods based on asymptotic formulae to relate the transforms to a small number of fast Fourier transforms, matrix factorizations based on the Hadamard product, hierarchical matrix decompositions à la Fast Multipole Method, and the butterfly algorithm.
9+
## Fast orthogonal polynomial transforms
1010

11-
## Fast Transforms
11+
For this documentation, please see the documentation for [FastTransforms](https://github.com/MikaelSlevinsky/FastTransforms). Most transforms have separate forward and inverse plans. In some instances, however, the inverse is in the sense of least-squares, and therefore only the forward transform is planned.
1212

13-
```@docs
14-
leg2cheb
15-
```
16-
17-
```@docs
18-
cheb2leg
19-
```
20-
21-
```@docs
22-
cjt
23-
```
24-
25-
```@docs
26-
icjt
27-
```
28-
29-
```@docs
30-
jjt
31-
```
13+
## Nonuniform fast Fourier transforms
3214

3315
```@docs
3416
nufft1
@@ -58,66 +40,6 @@ paduatransform
5840
ipaduatransform
5941
```
6042

61-
```@docs
62-
sph2fourier
63-
```
64-
65-
```@docs
66-
fourier2sph
67-
```
68-
69-
## Planning The Fast Transforms
70-
71-
Most transforms have separate forward and inverse plans. In some instances, however, the inverse is in the sense of least-squares, and therefore only the forward transform is planned.
72-
73-
```@docs
74-
plan_leg2cheb
75-
```
76-
77-
```@docs
78-
plan_cheb2leg
79-
```
80-
81-
```@docs
82-
plan_cjt
83-
```
84-
85-
```@docs
86-
plan_icjt
87-
```
88-
89-
```@docs
90-
plan_nufft1
91-
```
92-
93-
```@docs
94-
plan_nufft2
95-
```
96-
97-
```@docs
98-
plan_nufft3
99-
```
100-
101-
```@docs
102-
plan_inufft1
103-
```
104-
105-
```@docs
106-
plan_inufft2
107-
```
108-
109-
```@docs
110-
plan_paduatransform!
111-
```
112-
113-
```@docs
114-
plan_ipaduatransform!
115-
```
116-
117-
```@docs
118-
plan_sph2fourier
119-
```
120-
12143
## Other Exported Methods
12244

12345
```@docs
@@ -213,29 +135,3 @@ FastTransforms.chebyshevjacobimoments2
213135
```@docs
214136
FastTransforms.chebyshevlogmoments2
215137
```
216-
217-
### Jacobi Polynomial Increment and Decrement Operators
218-
219-
```@docs
220-
FastTransforms.incrementα!
221-
```
222-
223-
```@docs
224-
FastTransforms.incrementβ!
225-
```
226-
227-
```@docs
228-
FastTransforms.incrementαβ!
229-
```
230-
231-
```@docs
232-
FastTransforms.decrementα!
233-
```
234-
235-
```@docs
236-
FastTransforms.decrementβ!
237-
```
238-
239-
```@docs
240-
FastTransforms.decrementαβ!
241-
```

test/libfasttransformstests.jl

Lines changed: 43 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -6,83 +6,73 @@ FastTransforms.set_num_threads(ceil(Int, Base.Sys.CPU_THREADS/2))
66
n = 64
77
α, β, γ, δ, λ, μ = 0.1, 0.2, 0.3, 0.4, 0.5, 0.6
88
for T in (Float32, Float64, BigFloat)
9-
for (p1, p2) in ((plan_leg2cheb(T, n), plan_cheb2leg(T, n)),
10-
(plan_ultra2ultra(T, n, T(λ), T(μ)), plan_ultra2ultra(T, n, T), T(λ))),
11-
(plan_jac2jac(T, n, T), T(β), T), T(δ)), plan_jac2jac(T, n, T), T(δ), T(α), T))),
12-
(plan_lag2lag(T, n, T(α), T(β)), plan_lag2lag(T, n, T(β), T(α))),
13-
(plan_jac2ultra(T, n, T(α), T(β), T(λ)), plan_ultra2jac(T, n, T), T), T))),
14-
(plan_jac2cheb(T, n, T(α), T(β)), plan_cheb2jac(T, n, T(α), T(β))),
15-
(plan_ultra2cheb(T, n, T(λ)), plan_cheb2ultra(T, n, T(λ))))
16-
Id = Matrix{T}(I, n, n)
9+
Id = Matrix{T}(I, n, n)
10+
for (p1, p2) in ((plan_leg2cheb(Id), plan_cheb2leg(Id)),
11+
(plan_ultra2ultra(Id, T), T(μ)), plan_ultra2ultra(Id, T), T(λ))),
12+
(plan_jac2jac(Id, T(α), T(β), T(γ), T(δ)), plan_jac2jac(Id, T(γ), T(δ), T), T))),
13+
(plan_lag2lag(Id, T(α), T(β)), plan_lag2lag(Id, T), T(α))),
14+
(plan_jac2ultra(Id, T(α), T(β), T(λ)), plan_ultra2jac(Id, T(λ), T(α), T(β))),
15+
(plan_jac2cheb(Id, T(α), T(β)), plan_cheb2jac(Id, T(α), T(β))),
16+
(plan_ultra2cheb(Id, T(λ)), plan_cheb2ultra(Id, T(λ))))
1717
P = deepcopy(Id)
18-
lmul!(p1, P)
19-
lmul!(p2, P)
18+
Q = p1*P
19+
P = p2*Q
2020
@test P Id
21-
lmul!(p1, P)
22-
lmul!(p1', P)
23-
ldiv!(p1', P)
24-
ldiv!(p1, P)
21+
Q = p1*P
22+
P = p1'Q
23+
Q = p1'\P
24+
P = p1\Q
2525
@test P Id
26-
lmul!(p1, P)
27-
lmul!(p1', P)
28-
ldiv!(p1', P)
29-
ldiv!(p1, P)
26+
Q = p2*P
27+
P = p2'Q
28+
Q = p2'\P
29+
P = p2\Q
3030
@test P Id
3131
end
3232
end
3333

34-
p = plan_sph2fourier(Float64, n)
35-
ps = plan_sph_synthesis(Float64, n, 2n-1)
36-
pa = plan_sph_analysis(Float64, n, 2n-1)
3734
A = sphones(Float64, n, 2n-1)
35+
p = plan_sph2fourier(A)
36+
ps = plan_sph_synthesis(A)
37+
pa = plan_sph_analysis(A)
3838
B = copy(A)
39-
lmul!(p, A)
40-
lmul!(ps, A)
41-
lmul!(pa, A)
42-
ldiv!(p, A)
39+
C = ps*(p*A)
40+
A = p\(pa*C)
4341
@test A B
4442

45-
p = plan_sphv2fourier(Float64, n)
46-
ps = plan_sphv_synthesis(Float64, n, 2n-1)
47-
pa = plan_sphv_analysis(Float64, n, 2n-1)
4843
A = sphvones(Float64, n, 2n-1)
44+
p = plan_sphv2fourier(A)
45+
ps = plan_sphv_synthesis(A)
46+
pa = plan_sphv_analysis(A)
4947
B = copy(A)
50-
lmul!(p, A)
51-
lmul!(ps, A)
52-
lmul!(pa, A)
53-
ldiv!(p, A)
48+
C = ps*(p*A)
49+
A = p\(pa*C)
5450
@test A B
5551

56-
p = plan_disk2cxf(Float64, n)
57-
ps = plan_disk_synthesis(Float64, n, 4n-3)
58-
pa = plan_disk_analysis(Float64, n, 4n-3)
5952
A = diskones(Float64, n, 4n-3)
53+
p = plan_disk2cxf(A)
54+
ps = plan_disk_synthesis(A)
55+
pa = plan_disk_analysis(A)
6056
B = copy(A)
61-
lmul!(p, A)
62-
lmul!(ps, A)
63-
lmul!(pa, A)
64-
ldiv!(p, A)
57+
C = ps*(p*A)
58+
A = p\(pa*C)
6559
@test A B
6660

67-
p = plan_tri2cheb(Float64, n, α, β, γ)
68-
ps = plan_tri_synthesis(Float64, n, n)
69-
pa = plan_tri_analysis(Float64, n, n)
7061
A = triones(Float64, n, n)
62+
p = plan_tri2cheb(A, α, β, γ)
63+
ps = plan_tri_synthesis(A)
64+
pa = plan_tri_analysis(A)
7165
B = copy(A)
72-
lmul!(p, A)
73-
lmul!(ps, A)
74-
lmul!(pa, A)
75-
ldiv!(p, A)
66+
C = ps*(p*A)
67+
A = p\(pa*C)
7668
@test A B
7769

78-
p = plan_tet2cheb(Float64, n, α, β, γ, δ)
79-
ps = plan_tet_synthesis(Float64, n, n, n)
80-
pa = plan_tet_analysis(Float64, n, n, n)
8170
A = tetones(Float64, n, n, n)
71+
p = plan_tet2cheb(A, α, β, γ, δ)
72+
ps = plan_tet_synthesis(A)
73+
pa = plan_tet_analysis(A)
8274
B = copy(A)
83-
lmul!(p, A)
84-
lmul!(ps, A)
85-
lmul!(pa, A)
86-
ldiv!(p, A)
75+
C = ps*(p*A)
76+
A = p\(pa*C)
8777
@test A B
8878
end

0 commit comments

Comments
 (0)