/usr/include/star/palmac.h is in libstarlink-pal-dev 0.5.0-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 | #ifndef PALMACDEF
#define PALMACDEF
/*
*+
* Name:
* palmac.h
* Purpose:
* Macros used by the PAL library
* Language:
* Starlink ANSI C
* Type of Module:
* Include file
* Description:
* A collection of useful macros provided and used by the PAL library
* Authors:
* TIMJ: Tim Jenness (JAC, Hawaii)
* DSB: David Berry (JAC, Hawaii)
* {enter_new_authors_here}
* Notes:
*
* History:
* 2012-02-08 (TIMJ):
* Initial version.
* Adapted with permission from the Fortran SLALIB library.
* 2012-04-13 (DSB):
* Added PAL__DR2H and PAL__DR2S
* {enter_further_changes_here}
* Copyright:
* Copyright (C) 2012 Science and Technology Facilities Council.
* All Rights Reserved.
* Licence:
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 3 of
* the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be
* useful, but WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
* USA.
* Bugs:
* {note_any_bugs_here}
*-
*/
/* Pi */
static const double PAL__DPI = 3.1415926535897932384626433832795028841971693993751;
/* 2Pi */
static const double PAL__D2PI = 6.2831853071795864769252867665590057683943387987502;
/* pi/2: 90 degrees in radians */
static const double PAL__DPIBY2 = 1.5707963267948966192313216916397514420985846996876;
/* pi/180: degrees to radians */
static const double PAL__DD2R = 0.017453292519943295769236907684886127134428718885417;
/* Radians to arcseconds */
static const double PAL__DR2AS = 2.0626480624709635515647335733077861319665970087963e5;
/* Arcseconds to radians */
static const double PAL__DAS2R = 4.8481368110953599358991410235794797595635330237270e-6;
/* Radians to degrees */
static const double PAL__DR2D = 57.295779513082320876798154814105170332405472466564;
/* Hours to radians */
static const double PAL__DH2R = 0.26179938779914943653855361527329190701643078328126;
/* Radians to hours */
static const double PAL__DR2H = 3.8197186342054880584532103209403446888270314977709;
/* Radians to seconds of time */
static const double PAL__DR2S = 1.3750987083139757010431557155385240879777313391975e4;
/* Seconds of time to radians */
static const double PAL__DS2R = 7.272205216643039903848712e-5;
/* Start of SLA modified Julian date epoch */
static const double PAL__MJD0 = 2400000.5;
/* Light time for 1 AU (sec) */
static const double PAL__CR = 499.004782;
/* Seconds per day */
static const double PAL__SPD = 86400.0;
/* Km per sec to AU per tropical century
= 86400 * 36524.2198782 / 149597870 */
static const double PAL__VF = 21.095;
/* Radians per year to arcsec per century. This needs to be a macro since it
is an expression including other constants. */
#define PAL__PMF (100.0*60.0*60.0*360.0/PAL__D2PI);
/* Mean sidereal rate - the rotational angular velocity of Earth
in radians/sec from IERS Conventions (2003). */
static const double PAL__SR = 7.2921150e-5;
/* Gaussian gravitational constant (exact) */
static const double PAL__GCON = 0.01720209895;
/* DINR(A) - truncate to nearest whole number towards zero (double) */
#define DINT(A) ((A)<0.0?ceil(A):floor(A))
/* DNINT(A) - round to nearest whole number (double) */
#define DNINT(A) ((A)<0.0?ceil((A)-0.5):floor((A)+0.5))
/* DMAX(A,B) - return maximum value - evaluates arguments multiple times */
#define DMAX(A,B) ((A) > (B) ? (A) : (B) )
/* DMIN(A,B) - return minimum value - evaluates arguments multiple times */
#define DMIN(A,B) ((A) < (B) ? (A) : (B) )
/* We actually prefer to use C99 copysign() but we define this here as a backup
but it will not detect -0.0 so is not useful for palDfltin. */
/* DSIGN(A,B) - magnitude of A with sign of B (double) */
#define DSIGN(A,B) ((B)<0.0?-fabs(A):fabs(A))
#endif
|