Map coordinates using Chebyshev polynomial functions ChebyMap
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’
Tn1(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).
astChebyDomain: Get the bounds of the domain of the ChebyMap