11__precompile__ ()
22
33module ApproxFun
4- using Base, RecipesBase, FastGaussQuadrature, FastTransforms, DualNumbers,
5- BlockArrays, BandedMatrices, BlockBandedMatrices, DomainSets, IntervalSets,
6- SpecialFunctions, AbstractFFTs, FFTW, SpecialFunctions, DSP,
7- LinearAlgebra, LowRankApprox, SparseArrays, FillArrays, InfiniteArrays # , Arpack
8- import StaticArrays, ToeplitzMatrices, Calculus
9-
4+ using Base, Reexport, BlockArrays, BandedMatrices, BlockBandedMatrices, DomainSets, IntervalSets,
5+ SpecialFunctions, AbstractFFTs, FFTW, SpecialFunctions, DSP, DualNumbers, FastTransforms,
6+ LinearAlgebra, SparseArrays, LowRankApprox, FillArrays, InfiniteArrays, RecipesBase,
7+ FFTW, AbstractFFTs # , Arpack
8+
9+ import Calculus
10+
11+ @reexport using ApproxFunBase
12+ @reexport using ApproxFunFourier
13+ @reexport using ApproxFunOrthogonalPolynomials
14+ @reexport using ApproxFunSingularities
15+
16+ import ApproxFunBase: normalize!, flipsign, FiniteRange, Fun, MatrixFun, UnsetSpace, VFun, RowVector,
17+ UnivariateSpace, AmbiguousSpace, SumSpace, SubSpace, WeightSpace, NoSpace, Space,
18+ HeavisideSpace, PointSpace,
19+ IntervalOrSegment, RaggedMatrix, AlmostBandedMatrix,
20+ AnyDomain, ZeroSpace, ArraySpace, TrivialInterlacer, BlockInterlacer,
21+ AbstractTransformPlan, TransformPlan, ITransformPlan,
22+ ConcreteConversion, ConcreteMultiplication, ConcreteDerivative, ConcreteIntegral, CalculusOperator,
23+ ConcreteVolterra, Volterra, VolterraWrapper,
24+ MultiplicationWrapper, ConversionWrapper, DerivativeWrapper, Evaluation, EvaluationWrapper,
25+ Conversion, defaultConversion, defaultcoefficients, default_Fun, Multiplication, Derivative, Integral, bandwidths,
26+ ConcreteEvaluation, ConcreteDefiniteLineIntegral, ConcreteDefiniteIntegral, ConcreteIntegral,
27+ DefiniteLineIntegral, DefiniteIntegral, ConcreteDefiniteIntegral, ConcreteDefiniteLineIntegral, IntegralWrapper,
28+ ReverseOrientation, ReverseOrientationWrapper, ReverseWrapper, Reverse, NegateEven,
29+ Dirichlet, ConcreteDirichlet, DirichletWrapper,
30+ TridiagonalOperator, SubOperator, Space, @containsconstants , spacescompatible,
31+ hasfasttransform, canonicalspace, domain, setdomain, prectype, domainscompatible,
32+ plan_transform, plan_itransform, plan_transform!, plan_itransform!, transform, itransform, hasfasttransform,
33+ CanonicalTransformPlan, ICanonicalTransformPlan,
34+ Integral,
35+ domainspace, rangespace, boundary,
36+ union_rule, conversion_rule, maxspace_rule, conversion_type, maxspace, hasconversion, points,
37+ rdirichlet, ldirichlet, lneumann, rneumann, ivp, bvp,
38+ linesum, differentiate, integrate, linebilinearform, bilinearform,
39+ UnsetNumber, coefficienttimes, subspace_coefficients, sumspacecoefficients, specialfunctionnormalizationpoint,
40+ Segment, IntervalOrSegmentDomain, PiecewiseSegment, isambiguous, Vec, eps, isperiodic,
41+ arclength, complexlength,
42+ invfromcanonicalD, fromcanonical, tocanonical, fromcanonicalD, tocanonicalD, canonicaldomain, setcanonicaldomain, mappoint,
43+ reverseorientation, checkpoints, evaluate, mul_coefficients, coefficients, coefficientmatrix, isconvertible,
44+ clenshaw, ClenshawPlan, sineshaw,
45+ toeplitz_getindex, toeplitz_axpy!, sym_toeplitz_axpy!, hankel_axpy!, ToeplitzOperator, SymToeplitzOperator, hankel_getindex,
46+ SpaceOperator, ZeroOperator, InterlaceOperator,
47+ interlace!, reverseeven!, negateeven!, cfstype, pad!, alternatesign!, mobius,
48+ extremal_args, hesseneigvals, chebyshev_clenshaw, recA, recB, recC, roots,splitatroots,
49+ chebmult_getindex, intpow, alternatingsum,
50+ domaintype, diagindshift, rangetype, weight, isapproxinteger, default_Dirichlet, scal!, dotu,
51+ components, promoterangespace, promotedomainspace, choosedomainspace,
52+ block, blockstart, blockstop, blocklengths, isblockbanded, pointscompatible,
53+ AbstractProductSpace, MultivariateFun, BivariateSpace,
54+ @wrapperstructure , @wrapperspaces , @wrapper , @calculus_operator , resizedata!, slnorm,
55+ sample
56+
57+ import ApproxFunOrthogonalPolynomials: order
1058
1159import DomainSets: Domain, indomain, UnionDomain, ProductDomain, FullSpace, Point, elements, DifferenceDomain,
1260 Interval, ChebyshevInterval, boundary, ∂, rightendpoint, leftendpoint,
@@ -16,7 +64,6 @@ import AbstractFFTs: Plan, fft, ifft
1664import FFTW: plan_r2r!, fftwNumber, REDFT10, REDFT01, REDFT00, RODFT00, R2HC, HC2R,
1765 r2r!, r2r, plan_fft, plan_ifft, plan_ifft!, plan_fft!
1866
19-
2067import Base: values, convert, getindex, setindex!, * , + , - , == , < , <= , > , | , ! , != , eltype, iterate,
2168 >= , / , ^ , \ , ∪ , transpose, size, reindex, tail, broadcast, broadcast!, copyto!, copy, to_index, (:),
2269 similar, map, vcat, hcat, hvcat, show, summary, stride, sum, cumsum, sign, imag, conj, inv,
@@ -32,7 +79,7 @@ import Base: values, convert, getindex, setindex!, *, +, -, ==, <, <=, >, |, !,
3279import Base. Broadcast: BroadcastStyle, Broadcasted, AbstractArrayStyle, broadcastable,
3380 DefaultArrayStyle, broadcasted
3481
35- import Statistics : mean
82+
3683
3784import LinearAlgebra: BlasInt, BlasFloat, norm, ldiv!, mul!, det, eigvals, dot, cross,
3885 qr, qr!, rank, isdiag, istril, istriu, issymmetric, ishermitian,
@@ -64,7 +111,6 @@ import BlockArrays: nblocks, blocksize, global2blockindex, globalrange, BlockSiz
64111
65112import BandedMatrices: bandrange, bandshift,
66113 inbands_getindex, inbands_setindex!, bandwidth, AbstractBandedMatrix,
67- flipsign,
68114 colstart, colstop, colrange, rowstart, rowstop, rowrange,
69115 bandwidths, _BandedMatrix, BandedMatrix
70116
@@ -82,11 +128,24 @@ import FillArrays: AbstractFill, getindex_value
82128import LazyArrays: cache
83129import InfiniteArrays: Infinity, InfRanges, AbstractInfUnitRange, OneToInf
84130
131+ """
132+ `Curve` Represents a domain defined by the image of a Fun. Example
133+ usage would be
134+
135+ ```julia
136+ x=Fun(1..2)
137+ Curve(exp(im*x)) # represents an arc
138+ ```
139+ """
140+ const Curve{S,T} = Union{IntervalCurve{S,T},PeriodicCurve{S,T}}
141+ Curve (f:: Fun{<:Space{<:PeriodicDomain}} ) = PeriodicCurve (f)
142+
143+ # TODO : Make type stable
144+ Curve (f:: Fun{<:Space{<:ChebyshevInterval}} ) = IntervalCurve (f)
85145
146+ export Curve
86147
87148
88- # convenience for 1-d block ranges
89- const BlockRange1 = BlockRange{1 ,Tuple{UnitRange{Int}}}
90149
91150import Base: view
92151
@@ -95,42 +154,16 @@ import StaticArrays: StaticArray, SVector
95154
96155import IntervalSets: (.. ), endpoints
97156
98- const Vec{d,T} = SVector{d,T}
99-
100- export pad!, pad, chop!, sample,
101- complexroots, roots, svfft, isvfft,
102- reverseorientation, jumplocations
103157
104158# #Testing
105159export bisectioninv
106160
107- export .. , Interval, ChebyshevInterval, leftendpoint, rightendpoint, endpoints
108-
109-
110-
111- include (" LinearAlgebra/LinearAlgebra.jl" )
112-
113-
114- include (" Fun/Fun.jl" )
115-
116-
117- include (" Domains/Domains.jl" )
118- include (" Multivariate/Multivariate.jl" )
119- include (" Operators/Operator.jl" )
120-
121- include (" Spaces/Spaces.jl" )
122-
123-
124-
125161
126162# # Further extra features
127163
128- include (" PDE/PDE.jl" )
129- include (" Caching/caching.jl" )
130164include (" Extras/Extras.jl" )
131165include (" Plot/Plot.jl" )
132166include (" docs.jl" )
133- include (" testing.jl" )
134167
135168# include("precompile.jl")
136169# _precompile_()
0 commit comments