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
use crate::rfam::*;
/*
** - - - - - - - - -
** e r a O b l 0 6
** - - - - - - - - -
**
** Mean obliquity of the ecliptic, IAU 2006 precession model.
**
** Given:
** date1,date2 double TT as a 2-part Julian Date (Note 1)
**
** Returned (function value):
** double obliquity of the ecliptic (radians, Note 2)
**
** Notes:
**
** 1) The TT date date1+date2 is a Julian Date, apportioned in any
** convenient way between the two arguments. For example,
** JD(TT)=2450123.7 could be expressed in any of these ways,
** among others:
**
** date1 date2
**
** 2450123.7 0.0 (JD method)
** 2451545.0 -1421.3 (J2000 method)
** 2400000.5 50123.2 (MJD method)
** 2450123.5 0.2 (date & time method)
**
** The JD method is the most natural and convenient to use in
** cases where the loss of several decimal digits of resolution
** is acceptable. The J2000 method is best matched to the way
** the argument is handled internally and will deliver the
** optimum resolution. The MJD method and the date & time methods
** are both good compromises between resolution and convenience.
**
** 2) The result is the angle between the ecliptic and mean equator of
** date date1+date2.
**
** Reference:
**
** Hilton, J. et al., 2006, Celest.Mech.Dyn.Astron. 94, 351
**
** This revision: 2021 May 11
**
** Copyright (C) 2013-2021, NumFOCUS Foundation.
** Derived, with permission, from the SOFA library. See notes at end of file.
*/
pub fn obl06(date1: f64, date2:f64)->f64
{
/* Interval between fundamental date J2000.0 and given date (JC). */
let t = ((date1 - URSA_DJ00) + date2) / URSA_DJC;
/* Mean obliquity. */
(84381.406 +
(-46.836769 +
( -0.0001831 +
( 0.00200340 +
( -0.000000576 +
( -0.0000000434) * t) * t) * t) * t) * t) * URSA_DAS2R
/* Finished. */
}