# log.h File Reference

Go to the source code of this file.

## Enumerations
enum | log_errmsg_enum { LOGERR_SUCCESS = 0, LOGERR_NULL_POINTER = 1, LOGERR_BAD_LOG_REF_VAL = 2, LOGERR_BAD_X = 3, LOGERR_BAD_WORLD = 4 }
## Functions
int | logx2s (double crval, int nx, int sx, int slogc, const double x[], double logc[], int stat[])
| Transform to logarithmic coordinates.
int | logs2x (double crval, int nlogc, int slogc, int sx, const double logc[], double x[], int stat[])
| Transform logarithmic coordinates.
## Variables
const char * | log_errmsg []
| Status return messages.

## Detailed Description

These routines implement the part of the FITS WCS standard that deals with logarithmic coordinates. They define methods to be used for computing logarithmic world coordinates from intermediate world coordinates (a linear transformation of image pixel coordinates), and vice versa.

logx2s() and logs2x() implement the WCS logarithmic coordinate transformations.

Argument checking:
The input log-coordinate values are only checked for values that would result in floating point exceptions and the same is true for the log-coordinate reference value.

Accuracy:
No warranty is given for the accuracy of these routines (refer to the copyright notice); intending users must satisfy for themselves their adequacy for the intended purpose. However, closure effectively to within double precision rounding error was demonstrated by test routine tlog.c which accompanies this software.

## Enumeration Type Documentation

enum log_errmsg_enum

Enumerator:

  LOGERR_SUCCESS |
  LOGERR_NULL_POINTER |
  LOGERR_BAD_LOG_REF_VAL |
  LOGERR_BAD_X |
  LOGERR_BAD_WORLD |

## Function Documentation

int logx2s | ( | double | crval,
|  | int | nx,
|  | int | sx,
|  | int | slogc,
|  | const double | x[],
|  | double | logc[],
|  | int | stat[] |
| ) |  |  |

logx2s() transforms intermediate world coordinates to logarithmic coordinates.

Parameters:

  `[in,out]` | crval | Log-coordinate reference value (`CRVALia`).
  `[in]` | nx | Vector length.
  `[in]` | sx | Vector stride.
  `[in]` | slogc | Vector stride.
  `[in]` | x | Intermediate world coordinates, in SI units.
  `[out]` | logc | Logarithmic coordinates, in SI units.
  `[out]` | stat | Status return value status for each vector element: 0: Success.

Returns:
  Status return value:
  - 0: Success.
  - 2: Invalid log-coordinate reference value.

int logs2x | ( | double | crval,
|  | int | nlogc,
|  | int | slogc,
|  | int | sx,
|  | const double | logc[],
|  | double | x[],
|  | int | stat[] |
| ) |  |  |

logs2x() transforms logarithmic world coordinates to intermediate world coordinates.

Parameters:

  `[in,out]` | crval | Log-coordinate reference value (`CRVALia`).
  `[in]` | nlogc | Vector length.
  `[in]` | slogc | Vector stride.
  `[in]` | sx | Vector stride.
  `[in]` | logc | Logarithmic coordinates, in SI units.
  `[out]` | x | Intermediate world coordinates, in SI units.
  `[out]` | stat | Status return value status for each vector element: 0: Success. 1: Invalid value of logc.

Returns:
  Status return value:
  - 0: Success.
  - 2: Invalid log-coordinate reference value.
  - 4: One or more of the world-coordinate values are incorrect, as indicated by the stat vector.

## Variable Documentation

const char * log_errmsg[]

Error messages to match the status value returned from each function.