/
ApproxFun.jl
86 lines (64 loc) · 2.78 KB
/
ApproxFun.jl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
module ApproxFun
using AbstractFFTs
using DomainSets
using FastTransforms
using LinearAlgebra
using RecipesBase
using Reexport
using SpecialFunctions
import Calculus
@reexport using ApproxFunBase
@reexport using ApproxFunFourier
@reexport using ApproxFunOrthogonalPolynomials
@reexport using ApproxFunSingularities
import ApproxFunBase: Fun, UnsetSpace, UnivariateSpace, Space,
HeavisideSpace, PointSpace, IntervalOrSegment, ArraySpace,
TransformPlan, ITransformPlan, Evaluation,
Conversion, default_Fun, Derivative, Integral,
domain, plan_transform,
plan_itransform, transform, domainspace,
rangespace, points, differentiate, integrate,
Segment, fromcanonical, checkpoints, evaluate,
coefficients, coefficientmatrix, clenshaw, ClenshawPlan,
SpaceOperator, cfstype, pad!, components,
AbstractProductSpace, MultivariateFun, BivariateSpace,
sample, chop!, 𝒟, ∫, ⨜, ⨍, eigs
export ∫, ⨜, ⨍, 𝒟
import ApproxFunOrthogonalPolynomials: order
using ApproxFunSingularities: LeftIntegral, LeftDerivative, RightDerivative, RightIntegral
import AbstractFFTs: Plan, fft, ifft, plan_fft, plan_ifft, plan_ifft!
import Base: convert, getindex, *, +, -, /, ^, \, sum, cumsum,
first, last, isempty, zeros, promote_rule,
# the following functions names are listed in Calculus.symbolic_derivatives_1arg(),
# and methods are added to them here
sqrt, cbrt, abs2, inv, log, log10, log2, log1p,
exp, exp2, expm1, sin, cos, tan, sec, csc, cot,
sind, cosd, tand, secd, cscd, cotd, asin, acos, atan, asec, acsc, acot,
asind, acosd, atand, asecd, acscd, acotd, sinh, cosh, tanh, sech, csch,
coth, asinh, acosh, atanh, asech, acsch, acoth, deg2rad, rad2deg
import LinearAlgebra: adjoint
import SpecialFunctions: erf, erfinv, erfc, erfcinv, erfi, gamma, lgamma, digamma, invdigamma,
trigamma, airyai, airybi, airyaiprime, airybiprime, besselj0, besselj1,
bessely0, bessely1, erfcx, dawson
using StaticArrays: SVector
"""
`Curve` Represents a domain defined by the image of a Fun. Example
usage would be
```julia
x=Fun(1..2)
Curve(exp(im*x)) # represents an arc
```
"""
const Curve{S,T} = Union{IntervalCurve{S,T},PeriodicCurve{S,T}}
Curve(f::Fun{<:Space{<:PeriodicDomain}}) = PeriodicCurve(f)
#TODO: Make type stable
Curve(f::Fun{<:Space{<:ChebyshevInterval}}) = IntervalCurve(f)
export Curve
##Testing
export bisectioninv
## Further extra features
include("Extras/Extras.jl")
include("Plot/Plot.jl")
#include("precompile.jl")
#_precompile_()
end #module