This is annuab.c in view mode; [Download] [Up]
/************************************************/
/* annuab.c */
/* */
/* Annual aberration - AA pages B17, B37, C24 */
/************************************************/
/***** description
*
* $Id: annuab.c,v 1.4 1993/04/23 18:58:29 craig Exp $
*
*/
/***** modification history
*
* $Log: annuab.c,v $
* Revision 1.4 1993/04/23 18:58:29 craig
* Changed assignment of C to new pcnsts.caupda value.
*
* Revision 1.3 1993/04/22 19:36:02 craig
* minor changes.
*
* Revision 1.2 1993/04/21 15:00:38 craig
* First working version. Ran through indent and converted to ansi. Added
* hooks for working with the satellite programs.
*
*
*/
/***** include files *****/
#include <math.h>
#include "aaproto.h"
#include "satellite.h"
/***** global variables *****/
/* from cnstinit.c */
extern double TDT;
extern double dp[3];
extern struct PCONSTANTS pcnsts;
/* from vearth.c */
extern double vearth[3];
/**********/
/* annuab */
/**********/
int annuab (double *p) /* p is a unit vector
pointing from earth to object */
{
double A, B, C;
double betai, pV;
double x[3], V[3];
int i;
/* Calculate the velocity of the earth (see vearth.c). */
velearth (TDT);
/* speed of light in au/day */
C = pcnsts.caupda;
betai = 0.0;
pV = 0.0;
for (i = 0; i < 3; i++)
{
A = vearth[i] / C;
V[i] = A;
betai += A * A;
pV += p[i] * A;
}
/* Make the adjustment for aberration. */
betai = sqrt (1.0 - betai);
C = 1.0 + pV;
A = betai / C;
B = (1.0 + pV / (1.0 + betai)) / C;
for (i = 0; i < 3; i++)
{
C = A * p[i] + B * V[i];
x[i] = C;
dp[i] = C - p[i];
}
showcor ("annual aberration", p, dp);
for (i = 0; i < 3; i++)
{
p[i] = x[i];
}
return (0);
}
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.