#### Description:

This function evaluates the rate of change of a specified output of the supplied Mapping with respect to a specified input, at a specified input position.

The result is estimated by interpolating the function using a fourth order polynomial in the neighbourhood of the specified position. The size of the neighbourhood used is chosen to minimise the RMS residual per unit length between the interpolating polynomial and the supplied Mapping function. This method produces good accuracy but can involve evaluating the Mapping 100 or more times.

#### Synopsis

double astRate( AstMapping ∗this, double ∗at, int ax1, int ax2 )

#### Parameters:

##### this

Pointer to the Mapping to be applied.

##### at

The address of an array holding the axis values at the position at which the rate of change is to be evaluated. The number of elements in this array should equal the number of inputs to the Mapping.

##### ax1

The index of the Mapping output for which the rate of change is to be found (output numbering starts at 1 for the first output).

##### ax2

The index of the Mapping input which is to be varied in order to find the rate of change (input numbering starts at 1 for the first input).

#### Returned Value

##### astRate()

The rate of change of Mapping output `"` ax1`"` with respect to input `"` ax2`"` , evaluated at `"` at`"` , or AST__BAD if the value cannot be calculated.

#### Notes:

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

Copyright (C) 2021 East Asian Observatory