Domains
Domain
is an abstract type whose subtypes represent oriented domains on which we wish to approximate functions. Examples include Interval
, Ray
, Line
and Arc
. Periodic domains include PeriodicSegment
, PeriodicLine
and Circle
.
Relationship with spaces
Every domain d
has a default space, constructed via Space(d)
. For example, the default space for ChebyshevInterval()
is Chebyshev(ChebyshevInterval())
, which is efficient for representing smooth functions. On the other hand, the default space for PeriodicSegment()
is Fourier(PeriodicSegment())
, which uses trigonometric polynomials to approximate periodic functions.
Manipulating domains
Domains can be manipulated to make more complicated domains. For example, you can take the union of an interval and a circle
ChebyshevInterval() ∪ Circle(3,0.5) # equivalent to union(ChebyshevInterval(),Circle(3,0.5))
and the following creates a rectangle [0,1]^2
:
rect=Interval(0,1)^2
Some other set operations are partially implemented:
Interval(0,2) ∩ ChebyshevInterval() # returns Interval(0,1)