File: log_8h-source.html

package info (click to toggle)
python-pywcs 1.11-1
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 11,888 kB
  • sloc: ansic: 31,441; lex: 6,170; fortran: 6,080; sh: 3,478; python: 3,122; sed: 408; makefile: 76
file content (194 lines) | stat: -rw-r--r-- 18,870 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>WCSLIB 4.8.2: log.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.6 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
<h1>log.h</h1><a href="log_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*============================================================================</span>
<a name="l00002"></a>00002 <span class="comment"></span>
<a name="l00003"></a>00003 <span class="comment">  WCSLIB 4.8 - an implementation of the FITS WCS standard.</span>
<a name="l00004"></a>00004 <span class="comment">  Copyright (C) 1995-2011, Mark Calabretta</span>
<a name="l00005"></a>00005 <span class="comment"></span>
<a name="l00006"></a>00006 <span class="comment">  This file is part of WCSLIB.</span>
<a name="l00007"></a>00007 <span class="comment"></span>
<a name="l00008"></a>00008 <span class="comment">  WCSLIB is free software: you can redistribute it and/or modify it under the</span>
<a name="l00009"></a>00009 <span class="comment">  terms of the GNU Lesser General Public License as published by the Free</span>
<a name="l00010"></a>00010 <span class="comment">  Software Foundation, either version 3 of the License, or (at your option)</span>
<a name="l00011"></a>00011 <span class="comment">  any later version.</span>
<a name="l00012"></a>00012 <span class="comment"></span>
<a name="l00013"></a>00013 <span class="comment">  WCSLIB is distributed in the hope that it will be useful, but WITHOUT ANY</span>
<a name="l00014"></a>00014 <span class="comment">  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS</span>
<a name="l00015"></a>00015 <span class="comment">  FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for</span>
<a name="l00016"></a>00016 <span class="comment">  more details.</span>
<a name="l00017"></a>00017 <span class="comment"></span>
<a name="l00018"></a>00018 <span class="comment">  You should have received a copy of the GNU Lesser General Public License</span>
<a name="l00019"></a>00019 <span class="comment">  along with WCSLIB.  If not, see &lt;http://www.gnu.org/licenses/&gt;.</span>
<a name="l00020"></a>00020 <span class="comment"></span>
<a name="l00021"></a>00021 <span class="comment">  Correspondence concerning WCSLIB may be directed to:</span>
<a name="l00022"></a>00022 <span class="comment">    Internet email: mcalabre@atnf.csiro.au</span>
<a name="l00023"></a>00023 <span class="comment">    Postal address: Dr. Mark Calabretta</span>
<a name="l00024"></a>00024 <span class="comment">                    Australia Telescope National Facility, CSIRO</span>
<a name="l00025"></a>00025 <span class="comment">                    PO Box 76</span>
<a name="l00026"></a>00026 <span class="comment">                    Epping NSW 1710</span>
<a name="l00027"></a>00027 <span class="comment">                    AUSTRALIA</span>
<a name="l00028"></a>00028 <span class="comment"></span>
<a name="l00029"></a>00029 <span class="comment">  Author: Mark Calabretta, Australia Telescope National Facility</span>
<a name="l00030"></a>00030 <span class="comment">  http://www.atnf.csiro.au/~mcalabre/index.html</span>
<a name="l00031"></a>00031 <span class="comment">  $Id: log.h,v 4.8.1.1 2011/08/15 08:07:06 cal103 Exp cal103 $</span>
<a name="l00032"></a>00032 <span class="comment">*=============================================================================</span>
<a name="l00033"></a>00033 <span class="comment">*</span>
<a name="l00034"></a>00034 <span class="comment">* WCSLIB 4.8 - C routines that implement logarithmic coordinate systems as</span>
<a name="l00035"></a>00035 <span class="comment">* defined by the FITS World Coordinate System (WCS) standard.  Refer to</span>
<a name="l00036"></a>00036 <span class="comment">*</span>
<a name="l00037"></a>00037 <span class="comment">*   "Representations of world coordinates in FITS",</span>
<a name="l00038"></a>00038 <span class="comment">*   Greisen, E.W., &amp; Calabretta, M.R. 2002, A&amp;A, 395, 1061 (Paper I)</span>
<a name="l00039"></a>00039 <span class="comment">*</span>
<a name="l00040"></a>00040 <span class="comment">*   "Representations of spectral coordinates in FITS",</span>
<a name="l00041"></a>00041 <span class="comment">*   Greisen, E.W., Calabretta, M.R., Valdes, F.G., &amp; Allen, S.L.</span>
<a name="l00042"></a>00042 <span class="comment">*   2006, A&amp;A, 446, 747 (Paper III)</span>
<a name="l00043"></a>00043 <span class="comment">*</span>
<a name="l00044"></a>00044 <span class="comment">* Refer to the README file provided with WCSLIB for an overview of the</span>
<a name="l00045"></a>00045 <span class="comment">* library.</span>
<a name="l00046"></a>00046 <span class="comment">*</span>
<a name="l00047"></a>00047 <span class="comment">*</span>
<a name="l00048"></a>00048 <span class="comment">* Summary of the log routines</span>
<a name="l00049"></a>00049 <span class="comment">* ---------------------------</span>
<a name="l00050"></a>00050 <span class="comment">* These routines implement the part of the FITS WCS standard that deals with</span>
<a name="l00051"></a>00051 <span class="comment">* logarithmic coordinates.  They define methods to be used for computing</span>
<a name="l00052"></a>00052 <span class="comment">* logarithmic world coordinates from intermediate world coordinates (a linear</span>
<a name="l00053"></a>00053 <span class="comment">* transformation of image pixel coordinates), and vice versa.</span>
<a name="l00054"></a>00054 <span class="comment">*</span>
<a name="l00055"></a>00055 <span class="comment">* logx2s() and logs2x() implement the WCS logarithmic coordinate</span>
<a name="l00056"></a>00056 <span class="comment">* transformations.</span>
<a name="l00057"></a>00057 <span class="comment">*</span>
<a name="l00058"></a>00058 <span class="comment">* Argument checking:</span>
<a name="l00059"></a>00059 <span class="comment">* ------------------</span>
<a name="l00060"></a>00060 <span class="comment">* The input log-coordinate values are only checked for values that would</span>
<a name="l00061"></a>00061 <span class="comment">* result in floating point exceptions and the same is true for the</span>
<a name="l00062"></a>00062 <span class="comment">* log-coordinate reference value.</span>
<a name="l00063"></a>00063 <span class="comment">*</span>
<a name="l00064"></a>00064 <span class="comment">* Accuracy:</span>
<a name="l00065"></a>00065 <span class="comment">* ---------</span>
<a name="l00066"></a>00066 <span class="comment">* No warranty is given for the accuracy of these routines (refer to the</span>
<a name="l00067"></a>00067 <span class="comment">* copyright notice); intending users must satisfy for themselves their</span>
<a name="l00068"></a>00068 <span class="comment">* adequacy for the intended purpose.  However, closure effectively to within</span>
<a name="l00069"></a>00069 <span class="comment">* double precision rounding error was demonstrated by test routine tlog.c</span>
<a name="l00070"></a>00070 <span class="comment">* which accompanies this software.</span>
<a name="l00071"></a>00071 <span class="comment">*</span>
<a name="l00072"></a>00072 <span class="comment">*</span>
<a name="l00073"></a>00073 <span class="comment">* logx2s() - Transform to logarithmic coordinates</span>
<a name="l00074"></a>00074 <span class="comment">* -----------------------------------------------</span>
<a name="l00075"></a>00075 <span class="comment">* logx2s() transforms intermediate world coordinates to logarithmic</span>
<a name="l00076"></a>00076 <span class="comment">* coordinates.</span>
<a name="l00077"></a>00077 <span class="comment">*</span>
<a name="l00078"></a>00078 <span class="comment">* Given and returned:</span>
<a name="l00079"></a>00079 <span class="comment">*   crval     double    Log-coordinate reference value (CRVALia).</span>
<a name="l00080"></a>00080 <span class="comment">*</span>
<a name="l00081"></a>00081 <span class="comment">* Given:</span>
<a name="l00082"></a>00082 <span class="comment">*   nx        int       Vector length.</span>
<a name="l00083"></a>00083 <span class="comment">*</span>
<a name="l00084"></a>00084 <span class="comment">*   sx        int       Vector stride.</span>
<a name="l00085"></a>00085 <span class="comment">*</span>
<a name="l00086"></a>00086 <span class="comment">*   slogc     int       Vector stride.</span>
<a name="l00087"></a>00087 <span class="comment">*</span>
<a name="l00088"></a>00088 <span class="comment">*   x         const double[]</span>
<a name="l00089"></a>00089 <span class="comment">*                       Intermediate world coordinates, in SI units.</span>
<a name="l00090"></a>00090 <span class="comment">*</span>
<a name="l00091"></a>00091 <span class="comment">* Returned:</span>
<a name="l00092"></a>00092 <span class="comment">*   logc      double[]  Logarithmic coordinates, in SI units.</span>
<a name="l00093"></a>00093 <span class="comment">*</span>
<a name="l00094"></a>00094 <span class="comment">*   stat      int[]     Status return value status for each vector element:</span>
<a name="l00095"></a>00095 <span class="comment">*                         0: Success.</span>
<a name="l00096"></a>00096 <span class="comment">*</span>
<a name="l00097"></a>00097 <span class="comment">* Function return value:</span>
<a name="l00098"></a>00098 <span class="comment">*             int       Status return value:</span>
<a name="l00099"></a>00099 <span class="comment">*                         0: Success.</span>
<a name="l00100"></a>00100 <span class="comment">*                         2: Invalid log-coordinate reference value.</span>
<a name="l00101"></a>00101 <span class="comment">*</span>
<a name="l00102"></a>00102 <span class="comment">*</span>
<a name="l00103"></a>00103 <span class="comment">* logs2x() - Transform logarithmic coordinates</span>
<a name="l00104"></a>00104 <span class="comment">* --------------------------------------------</span>
<a name="l00105"></a>00105 <span class="comment">* logs2x() transforms logarithmic world coordinates to intermediate world</span>
<a name="l00106"></a>00106 <span class="comment">* coordinates.</span>
<a name="l00107"></a>00107 <span class="comment">*</span>
<a name="l00108"></a>00108 <span class="comment">* Given and returned:</span>
<a name="l00109"></a>00109 <span class="comment">*   crval     double    Log-coordinate reference value (CRVALia).</span>
<a name="l00110"></a>00110 <span class="comment">*</span>
<a name="l00111"></a>00111 <span class="comment">* Given:</span>
<a name="l00112"></a>00112 <span class="comment">*   nlogc     int       Vector length.</span>
<a name="l00113"></a>00113 <span class="comment">*</span>
<a name="l00114"></a>00114 <span class="comment">*   slogc     int       Vector stride.</span>
<a name="l00115"></a>00115 <span class="comment">*</span>
<a name="l00116"></a>00116 <span class="comment">*   sx        int       Vector stride.</span>
<a name="l00117"></a>00117 <span class="comment">*</span>
<a name="l00118"></a>00118 <span class="comment">*   logc      const double[]</span>
<a name="l00119"></a>00119 <span class="comment">*                       Logarithmic coordinates, in SI units.</span>
<a name="l00120"></a>00120 <span class="comment">*</span>
<a name="l00121"></a>00121 <span class="comment">* Returned:</span>
<a name="l00122"></a>00122 <span class="comment">*   x         double[]  Intermediate world coordinates, in SI units.</span>
<a name="l00123"></a>00123 <span class="comment">*</span>
<a name="l00124"></a>00124 <span class="comment">*   stat      int[]     Status return value status for each vector element:</span>
<a name="l00125"></a>00125 <span class="comment">*                         0: Success.</span>
<a name="l00126"></a>00126 <span class="comment">*                         1: Invalid value of logc.</span>
<a name="l00127"></a>00127 <span class="comment">*</span>
<a name="l00128"></a>00128 <span class="comment">* Function return value:</span>
<a name="l00129"></a>00129 <span class="comment">*             int       Status return value:</span>
<a name="l00130"></a>00130 <span class="comment">*                         0: Success.</span>
<a name="l00131"></a>00131 <span class="comment">*                         2: Invalid log-coordinate reference value.</span>
<a name="l00132"></a>00132 <span class="comment">*                         4: One or more of the world-coordinate values</span>
<a name="l00133"></a>00133 <span class="comment">*                            are incorrect, as indicated by the stat vector.</span>
<a name="l00134"></a>00134 <span class="comment">*</span>
<a name="l00135"></a>00135 <span class="comment">*</span>
<a name="l00136"></a>00136 <span class="comment">* Global variable: const char *log_errmsg[] - Status return messages</span>
<a name="l00137"></a>00137 <span class="comment">* ------------------------------------------------------------------</span>
<a name="l00138"></a>00138 <span class="comment">* Error messages to match the status value returned from each function.</span>
<a name="l00139"></a>00139 <span class="comment">*</span>
<a name="l00140"></a>00140 <span class="comment">*===========================================================================*/</span>
<a name="l00141"></a>00141 
<a name="l00142"></a>00142 <span class="preprocessor">#ifndef WCSLIB_LOG</span>
<a name="l00143"></a>00143 <span class="preprocessor"></span><span class="preprocessor">#define WCSLIB_LOG</span>
<a name="l00144"></a>00144 <span class="preprocessor"></span>
<a name="l00145"></a>00145 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00146"></a>00146 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span> {
<a name="l00147"></a>00147 <span class="preprocessor">#endif</span>
<a name="l00148"></a>00148 <span class="preprocessor"></span>
<a name="l00149"></a>00149 <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="log_8h.html#8b8e0a071c9539f4be52eaf789f385ea" title="Status return messages.">log_errmsg</a>[];
<a name="l00150"></a>00150 
<a name="l00151"></a><a class="code" href="log_8h.html#3ca7c9ed3cef9e053e1f32b60a0d0c36">00151</a> <span class="keyword">enum</span> <a class="code" href="log_8h.html#3ca7c9ed3cef9e053e1f32b60a0d0c36">log_errmsg_enum</a> {
<a name="l00152"></a><a class="code" href="log_8h.html#3ca7c9ed3cef9e053e1f32b60a0d0c361f9859b85143e5ddc55744beff6d433c">00152</a>   <a class="code" href="log_8h.html#3ca7c9ed3cef9e053e1f32b60a0d0c361f9859b85143e5ddc55744beff6d433c">LOGERR_SUCCESS</a>         = 0,   <span class="comment">/* Success. */</span>
<a name="l00153"></a><a class="code" href="log_8h.html#3ca7c9ed3cef9e053e1f32b60a0d0c36a1df3b688a38178c3bb75225c8921259">00153</a>   <a class="code" href="log_8h.html#3ca7c9ed3cef9e053e1f32b60a0d0c36a1df3b688a38178c3bb75225c8921259">LOGERR_NULL_POINTER</a>    = 1,   <span class="comment">/* Null pointer passed. */</span>
<a name="l00154"></a><a class="code" href="log_8h.html#3ca7c9ed3cef9e053e1f32b60a0d0c36fd604876bd42694c1a04cdae2be719e6">00154</a>   <a class="code" href="log_8h.html#3ca7c9ed3cef9e053e1f32b60a0d0c36fd604876bd42694c1a04cdae2be719e6">LOGERR_BAD_LOG_REF_VAL</a> = 2,   <span class="comment">/* Invalid log-coordinate reference value. */</span>
<a name="l00155"></a><a class="code" href="log_8h.html#3ca7c9ed3cef9e053e1f32b60a0d0c3685932a7f3c52c3090c1a1c5e82ed1c22">00155</a>   <a class="code" href="log_8h.html#3ca7c9ed3cef9e053e1f32b60a0d0c3685932a7f3c52c3090c1a1c5e82ed1c22">LOGERR_BAD_X</a>           = 3,   <span class="comment">/* One or more of the x coordinates were</span>
<a name="l00156"></a>00156 <span class="comment">                                   invalid. */</span>
<a name="l00157"></a><a class="code" href="log_8h.html#3ca7c9ed3cef9e053e1f32b60a0d0c3605b7fdbe8fcf799db114f90f04083273">00157</a>   <a class="code" href="log_8h.html#3ca7c9ed3cef9e053e1f32b60a0d0c3605b7fdbe8fcf799db114f90f04083273">LOGERR_BAD_WORLD</a>       = 4    <span class="comment">/* One or more of the world coordinates were</span>
<a name="l00158"></a>00158 <span class="comment">                                   invalid. */</span>
<a name="l00159"></a>00159 };
<a name="l00160"></a>00160 
<a name="l00161"></a>00161 <span class="keywordtype">int</span> <a class="code" href="log_8h.html#239e115e583af4e67e60de4a4f95f09e" title="Transform to logarithmic coordinates.">logx2s</a>(<span class="keywordtype">double</span> crval, <span class="keywordtype">int</span> nx, <span class="keywordtype">int</span> sx, <span class="keywordtype">int</span> slogc, <span class="keyword">const</span> <span class="keywordtype">double</span> x[],
<a name="l00162"></a>00162            <span class="keywordtype">double</span> logc[], <span class="keywordtype">int</span> stat[]);
<a name="l00163"></a>00163 
<a name="l00164"></a>00164 <span class="keywordtype">int</span> <a class="code" href="log_8h.html#c80fd753e48873cdbd9a332609de150a" title="Transform logarithmic coordinates.">logs2x</a>(<span class="keywordtype">double</span> crval, <span class="keywordtype">int</span> nlogc, <span class="keywordtype">int</span> slogc, <span class="keywordtype">int</span> sx, <span class="keyword">const</span> <span class="keywordtype">double</span> logc[],
<a name="l00165"></a>00165            <span class="keywordtype">double</span> x[], <span class="keywordtype">int</span> stat[]);
<a name="l00166"></a>00166 
<a name="l00167"></a>00167 
<a name="l00168"></a>00168 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00169"></a>00169 <span class="preprocessor"></span>}
<a name="l00170"></a>00170 <span class="preprocessor">#endif</span>
<a name="l00171"></a>00171 <span class="preprocessor"></span>
<a name="l00172"></a>00172 <span class="preprocessor">#endif </span><span class="comment">/* WCSLIB_LOG */</span>
</pre></div></div>
<hr size="1"><address style="text-align: right;"><small>Generated on Tue Oct 4 19:02:30 2011 for WCSLIB 4.8.2 by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
</body>
</html>