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. More...
int | logs2x (double crval, int nlogc, int slogc, int sx, const double logc[], double x[], int stat[])
| Transform logarithmic coordinates. More...

## Variables

const char * | log_errmsg []
| Status return messages. More...

## Detailed Description

Routines in this suite implement the part of the FITS World Coordinate System (WCS) standard that deals with logarithmic coordinates, as described in

"Representations of world coordinates in FITS", Greisen, E.W., & Calabretta, M.R. 2002, A&A, 395, 1061 (WCS Paper I)

"Representations of spectral coordinates in FITS", Greisen, E.W., Calabretta, M.R., Valdes, F.G., & Allen, S.L. 2006, A&A, 446, 747 (WCS Paper III)

These routines 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

## log_errmsg_enum

enum log_errmsg_enum

Enumerator
LOGERR_SUCCESS |
LOGERR_NULL_POINTER |
LOGERR_BAD_LOG_REF_VAL |
LOGERR_BAD_X |
LOGERR_BAD_WORLD |

## Function Documentation

## logx2s()

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.

## logs2x()

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

## log_errmsg

const char * log_errmsg[]

extern

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