source: trunk/MagicSoft/slalib/prebn.c

Last change on this file was 731, checked in by tbretz, 24 years ago
*** empty log message ***
  • Property svn:executable set to *
File size: 1.6 KB
Line 
1#include "slalib.h"
2#include "slamac.h"
3void slaPrebn ( double bep0, double bep1, double rmatp[3][3] )
4/*
5** - - - - - - - - -
6** s l a P r e b n
7** - - - - - - - - -
8**
9** Generate the matrix of precession between two epochs,
10** using the old, pre-IAU1976, Bessel-Newcomb model, using
11** Kinoshita's formulation (double precision)
12**
13** Given:
14** BEP0 double beginning Besselian epoch
15** BEP1 double ending Besselian epoch
16**
17** Returned:
18** RMATP double[3][3] precession matrix
19**
20** The matrix is in the sense v(bep1) = rmatp * v(bep0)
21**
22** Reference:
23** Kinoshita, H. (1975) 'Formulas for precession', SAO Special
24** Report No. 364, Smithsonian Institution Astrophysical
25** Observatory, Cambridge, Massachusetts.
26**
27** Called: slaDeuler
28**
29** Defined in slamac.h: DAS2R
30**
31** Last revision: 30 October 1993
32**
33** Copyright P.T.Wallace. All rights reserved.
34*/
35{
36 double bigt, t, tas2r, w, zeta, z, theta;
37
38/* Interval between basic epoch B1850.0 and beginning epoch in TC */
39 bigt = ( bep0 - 1850.0 ) / 100.0;
40
41/* Interval over which precession required, in tropical centuries */
42 t = ( bep1 - bep0 ) / 100.0;
43
44/* Euler angles */
45 tas2r = t * DAS2R;
46 w = 2303.5548 + ( 1.39720 + 0.000059 * bigt ) * bigt;
47 zeta = (w + ( 0.30242 - 0.000269 * bigt + 0.017996 * t ) * t ) * tas2r;
48 z = (w + ( 1.09478 + 0.000387 * bigt + 0.018324 * t ) * t ) * tas2r;
49 theta = ( 2005.1125 + ( - 0.85294 - 0.000365* bigt ) * bigt +
50 ( - 0.42647 - 0.000365 * bigt - 0.041802 * t ) * t ) * tas2r;
51
52/* Rotation matrix */
53 slaDeuler ( "ZYZ", -zeta, theta, -z, rmatp );
54}
Note: See TracBrowser for help on using the repository browser.