/usr/include/libnova/hyperbolic_motion.h is in libnova-dev 0.16-2.
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 137 138 139 140 141 142 143 144 145 146 147 148 149 150 | /*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library 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
* Lesser 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* Copyright (C) 2000 - 2005 Liam Girdwood
*/
#ifndef _LN_HYPERBOLIC_MOTION_H
#define _LN_HYPERBOLIC_MOTION_H
#include <libnova/ln_types.h>
#ifdef __cplusplus
extern "C" {
#endif
/*! \defgroup hyperbolic Hyperbolic Motion
*
* Functions relating to the Hyperbolic motion of bodies.
*
* All angles are expressed in degrees.
*/
/*! \fn double ln_solve_hyp_barker(double Q1, double G, double t);
* \brief Solve Barkers equation.
* \ingroup hyperbolic
*/
double LIBNOVA_EXPORT ln_solve_hyp_barker(double Q1, double G, double t);
/*! \fn double ln_get_hyp_true_anomaly(double q, double e, double t);
* \ingroup hyperbolic
* \brief Calculate the true anomaly.
*/
double LIBNOVA_EXPORT ln_get_hyp_true_anomaly(double q, double e, double t);
/*! \fn double ln_get_hyp_radius_vector(double q, double e, double t);
* \ingroup hyperbolic
* \brief Calculate the radius vector.
*/
double LIBNOVA_EXPORT ln_get_hyp_radius_vector(double q, double e, double t);
/*! \fn void ln_get_hyp_geo_rect_posn(struct ln_hyp_orbit *orbit, double JD, struct ln_rect_posn *posn);
* \ingroup hyperbolic
* \brief Calculate an objects rectangular geocentric position.
*/
void LIBNOVA_EXPORT ln_get_hyp_geo_rect_posn(struct ln_hyp_orbit *orbit,
double JD, struct ln_rect_posn *posn);
/*! \fn void ln_get_hyp_helio_rect_posn(struct ln_hyp_orbit *orbit, double JD, struct ln_rect_posn *posn);
* \ingroup hyperbolic
* \brief Calculate an objects rectangular heliocentric position.
*/
void LIBNOVA_EXPORT ln_get_hyp_helio_rect_posn(struct ln_hyp_orbit *orbit,
double JD, struct ln_rect_posn *posn);
/*!
* \fn void ln_get_hyp_body_equ_coords(double JD, struct ln_hyp_orbit *orbit, struct ln_equ_posn *posn)
* \ingroup hyperbolic
* \brief Calculate a bodies equatorial coordinates.
*/
void LIBNOVA_EXPORT ln_get_hyp_body_equ_coords(double JD,
struct ln_hyp_orbit *orbit, struct ln_equ_posn *posn);
/*!
* \fn double ln_get_hyp_body_earth_dist(double JD, struct ln_hyp_orbit *orbit)
* \ingroup hyperbolic
* \brief Calculate the distance between a body and the Earth.
*/
double LIBNOVA_EXPORT ln_get_hyp_body_earth_dist(double JD,
struct ln_hyp_orbit *orbit);
/*!
* \fn double ln_get_hyp_body_solar_dist(double JD, struct ln_hyp_orbit *orbit)
* \ingroup hyperbolic
* \brief Calculate the distance between a body and the Sun.
*/
double LIBNOVA_EXPORT ln_get_hyp_body_solar_dist(double JD,
struct ln_hyp_orbit *orbit);
/*! \fn double ln_get_hyp_body_phase_angle(double JD, struct ln_hyp_orbit *orbit);
* \ingroup hyperbolic
* \brief Calculate the phase angle of the body.
*/
double LIBNOVA_EXPORT ln_get_hyp_body_phase_angle(double JD,
struct ln_hyp_orbit *orbit);
/*! \fn double ln_get_hyp_body_elong(double JD, struct ln_hyp_orbit *orbit);
* \ingroup hyperbolic
* \brief Calculate the bodies elongation to the Sun.
*/
double LIBNOVA_EXPORT ln_get_hyp_body_elong(double JD,
struct ln_hyp_orbit *orbit);
/*! \fn double ln_get_hyp_body_rst(double JD, struct ln_lnlat_posn *observer, struct ln_hyp_orbit *orbit, struct ln_rst_time *rst);
* \brief Calculate the time of rise, set and transit for a body with a hyperbolic orbit.
* \ingroup hyperbolic
*/
int LIBNOVA_EXPORT ln_get_hyp_body_rst(double JD,
struct ln_lnlat_posn *observer, struct ln_hyp_orbit *orbit,
struct ln_rst_time *rst);
/*! \fn double ln_get_hyp_body_rst_horizon(double JD, struct ln_lnlat_posn *observer, struct ln_hyp_orbit *orbit, double horizon, struct ln_rst_time *rst);
* \brief Calculate the time of rise, set and transit for a body with a hyperbolic orbit.
* \ingroup hyperbolic
*/
int LIBNOVA_EXPORT ln_get_hyp_body_rst_horizon(double JD,
struct ln_lnlat_posn *observer, struct ln_hyp_orbit *orbit,
double horizon, struct ln_rst_time *rst);
/*! \fn double ln_get_hyp_body_next_rst(double JD, struct ln_lnlat_posn *observer, struct ln_hyp_orbit *orbit, struct ln_rst_time *rst);
* \brief Calculate the time of rise, set and transit for a body with an hyperbolic orbit.
* \ingroup hyperbolic
*/
int LIBNOVA_EXPORT ln_get_hyp_body_next_rst(double JD,
struct ln_lnlat_posn *observer, struct ln_hyp_orbit *orbit,
struct ln_rst_time *rst);
/*! \fn double ln_get_hyp_body_next_rst_horizon(double JD, struct ln_lnlat_posn *observer, struct ln_hyp_orbit *orbit, double horizon, struct ln_rst_time *rst);
* \brief Calculate the time of rise, set and transit for a body with an hyperbolic orbit.
* \ingroup hyperbolic
*/
int LIBNOVA_EXPORT ln_get_hyp_body_next_rst_horizon(double JD,
struct ln_lnlat_posn *observer, struct ln_hyp_orbit *orbit,
double horizon, struct ln_rst_time *rst);
/*! \fn double ln_get_hyp_body_next_rst_horizon_future(double JD, struct ln_lnlat_posn *observer, struct ln_hyp_orbit *orbit, double horizon, int day_limit, struct ln_rst_time *rst);
* \brief Calculate the time of rise, set and transit for a body with an hyperbolic orbit.
* \ingroup hyperbolic
*/
int LIBNOVA_EXPORT ln_get_hyp_body_next_rst_horizon_future(double JD,
struct ln_lnlat_posn *observer, struct ln_hyp_orbit *orbit,
double horizon, int day_limit, struct ln_rst_time *rst);
#ifdef __cplusplus
};
#endif
#endif
|