File indexing completed on 2024-04-14 03:46:44

0001 #ifndef _sgp4ext_
0002 #define _sgp4ext_
0003 /*     ----------------------------------------------------------------
0004 *
0005 *                                 sgp4ext.h
0006 *
0007 *    this file contains extra routines needed for the main test program for sgp4.
0008 *    these routines are derived from the astro libraries.
0009 *
0010 *                            companion code for
0011 *               fundamentals of astrodynamics and applications
0012 *                                    2007
0013 *                              by david vallado
0014 *
0015 *       (w) 719-573-2600, email dvallado@agi.com
0016 *
0017 *    current :
0018 *              20 apr 07  david vallado
0019 *                           misc documentation updates
0020 *    changes :
0021 *              14 aug 06  david vallado
0022 *                           original baseline
0023 *       ----------------------------------------------------------------      */
0024 
0025 #include <cstring>
0026 #include <cmath>
0027 
0028 #include "sgp4unit.h"
0029 
0030 
0031 // ------------------------- function declarations -------------------------
0032 
0033 double  sgn
0034         (
0035           double x
0036         );
0037 
0038 double  mag
0039         (
0040           double x[3]
0041         );
0042 
0043 void    cross
0044         (
0045           double vec1[3], double vec2[3], double outvec[3]
0046         );
0047 
0048 double  dot
0049         (
0050           double x[3], double y[3]
0051         );
0052 
0053 double  angle
0054         (
0055           double vec1[3],
0056           double vec2[3]
0057         );
0058 
0059 void    newtonnu
0060         (
0061           double ecc, double nu,
0062           double& e0, double& m
0063         );
0064 
0065 void    rv2coe
0066         (
0067           double r[3], double v[3], double mu,
0068           double& p, double& a, double& ecc, double& incl, double& omega, double& argp,
0069           double& nu, double& m, double& arglat, double& truelon, double& lonper
0070         );
0071 
0072 void    jday
0073         (
0074           int year, int mon, int day, int hr, int minute, double sec,
0075           double& jd
0076         );
0077 
0078 void    days2mdhms
0079         (
0080           int year, double days,
0081           int& mon, int& day, int& hr, int& minute, double& sec
0082         );
0083 
0084 void    invjday
0085         (
0086           double jd,
0087           int& year, int& mon, int& day,
0088           int& hr, int& minute, double& sec
0089         );
0090 
0091 #endif
0092