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 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463
|
<!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: cel.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 Page</span></a></li>
<li><a href="pages.html"><span>Related Pages</span></a></li>
<li><a href="annotated.html"><span>Data Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<h1>cel.h</h1><a href="cel_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 <http://www.gnu.org/licenses/>.</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: cel.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 the FITS World Coordinate System</span>
<a name="l00035"></a>00035 <span class="comment">* (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., & Calabretta, M.R. 2002, A&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 celestial coordinates in FITS",</span>
<a name="l00041"></a>00041 <span class="comment">* Calabretta, M.R., & Greisen, E.W. 2002, A&A, 395, 1077 (Paper II)</span>
<a name="l00042"></a>00042 <span class="comment">*</span>
<a name="l00043"></a>00043 <span class="comment">* Refer to the README file provided with WCSLIB for an overview of the</span>
<a name="l00044"></a>00044 <span class="comment">* library.</span>
<a name="l00045"></a>00045 <span class="comment">*</span>
<a name="l00046"></a>00046 <span class="comment">*</span>
<a name="l00047"></a>00047 <span class="comment">* Summary of the cel routines</span>
<a name="l00048"></a>00048 <span class="comment">* ---------------------------</span>
<a name="l00049"></a>00049 <span class="comment">* These routines implement the part of the FITS World Coordinate System (WCS)</span>
<a name="l00050"></a>00050 <span class="comment">* standard that deals with celestial coordinates. They define methods to be</span>
<a name="l00051"></a>00051 <span class="comment">* used for computing celestial world coordinates from intermediate world</span>
<a name="l00052"></a>00052 <span class="comment">* coordinates (a linear transformation of image pixel coordinates), and vice</span>
<a name="l00053"></a>00053 <span class="comment">* versa. They are based on the celprm struct which contains all information</span>
<a name="l00054"></a>00054 <span class="comment">* needed for the computations. This struct contains some elements that must</span>
<a name="l00055"></a>00055 <span class="comment">* be set by the user, and others that are maintained by these routines,</span>
<a name="l00056"></a>00056 <span class="comment">* somewhat like a C++ class but with no encapsulation.</span>
<a name="l00057"></a>00057 <span class="comment">*</span>
<a name="l00058"></a>00058 <span class="comment">* Routine celini() is provided to initialize the celprm struct with default</span>
<a name="l00059"></a>00059 <span class="comment">* values, celfree() reclaims any memory that may have been allocated to store</span>
<a name="l00060"></a>00060 <span class="comment">* an error message, and celprt() prints its contents.</span>
<a name="l00061"></a>00061 <span class="comment">*</span>
<a name="l00062"></a>00062 <span class="comment">* A setup routine, celset(), computes intermediate values in the celprm struct</span>
<a name="l00063"></a>00063 <span class="comment">* from parameters in it that were supplied by the user. The struct always</span>
<a name="l00064"></a>00064 <span class="comment">* needs to be set up by celset() but it need not be called explicitly - refer</span>
<a name="l00065"></a>00065 <span class="comment">* to the explanation of celprm::flag.</span>
<a name="l00066"></a>00066 <span class="comment">*</span>
<a name="l00067"></a>00067 <span class="comment">* celx2s() and cels2x() implement the WCS celestial coordinate</span>
<a name="l00068"></a>00068 <span class="comment">* transformations. In fact, they are high level driver routines for the lower</span>
<a name="l00069"></a>00069 <span class="comment">* level spherical coordinate rotation and projection routines described in</span>
<a name="l00070"></a>00070 <span class="comment">* sph.h and prj.h.</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">* celini() - Default constructor for the celprm struct</span>
<a name="l00074"></a>00074 <span class="comment">* ----------------------------------------------------</span>
<a name="l00075"></a>00075 <span class="comment">* celini() sets all members of a celprm struct to default values. It should</span>
<a name="l00076"></a>00076 <span class="comment">* be used to initialize every celprm struct.</span>
<a name="l00077"></a>00077 <span class="comment">*</span>
<a name="l00078"></a>00078 <span class="comment">* Returned:</span>
<a name="l00079"></a>00079 <span class="comment">* cel struct celprm*</span>
<a name="l00080"></a>00080 <span class="comment">* Celestial transformation parameters.</span>
<a name="l00081"></a>00081 <span class="comment">*</span>
<a name="l00082"></a>00082 <span class="comment">* Function return value:</span>
<a name="l00083"></a>00083 <span class="comment">* int Status return value:</span>
<a name="l00084"></a>00084 <span class="comment">* 0: Success.</span>
<a name="l00085"></a>00085 <span class="comment">* 1: Null celprm pointer passed.</span>
<a name="l00086"></a>00086 <span class="comment">*</span>
<a name="l00087"></a>00087 <span class="comment">*</span>
<a name="l00088"></a>00088 <span class="comment">* celfree() - Destructor for the celprm struct</span>
<a name="l00089"></a>00089 <span class="comment">* --------------------------------------------</span>
<a name="l00090"></a>00090 <span class="comment">* celfree() frees any memory that may have been allocated to store an error</span>
<a name="l00091"></a>00091 <span class="comment">* message in the celprm struct.</span>
<a name="l00092"></a>00092 <span class="comment">*</span>
<a name="l00093"></a>00093 <span class="comment">* Given:</span>
<a name="l00094"></a>00094 <span class="comment">* cel struct celprm*</span>
<a name="l00095"></a>00095 <span class="comment">* Celestial transformation parameters.</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">* 1: Null celprm pointer passed.</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">* celprt() - Print routine for the celprm struct</span>
<a name="l00104"></a>00104 <span class="comment">* ----------------------------------------------</span>
<a name="l00105"></a>00105 <span class="comment">* celprt() prints the contents of a celprm struct using wcsprintf(). Mainly</span>
<a name="l00106"></a>00106 <span class="comment">* intended for diagnostic purposes.</span>
<a name="l00107"></a>00107 <span class="comment">*</span>
<a name="l00108"></a>00108 <span class="comment">* Given:</span>
<a name="l00109"></a>00109 <span class="comment">* cel const struct celprm*</span>
<a name="l00110"></a>00110 <span class="comment">* Celestial transformation parameters.</span>
<a name="l00111"></a>00111 <span class="comment">*</span>
<a name="l00112"></a>00112 <span class="comment">* Function return value:</span>
<a name="l00113"></a>00113 <span class="comment">* int Status return value:</span>
<a name="l00114"></a>00114 <span class="comment">* 0: Success.</span>
<a name="l00115"></a>00115 <span class="comment">* 1: Null celprm pointer passed.</span>
<a name="l00116"></a>00116 <span class="comment">*</span>
<a name="l00117"></a>00117 <span class="comment">*</span>
<a name="l00118"></a>00118 <span class="comment">* celset() - Setup routine for the celprm struct</span>
<a name="l00119"></a>00119 <span class="comment">* ----------------------------------------------</span>
<a name="l00120"></a>00120 <span class="comment">* celset() sets up a celprm struct according to information supplied within</span>
<a name="l00121"></a>00121 <span class="comment">* it.</span>
<a name="l00122"></a>00122 <span class="comment">*</span>
<a name="l00123"></a>00123 <span class="comment">* Note that this routine need not be called directly; it will be invoked by</span>
<a name="l00124"></a>00124 <span class="comment">* celx2s() and cels2x() if celprm::flag is anything other than a predefined</span>
<a name="l00125"></a>00125 <span class="comment">* magic value.</span>
<a name="l00126"></a>00126 <span class="comment">*</span>
<a name="l00127"></a>00127 <span class="comment">* Given and returned:</span>
<a name="l00128"></a>00128 <span class="comment">* cel struct celprm*</span>
<a name="l00129"></a>00129 <span class="comment">* Celestial transformation parameters.</span>
<a name="l00130"></a>00130 <span class="comment">*</span>
<a name="l00131"></a>00131 <span class="comment">* Function return value:</span>
<a name="l00132"></a>00132 <span class="comment">* int Status return value:</span>
<a name="l00133"></a>00133 <span class="comment">* 0: Success.</span>
<a name="l00134"></a>00134 <span class="comment">* 1: Null celprm pointer passed.</span>
<a name="l00135"></a>00135 <span class="comment">* 2: Invalid projection parameters.</span>
<a name="l00136"></a>00136 <span class="comment">* 3: Invalid coordinate transformation parameters.</span>
<a name="l00137"></a>00137 <span class="comment">* 4: Ill-conditioned coordinate transformation</span>
<a name="l00138"></a>00138 <span class="comment">* parameters.</span>
<a name="l00139"></a>00139 <span class="comment">*</span>
<a name="l00140"></a>00140 <span class="comment">* For returns > 1, a detailed error message is set in</span>
<a name="l00141"></a>00141 <span class="comment">* celprm::err if enabled, see wcserr_enable().</span>
<a name="l00142"></a>00142 <span class="comment">*</span>
<a name="l00143"></a>00143 <span class="comment">*</span>
<a name="l00144"></a>00144 <span class="comment">* celx2s() - Pixel-to-world celestial transformation</span>
<a name="l00145"></a>00145 <span class="comment">* --------------------------------------------------</span>
<a name="l00146"></a>00146 <span class="comment">* celx2s() transforms (x,y) coordinates in the plane of projection to</span>
<a name="l00147"></a>00147 <span class="comment">* celestial coordinates (lng,lat).</span>
<a name="l00148"></a>00148 <span class="comment">*</span>
<a name="l00149"></a>00149 <span class="comment">* Given and returned:</span>
<a name="l00150"></a>00150 <span class="comment">* cel struct celprm*</span>
<a name="l00151"></a>00151 <span class="comment">* Celestial transformation parameters.</span>
<a name="l00152"></a>00152 <span class="comment">*</span>
<a name="l00153"></a>00153 <span class="comment">* Given:</span>
<a name="l00154"></a>00154 <span class="comment">* nx,ny int Vector lengths.</span>
<a name="l00155"></a>00155 <span class="comment">*</span>
<a name="l00156"></a>00156 <span class="comment">* sxy,sll int Vector strides.</span>
<a name="l00157"></a>00157 <span class="comment">*</span>
<a name="l00158"></a>00158 <span class="comment">* x,y const double[]</span>
<a name="l00159"></a>00159 <span class="comment">* Projected coordinates in pseudo "degrees".</span>
<a name="l00160"></a>00160 <span class="comment">*</span>
<a name="l00161"></a>00161 <span class="comment">* Returned:</span>
<a name="l00162"></a>00162 <span class="comment">* phi,theta double[] Longitude and latitude (phi,theta) in the native</span>
<a name="l00163"></a>00163 <span class="comment">* coordinate system of the projection [deg].</span>
<a name="l00164"></a>00164 <span class="comment">*</span>
<a name="l00165"></a>00165 <span class="comment">* lng,lat double[] Celestial longitude and latitude (lng,lat) of the</span>
<a name="l00166"></a>00166 <span class="comment">* projected point [deg].</span>
<a name="l00167"></a>00167 <span class="comment">*</span>
<a name="l00168"></a>00168 <span class="comment">* stat int[] Status return value for each vector element:</span>
<a name="l00169"></a>00169 <span class="comment">* 0: Success.</span>
<a name="l00170"></a>00170 <span class="comment">* 1: Invalid value of (x,y).</span>
<a name="l00171"></a>00171 <span class="comment">*</span>
<a name="l00172"></a>00172 <span class="comment">* Function return value:</span>
<a name="l00173"></a>00173 <span class="comment">* int Status return value:</span>
<a name="l00174"></a>00174 <span class="comment">* 0: Success.</span>
<a name="l00175"></a>00175 <span class="comment">* 1: Null celprm pointer passed.</span>
<a name="l00176"></a>00176 <span class="comment">* 2: Invalid projection parameters.</span>
<a name="l00177"></a>00177 <span class="comment">* 3: Invalid coordinate transformation parameters.</span>
<a name="l00178"></a>00178 <span class="comment">* 4: Ill-conditioned coordinate transformation</span>
<a name="l00179"></a>00179 <span class="comment">* parameters.</span>
<a name="l00180"></a>00180 <span class="comment">* 5: One or more of the (x,y) coordinates were</span>
<a name="l00181"></a>00181 <span class="comment">* invalid, as indicated by the stat vector.</span>
<a name="l00182"></a>00182 <span class="comment">*</span>
<a name="l00183"></a>00183 <span class="comment">* For returns > 1, a detailed error message is set in</span>
<a name="l00184"></a>00184 <span class="comment">* celprm::err if enabled, see wcserr_enable().</span>
<a name="l00185"></a>00185 <span class="comment">*</span>
<a name="l00186"></a>00186 <span class="comment">*</span>
<a name="l00187"></a>00187 <span class="comment">* cels2x() - World-to-pixel celestial transformation</span>
<a name="l00188"></a>00188 <span class="comment">* --------------------------------------------------</span>
<a name="l00189"></a>00189 <span class="comment">* cels2x() transforms celestial coordinates (lng,lat) to (x,y) coordinates in</span>
<a name="l00190"></a>00190 <span class="comment">* the plane of projection.</span>
<a name="l00191"></a>00191 <span class="comment">*</span>
<a name="l00192"></a>00192 <span class="comment">* Given and returned:</span>
<a name="l00193"></a>00193 <span class="comment">* cel struct celprm*</span>
<a name="l00194"></a>00194 <span class="comment">* Celestial transformation parameters.</span>
<a name="l00195"></a>00195 <span class="comment">*</span>
<a name="l00196"></a>00196 <span class="comment">* Given:</span>
<a name="l00197"></a>00197 <span class="comment">* nlng,nlat int Vector lengths.</span>
<a name="l00198"></a>00198 <span class="comment">*</span>
<a name="l00199"></a>00199 <span class="comment">* sll,sxy int Vector strides.</span>
<a name="l00200"></a>00200 <span class="comment">*</span>
<a name="l00201"></a>00201 <span class="comment">* lng,lat const double[]</span>
<a name="l00202"></a>00202 <span class="comment">* Celestial longitude and latitude (lng,lat) of the</span>
<a name="l00203"></a>00203 <span class="comment">* projected point [deg].</span>
<a name="l00204"></a>00204 <span class="comment">*</span>
<a name="l00205"></a>00205 <span class="comment">* Returned:</span>
<a name="l00206"></a>00206 <span class="comment">* phi,theta double[] Longitude and latitude (phi,theta) in the native</span>
<a name="l00207"></a>00207 <span class="comment">* coordinate system of the projection [deg].</span>
<a name="l00208"></a>00208 <span class="comment">*</span>
<a name="l00209"></a>00209 <span class="comment">* x,y double[] Projected coordinates in pseudo "degrees".</span>
<a name="l00210"></a>00210 <span class="comment">*</span>
<a name="l00211"></a>00211 <span class="comment">* stat int[] Status return value for each vector element:</span>
<a name="l00212"></a>00212 <span class="comment">* 0: Success.</span>
<a name="l00213"></a>00213 <span class="comment">* 1: Invalid value of (lng,lat).</span>
<a name="l00214"></a>00214 <span class="comment">*</span>
<a name="l00215"></a>00215 <span class="comment">* Function return value:</span>
<a name="l00216"></a>00216 <span class="comment">* int Status return value:</span>
<a name="l00217"></a>00217 <span class="comment">* 0: Success.</span>
<a name="l00218"></a>00218 <span class="comment">* 1: Null celprm pointer passed.</span>
<a name="l00219"></a>00219 <span class="comment">* 2: Invalid projection parameters.</span>
<a name="l00220"></a>00220 <span class="comment">* 3: Invalid coordinate transformation parameters.</span>
<a name="l00221"></a>00221 <span class="comment">* 4: Ill-conditioned coordinate transformation</span>
<a name="l00222"></a>00222 <span class="comment">* parameters.</span>
<a name="l00223"></a>00223 <span class="comment">* 6: One or more of the (lng,lat) coordinates were</span>
<a name="l00224"></a>00224 <span class="comment">* invalid, as indicated by the stat vector.</span>
<a name="l00225"></a>00225 <span class="comment">*</span>
<a name="l00226"></a>00226 <span class="comment">* For returns > 1, a detailed error message is set in</span>
<a name="l00227"></a>00227 <span class="comment">* celprm::err if enabled, see wcserr_enable().</span>
<a name="l00228"></a>00228 <span class="comment">*</span>
<a name="l00229"></a>00229 <span class="comment">*</span>
<a name="l00230"></a>00230 <span class="comment">* celprm struct - Celestial transformation parameters</span>
<a name="l00231"></a>00231 <span class="comment">* ---------------------------------------------------</span>
<a name="l00232"></a>00232 <span class="comment">* The celprm struct contains information required to transform celestial</span>
<a name="l00233"></a>00233 <span class="comment">* coordinates. It consists of certain members that must be set by the user</span>
<a name="l00234"></a>00234 <span class="comment">* ("given") and others that are set by the WCSLIB routines ("returned"). Some</span>
<a name="l00235"></a>00235 <span class="comment">* of the latter are supplied for informational purposes and others are for</span>
<a name="l00236"></a>00236 <span class="comment">* internal use only.</span>
<a name="l00237"></a>00237 <span class="comment">*</span>
<a name="l00238"></a>00238 <span class="comment">* Returned celprm struct members must not be modified by the user.</span>
<a name="l00239"></a>00239 <span class="comment">*</span>
<a name="l00240"></a>00240 <span class="comment">* int flag</span>
<a name="l00241"></a>00241 <span class="comment">* (Given and returned) This flag must be set to zero whenever any of the</span>
<a name="l00242"></a>00242 <span class="comment">* following celprm struct members are set or changed:</span>
<a name="l00243"></a>00243 <span class="comment">*</span>
<a name="l00244"></a>00244 <span class="comment">* - celprm::offset,</span>
<a name="l00245"></a>00245 <span class="comment">* - celprm::phi0,</span>
<a name="l00246"></a>00246 <span class="comment">* - celprm::theta0,</span>
<a name="l00247"></a>00247 <span class="comment">* - celprm::ref[4],</span>
<a name="l00248"></a>00248 <span class="comment">* - celprm::prj:</span>
<a name="l00249"></a>00249 <span class="comment">* - prjprm::code,</span>
<a name="l00250"></a>00250 <span class="comment">* - prjprm::r0,</span>
<a name="l00251"></a>00251 <span class="comment">* - prjprm::pv[],</span>
<a name="l00252"></a>00252 <span class="comment">* - prjprm::phi0,</span>
<a name="l00253"></a>00253 <span class="comment">* - prjprm::theta0.</span>
<a name="l00254"></a>00254 <span class="comment">*</span>
<a name="l00255"></a>00255 <span class="comment">* This signals the initialization routine, celset(), to recompute the</span>
<a name="l00256"></a>00256 <span class="comment">* returned members of the celprm struct. celset() will reset flag to</span>
<a name="l00257"></a>00257 <span class="comment">* indicate that this has been done.</span>
<a name="l00258"></a>00258 <span class="comment">*</span>
<a name="l00259"></a>00259 <span class="comment">* int offset</span>
<a name="l00260"></a>00260 <span class="comment">* (Given) If true (non-zero), an offset will be applied to (x,y) to</span>
<a name="l00261"></a>00261 <span class="comment">* force (x,y) = (0,0) at the fiducial point, (phi_0,theta_0).</span>
<a name="l00262"></a>00262 <span class="comment">* Default is 0 (false).</span>
<a name="l00263"></a>00263 <span class="comment">*</span>
<a name="l00264"></a>00264 <span class="comment">* double phi0</span>
<a name="l00265"></a>00265 <span class="comment">* (Given) The native longitude, phi_0 [deg], and ...</span>
<a name="l00266"></a>00266 <span class="comment">*</span>
<a name="l00267"></a>00267 <span class="comment">* double theta0</span>
<a name="l00268"></a>00268 <span class="comment">* (Given) ... the native latitude, theta_0 [deg], of the fiducial point,</span>
<a name="l00269"></a>00269 <span class="comment">* i.e. the point whose celestial coordinates are given in</span>
<a name="l00270"></a>00270 <span class="comment">* celprm::ref[1:2]. If undefined (set to a magic value by prjini()) the</span>
<a name="l00271"></a>00271 <span class="comment">* initialization routine, celset(), will set this to a projection-specific</span>
<a name="l00272"></a>00272 <span class="comment">* default.</span>
<a name="l00273"></a>00273 <span class="comment">*</span>
<a name="l00274"></a>00274 <span class="comment">* double ref[4]</span>
<a name="l00275"></a>00275 <span class="comment">* (Given) The first pair of values should be set to the celestial</span>
<a name="l00276"></a>00276 <span class="comment">* longitude and latitude of the fiducial point [deg] - typically right</span>
<a name="l00277"></a>00277 <span class="comment">* ascension and declination. These are given by the CRVALia keywords in</span>
<a name="l00278"></a>00278 <span class="comment">* FITS.</span>
<a name="l00279"></a>00279 <span class="comment">*</span>
<a name="l00280"></a>00280 <span class="comment">* (Given and returned) The second pair of values are the native longitude,</span>
<a name="l00281"></a>00281 <span class="comment">* phi_p [deg], and latitude, theta_p [deg], of the celestial pole (the</span>
<a name="l00282"></a>00282 <span class="comment">* latter is the same as the celestial latitude of the native pole,</span>
<a name="l00283"></a>00283 <span class="comment">* delta_p) and these are given by the FITS keywords LONPOLEa and LATPOLEa</span>
<a name="l00284"></a>00284 <span class="comment">* (or by PVi_2a and PVi_3a attached to the longitude axis which take</span>
<a name="l00285"></a>00285 <span class="comment">* precedence if defined).</span>
<a name="l00286"></a>00286 <span class="comment">*</span>
<a name="l00287"></a>00287 <span class="comment">* LONPOLEa defaults to phi_0 (see above) if the celestial latitude of the</span>
<a name="l00288"></a>00288 <span class="comment">* fiducial point of the projection is greater than or equal to the native</span>
<a name="l00289"></a>00289 <span class="comment">* latitude, otherwise phi_0 + 180 [deg]. (This is the condition for the</span>
<a name="l00290"></a>00290 <span class="comment">* celestial latitude to increase in the same direction as the native</span>
<a name="l00291"></a>00291 <span class="comment">* latitude at the fiducial point.) ref[2] may be set to UNDEFINED (from</span>
<a name="l00292"></a>00292 <span class="comment">* wcsmath.h) or 999.0 to indicate that the correct default should be</span>
<a name="l00293"></a>00293 <span class="comment">* substituted.</span>
<a name="l00294"></a>00294 <span class="comment">*</span>
<a name="l00295"></a>00295 <span class="comment">* theta_p, the native latitude of the celestial pole (or equally the</span>
<a name="l00296"></a>00296 <span class="comment">* celestial latitude of the native pole, delta_p) is often determined</span>
<a name="l00297"></a>00297 <span class="comment">* uniquely by CRVALia and LONPOLEa in which case LATPOLEa is ignored.</span>
<a name="l00298"></a>00298 <span class="comment">* However, in some circumstances there are two valid solutions for theta_p</span>
<a name="l00299"></a>00299 <span class="comment">* and LATPOLEa is used to choose between them. LATPOLEa is set in ref[3]</span>
<a name="l00300"></a>00300 <span class="comment">* and the solution closest to this value is used to reset ref[3]. It is</span>
<a name="l00301"></a>00301 <span class="comment">* therefore legitimate, for example, to set ref[3] to +90.0 to choose the</span>
<a name="l00302"></a>00302 <span class="comment">* more northerly solution - the default if the LATPOLEa keyword is omitted</span>
<a name="l00303"></a>00303 <span class="comment">* from the FITS header. For the special case where the fiducial point of</span>
<a name="l00304"></a>00304 <span class="comment">* the projection is at native latitude zero, its celestial latitude is</span>
<a name="l00305"></a>00305 <span class="comment">* zero, and LONPOLEa = +/- 90.0 then the celestial latitude of the native</span>
<a name="l00306"></a>00306 <span class="comment">* pole is not determined by the first three reference values and LATPOLEa</span>
<a name="l00307"></a>00307 <span class="comment">* specifies it completely.</span>
<a name="l00308"></a>00308 <span class="comment">*</span>
<a name="l00309"></a>00309 <span class="comment">* The returned value, celprm::latpreq, specifies how LATPOLEa was actually</span>
<a name="l00310"></a>00310 <span class="comment">* used.</span>
<a name="l00311"></a>00311 <span class="comment">*</span>
<a name="l00312"></a>00312 <span class="comment">* struct prjprm prj</span>
<a name="l00313"></a>00313 <span class="comment">* (Given and returned) Projection parameters described in the prologue to</span>
<a name="l00314"></a>00314 <span class="comment">* prj.h.</span>
<a name="l00315"></a>00315 <span class="comment">*</span>
<a name="l00316"></a>00316 <span class="comment">* double euler[5]</span>
<a name="l00317"></a>00317 <span class="comment">* (Returned) Euler angles and associated intermediaries derived from the</span>
<a name="l00318"></a>00318 <span class="comment">* coordinate reference values. The first three values are the Z-, X-, and</span>
<a name="l00319"></a>00319 <span class="comment">* Z'-Euler angles [deg], and the remaining two are the cosine and sine of</span>
<a name="l00320"></a>00320 <span class="comment">* the X-Euler angle.</span>
<a name="l00321"></a>00321 <span class="comment">*</span>
<a name="l00322"></a>00322 <span class="comment">* int latpreq</span>
<a name="l00323"></a>00323 <span class="comment">* (Returned) For informational purposes, this indicates how the LATPOLEa</span>
<a name="l00324"></a>00324 <span class="comment">* keyword was used</span>
<a name="l00325"></a>00325 <span class="comment">* - 0: Not required, theta_p (== delta_p) was determined uniquely by the</span>
<a name="l00326"></a>00326 <span class="comment">* CRVALia and LONPOLEa keywords.</span>
<a name="l00327"></a>00327 <span class="comment">* - 1: Required to select between two valid solutions of theta_p.</span>
<a name="l00328"></a>00328 <span class="comment">* - 2: theta_p was specified solely by LATPOLEa.</span>
<a name="l00329"></a>00329 <span class="comment">*</span>
<a name="l00330"></a>00330 <span class="comment">* int isolat</span>
<a name="l00331"></a>00331 <span class="comment">* (Returned) True if the spherical rotation preserves the magnitude of the</span>
<a name="l00332"></a>00332 <span class="comment">* latitude, which occurs iff the axes of the native and celestial</span>
<a name="l00333"></a>00333 <span class="comment">* coordinates are coincident. It signals an opportunity to cache</span>
<a name="l00334"></a>00334 <span class="comment">* intermediate calculations common to all elements in a vector</span>
<a name="l00335"></a>00335 <span class="comment">* computation.</span>
<a name="l00336"></a>00336 <span class="comment">*</span>
<a name="l00337"></a>00337 <span class="comment">* struct wcserr *err</span>
<a name="l00338"></a>00338 <span class="comment">* (Returned) If enabled, when an error status is returned this struct</span>
<a name="l00339"></a>00339 <span class="comment">* contains detailed information about the error, see wcserr_enable().</span>
<a name="l00340"></a>00340 <span class="comment">*</span>
<a name="l00341"></a>00341 <span class="comment">* void *padding</span>
<a name="l00342"></a>00342 <span class="comment">* (An unused variable inserted for alignment purposes only.)</span>
<a name="l00343"></a>00343 <span class="comment">*</span>
<a name="l00344"></a>00344 <span class="comment">* Global variable: const char *cel_errmsg[] - Status return messages</span>
<a name="l00345"></a>00345 <span class="comment">* ------------------------------------------------------------------</span>
<a name="l00346"></a>00346 <span class="comment">* Status messages to match the status value returned from each function.</span>
<a name="l00347"></a>00347 <span class="comment">*</span>
<a name="l00348"></a>00348 <span class="comment">*===========================================================================*/</span>
<a name="l00349"></a>00349
<a name="l00350"></a>00350 <span class="preprocessor">#ifndef WCSLIB_CEL</span>
<a name="l00351"></a>00351 <span class="preprocessor"></span><span class="preprocessor">#define WCSLIB_CEL</span>
<a name="l00352"></a>00352 <span class="preprocessor"></span>
<a name="l00353"></a>00353 <span class="preprocessor">#include "<a class="code" href="prj_8h.html">prj.h</a>"</span>
<a name="l00354"></a>00354 <span class="preprocessor">#include "<a class="code" href="wcserr_8h.html">wcserr.h</a>"</span>
<a name="l00355"></a>00355
<a name="l00356"></a>00356 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00357"></a>00357 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span> {
<a name="l00358"></a>00358 <span class="preprocessor">#endif</span>
<a name="l00359"></a>00359 <span class="preprocessor"></span>
<a name="l00360"></a>00360
<a name="l00361"></a>00361 <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="cel_8h.html#2ac33dbe3aa2efff60543213b0a691f5">cel_errmsg</a>[];
<a name="l00362"></a>00362
<a name="l00363"></a><a class="code" href="cel_8h.html#b20292954fb236dafb2cd78aee121c31">00363</a> <span class="keyword">enum</span> <a class="code" href="cel_8h.html#b20292954fb236dafb2cd78aee121c31">cel_errmsg_enum</a> {
<a name="l00364"></a><a class="code" href="cel_8h.html#b20292954fb236dafb2cd78aee121c314ca7a593593157772f3788801138dd12">00364</a> <a class="code" href="cel_8h.html#b20292954fb236dafb2cd78aee121c314ca7a593593157772f3788801138dd12">CELERR_SUCCESS</a> = 0, <span class="comment">/* Success. */</span>
<a name="l00365"></a><a class="code" href="cel_8h.html#b20292954fb236dafb2cd78aee121c317fa1e5cb9c23e5f138638dad3f938e1e">00365</a> <a class="code" href="cel_8h.html#b20292954fb236dafb2cd78aee121c317fa1e5cb9c23e5f138638dad3f938e1e">CELERR_NULL_POINTER</a> = 1, <span class="comment">/* Null celprm pointer passed. */</span>
<a name="l00366"></a><a class="code" href="cel_8h.html#b20292954fb236dafb2cd78aee121c3133a743bdcdd17bae9c6961234ed6b642">00366</a> <a class="code" href="cel_8h.html#b20292954fb236dafb2cd78aee121c3133a743bdcdd17bae9c6961234ed6b642">CELERR_BAD_PARAM</a> = 2, <span class="comment">/* Invalid projection parameters. */</span>
<a name="l00367"></a><a class="code" href="cel_8h.html#b20292954fb236dafb2cd78aee121c31367cf89b74764f9462bfa50c2eb50fb6">00367</a> <a class="code" href="cel_8h.html#b20292954fb236dafb2cd78aee121c31367cf89b74764f9462bfa50c2eb50fb6">CELERR_BAD_COORD_TRANS</a> = 3, <span class="comment">/* Invalid coordinate transformation</span>
<a name="l00368"></a>00368 <span class="comment"> parameters. */</span>
<a name="l00369"></a><a class="code" href="cel_8h.html#b20292954fb236dafb2cd78aee121c31cb1dec1ea393b198b93a26425ee901a2">00369</a> <a class="code" href="cel_8h.html#b20292954fb236dafb2cd78aee121c31cb1dec1ea393b198b93a26425ee901a2">CELERR_ILL_COORD_TRANS</a> = 4, <span class="comment">/* Ill-conditioned coordinated transformation</span>
<a name="l00370"></a>00370 <span class="comment"> parameters. */</span>
<a name="l00371"></a><a class="code" href="cel_8h.html#b20292954fb236dafb2cd78aee121c3144042efc5a9894182447dfcbcd24e1d4">00371</a> <a class="code" href="cel_8h.html#b20292954fb236dafb2cd78aee121c3144042efc5a9894182447dfcbcd24e1d4">CELERR_BAD_PIX</a> = 5, <span class="comment">/* One or more of the (x,y) coordinates were</span>
<a name="l00372"></a>00372 <span class="comment"> invalid. */</span>
<a name="l00373"></a><a class="code" href="cel_8h.html#b20292954fb236dafb2cd78aee121c31ac8beaf37d754d1a7a7aab5307a2140b">00373</a> <a class="code" href="cel_8h.html#b20292954fb236dafb2cd78aee121c31ac8beaf37d754d1a7a7aab5307a2140b">CELERR_BAD_WORLD</a> = 6 <span class="comment">/* One or more of the (lng,lat) coordinates</span>
<a name="l00374"></a>00374 <span class="comment"> were invalid. */</span>
<a name="l00375"></a>00375 };
<a name="l00376"></a>00376
<a name="l00377"></a><a class="code" href="structcelprm.html">00377</a> <span class="keyword">struct </span><a class="code" href="structcelprm.html" title="Celestial transformation parameters.">celprm</a> {
<a name="l00378"></a>00378 <span class="comment">/* Initialization flag (see the prologue above). */</span>
<a name="l00379"></a>00379 <span class="comment">/*------------------------------------------------------------------------*/</span>
<a name="l00380"></a><a class="code" href="structcelprm.html#408a39c1d060d5b32f884f8a8c60aaa2">00380</a> <span class="keywordtype">int</span> <a class="code" href="structcelprm.html#408a39c1d060d5b32f884f8a8c60aaa2">flag</a>; <span class="comment">/* Set to zero to force initialization. */</span>
<a name="l00381"></a>00381
<a name="l00382"></a>00382 <span class="comment">/* Parameters to be provided (see the prologue above). */</span>
<a name="l00383"></a>00383 <span class="comment">/*------------------------------------------------------------------------*/</span>
<a name="l00384"></a><a class="code" href="structcelprm.html#74585275b64c292b394b74f2f19a8048">00384</a> <span class="keywordtype">int</span> <a class="code" href="structcelprm.html#74585275b64c292b394b74f2f19a8048">offset</a>; <span class="comment">/* Force (x,y) = (0,0) at (phi_0,theta_0). */</span>
<a name="l00385"></a><a class="code" href="structcelprm.html#011e38b3a5505fdc13855348571bfad1">00385</a> <span class="keywordtype">double</span> <a class="code" href="structcelprm.html#b034f85dc785113c396c9864cdddfe52">phi0</a>, <a class="code" href="structcelprm.html#011e38b3a5505fdc13855348571bfad1">theta0</a>; <span class="comment">/* Native coordinates of fiducial point. */</span>
<a name="l00386"></a><a class="code" href="structcelprm.html#3f9ae993e97f0e73e3f59117929eeda6">00386</a> <span class="keywordtype">double</span> <a class="code" href="structcelprm.html#3f9ae993e97f0e73e3f59117929eeda6">ref</a>[4]; <span class="comment">/* Celestial coordinates of fiducial */</span>
<a name="l00387"></a>00387 <span class="comment">/* point and native coordinates of */</span>
<a name="l00388"></a>00388 <span class="comment">/* celestial pole. */</span>
<a name="l00389"></a>00389
<a name="l00390"></a><a class="code" href="structcelprm.html#be1991f17c0ecb857d5bd30a6a689b84">00390</a> <span class="keyword">struct </span><a class="code" href="structprjprm.html" title="Projection parameters.">prjprm</a> <a class="code" href="structcelprm.html#be1991f17c0ecb857d5bd30a6a689b84">prj</a>; <span class="comment">/* Projection parameters (see prj.h). */</span>
<a name="l00391"></a>00391
<a name="l00392"></a>00392 <span class="comment">/* Information derived from the parameters supplied. */</span>
<a name="l00393"></a>00393 <span class="comment">/*------------------------------------------------------------------------*/</span>
<a name="l00394"></a><a class="code" href="structcelprm.html#80ea2023638ededd2760cc9a260c456b">00394</a> <span class="keywordtype">double</span> <a class="code" href="structcelprm.html#80ea2023638ededd2760cc9a260c456b">euler</a>[5]; <span class="comment">/* Euler angles and functions thereof. */</span>
<a name="l00395"></a><a class="code" href="structcelprm.html#756c8f0991a748ab47361b0215c4577b">00395</a> <span class="keywordtype">int</span> <a class="code" href="structcelprm.html#756c8f0991a748ab47361b0215c4577b">latpreq</a>; <span class="comment">/* LATPOLEa requirement. */</span>
<a name="l00396"></a><a class="code" href="structcelprm.html#7bb5e1ff4d73c884d73eeb0f8f2677d7">00396</a> <span class="keywordtype">int</span> <a class="code" href="structcelprm.html#7bb5e1ff4d73c884d73eeb0f8f2677d7">isolat</a>; <span class="comment">/* True if |latitude| is preserved. */</span>
<a name="l00397"></a>00397
<a name="l00398"></a>00398 <span class="comment">/* Error handling */</span>
<a name="l00399"></a>00399 <span class="comment">/*------------------------------------------------------------------------*/</span>
<a name="l00400"></a><a class="code" href="structcelprm.html#1b9cbfd7cfa2306464d57dc4acd03b06">00400</a> <span class="keyword">struct </span><a class="code" href="structwcserr.html" title="Error message handling.">wcserr</a> *<a class="code" href="structcelprm.html#1b9cbfd7cfa2306464d57dc4acd03b06">err</a>;
<a name="l00401"></a>00401
<a name="l00402"></a>00402 <span class="comment">/* Private */</span>
<a name="l00403"></a>00403 <span class="comment">/*------------------------------------------------------------------------*/</span>
<a name="l00404"></a><a class="code" href="structcelprm.html#07d1785f7d7a8793555147140757956d">00404</a> <span class="keywordtype">void</span> *<a class="code" href="structcelprm.html#07d1785f7d7a8793555147140757956d">padding</a>; <span class="comment">/* (Dummy inserted for alignment purposes.) */</span>
<a name="l00405"></a>00405 };
<a name="l00406"></a>00406
<a name="l00407"></a>00407 <span class="comment">/* Size of the celprm struct in int units, used by the Fortran wrappers. */</span>
<a name="l00408"></a><a class="code" href="cel_8h.html#055ad88aa219a0207e221d62e03d2e23">00408</a> <span class="preprocessor">#define CELLEN (sizeof(struct celprm)/sizeof(int))</span>
<a name="l00409"></a>00409 <span class="preprocessor"></span>
<a name="l00410"></a>00410
<a name="l00411"></a>00411 <span class="keywordtype">int</span> <a class="code" href="cel_8h.html#1fe1b137ade45ea28e61f44d4708fb77" title="Default constructor for the celprm struct.">celini</a>(<span class="keyword">struct</span> <a class="code" href="structcelprm.html" title="Celestial transformation parameters.">celprm</a> *cel);
<a name="l00412"></a>00412
<a name="l00413"></a>00413 <span class="keywordtype">int</span> <a class="code" href="cel_8h.html#39bb7bf8e545c200191d51884ecfb89b" title="Destructor for the celprm struct.">celfree</a>(<span class="keyword">struct</span> <a class="code" href="structcelprm.html" title="Celestial transformation parameters.">celprm</a> *cel);
<a name="l00414"></a>00414
<a name="l00415"></a>00415 <span class="keywordtype">int</span> <a class="code" href="cel_8h.html#db2e4565f61a9de5fe278d9035850dc3" title="Print routine for the celprm struct.">celprt</a>(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structcelprm.html" title="Celestial transformation parameters.">celprm</a> *cel);
<a name="l00416"></a>00416
<a name="l00417"></a>00417 <span class="keywordtype">int</span> <a class="code" href="cel_8h.html#b0f67d1727750616f71c7bfcb3a037b6" title="Setup routine for the celprm struct.">celset</a>(<span class="keyword">struct</span> <a class="code" href="structcelprm.html" title="Celestial transformation parameters.">celprm</a> *cel);
<a name="l00418"></a>00418
<a name="l00419"></a>00419 <span class="keywordtype">int</span> <a class="code" href="cel_8h.html#1fe7f134670262eb54b6049c0275a27b" title="Pixel-to-world celestial transformation.">celx2s</a>(<span class="keyword">struct</span> <a class="code" href="structcelprm.html" title="Celestial transformation parameters.">celprm</a> *cel, <span class="keywordtype">int</span> nx, <span class="keywordtype">int</span> ny, <span class="keywordtype">int</span> sxy, <span class="keywordtype">int</span> sll,
<a name="l00420"></a>00420 <span class="keyword">const</span> <span class="keywordtype">double</span> x[], <span class="keyword">const</span> <span class="keywordtype">double</span> y[],
<a name="l00421"></a>00421 <span class="keywordtype">double</span> phi[], <span class="keywordtype">double</span> theta[], <span class="keywordtype">double</span> lng[], <span class="keywordtype">double</span> lat[],
<a name="l00422"></a>00422 <span class="keywordtype">int</span> stat[]);
<a name="l00423"></a>00423
<a name="l00424"></a>00424 <span class="keywordtype">int</span> <a class="code" href="cel_8h.html#6661c05703158b0808038b7d551f1ea1" title="World-to-pixel celestial transformation.">cels2x</a>(<span class="keyword">struct</span> <a class="code" href="structcelprm.html" title="Celestial transformation parameters.">celprm</a> *cel, <span class="keywordtype">int</span> nlng, <span class="keywordtype">int</span> nlat, <span class="keywordtype">int</span> sll, <span class="keywordtype">int</span> sxy,
<a name="l00425"></a>00425 <span class="keyword">const</span> <span class="keywordtype">double</span> lng[], <span class="keyword">const</span> <span class="keywordtype">double</span> lat[],
<a name="l00426"></a>00426 <span class="keywordtype">double</span> phi[], <span class="keywordtype">double</span> theta[], <span class="keywordtype">double</span> x[], <span class="keywordtype">double</span> y[],
<a name="l00427"></a>00427 <span class="keywordtype">int</span> stat[]);
<a name="l00428"></a>00428
<a name="l00429"></a>00429
<a name="l00430"></a>00430 <span class="comment">/* Deprecated. */</span>
<a name="l00431"></a><a class="code" href="cel_8h.html#0474e3e2d6c39249acbe58cedd573e84">00431</a> <span class="preprocessor">#define celini_errmsg cel_errmsg</span>
<a name="l00432"></a><a class="code" href="cel_8h.html#9e188b582ee4eb815466e86bb684fc82">00432</a> <span class="preprocessor"></span><span class="preprocessor">#define celprt_errmsg cel_errmsg</span>
<a name="l00433"></a><a class="code" href="cel_8h.html#2fe5a30084717036a54e7f0a920da105">00433</a> <span class="preprocessor"></span><span class="preprocessor">#define celset_errmsg cel_errmsg</span>
<a name="l00434"></a><a class="code" href="cel_8h.html#f72e24d2f169c3c343c55c880a74050f">00434</a> <span class="preprocessor"></span><span class="preprocessor">#define celx2s_errmsg cel_errmsg</span>
<a name="l00435"></a><a class="code" href="cel_8h.html#c398f2bea2deac6d86c10a7b3efca966">00435</a> <span class="preprocessor"></span><span class="preprocessor">#define cels2x_errmsg cel_errmsg</span>
<a name="l00436"></a>00436 <span class="preprocessor"></span>
<a name="l00437"></a>00437 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00438"></a>00438 <span class="preprocessor"></span>}
<a name="l00439"></a>00439 <span class="preprocessor">#endif</span>
<a name="l00440"></a>00440 <span class="preprocessor"></span>
<a name="l00441"></a>00441 <span class="preprocessor">#endif </span><span class="comment">/* WCSLIB_CEL */</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
<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>
|