#### Description:

A ChebyMap is a form of Mapping which performs a Chebyshev polynomial transformation. Each output coordinate is a linear combination of Chebyshev polynomials of the first kind, of order zero up to a specified maximum order, evaluated at the input coordinates. The coefficients to be used in the linear combination are specified separately for each output coordinate.

For a 1-dimensional ChebyMap, the forward transformation is defined as follows:

f(x) = c0.T0(x`’` ) + c1.T1(x`’` ) + c2.T2(x`’` ) + ...

where:

- Tn(x`’` ) is the nth Chebyshev polynomial of the first kind:

- T0(x`’` ) = 1

- T1(x`’` ) = x`’`

- Tn+1(x`’` ) = 2.x`’` .Tn(x`’` ) + Tn-1(x`’` )

- x`’` is the inpux axis value, x, offset and scaled to the range [-1, 1] as x ranges over a specified bounding box, given when the ChebyMap is created. The input positions, x, supplied to the forward transformation must fall within the bounding box - bad axis values (AST__BAD) are generated for points outside the bounding box.

For an N-dimensional ChebyMap, the forward transformation is a generalisation of the above form. Each output axis value is the sum of `"` ncoeff`"` terms, where each term is the product of a single coefficient value and N factors of the form Tn(x`’` _i), where `"` x`’` _i`"` is the normalised value of the i`’` th input axis value.

The forward and inverse transformations are defined independantly by separate sets of coefficients, supplied when the ChebyMap is created. If no coefficients are supplied to define the inverse transformation, the astPolyTran method of the parent PolyMap class can instead be used to create an inverse transformation. The inverse transformation so generated will be a Chebyshev polynomial with coefficients chosen to minimise the residuals left by a round trip (forward transformation followed by inverse transformation).

#### Constructor Function

astChebyMap

#### Inheritance

The ChebyMap class inherits from the PolyMap class.

#### Attributes

The ChebyMap class does not define any new attributes beyond those which are applicable to all PolyMaps.

#### Functions

In addition to those functions applicable to all PolyMap, the following functions may also be applied to all ChebyMaps:

- astChebyDomain: Get the bounds of the domain of the ChebyMap

Copyright (C) 2021 East Asian Observatory