next up previous 264
Next: AST_LUTMAP - Create a LutMap
Up: AST Routine Descriptions
Previous: AST_KEYMAP - Create a KeyMap


AST_LINEARAPPROX - Obtain a linear approximation to a Mapping, if appropriate

Description:
This function tests the forward coordinate transformation implemented by a Mapping over a given range of input coordinates. If the transformation is found to be linear to a specified level of accuracy, then an array of fit coefficients is returned. These may be used to implement a linear approximation to the Mapping's forward transformation within the specified range of output coordinates. If the transformation is not sufficiently linear, no coefficients are returned.
Invocation:
RESULT = AST_LINEARAPPROX( THIS, LBND, UBND, TOL, FIT, STATUS )
Arguments:
THIS = INTEGER (Given)
Pointer to the Mapping.
LBND( $*$ ) = DOUBLE PRECISION (Given)
An array containing the lower bounds of a box defined within the input coordinate system of the Mapping. The number of elements in this array should equal the value of the Mapping's Nin attribute. This box should specify the region over which linearity is required.
UBND( $*$ ) = DOUBLE PRECISION (Given)
An array containing the upper bounds of the box specifying the region over which linearity is required.
TOL = DOUBLE PRECISION (Given)
The maximum permitted deviation from linearity, expressed as a positive Cartesian displacement in the output coordinate space of the Mapping. If a linear fit to the forward transformation of the Mapping deviates from the true transformation by more than this amount at any point which is tested, then no fit coefficients will be returned.
FIT( $*$ ) = DOUBLE PRECISION (Returned)
An array in which to return the co-efficients of the linear approximation to the specified transformation. This array should have at least "( Nin $+$ 1 ) $*$ Nout", elements. The first Nout elements hold the constant offsets for the transformation outputs. The remaining elements hold the gradients. So if the Mapping has 2 inputs and 3 outputs the linear approximation to the forward transformation is:

X_out = fit(1) $+$ fit(4)$*$X_in $+$ fit(5)$*$Y_in

Y_out = fit(2) $+$ fit(6)$*$X_in $+$ fit(7)$*$Y_in

Z_out = fit(3) $+$ fit(8)$*$X_in $+$ fit(9)$*$Y_in

STATUS = INTEGER (Given and Returned)
The global status.
Returned Value:
AST_LINEARAPPROX = LOGICAL
If the forward transformation is sufficiently linear, .TRUE is returned. Otherwise .FALSE. is returned and the fit co-efficients are set to AST__BAD.
Notes:
  • This function fits the Mapping's forward transformation. To fit the inverse transformation, the Mapping should be inverted using AST_INVERT before invoking this function.

  • A value of .FALSE. will be returned if this function is invoked with the global error status set, or if it should fail for any reason.


next up previous 264
Next: AST_LUTMAP - Create a LutMap
Up: AST Routine Descriptions
Previous: AST_KEYMAP - Create a KeyMap

AST A Library for Handling World Coordinate Systems in Astronomy
Starlink User Note 210
R.F. Warren-Smith & D.S. Berry
24th May 2011
E-mail:ussc@star.rl.ac.uk

Copyright (C) 2009 Science \& Technology Facilities Council