WCSLIB
8.7
Toggle main menu visibility
Loading...
Searching...
No Matches
C
log.h
Go to the documentation of this file.
1
/*============================================================================
2
WCSLIB 8.7 - an implementation of the FITS WCS standard.
3
Copyright (C) 1995-2026, Mark Calabretta
4
5
This file is part of WCSLIB.
6
7
WCSLIB is free software: you can redistribute it and/or modify it under the
8
terms of the GNU Lesser General Public License as published by the Free
9
Software Foundation, either version 3 of the License, or (at your option)
10
any later version.
11
12
WCSLIB is distributed in the hope that it will be useful, but WITHOUT ANY
13
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
14
FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for
15
more details.
16
17
You should have received a copy of the GNU Lesser General Public License
18
along with WCSLIB. If not, see http://www.gnu.org/licenses.
19
20
Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
21
http://www.atnf.csiro.au/computing/software/wcs
22
$Id: log.h,v 8.7 2026/05/11 12:01:10 mcalabre Exp $
23
*=============================================================================
24
*
25
* WCSLIB 8.7 - C routines that implement the FITS World Coordinate System
26
* (WCS) standard. Refer to the README file provided with WCSLIB for an
27
* overview of the library.
28
*
29
*
30
* Summary of the log routines
31
* ---------------------------
32
* Routines in this suite implement the part of the FITS World Coordinate
33
* System (WCS) standard that deals with logarithmic coordinates, as described
34
* in
35
*
36
* "Representations of world coordinates in FITS",
37
* Greisen, E.W., & Calabretta, M.R. 2002, A&A, 395, 1061 (WCS Paper I)
38
*
39
* "Representations of spectral coordinates in FITS",
40
* Greisen, E.W., Calabretta, M.R., Valdes, F.G., & Allen, S.L.
41
* 2006, A&A, 446, 747 (WCS Paper III)
42
*
43
* These routines define methods to be used for computing logarithmic world
44
* coordinates from intermediate world coordinates (a linear transformation of
45
* image pixel coordinates), and vice versa.
46
*
47
* logx2s() and logs2x() implement the WCS logarithmic coordinate
48
* transformations.
49
*
50
* Argument checking:
51
* ------------------
52
* The input log-coordinate values are only checked for values that would
53
* result in floating point exceptions and the same is true for the
54
* log-coordinate reference value.
55
*
56
* Accuracy:
57
* ---------
58
* No warranty is given for the accuracy of these routines (refer to the
59
* copyright notice); intending users must satisfy for themselves their
60
* adequacy for the intended purpose. However, closure effectively to within
61
* double precision rounding error was demonstrated by test routine tlog.c
62
* which accompanies this software.
63
*
64
*
65
* logx2s() - Transform to logarithmic coordinates
66
* -----------------------------------------------
67
* logx2s() transforms intermediate world coordinates to logarithmic
68
* coordinates.
69
*
70
* Given and returned:
71
* crval double Log-coordinate reference value (CRVALia).
72
*
73
* Given:
74
* nx int Vector length.
75
*
76
* sx int Vector stride.
77
*
78
* slogc int Vector stride.
79
*
80
* x const double[]
81
* Intermediate world coordinates, in SI units.
82
*
83
* Returned:
84
* logc double[] Logarithmic coordinates, in SI units.
85
*
86
* stat int[] Status return value status for each vector element:
87
* 0: Success.
88
*
89
* Function return value:
90
* int Status return value:
91
* 0: Success.
92
* 2: Invalid log-coordinate reference value.
93
*
94
*
95
* logs2x() - Transform logarithmic coordinates
96
* --------------------------------------------
97
* logs2x() transforms logarithmic world coordinates to intermediate world
98
* coordinates.
99
*
100
* Given and returned:
101
* crval double Log-coordinate reference value (CRVALia).
102
*
103
* Given:
104
* nlogc int Vector length.
105
*
106
* slogc int Vector stride.
107
*
108
* sx int Vector stride.
109
*
110
* logc const double[]
111
* Logarithmic coordinates, in SI units.
112
*
113
* Returned:
114
* x double[] Intermediate world coordinates, in SI units.
115
*
116
* stat int[] Status return value status for each vector element:
117
* 0: Success.
118
* 1: Invalid value of logc.
119
*
120
* Function return value:
121
* int Status return value:
122
* 0: Success.
123
* 2: Invalid log-coordinate reference value.
124
* 4: One or more of the world-coordinate values
125
* are incorrect, as indicated by the stat vector.
126
*
127
*
128
* Global variable: const char *log_errmsg[] - Status return messages
129
* ------------------------------------------------------------------
130
* Error messages to match the status value returned from each function.
131
*
132
*===========================================================================*/
133
134
#ifndef WCSLIB_LOG
135
#define WCSLIB_LOG
136
137
#ifdef __cplusplus
138
extern
"C"
{
139
#endif
140
141
extern
const
char
*
log_errmsg
[];
142
143
enum
log_errmsg_enum
{
144
LOGERR_SUCCESS
= 0,
// Success.
145
LOGERR_NULL_POINTER
= 1,
// Null pointer passed.
146
LOGERR_BAD_LOG_REF_VAL
= 2,
// Invalid log-coordinate reference value.
147
LOGERR_BAD_X
= 3,
// One or more of the x coordinates were
148
// invalid.
149
LOGERR_BAD_WORLD
= 4
// One or more of the world coordinates were
150
// invalid.
151
};
152
153
int
logx2s
(
double
crval,
int
nx,
int
sx,
int
slogc,
const
double
x[],
154
double
logc[],
int
stat[]);
155
156
int
logs2x
(
double
crval,
int
nlogc,
int
slogc,
int
sx,
const
double
logc[],
157
double
x[],
int
stat[]);
158
159
160
#ifdef __cplusplus
161
}
162
#endif
163
164
#endif
// WCSLIB_LOG
logx2s
int logx2s(double crval, int nx, int sx, int slogc, const double x[], double logc[], int stat[])
Transform to logarithmic coordinates.
log_errmsg
const char * log_errmsg[]
Status return messages.
log_errmsg_enum
log_errmsg_enum
Definition
log.h:143
LOGERR_BAD_WORLD
@ LOGERR_BAD_WORLD
Definition
log.h:149
LOGERR_SUCCESS
@ LOGERR_SUCCESS
Definition
log.h:144
LOGERR_BAD_X
@ LOGERR_BAD_X
Definition
log.h:147
LOGERR_NULL_POINTER
@ LOGERR_NULL_POINTER
Definition
log.h:145
LOGERR_BAD_LOG_REF_VAL
@ LOGERR_BAD_LOG_REF_VAL
Definition
log.h:146
logs2x
int logs2x(double crval, int nlogc, int slogc, int sx, const double logc[], double x[], int stat[])
Transform logarithmic coordinates.
Generated on
for WCSLIB by
1.17.0