Skip to content

Commit 48ce507

Browse files
add GramMatrix
1 parent 9f8d352 commit 48ce507

File tree

6 files changed

+430
-8
lines changed

6 files changed

+430
-8
lines changed

Project.toml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,14 @@ version = "0.16.6"
44

55
[deps]
66
AbstractFFTs = "621f4979-c628-5d54-868e-fcf4e3e8185c"
7+
ArrayLayouts = "4c555306-a7a7-4459-81d9-ec55ddd5c99a"
78
BandedMatrices = "aae01518-5342-5314-be14-df237901396f"
89
FFTW = "7a1cc6ca-52ef-59f5-83cd-3a7055c09341"
910
FastGaussQuadrature = "442a2c76-b920-505d-bb47-c5924d526838"
1011
FastTransforms_jll = "34b6f7d7-08f9-5794-9e10-3819e4c7e49a"
1112
FillArrays = "1a297f60-69ca-5386-bcde-b61e274b549b"
1213
GenericFFT = "a8297547-1b15-4a5a-a998-a2ac5f1cef28"
14+
LazyArrays = "5078a376-72f3-5289-bfd5-ec5146d43c02"
1315
Libdl = "8f399da3-3557-5675-b5ff-fb832c97cbdb"
1416
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
1517
RecurrenceRelationships = "807425ed-42ea-44d6-a357-6771516d7b2c"
@@ -19,12 +21,14 @@ ToeplitzMatrices = "c751599d-da0a-543b-9d20-d0a503d91d24"
1921

2022
[compat]
2123
AbstractFFTs = "1.0"
24+
ArrayLayouts = "1.10"
2225
BandedMatrices = "1.5"
2326
FFTW = "1.7"
2427
FastGaussQuadrature = "0.4, 0.5, 1"
2528
FastTransforms_jll = "0.6.2"
2629
FillArrays = "0.9, 0.10, 0.11, 0.12, 0.13, 1"
2730
GenericFFT = "0.1"
31+
LazyArrays = "2.2"
2832
RecurrenceRelationships = "0.1"
2933
Reexport = "0.2, 1.0"
3034
SpecialFunctions = "0.10, 1, 2"

docs/src/index.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,20 @@ This package provides a Julia wrapper for the [C library](https://github.com/Mik
1010

1111
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+
### Fast Cholesky factorization of the Gram matrix
14+
15+
```@docs
16+
AbstractGramMatrix
17+
```
18+
19+
```@docs
20+
GramMatrix
21+
```
22+
23+
```@docs
24+
ChebyshevGramMatrix
25+
```
26+
1327
## Nonuniform fast Fourier transforms
1428

1529
```@docs

src/FastTransforms.jl

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
module FastTransforms
22

3-
using BandedMatrices, FastGaussQuadrature, FillArrays, LinearAlgebra,
3+
using ArrayLayouts, BandedMatrices, FastGaussQuadrature, FillArrays, LazyArrays, LinearAlgebra,
44
Reexport, SpecialFunctions, ToeplitzMatrices, RecurrenceRelationships
55

66
@reexport using AbstractFFTs
@@ -19,6 +19,8 @@ import AbstractFFTs: Plan, ScaledPlan,
1919
fftshift, ifftshift, rfft_output_size, brfft_output_size,
2020
normalization
2121

22+
import ArrayLayouts: colsupport, LayoutMatrix, MemoryLayout, AbstractBandedLayout
23+
2224
import BandedMatrices: bandwidths
2325

2426
import FFTW: dct, dct!, idct, idct!, plan_dct!, plan_idct!,
@@ -28,7 +30,7 @@ import FastGaussQuadrature: unweightedgausshermite
2830

2931
import FillArrays: AbstractFill, getindex_value
3032

31-
import LinearAlgebra: mul!, lmul!, ldiv!, cholesky
33+
import LinearAlgebra: cholesky, issymmetric, isposdef, mul!, lmul!, ldiv!
3234

3335
import GenericFFT: interlace # imported in downstream packages
3436

@@ -98,14 +100,18 @@ export plan_clenshawcurtis, plan_fejer1, plan_fejer2
98100
include("clenshawcurtis.jl")
99101
include("fejer.jl")
100102

101-
export weightedhermitetransform, iweightedhermitetransform
102-
103-
include("hermite.jl")
104-
105103
export gaunt
106104

107105
include("gaunt.jl")
108106

107+
export GramMatrix, ChebyshevGramMatrix
108+
109+
include("GramMatrix.jl")
110+
111+
export weightedhermitetransform, iweightedhermitetransform
112+
113+
include("hermite.jl")
114+
109115
export sphones, sphzeros, sphrand, sphrandn, sphevaluate,
110116
sphvones, sphvzeros, sphvrand, sphvrandn,
111117
diskones, diskzeros, diskrand, diskrandn,

0 commit comments

Comments
 (0)