98 void palMapqk (
double rm,
double dm,
double pr,
double pd,
99 double px,
double rv,
double amprms[21],
100 double *ra,
double *da ) {
103 const double VF = 0.21094502;
107 double ab1, abv[3], p[3], w, p1dv, p2[3], p3[3];
108 double pmt, gr2e, eb[3], q[3], pxr, em[3];
109 double pde, pdep1, p1[3], ehn[3], pn[3];
115 for( i = 0; i < 3; i++ ) {
117 ehn[
i] = amprms[i+4];
118 abv[
i] = amprms[i+8];
127 em[0] = -pr * q[1] - pd * cos(rm) * sin(dm) + w * q[0];
128 em[1] = pr * q[0] - pd * sin(rm) * sin(dm) + w * q[1];
129 em[2] = pd * cos(dm) + w * q[2];
132 for( i = 0; i < 3; i++ ) {
133 p[
i] = q[
i] + pmt * em[
i] - pxr * eb[
i];
140 w = gr2e / ( pdep1 > 1.0e-5 ? pdep1 : 1.0e-5 );
141 for( i = 0; i < 3; i++) {
142 p1[
i] = pn[
i] + w * ( ehn[
i] - pde * pn[
i] );
147 w = 1.0 + p1dv / ( ab1 + 1.0 );
148 for( i = 0; i < 3; i++ ) {
149 p2[
i] = ( ab1 * p1[
i] ) + ( w * abv[i] );
153 eraRxp( (
double(*)[3]) &rms[12], p2, p3 );
double eraPdp(double a[3], double b[3])
static const double PAL__DAS2R
void eraS2c(double theta, double phi, double c[3])
void eraC2s(double p[3], double *theta, double *phi)
void eraRxp(double r[3][3], double p[3], double rp[3])
void eraPn(double p[3], double *r, double u[3])
void palMapqk(double rm, double dm, double pr, double pd, double px, double rv, double amprms[21], double *ra, double *da)