use crate::BodyId;
use crate::datetime::mjd;
use crate::math::angle;
use crate::math::matrix::mat_r;
use crate::math::vector::vec_p;
use crate::math::vector::vec_pv;
use crate::pos_eph::equ_orbit::OrbElem;
use super::CL0;
use super::CLT;
use super::GM;
use super::TO_ICRS;
pub fn get_orb_elm(mjd_tdb: f64, body: &BodyId) -> OrbElem {
match body {
BodyId::MERCURY | BodyId::MERCURYB => mercury(mjd_tdb),
BodyId::VENUS | BodyId::VENUSB => venus(mjd_tdb),
BodyId::EMB => emb(mjd_tdb),
BodyId::MARS | BodyId::MARSB => mars(mjd_tdb),
BodyId::JUPITER | BodyId::JUPITERB => jupiter(mjd_tdb),
BodyId::SATURN | BodyId::SATURNB => saturn(mjd_tdb),
BodyId::URANUS | BodyId::URANUSB => uranus(mjd_tdb),
BodyId::NEPTUNE | BodyId::NEPTUNEB => neptune(mjd_tdb),
_ => OrbElem {
mu: f64::NAN,
mjd0: mjd_tdb,
a: f64::NAN,
l: f64::NAN,
k: f64::NAN,
h: f64::NAN,
q: f64::NAN,
p: f64::NAN,
},
}
}
pub fn get_icrs_pv(mjd_tdb: f64, body: &BodyId) -> vec_pv::VecPv {
let orb_el = get_orb_elm(mjd_tdb, body);
let out = orb_el.get_pv();
mat_r::mul_pv(&TO_ICRS, &out)
}
pub fn get_icrs_p(mjd_tdb: f64, body: &BodyId) -> vec_p::VecP {
let orb_el = get_orb_elm(mjd_tdb, body);
let out = orb_el.get_p();
mat_r::mul_p(&TO_ICRS, &out)
}
fn mercury(mjd_tdb: f64) -> OrbElem {
let vmu = (GM[0] + GM[1]) / GM[0];
let dt = (mjd_tdb - mjd::J2000) / mjd::DJMILL;
let dt2 = dt * dt;
let lme = CL0[1] + CLT[1] * dt;
let lve = CL0[2] + CLT[2] * dt;
let a_1me_2ve = 1.0 * lme - 2.0 * lve;
let a_2me_5ve = 2.0 * lme - 5.0 * lve;
let c_1me_2ve = a_1me_2ve.cos();
let c_2me_5ve = a_2me_5ve.cos();
let s_1me_2ve = a_1me_2ve.sin();
let s_2me_5ve = a_2me_5ve.sin();
let va = 0.3870983098840000e+00;
let mut vl = 0.4402608631669000e+01 + -0.2642015105471128e-04*s_2me_5ve + -0.2382707472808938e-04*c_2me_5ve + 0.3940312272049771e-05*s_1me_2ve + 0.1686988542736688e-04*c_1me_2ve; vl += dt * 0.2608790314068555e+05;
vl += dt2 * -0.8653050353289743e-05;
let mut vk = 0.4466062941700000e-01; vk += dt * -0.5521455127763387e-02;
vk += dt2 * -0.1860176830365075e-04;
let mut vh = 0.2007233087310000e+00; vh += dt * 0.1437550757037212e-02;
vh += dt2 * -0.7974840632101417e-04;
let mut vq = 0.4061564059600000e-01;
vq += dt * 0.6543150544460607e-03;
vq += dt2 * -0.1071265646582313e-04;
let mut vp = 0.4563549330800000e-01;
vp += dt * -0.1276365552465256e-02;
vp += dt2 * -0.9135017283432294e-05;
OrbElem {
mu: vmu,
mjd0: mjd_tdb,
a: va,
l: angle::norm_dblpi(vl),
k: vk,
h: vh,
q: vq,
p: vp,
}
}
fn venus(mjd_tdb: f64) -> OrbElem {
let vmu = (GM[0] + GM[2]) / GM[0];
let dt = (mjd_tdb - mjd::J2000) / mjd::DJMILL;
let dt2 = dt * dt;
let lve = CL0[2] + CLT[2] * dt;
let lea = CL0[3] + CLT[3] * dt;
let lar = CL0[4] + CLT[4] * dt;
let lju = CL0[10] + CLT[10] * dt;
let lsa = CL0[11] + CLT[11] * dt;
let a_1ve_1ea = 1.0 * lve - 1.0 * lea;
let a_1ve_2ea = 1.0 * lve - 2.0 * lea;
let a_2ve_2ea = 2.0 * lve - 2.0 * lea;
let a_2ve_3ea = 2.0 * lve - 3.0 * lea;
let a_2ve_7ar8ju_6sa = 2.0 * lve - 7.0 * lar + 8.0 * lju - 6.0 * lsa;
let a_8ve_13ea = 8.0 * lve - 13.0 * lea;
let c_1ve_1ea = a_1ve_1ea.cos();
let c_1ve_2ea = a_1ve_2ea.cos();
let c_2ve_2ea = a_2ve_2ea.cos();
let c_2ve_3ea = a_2ve_3ea.cos();
let c_2ve_7ar8ju_6sa = a_2ve_7ar8ju_6sa.cos();
let c_8ve_13ea = a_8ve_13ea.cos();
let s_1ve_1ea = a_1ve_1ea.sin();
let s_1ve_2ea = a_1ve_2ea.sin();
let s_2ve_2ea = a_2ve_2ea.sin();
let s_2ve_3ea = a_2ve_3ea.sin();
let s_2ve_7ar8ju_6sa = a_2ve_7ar8ju_6sa.sin();
let s_8ve_13ea = a_8ve_13ea.sin();
let va = 0.7233298199450000e+00; let mut vl = 0.3176134461576000e+01 + -0.8462401430068983e-05*s_2ve_7ar8ju_6sa + 0.1381171158669011e-04*c_2ve_7ar8ju_6sa + -0.2003897615671844e-04*s_2ve_2ea + -0.3916661902850538e-08*c_2ve_2ea + -0.1974339674690586e-04*s_1ve_1ea + -0.5187141641802716e-08*c_1ve_1ea + -0.7098840608412079e-05*s_8ve_13ea + -0.1109816836222360e-04*c_8ve_13ea + 0.2371414365650798e-06*s_2ve_3ea + -0.1609800970599925e-04*c_2ve_3ea; vl += dt * 0.1021328554743445e+05;
vl += dt2 * 0.2824289409513071e-05;
let mut vk = -0.4492821048000000e-02 + 0.2559416913702809e-07*s_2ve_3ea + 0.2247486286645199e-04*c_2ve_3ea + -0.3298948808319820e-07*s_1ve_2ea + -0.1705855867658912e-04*c_1ve_2ea; vk += dt * 0.3126002304108446e-03;
vk += dt2 * 0.6057729505260102e-05;
let mut vh = 0.5066851475000000e-02 + -0.2230660060124298e-04*s_2ve_3ea + -0.3671173316142774e-07*c_2ve_3ea + 0.1690194962402941e-04*s_1ve_2ea + 0.3970022963775860e-07*c_1ve_2ea; vh += dt * -0.3612193139215600e-03;
vh += dt2 * 0.1844861217822704e-04;
let mut vq = 0.6824113928000000e-02;
vq += dt * 0.1381339313288797e-02;
vq += dt2 * -0.1091344274426134e-04;
let mut vp = 0.2882281923000000e-01;
vp += dt * -0.4039078836907815e-03;
vp += dt2 * -0.6232661635102321e-04;
OrbElem {
mu: vmu,
mjd0: mjd_tdb,
a: va,
l: angle::norm_dblpi(vl),
k: vk,
h: vh,
q: vq,
p: vp,
}
}
fn emb(mjd_tdb: f64) -> OrbElem {
let vmu = (GM[0] + GM[3]) / GM[0];
let dt = (mjd_tdb - mjd::J2000) / mjd::DJMILL;
let dt2 = dt * dt;
let lve = CL0[2] + CLT[2] * dt;
let lea = CL0[3] + CLT[3] * dt;
let lar = CL0[4] + CLT[4] * dt;
let lju = CL0[10] + CLT[10] * dt;
let a_1ea_2ar = 1.0 * lea - 2.0 * lar;
let a_1ea_2ju = 1.0 * lea - 2.0 * lju;
let a_1ju = 1.0 * lju;
let a_1ve_1ea = 1.0 * lve - 1.0 * lea;
let a_1ve_2ea = 1.0 * lve - 2.0 * lea;
let a_2ea_2ju = 2.0 * lea - 2.0 * lju;
let a_2ve_2ea = 2.0 * lve - 2.0 * lea;
let a_2ve_3ea = 2.0 * lve - 3.0 * lea;
let a_4ea_8ar3ju = 4.0 * lea - 8.0 * lar + 3.0 * lju;
let a_8ve_13ea = 8.0 * lve - 13.0 * lea;
let c_1ea_2ar = a_1ea_2ar.cos();
let c_1ea_2ju = a_1ea_2ju.cos();
let c_1ju = a_1ju.cos();
let c_1ve_1ea = a_1ve_1ea.cos();
let c_1ve_2ea = a_1ve_2ea.cos();
let c_2ea_2ju = a_2ea_2ju.cos();
let c_2ve_2ea = a_2ve_2ea.cos();
let c_2ve_3ea = a_2ve_3ea.cos();
let c_4ea_8ar3ju = a_4ea_8ar3ju.cos();
let c_8ve_13ea = a_8ve_13ea.cos();
let s_1ea_2ar = a_1ea_2ar.sin();
let s_1ea_2ju = a_1ea_2ju.sin();
let s_1ju = a_1ju.sin();
let s_1ve_1ea = a_1ve_1ea.sin();
let s_1ve_2ea = a_1ve_2ea.sin();
let s_2ea_2ju = a_2ea_2ju.sin();
let s_2ve_2ea = a_2ve_2ea.sin();
let s_2ve_3ea = a_2ve_3ea.sin();
let s_4ea_8ar3ju = a_4ea_8ar3ju.sin();
let s_8ve_13ea = a_8ve_13ea.sin();
let va = 0.1000001017641000e+01 + -0.7736236063963646e-08*s_2ea_2ju + 0.1120495653357545e-04*c_2ea_2ju; let mut vl = 0.1753470369433000e+01 + -0.9528802326523676e-05*s_4ea_8ar3ju + 0.3225447561917028e-04*c_4ea_8ar3ju + -0.2056396003946340e-04*s_2ea_2ju + -0.1716306740014159e-07*c_2ea_2ju + 0.1664410968350593e-04*s_1ve_1ea + 0.3545485826499014e-08*c_1ve_1ea + -0.1251575540362920e-04*s_1ju + 0.1737232295559857e-05*c_1ju + 0.1268839469607162e-04*s_2ve_2ea + 0.2631349429962086e-08*c_2ve_2ea + 0.4861283706207645e-05*s_8ve_13ea + 0.7600368384404018e-05*c_8ve_13ea + -0.6471883513088068e-05*s_1ea_2ar + 0.5561890781895792e-05*c_1ea_2ar + -0.1599407326578266e-06*s_2ve_3ea + 0.1089660357483378e-04*c_2ve_3ea; vl += dt * 0.6283075850353215e+04; vl += dt2 * -0.9803726171868713e-05;
let mut vk = -0.3740818074000000e-02 + 0.5391176220236722e-08*s_2ve_3ea + -0.1988948191079879e-04*c_2ve_3ea + -0.4577900644927902e-08*s_1ea_2ju + 0.1859260221360864e-04*c_1ea_2ju + -0.2557792753389548e-06*s_1ju + -0.1497136366824665e-04*c_1ju + 0.2746941473722890e-08*s_1ve_2ea + 0.8230994580864119e-05*c_1ve_2ea; vk += dt * -0.8226866083381023e-03;
vk += dt2 * 0.2766670965181005e-04;
let mut vh = 0.1628448918000000e-01 + 0.1987013745289864e-04*s_2ve_3ea + 0.7526846313162709e-08*c_2ve_3ea + -0.1864057696178798e-04*s_1ea_2ju + -0.2452936689604385e-07*c_1ea_2ju + -0.1510832741338689e-04*s_1ju + 0.1459415500860214e-06*c_1ju + -0.8195711244672714e-05*s_1ve_2ea + -0.7769471047056032e-08*c_1ve_2ea; vh += dt * -0.6203015463663059e-03;
vh += dt2 * -0.3387469970891833e-04;
let mut vq = -0.1443000000000000e-08;
vq += dt * -0.1134731322072173e-02;
vq += dt2 * 0.1236743820044911e-04;
let mut vp = -0.9700000000000000e-09;
vp += dt * 0.1017891898227051e-03;
vp += dt2 * 0.4702795245810685e-04;
OrbElem {
mu: vmu,
mjd0: mjd_tdb,
a: va,
l: angle::norm_dblpi(vl),
k: vk,
h: vh,
q: vq,
p: vp,
}
}
fn mars(mjd_tdb: f64) -> OrbElem {
let vmu = (GM[0] + GM[4]) / GM[0];
let dt = (mjd_tdb - mjd::J2000) / mjd::DJMILL;
let dt2 = dt * dt;
let lve = CL0[2] + CLT[2] * dt;
let lea = CL0[3] + CLT[3] * dt;
let lar = CL0[4] + CLT[4] * dt;
let lju = CL0[10] + CLT[10] * dt;
let lsa = CL0[11] + CLT[11] * dt;
let a_10ea_19ar3sa = 10.0 * lea - 19.0 * lar + 3.0 * lsa;
let a_1ar = 1.0 * lar;
let a_1ar_1ju = 1.0 * lar - 1.0 * lju;
let a_1ar_2ju = 1.0 * lar - 2.0 * lju;
let a_1ar_3ju = 1.0 * lar - 3.0 * lju;
let a_1ea = 1.0 * lea;
let a_1ea_1ar = 1.0 * lea - 1.0 * lar;
let a_1ea_2ar = 1.0 * lea - 2.0 * lar;
let a_1ju = 1.0 * lju;
let a_1ve = 1.0 * lve;
let a_1ve_1ar = 1.0 * lve - 1.0 * lar;
let a_1ve_3ar = 1.0 * lve - 3.0 * lar;
let a_2ar_2ju = 2.0 * lar - 2.0 * lju;
let a_2ar_3ju = 2.0 * lar - 3.0 * lju;
let a_2ea_2ar = 2.0 * lea - 2.0 * lar;
let a_2ea_3ar = 2.0 * lea - 3.0 * lar;
let a_2ea_4ar = 2.0 * lea - 4.0 * lar;
let a_2ju = 2.0 * lju;
let a_2ve_7ar8ju_6sa = 2.0 * lve - 7.0 * lar + 8.0 * lju - 6.0 * lsa;
let a_3ar_2ju = 3.0 * lar - 2.0 * lju;
let a_3ar_3ju = 3.0 * lar - 3.0 * lju;
let a_3ea_5ar = 3.0 * lea - 5.0 * lar;
let a_4ea_8ar3ju = 4.0 * lea - 8.0 * lar + 3.0 * lju;
let a_8ea_15ar = 8.0 * lea - 15.0 * lar;
let a_8ea_16ar4ju5sa = 8.0 * lea - 16.0 * lar + 4.0 * lju + 5.0 * lsa;
let c_10ea_19ar3sa = a_10ea_19ar3sa.cos();
let c_1ar_1ju = a_1ar_1ju.cos();
let c_1ar_2ju = a_1ar_2ju.cos();
let c_1ar_3ju = a_1ar_3ju.cos();
let c_1ar = a_1ar.cos();
let c_1ea_1ar = a_1ea_1ar.cos();
let c_1ea_2ar = a_1ea_2ar.cos();
let c_1ea = a_1ea.cos();
let c_1ju = a_1ju.cos();
let c_1ve_1ar = a_1ve_1ar.cos();
let c_1ve_3ar = a_1ve_3ar.cos();
let c_1ve = a_1ve.cos();
let c_2ar_2ju = a_2ar_2ju.cos();
let c_2ar_3ju = a_2ar_3ju.cos();
let c_2ea_2ar = a_2ea_2ar.cos();
let c_2ea_3ar = a_2ea_3ar.cos();
let c_2ea_4ar = a_2ea_4ar.cos();
let c_2ju = a_2ju.cos();
let c_2ve_7ar8ju_6sa = a_2ve_7ar8ju_6sa.cos();
let c_3ar_2ju = a_3ar_2ju.cos();
let c_3ar_3ju = a_3ar_3ju.cos();
let c_3ea_5ar = a_3ea_5ar.cos();
let c_4ea_8ar3ju = a_4ea_8ar3ju.cos();
let c_8ea_15ar = a_8ea_15ar.cos();
let c_8ea_16ar4ju5sa = a_8ea_16ar4ju5sa.cos();
let s_10ea_19ar3sa = a_10ea_19ar3sa.sin();
let s_1ar_1ju = a_1ar_1ju.sin();
let s_1ar_2ju = a_1ar_2ju.sin();
let s_1ar_3ju = a_1ar_3ju.sin();
let s_1ar = a_1ar.sin();
let s_1ea_1ar = a_1ea_1ar.sin();
let s_1ea_2ar = a_1ea_2ar.sin();
let s_1ea = a_1ea.sin();
let s_1ju = a_1ju.sin();
let s_1ve_1ar = a_1ve_1ar.sin();
let s_1ve_3ar = a_1ve_3ar.sin();
let s_1ve = a_1ve.sin();
let s_2ar_2ju = a_2ar_2ju.sin();
let s_2ar_3ju = a_2ar_3ju.sin();
let s_2ea_2ar = a_2ea_2ar.sin();
let s_2ea_3ar = a_2ea_3ar.sin();
let s_2ea_4ar = a_2ea_4ar.sin();
let s_2ju = a_2ju.sin();
let s_2ve_7ar8ju_6sa = a_2ve_7ar8ju_6sa.sin();
let s_3ar_2ju = a_3ar_2ju.sin();
let s_3ar_3ju = a_3ar_3ju.sin();
let s_3ea_5ar = a_3ea_5ar.sin();
let s_4ea_8ar3ju = a_4ea_8ar3ju.sin();
let s_8ea_15ar = a_8ea_15ar.sin();
let s_8ea_16ar4ju5sa = a_8ea_16ar4ju5sa.sin();
let va = 0.1523679340234000e+01 + 0.2101775373331733e-06*s_2ar_2ju + 0.6601704278461370e-04*c_2ar_2ju + -0.9977604980983227e-05*s_1ar_2ju + -0.1962695157182863e-04*c_1ar_2ju + 0.7292228176543606e-05*s_1ea_2ar + 0.9717887342158017e-05*c_1ea_2ar + -0.5331249419813583e-06*s_3ar_3ju + 0.1638959609503905e-04*c_3ar_3ju + 0.1347316964242000e-07*s_1ea_1ar + 0.1580840346743808e-04*c_1ea_1ar + 0.6615849173822213e-08*s_1ve_1ar + 0.1412663622583949e-04*c_1ve_1ar + -0.6166981470159274e-05*s_2ar_3ju + 0.5198780582332146e-05*c_2ar_3ju + 0.4720620998767606e-06*s_1ar_1ju + 0.1038210471448370e-04*c_1ar_1ju + 0.5407576659256848e-05*s_2ea_4ar + 0.3326024526824262e-05*c_2ea_4ar + -0.2719551592680041e-05*s_2ea_3ar + -0.4898410079363411e-05*c_2ea_3ar + -0.2426382381910058e-05*s_3ar_2ju + 0.4413292857548602e-05*c_3ar_2ju; let mut vl = 0.6203500014141000e+01 + 0.7742264425111476e-04*s_4ea_8ar3ju + -0.2617832697374777e-03*c_4ea_8ar3ju + 0.5345241861531846e-04*s_2ve_7ar8ju_6sa + -0.7804886631701535e-04*c_2ve_7ar8ju_6sa + 0.4999025247825537e-04*s_1ea_2ar + -0.4297011666327412e-04*c_1ea_2ar + -0.8395443448782783e-04*s_2ar_2ju + 0.3306618274807684e-06*c_2ar_2ju + 0.5072644215611296e-04*s_1ar_2ju + -0.2697923793416644e-04*c_1ar_2ju + 0.1681694483678999e-04*s_1ve_3ar + -0.2549770211249528e-04*c_1ve_3ar + -0.8070598040310655e-05*s_8ea_16ar4ju5sa + -0.2902468613941162e-04*c_8ea_16ar4ju5sa + -0.3320139209414432e-04*s_1ar_1ju + 0.1117430913775943e-05*c_1ar_1ju + 0.1123129810287098e-04*s_2ea_4ar + -0.1803245714472436e-04*c_2ea_4ar + -0.2883485736703881e-05*s_1ju + 0.1661730372858658e-04*c_1ju + -0.1733461359007396e-04*s_3ar_3ju + -0.3691490197470149e-06*c_3ar_3ju + 0.1078704493955365e-04*s_2ea_3ar + -0.6078798841253108e-05*c_2ea_3ar + -0.5272323022732691e-05*s_2ar_3ju + -0.9022954102428195e-05*c_2ar_3ju + 0.1262902522289650e-04*s_1ea_1ar + 0.4892632991942881e-07*c_1ea_1ar + 0.7905173843579709e-05*s_1ar + 0.4680833582487246e-05*c_1ar + 0.1117518625808045e-04*s_1ar_3ju + 0.1229822949559054e-05*c_1ar_3ju + -0.6854682964487084e-05*s_8ea_15ar + 0.2941197015223346e-05*c_8ea_15ar + 0.3392731411486480e-05*s_3ea_5ar + -0.5556544990617090e-05*c_3ea_5ar + 0.7385645833016237e-05*s_2ea_2ar + 0.3192086923906569e-07*c_2ea_2ar + 0.2069597602399858e-05*s_10ea_19ar3sa + 0.4811887233935557e-05*c_10ea_19ar3sa + 0.6519009794123065e-05*s_1ve_1ar + -0.5360148014480102e-09*c_1ve_1ar; vl += dt
* (0.3340612434145457e+04 + 0.3392467736366958e-04*s_4ea_8ar3ju + -0.1511101396473551e-05*c_4ea_8ar3ju + 0.3140779257662208e-05*s_1ea_2ar + 0.4159884204788707e-05*c_1ea_2ar); vl += dt2
* (0.1432192152061476e-04 + 0.1588460249318501e-05*s_8ea_16ar4ju5sa + 0.9691488856676208e-05*c_8ea_16ar4ju5sa); let mut vk = 0.8536559316400000e-01 + 0.7592342405387395e-06*s_1ar_2ju + 0.8228281656722219e-04*c_1ar_2ju + 0.1328646517298552e-05*s_1ju + -0.4629996603431496e-04*c_1ju + -0.1240165207309972e-04*s_2ju + 0.2273842165766883e-04*c_2ju + -0.4920133835392524e-06*s_1ea_2ar + 0.1710311546841972e-04*c_1ea_2ar + -0.9251575706315990e-05*s_1ar_3ju + 0.7230175341920896e-05*c_1ar_3ju + 0.4984269905503782e-05*s_2ea_4ar + 0.8936019366574185e-05*c_2ea_4ar + -0.3031443176334461e-07*s_2ar_3ju + 0.1300643835597837e-04*c_2ar_3ju + -0.2677929647573779e-07*s_3ar_2ju + 0.6367755183768504e-05*c_3ar_2ju + 0.1568066385559759e-07*s_1ea + 0.5973657354596974e-05*c_1ea + 0.2053266836663249e-07*s_2ea_3ar + -0.5963749598039279e-05*c_2ea_3ar + 0.4947481011958404e-07*s_1ar + -0.5907140981004285e-05*c_1ar + 0.4322460431427035e-08*s_1ve + 0.5351444313417709e-05*c_1ve; vk += dt * 0.3763367938421870e-02;
vk += dt2 * -0.2464616210115644e-03;
let mut vh = -0.3789970916200000e-01 + -0.8158300803476505e-04*s_1ar_2ju + -0.1631333225777431e-06*c_1ar_2ju + -0.4514621671640089e-04*s_1ju + -0.1338560051808422e-05*c_1ju + 0.2277189069592638e-04*s_2ju + 0.1238717483530517e-04*c_2ju + -0.1767741054655739e-04*s_1ea_2ar + 0.1509504795025434e-06*c_1ea_2ar + -0.7051445800877344e-05*s_1ar_3ju + -0.9317231212056156e-05*c_1ar_3ju + -0.1375932742517312e-04*s_2ar_3ju + -0.2521126070964129e-06*c_2ar_3ju + -0.8964324176723943e-05*s_2ea_4ar + 0.4968805485088362e-05*c_2ea_4ar + 0.6313737910784610e-05*s_3ar_2ju + -0.9209863792539959e-07*c_3ar_2ju + 0.5961746918701734e-05*s_2ea_3ar + 0.7147003133525596e-07*c_2ea_3ar + 0.5994221629652555e-05*s_1ea + 0.1830616616144348e-07*c_1ea + -0.5839346374610997e-05*s_1ar + 0.5237613687075798e-07*c_1ar + 0.5350553716176112e-05*s_1ve + -0.2466080957189595e-09*c_1ve; vh += dt * 0.6246745883366477e-02;
vh += dt2 * 0.1551692161239763e-03;
let mut vq = 0.1047042802100000e-01;
vq += dt * 0.1713209209255757e-03;
vq += dt2 * -0.4078518124360005e-04;
let mut vp = 0.1228448645700000e-01;
vp += dt * -0.1080243440121441e-02;
vp += dt2 * -0.1920867334542991e-04;
OrbElem {
mu: vmu,
mjd0: mjd_tdb,
a: va,
l: angle::norm_dblpi(vl),
k: vk,
h: vh,
q: vq,
p: vp,
}
}
fn jupiter(mjd_tdb: f64) -> OrbElem {
let vmu = (GM[0] + GM[5]) / GM[0];
let dt = (mjd_tdb - mjd::J2000) / mjd::DJMILL;
let dt2 = dt * dt;
let dt3 = dt2 * dt;
let lve = CL0[2] + CLT[2] * dt;
let lea = CL0[3] + CLT[3] * dt;
let lju = CL0[10] + CLT[10] * dt;
let lsa = CL0[11] + CLT[11] * dt;
let lur = CL0[12] + CLT[12] * dt;
let a_1ea = 1.0 * lea;
let a_1ea_1ju = 1.0 * lea - 1.0 * lju;
let a_1ju = 1.0 * lju;
let a_1ju_1sa = 1.0 * lju - 1.0 * lsa;
let a_1ju_2sa = 1.0 * lju - 2.0 * lsa;
let a_1ju_3sa = 1.0 * lju - 3.0 * lsa;
let a_1sa = 1.0 * lsa;
let a_1ve_1ju = 1.0 * lve - 1.0 * lju;
let a_2ju_2sa = 2.0 * lju - 2.0 * lsa;
let a_2ju_3sa = 2.0 * lju - 3.0 * lsa;
let a_2ju_4sa = 2.0 * lju - 4.0 * lsa;
let a_2ju_5sa = 2.0 * lju - 5.0 * lsa;
let a_2ju_6sa3ur = 2.0 * lju - 6.0 * lsa + 3.0 * lur;
let a_2sa = 2.0 * lsa;
let a_3ju_2sa = 3.0 * lju - 2.0 * lsa;
let a_3ju_3sa = 3.0 * lju - 3.0 * lsa;
let a_3ju_4sa = 3.0 * lju - 4.0 * lsa;
let a_3ju_5sa = 3.0 * lju - 5.0 * lsa;
let a_4ju_10sa = 4.0 * lju - 10.0 * lsa;
let a_4ju_11sa3ur = 4.0 * lju - 11.0 * lsa + 3.0 * lur;
let a_4ju_4sa = 4.0 * lju - 4.0 * lsa;
let a_4ju_5sa = 4.0 * lju - 5.0 * lsa;
let a_5ju_5sa = 5.0 * lju - 5.0 * lsa;
let a_5ju_6sa = 5.0 * lju - 6.0 * lsa;
let a_6ju_6sa = 6.0 * lju - 6.0 * lsa;
let c_1ea_1ju = a_1ea_1ju.cos();
let c_1ea = a_1ea.cos();
let c_1ju_1sa = a_1ju_1sa.cos();
let c_1ju_2sa = a_1ju_2sa.cos();
let c_1ju_3sa = a_1ju_3sa.cos();
let c_1ju = a_1ju.cos();
let c_1sa = a_1sa.cos();
let c_1ve_1ju = a_1ve_1ju.cos();
let c_2ju_2sa = a_2ju_2sa.cos();
let c_2ju_3sa = a_2ju_3sa.cos();
let c_2ju_4sa = a_2ju_4sa.cos();
let c_2ju_5sa = a_2ju_5sa.cos();
let c_2ju_6sa3ur = a_2ju_6sa3ur.cos();
let c_2sa = a_2sa.cos();
let c_3ju_2sa = a_3ju_2sa.cos();
let c_3ju_3sa = a_3ju_3sa.cos();
let c_3ju_4sa = a_3ju_4sa.cos();
let c_3ju_5sa = a_3ju_5sa.cos();
let c_4ju_10sa = a_4ju_10sa.cos();
let c_4ju_11sa3ur = a_4ju_11sa3ur.cos();
let c_4ju_4sa = a_4ju_4sa.cos();
let c_4ju_5sa = a_4ju_5sa.cos();
let c_5ju_5sa = a_5ju_5sa.cos();
let c_5ju_6sa = a_5ju_6sa.cos();
let c_6ju_6sa = a_6ju_6sa.cos();
let s_1ea_1ju = a_1ea_1ju.sin();
let s_1ea = a_1ea.sin();
let s_1ju_1sa = a_1ju_1sa.sin();
let s_1ju_2sa = a_1ju_2sa.sin();
let s_1ju_3sa = a_1ju_3sa.sin();
let s_1ju = a_1ju.sin();
let s_1sa = a_1sa.sin();
let s_1ve_1ju = a_1ve_1ju.sin();
let s_2ju_2sa = a_2ju_2sa.sin();
let s_2ju_3sa = a_2ju_3sa.sin();
let s_2ju_4sa = a_2ju_4sa.sin();
let s_2ju_5sa = a_2ju_5sa.sin();
let s_2ju_6sa3ur = a_2ju_6sa3ur.sin();
let s_2sa = a_2sa.sin();
let s_3ju_2sa = a_3ju_2sa.sin();
let s_3ju_3sa = a_3ju_3sa.sin();
let s_3ju_4sa = a_3ju_4sa.sin();
let s_3ju_5sa = a_3ju_5sa.sin();
let s_4ju_10sa = a_4ju_10sa.sin();
let s_4ju_11sa3ur = a_4ju_11sa3ur.sin();
let s_4ju_4sa = a_4ju_4sa.sin();
let s_4ju_5sa = a_4ju_5sa.sin();
let s_5ju_5sa = a_5ju_5sa.sin();
let s_5ju_6sa = a_5ju_6sa.sin();
let s_6ju_6sa = a_6ju_6sa.sin();
let mut va = 0.5202603206345000e+01 + 0.5100731376088230e-05*s_2ju_2sa + 0.6908043510561457e-03*c_2ju_2sa + -0.2878287385373483e-04*s_1ju_2sa + -0.3214904645945905e-03*c_1ju_2sa + -0.1583453473202935e-05*s_3ju_3sa + 0.3114395584213925e-03*c_3ju_3sa + -0.1857280366916087e-03*s_2ju_3sa + -0.1144882040540835e-03*c_2ju_3sa + 0.3894892071063347e-04*s_2ju_5sa + -0.2526500573333832e-03*c_2ju_5sa + 0.5640270342554730e-05*s_1ju_1sa + 0.2058116181419471e-03*c_1ju_1sa + -0.1014457983639388e-03*s_3ju_4sa + -0.6103015981554922e-04*c_3ju_4sa + -0.2503553581964123e-05*s_4ju_4sa + 0.1463355804645551e-03*c_4ju_4sa + -0.5753347484800356e-04*s_4ju_5sa + -0.3440519598189308e-04*c_4ju_5sa + 0.5922555354085085e-04*s_2ju_4sa + -0.2788364961190847e-04*c_2ju_4sa + 0.2218486706911247e-09*s_1ea_1ju + 0.7808339308650885e-04*c_1ea_1ju + -0.4802795139395747e-04*s_1ju_3sa + -0.2666222252417651e-04*c_1ju_3sa + -0.2427543192936528e-05*s_5ju_5sa + 0.7014002842092782e-04*c_5ju_5sa + -0.1942479811298708e-07*s_1ve_1ju + 0.7169971117088121e-04*c_1ve_1ju + -0.3267852106960026e-04*s_5ju_6sa + -0.1964538841347516e-04*c_5ju_6sa + 0.2816398757914647e-04*s_3ju_5sa + -0.1437521239238642e-04*c_3ju_5sa + -0.1974483995914409e-05*s_6ju_6sa + 0.3398716932267049e-04*c_6ju_6sa; va += dt
* (0.9779860650885715e-04*s_2ju_5sa + 0.2824746971953849e-04*c_2ju_5sa + 0.1896590586074550e-04*s_2ju_3sa + -0.2292145555389705e-04*c_2ju_3sa + 0.2209583739367573e-04*s_1ju_2sa + -0.1795736921027807e-04*c_1ju_2sa); va += dt2 * (-0.8439980695835434e-05 * s_2ju_5sa + 0.1923847047408348e-04 * c_2ju_5sa); let mut vl = 0.5995461070350000e+00 + -0.5666256834180089e-02*s_2ju_5sa + -0.8925144752155674e-03*c_2ju_5sa + 0.6166232843201025e-03*s_1ju_2sa + -0.9025260614463746e-04*c_1ju_2sa + -0.3225560302778263e-03*s_2ju_2sa + 0.2668051858131396e-05*c_2ju_2sa + -0.2379049905192102e-03*s_1ju_1sa + 0.4783423466902939e-05*c_1ju_1sa + 0.7634915486447417e-04*s_2ju_3sa + -0.1100456084668563e-03*c_2ju_3sa + -0.1173260044174877e-03*s_3ju_3sa + 0.1143140707515281e-06*c_3ju_3sa + 0.2505927947375491e-04*s_2ju_4sa + 0.6335656887132486e-04*c_2ju_4sa + 0.2874513129582408e-04*s_3ju_4sa + -0.4294988578816746e-04*c_3ju_4sa + -0.3321213431093296e-04*s_1ju_3sa + 0.3776624002427641e-04*c_1ju_3sa + 0.3261632405261021e-04*s_1sa + 0.3624370398732691e-04*c_1sa + 0.5027394114481974e-04*s_4ju_10sa + 0.1685204710943389e-04*c_4ju_10sa + 0.4578227674774107e-04*s_2ju_6sa3ur + 0.7109042641726133e-05*c_2ju_6sa3ur + -0.4845215901685691e-04*s_4ju_4sa + -0.3450920446816846e-06*c_4ju_4sa + 0.1338383615547329e-04*s_4ju_5sa + -0.2042563470989340e-04*c_4ju_5sa + -0.1577296019381804e-04*s_4ju_11sa3ur + -0.1344363206961822e-04*c_4ju_11sa3ur + 0.1668677478087503e-04*s_1ju + 0.7390082255489886e-05*c_1ju + 0.6513204802507434e-05*s_3ju_5sa + 0.1584309509851290e-04*c_3ju_5sa + -0.2129867434353420e-04*s_5ju_5sa + -0.4309707511882701e-06*c_5ju_5sa + 0.6741381373495040e-05*s_5ju_6sa + -0.1039181806464600e-04*c_5ju_6sa + 0.1327615395235714e-04*s_1ea_1ju + 0.1061768617913901e-09*c_1ea_1ju + 0.1277104921184586e-04*s_1ve_1ju + 0.2540472534781543e-08*c_1ve_1ju; vl += dt
* (0.5296909615623250e+03 + 0.6463174368757044e-03*s_2ju_5sa + -0.2196106383104567e-02*c_2ju_5sa + 0.3796073585971277e-04*s_1ju_2sa + 0.4440436406102723e-04*c_1ju_2sa + -0.1851953712347685e-04*s_4ju_10sa + 0.3809282264531027e-04*c_4ju_10sa + 0.1399643230736737e-04*s_2ju_3sa + 0.1175591099311259e-04*c_2ju_3sa + -0.1758536301604393e-04*s_2ju_4sa + 0.4922066520565255e-05*c_2ju_4sa + 0.1132545123204832e-04*s_4ju_11sa3ur + -0.8389483686436879e-05*c_4ju_11sa3ur + -0.7571429673271612e-05*s_2ju_6sa3ur + 0.9188482122386694e-05*c_2ju_6sa3ur); vl += dt2
* (0.4312318531901481e-03*s_2ju_5sa + 0.1928790661753141e-03*c_2ju_5sa + -0.1483392972823448e-03 + -0.1433818064928569e-04*s_4ju_10sa + -0.9487037871646341e-05*c_4ju_10sa); vl += dt3 * (-0.3535350378107832e-04 * s_2ju_5sa + 0.5469025073461363e-04 * c_2ju_5sa); let mut vk = 0.4698584700500000e-01 + -0.4347545948308645e-05*s_1ju_2sa + 0.6529663871698988e-03*c_1ju_2sa + -0.3444205345201338e-03*s_2ju_5sa + 0.1608724094551382e-03*c_2ju_5sa + 0.1080410246523534e-03*s_1ju_3sa + 0.8129921456221116e-04*c_1ju_3sa + 0.9837282704341540e-06*s_2ju_3sa + 0.1074221379589439e-03*c_2ju_3sa + -0.5510299649801816e-04*s_2ju_4sa + -0.3439349912587338e-04*c_2ju_4sa + -0.3476195072468480e-05*s_1sa + -0.8214954651224058e-04*c_1sa + 0.7797731722279796e-06*s_3ju_4sa + 0.3765701484665328e-04*c_3ju_4sa + -0.1678217331555950e-05*s_1ju + -0.2955595640853329e-04*c_1ju + -0.1755114591586694e-04*s_3ju_5sa + -0.1030602476274358e-04*c_3ju_5sa + -0.3418448416897737e-05*s_2sa + 0.1714436166617530e-04*c_2sa + 0.5299788305028704e-06*s_4ju_5sa + 0.1557538316210753e-04*c_4ju_5sa + -0.3427400995337214e-06*s_3ju_2sa + 0.1471990486711308e-04*c_3ju_2sa + 0.6396186755007049e-09*s_1ea + 0.1038487436197112e-04*c_1ea; vk += dt
* (0.1130313783478597e-02 + -0.3076454418708960e-04*s_2ju_5sa + -0.9837616545761109e-04*c_2ju_5sa + -0.1531233471206593e-04*s_1ju_3sa + 0.1252856676716392e-04*c_1ju_3sa); vk += dt2
* (-0.1093621680728395e-03 + 0.1429692860732896e-04*s_2ju_5sa + -0.2019869628614621e-05*c_2ju_5sa); let mut vh = 0.1200371972600000e-01 + -0.6427198737338274e-03*s_1ju_2sa + 0.1479851653240996e-04*c_1ju_2sa + -0.1604439138315285e-03*s_2ju_5sa + -0.3411176558900131e-03*c_2ju_5sa + -0.6091809774990400e-04*s_1ju_3sa + 0.1113072150001340e-03*c_1ju_3sa + -0.1046978845355527e-03*s_2ju_3sa + 0.3869023932938911e-06*c_2ju_3sa + 0.3333277849896435e-04*s_2ju_4sa + -0.5467229748929953e-04*c_2ju_4sa + -0.7892170645245807e-04*s_1sa + -0.6118037554325283e-05*c_1sa + -0.3749104009979733e-04*s_3ju_4sa + -0.7295427220199574e-06*c_3ju_4sa + -0.2838974402204854e-04*s_1ju + -0.1558961658278715e-05*c_1ju + 0.1072547420724238e-04*s_3ju_5sa + -0.1727296264313949e-04*c_3ju_5sa + 0.7904404821396175e-05*s_1ju_1sa + -0.9105583475629666e-05*c_1ju_1sa + -0.1578113362532889e-04*s_4ju_5sa + -0.8557326939321921e-06*c_4ju_5sa + 0.1173356297757817e-04*s_2sa + 0.4360481746028629e-05*c_2sa + 0.1500552055686985e-04*s_3ju_2sa + -0.6554420882623805e-06*c_3ju_2sa + 0.1038171424799154e-04*s_1ea + 0.6468456867431086e-09*c_1ea; vh += dt
* (0.2171843761244132e-02 + 0.9683559870129499e-04*s_2ju_5sa + -0.3097332848074398e-04*c_2ju_5sa + -0.1487381075931062e-04*s_1ju_3sa + -0.7517614533633824e-05*c_1ju_3sa); vh += dt2
* (0.9861588767909847e-04 + 0.2184641568162600e-05*s_2ju_5sa + 0.1393825317230794e-04*c_2ju_5sa); let mut vq = -0.2065622731000000e-02 + -0.7510064823645628e-05*s_2ju_5sa + 0.4127505042017256e-05*c_2ju_5sa; vq += dt * -0.3135048283468208e-03;
vq += dt2 * -0.1671376172208626e-04;
let mut vp = 0.1118386458000000e-01 + -0.3339923137107150e-05*s_2ju_5sa + -0.7835068902148984e-05*c_2ju_5sa; vp += dt * -0.2343211190834333e-03;
vp += dt2 * 0.2088219062909500e-04;
OrbElem {
mu: vmu,
mjd0: mjd_tdb,
a: va,
l: angle::norm_dblpi(vl),
k: vk,
h: vh,
q: vq,
p: vp,
}
}
fn saturn(mjd_tdb: f64) -> OrbElem {
let vmu = (GM[0] + GM[6]) / GM[0];
let dt = (mjd_tdb - mjd::J2000) / mjd::DJMILL;
let dt2 = dt * dt;
let dt3 = dt2 * dt;
let dt4 = dt2 * dt2;
let lve = CL0[2] + CLT[2] * dt;
let lea = CL0[3] + CLT[3] * dt;
let lju = CL0[10] + CLT[10] * dt;
let lsa = CL0[11] + CLT[11] * dt;
let lur = CL0[12] + CLT[12] * dt;
let lne = CL0[13] + CLT[13] * dt;
let a_1ea = 1.0 * lea;
let a_1ea_1sa = 1.0 * lea - 1.0 * lsa;
let a_1ju = 1.0 * lju;
let a_1ju_1sa = 1.0 * lju - 1.0 * lsa;
let a_1ju1sa = 1.0 * lju + 1.0 * lsa;
let a_1ju_2sa = 1.0 * lju - 2.0 * lsa;
let a_1ju_3sa = 1.0 * lju - 3.0 * lsa;
let a_1ju_4sa = 1.0 * lju - 4.0 * lsa;
let a_1sa = 1.0 * lsa;
let a_1sa_1ur = 1.0 * lsa - 1.0 * lur;
let a_1sa_2ur = 1.0 * lsa - 2.0 * lur;
let a_1sa_3ur = 1.0 * lsa - 3.0 * lur;
let a_1ve = 1.0 * lve;
let a_1ve_1sa = 1.0 * lve - 1.0 * lsa;
let a_2ju_1sa = 2.0 * lju - 1.0 * lsa;
let a_2ju = 2.0 * lju;
let a_2ju_2sa = 2.0 * lju - 2.0 * lsa;
let a_2ju_3sa = 2.0 * lju - 3.0 * lsa;
let a_2ju_4sa = 2.0 * lju - 4.0 * lsa;
let a_2ju_5sa = 2.0 * lju - 5.0 * lsa;
let a_2ju_6sa3ur = 2.0 * lju - 6.0 * lsa + 3.0 * lur;
let a_2ju_6sa4ur_2ne = 2.0 * lju - 6.0 * lsa + 4.0 * lur - 2.0 * lne;
let a_2sa = 2.0 * lsa;
let a_2sa_2ur = 2.0 * lsa - 2.0 * lur;
let a_3ju_1sa = 3.0 * lju - 1.0 * lsa;
let a_3ju_2sa = 3.0 * lju - 2.0 * lsa;
let a_3ju_3sa = 3.0 * lju - 3.0 * lsa;
let a_3ju_4sa = 3.0 * lju - 4.0 * lsa;
let a_3ju_5sa = 3.0 * lju - 5.0 * lsa;
let a_3ju_6sa = 3.0 * lju - 6.0 * lsa;
let a_3ju_7sa = 3.0 * lju - 7.0 * lsa;
let a_3sa = 3.0 * lsa;
let a_3sa_3ur = 3.0 * lsa - 3.0 * lur;
let a_4ju_10sa = 4.0 * lju - 10.0 * lsa;
let a_4ju_11sa3ur = 4.0 * lju - 11.0 * lsa + 3.0 * lur;
let a_4ju_3sa = 4.0 * lju - 3.0 * lsa;
let a_4ju_4sa = 4.0 * lju - 4.0 * lsa;
let a_4ju_5sa = 4.0 * lju - 5.0 * lsa;
let a_4ju_6sa = 4.0 * lju - 6.0 * lsa;
let a_4ju_7sa = 4.0 * lju - 7.0 * lsa;
let a_5ju_5sa = 5.0 * lju - 5.0 * lsa;
let a_5ju_6sa = 5.0 * lju - 6.0 * lsa;
let a_5ju_7sa = 5.0 * lju - 7.0 * lsa;
let a_6ju_6sa = 6.0 * lju - 6.0 * lsa;
let a_6ju_7sa = 6.0 * lju - 7.0 * lsa;
let a_6ju_8sa = 6.0 * lju - 8.0 * lsa;
let a_7ju_7sa = 7.0 * lju - 7.0 * lsa;
let a_7ju_8sa = 7.0 * lju - 8.0 * lsa;
let c_1ea_1sa = a_1ea_1sa.cos();
let c_1ea = a_1ea.cos();
let c_1ju_1sa = a_1ju_1sa.cos();
let c_1ju1sa = a_1ju1sa.cos();
let c_1ju_2sa = a_1ju_2sa.cos();
let c_1ju_3sa = a_1ju_3sa.cos();
let c_1ju_4sa = a_1ju_4sa.cos();
let c_1ju = a_1ju.cos();
let c_1sa_1ur = a_1sa_1ur.cos();
let c_1sa_2ur = a_1sa_2ur.cos();
let c_1sa_3ur = a_1sa_3ur.cos();
let c_1sa = a_1sa.cos();
let c_1ve_1sa = a_1ve_1sa.cos();
let c_1ve = a_1ve.cos();
let c_2ju_1sa = a_2ju_1sa.cos();
let c_2ju_2sa = a_2ju_2sa.cos();
let c_2ju_3sa = a_2ju_3sa.cos();
let c_2ju_4sa = a_2ju_4sa.cos();
let c_2ju_5sa = a_2ju_5sa.cos();
let c_2ju_6sa3ur = a_2ju_6sa3ur.cos();
let c_2ju_6sa4ur_2ne = a_2ju_6sa4ur_2ne.cos();
let c_2ju = a_2ju.cos();
let c_2sa_2ur = a_2sa_2ur.cos();
let c_2sa = a_2sa.cos();
let c_3ju_1sa = a_3ju_1sa.cos();
let c_3ju_2sa = a_3ju_2sa.cos();
let c_3ju_3sa = a_3ju_3sa.cos();
let c_3ju_4sa = a_3ju_4sa.cos();
let c_3ju_5sa = a_3ju_5sa.cos();
let c_3ju_6sa = a_3ju_6sa.cos();
let c_3ju_7sa = a_3ju_7sa.cos();
let c_3sa_3ur = a_3sa_3ur.cos();
let c_3sa = a_3sa.cos();
let c_4ju_10sa = a_4ju_10sa.cos();
let c_4ju_11sa3ur = a_4ju_11sa3ur.cos();
let c_4ju_3sa = a_4ju_3sa.cos();
let c_4ju_4sa = a_4ju_4sa.cos();
let c_4ju_5sa = a_4ju_5sa.cos();
let c_4ju_6sa = a_4ju_6sa.cos();
let c_4ju_7sa = a_4ju_7sa.cos();
let c_5ju_5sa = a_5ju_5sa.cos();
let c_5ju_6sa = a_5ju_6sa.cos();
let c_5ju_7sa = a_5ju_7sa.cos();
let c_6ju_6sa = a_6ju_6sa.cos();
let c_6ju_7sa = a_6ju_7sa.cos();
let c_6ju_8sa = a_6ju_8sa.cos();
let c_7ju_7sa = a_7ju_7sa.cos();
let c_7ju_8sa = a_7ju_8sa.cos();
let s_1ea_1sa = a_1ea_1sa.sin();
let s_1ea = a_1ea.sin();
let s_1ju_1sa = a_1ju_1sa.sin();
let s_1ju1sa = a_1ju1sa.sin();
let s_1ju_2sa = a_1ju_2sa.sin();
let s_1ju_3sa = a_1ju_3sa.sin();
let s_1ju_4sa = a_1ju_4sa.sin();
let s_1ju = a_1ju.sin();
let s_1sa_1ur = a_1sa_1ur.sin();
let s_1sa_2ur = a_1sa_2ur.sin();
let s_1sa_3ur = a_1sa_3ur.sin();
let s_1sa = a_1sa.sin();
let s_1ve_1sa = a_1ve_1sa.sin();
let s_1ve = a_1ve.sin();
let s_2ju_1sa = a_2ju_1sa.sin();
let s_2ju_2sa = a_2ju_2sa.sin();
let s_2ju_3sa = a_2ju_3sa.sin();
let s_2ju_4sa = a_2ju_4sa.sin();
let s_2ju_5sa = a_2ju_5sa.sin();
let s_2ju_6sa3ur = a_2ju_6sa3ur.sin();
let s_2ju_6sa4ur_2ne = a_2ju_6sa4ur_2ne.sin();
let s_2ju = a_2ju.sin();
let s_2sa_2ur = a_2sa_2ur.sin();
let s_2sa = a_2sa.sin();
let s_3ju_1sa = a_3ju_1sa.sin();
let s_3ju_2sa = a_3ju_2sa.sin();
let s_3ju_3sa = a_3ju_3sa.sin();
let s_3ju_4sa = a_3ju_4sa.sin();
let s_3ju_5sa = a_3ju_5sa.sin();
let s_3ju_6sa = a_3ju_6sa.sin();
let s_3ju_7sa = a_3ju_7sa.sin();
let s_3sa_3ur = a_3sa_3ur.sin();
let s_3sa = a_3sa.sin();
let s_4ju_10sa = a_4ju_10sa.sin();
let s_4ju_11sa3ur = a_4ju_11sa3ur.sin();
let s_4ju_3sa = a_4ju_3sa.sin();
let s_4ju_4sa = a_4ju_4sa.sin();
let s_4ju_5sa = a_4ju_5sa.sin();
let s_4ju_6sa = a_4ju_6sa.sin();
let s_4ju_7sa = a_4ju_7sa.sin();
let s_5ju_5sa = a_5ju_5sa.sin();
let s_5ju_6sa = a_5ju_6sa.sin();
let s_5ju_7sa = a_5ju_7sa.sin();
let s_6ju_6sa = a_6ju_6sa.sin();
let s_6ju_7sa = a_6ju_7sa.sin();
let s_6ju_8sa = a_6ju_8sa.sin();
let s_7ju_7sa = a_7ju_7sa.sin();
let s_7ju_8sa = a_7ju_8sa.sin();
let mut va = 0.9554910386038999e+01 + -0.3437266469055700e-04*s_1ju_1sa + 0.3363467481202068e-01*c_1ju_1sa + -0.2229385518635504e-02*s_1ju_2sa + 0.2756171976705157e-02*c_1ju_2sa + -0.4400406755274662e-03*s_2ju_5sa + 0.2856969718535694e-02*c_2ju_5sa + -0.1164814256646919e-03*s_2ju_2sa + -0.3082436604667959e-02*c_2ju_2sa + 0.1259469898765764e-02*s_2ju_3sa + 0.8131036987026694e-03*c_2ju_3sa + 0.1072777594914061e-02*s_1sa + -0.9546936725604712e-03*c_1sa + 0.3642198890595163e-03*s_2ju_1sa + 0.1422284843242330e-02*c_2ju_1sa + 0.6467185109264615e-05*s_3ju_3sa + -0.1420741569614733e-02*c_3ju_3sa + 0.6283453705551986e-03*s_3ju_4sa + 0.3796425403056037e-03*c_3ju_4sa + 0.8098399670483587e-03*s_1ju_3sa + 0.1168032247334982e-03*c_1ju_3sa + -0.4930062026441755e-03*s_2ju_4sa + 0.2272025525606228e-03*c_2ju_4sa + 0.1191703852517785e-04*s_4ju_4sa + -0.6715030705186844e-03*c_4ju_4sa + 0.3296766717313027e-03*s_4ju_5sa + 0.1978890650427113e-03*c_4ju_5sa + 0.5795966420664538e-04*s_3ju_6sa + -0.3995650242427491e-03*c_3ju_6sa + -0.6993969401285598e-04*s_1ju_4sa + 0.3721217112569575e-03*c_1ju_4sa + 0.1093093571586999e-04*s_5ju_5sa + -0.3217808874085322e-03*c_5ju_5sa + -0.2180981607548734e-03*s_3ju_5sa + 0.1109930179674765e-03*c_3ju_5sa + 0.1784598235616548e-03*s_5ju_6sa + 0.1080117200899099e-03*c_5ju_6sa + 0.6567845387309816e-09*s_1ea_1sa + 0.1854895655912716e-03*c_1ea_1sa + -0.1297653520667075e-03*s_4ju_6sa + 0.4839824967903677e-04*c_4ju_6sa + -0.1337137087433987e-06*s_1ve_1sa + 0.1734209264971080e-03*c_1ve_1sa + 0.8860817441584077e-05*s_6ju_6sa + -0.1557999857722357e-03*c_6ju_6sa + 0.9842492599304599e-04*s_6ju_7sa + 0.6016373013323772e-04*c_6ju_7sa + 0.8763505920892027e-06*s_2sa_2ur + 0.1325823248988644e-03*c_2sa_2ur + 0.5343637924627996e-04*s_3ju_1sa + 0.7251752222639736e-04*c_3ju_1sa + -0.6850956593909365e-04*s_5ju_7sa + 0.3776054910621004e-04*c_5ju_7sa + 0.7280746217235527e-04*s_3ju_7sa + -0.2304168262879400e-04*c_3ju_7sa + 0.5380103994600466e-04*s_7ju_8sa + 0.3366256584162853e-04*c_7ju_8sa + 0.6624465282054647e-05*s_7ju_7sa + -0.7587815625472588e-04*c_7ju_7sa + 0.1723955421254697e-04*s_4ju_10sa + -0.5129830856806602e-04*c_4ju_10sa + 0.1190363485254537e-04*s_4ju_3sa + -0.5064262160028729e-04*c_4ju_3sa + -0.1137923068318514e-04*s_3sa + -0.5012066610450822e-04*c_3sa + 0.5671237219048952e-05*s_3ju_2sa + -0.5070341625942940e-04*c_3ju_2sa + -0.5260741166047712e-06*s_3sa_3ur + 0.5407620248310923e-04*c_3sa_3ur; va += dt
* (-0.1105970394103897e-02*s_2ju_5sa + -0.3193271577091174e-03*c_2ju_5sa + -0.1301383551544057e-03*s_2ju_3sa + 0.1581125229230819e-03*c_2ju_3sa + -0.1265563862236850e-03*s_1sa + -0.1470135629064336e-03*c_1sa + -0.2967999254061474e-04*s_1ju_3sa + 0.1771728618188248e-03*c_1ju_3sa + 0.1552314541331334e-03*s_3ju_6sa + 0.4400521220527489e-04*c_3ju_6sa + -0.1424027498151338e-03*s_1ju_4sa + -0.4539412839633730e-04*c_1ju_4sa + -0.4385468715801210e-04*s_2ju_4sa + -0.1386487414250173e-03*c_2ju_4sa + -0.6409501615149758e-04*s_3ju_4sa + 0.7673835465865033e-04*c_3ju_4sa + -0.2996893812734614e-04*s_1ju_2sa + -0.7587136314898496e-04*c_1ju_2sa + 0.6642358621703433e-04*s_2ju_1sa + 0.3355188593558506e-04*c_2ju_1sa + -0.2119163908096681e-04*s_3ju_5sa + -0.6267203382816776e-04*c_3ju_5sa + -0.3378638996904761e-04*s_4ju_5sa + 0.3994790833215986e-04*c_4ju_5sa); va += dt2 * (0.9543232806737214e-04 * s_2ju_5sa + -0.2175658703767189e-03 * c_2ju_5sa); let mut vl = 0.8740185101070000e+00_ + 0.1394485247958371e-01*s_2ju_5sa + 0.2196822377038024e-02*c_2ju_5sa + 0.2597835215572053e-02*s_1ju_1sa + -0.1166003573736016e-04*c_1ju_1sa + -0.1480939665477631e-02*s_1ju_2sa + 0.2295828964456338e-03*c_1ju_2sa + 0.7117855749721047e-03*s_2ju_2sa + -0.5006408026920130e-05*c_2ju_2sa + -0.1777492483092022e-03*s_2ju_3sa + 0.2594871730976586e-03*c_2ju_3sa + 0.2654821184365961e-03*s_3ju_3sa + -0.3734633121247196e-06*c_3ju_3sa + -0.6172049812974600e-04*s_2ju_4sa + -0.1549455235103924e-03*c_2ju_4sa + 0.8320161214325963e-04*s_1ju_3sa + -0.9299666942251916e-04*c_1ju_3sa + -0.2986896268891143e-04*s_1ju + 0.1434032726406950e-03*c_1ju + -0.6838958229491255e-04*s_3ju_4sa + 0.1016277794240057e-03*c_3ju_4sa + -0.1437583315528428e-03*s_2ju_6sa3ur + -0.2355123027116298e-04*c_2ju_6sa3ur + -0.1239157825227743e-03*s_4ju_10sa + -0.4153007987461424e-04*c_4ju_10sa + -0.1115800195076722e-03*s_1sa + -0.4865016937959654e-04*c_1sa + 0.2129672165073479e-04*s_1sa_3ur + -0.1279755174631860e-03*c_1sa_3ur + 0.9887919529004364e-04*s_2ju_1sa + -0.2264437585003735e-04*c_2ju_1sa + 0.1105374104719986e-03*s_4ju_4sa + 0.8106240865418689e-06*c_4ju_4sa + -0.3195500460687586e-04*s_4ju_5sa + 0.4883700979999452e-04*c_4ju_5sa + 0.4049798362108529e-04*s_4ju_11sa3ur + 0.3492035536307304e-04*c_4ju_11sa3ur + 0.4899937368661505e-04*s_5ju_5sa + 0.1078013629640271e-05*c_5ju_5sa + -0.1396515519656548e-04*s_3ju_5sa + -0.3504582432441658e-04*c_3ju_5sa + 0.8213649092954169e-05*s_1sa_2ur + 0.3598029373793829e-04*c_1sa_2ur + -0.1620283953618274e-04*s_5ju_6sa + 0.2491406062342589e-04*c_5ju_6sa + -0.3149403733594222e-04*s_2sa_2ur + 0.2260298940095183e-06*c_2sa_2ur + 0.1900523319249782e-04*s_3ju_7sa + 0.1239434021215187e-04*c_3ju_7sa + -0.5692413583444888e-05*s_2sa + 0.2506910944825881e-04*c_2sa + -0.2558994035583020e-04*s_1ju_4sa + -0.4403743737362808e-05*c_1ju_4sa + -0.8625070645528811e-05*s_4ju_6sa + -0.1698895015755884e-04*c_4ju_6sa + 0.2245172297417884e-04*s_6ju_6sa + 0.9365590627140471e-06*c_6ju_6sa + -0.2111931503574676e-04*s_1sa_1ur + 0.4346087650354090e-06*c_1sa_1ur + -0.8481542585633667e-05*s_6ju_7sa + 0.1299764699657664e-04*c_6ju_7sa + 0.1843665333882878e-04*s_1ea_1sa + 0.7247812419347397e-10*c_1ea_1sa + 0.1756806647056856e-04*s_1ve_1sa + 0.1016079514542297e-07*c_1ve_1sa + 0.1374340871235143e-04*s_3sa + -0.2740643527737718e-05*c_3sa + 0.1025176929758021e-04*s_3ju_2sa + 0.4284014241732881e-05*c_3ju_2sa + -0.4465127480212304e-05*s_5ju_7sa + -0.9584772871758602e-05*c_5ju_7sa + -0.3385919840017753e-05*s_1ju1sa + 0.1002731544670255e-04*c_1ju1sa + 0.3116101781741948e-06*s_2ju + 0.1238636870859387e-04*c_2ju + 0.6981645739335193e-06*s_2ju_6sa4ur_2ne + -0.1141229645727325e-04*c_2ju_6sa4ur_2ne + -0.1041718087305626e-04*s_3ju_6sa + -0.1223233499808346e-05*c_3ju_6sa + 0.1048574700504475e-04*s_7ju_7sa + 0.7040768133047354e-06*c_7ju_7sa + -0.1052767428477942e-04*s_3sa_3ur + -0.8467705143378504e-07*c_3sa_3ur; vl += dt
* (0.2132990861084880e+03 + -0.1590734155170401e-02*s_2ju_5sa + 0.5404682690426123e-02*c_2ju_5sa + -0.9236930020131259e-04*s_1ju_2sa + -0.1074916347085107e-03*c_1ju_2sa + 0.4564226039416727e-04*s_4ju_10sa + -0.9389128377923472e-04*c_4ju_10sa + -0.3293265881637454e-04*s_2ju_3sa + -0.2754362831316031e-04*c_2ju_3sa + 0.4303129337884233e-04*s_2ju_4sa + -0.1219940809916475e-04*c_2ju_4sa + 0.2359122353865236e-04*s_2ju_6sa3ur + -0.2942465244168476e-04*c_2ju_6sa3ur + -0.2933868146399388e-04*s_4ju_11sa3ur + 0.2150811339139116e-04*c_4ju_11sa3ur + 0.1186258315243516e-04*s_1ju_3sa + 0.1787208075136896e-04*c_1ju_3sa + 0.1032890828532729e-04*s_1sa_3ur + 0.1651718398784531e-04*c_1sa_3ur + -0.1279021837008143e-04*s_3ju_4sa + -0.1075366669888585e-04*c_3ju_4sa + -0.9524528366181484e-05*s_1sa + 0.1058477422726878e-04*c_1sa + 0.1208525705980417e-04*s_1ju + -0.7247813683051722e-05*c_1ju + 0.3053373444236765e-05*s_1ju_4sa + -0.1002974427996563e-04*c_1ju_4sa + 0.9817878017973678e-05*s_3ju_5sa + -0.2680736199134899e-05*c_3ju_5sa); vl += dt2
* (-0.1061268915745726e-02*s_2ju_5sa + -0.4747083771768399e-03*c_2ju_5sa + 0.3661911152525741e-03 + 0.3534082785170441e-04*s_4ju_10sa + 0.2338193965235595e-04*c_4ju_10sa + -0.5155572511095496e-05*s_4ju_11sa3ur + -0.1142102382585984e-04*c_4ju_11sa3ur); vl += dt3
* (0.8700988187498828e-04*s_2ju_5sa + -0.1345927969728194e-03*c_2ju_5sa + -0.7648633463942244e-05*s_4ju_10sa + 0.8674194078046316e-05*c_4ju_10sa); vl += dt4 * (0.1226757598446507e-04 * s_2ju_5sa + 0.1148485190624113e-04 * c_2ju_5sa); let mut vk = -0.2959913416000000e-02 + 0.1416866413629940e-02*s_2ju_5sa + -0.6365432862294004e-03*c_2ju_5sa + 0.6666444240440023e-05*s_1ju + 0.1972688473832003e-02*c_1ju + 0.1479425074196414e-04*s_1sa + 0.1263154881431249e-02*c_1sa + -0.7716795208377776e-05*s_1ju_2sa + 0.6504595850307733e-03*c_1ju_2sa + -0.8763352727815571e-05*s_2ju_3sa + -0.4517284810686510e-03*c_2ju_3sa + -0.1737797200866167e-03*s_1ju_3sa + -0.2602432316178870e-03*c_1ju_3sa + 0.2260871697910046e-03*s_2ju_4sa + 0.1525257882461424e-03*c_2ju_4sa + -0.2624145735447688e-05*s_3ju_4sa + -0.1622342908702250e-03*c_3ju_4sa + -0.1221744509588379e-03*s_1ju_1sa + 0.2518241197021415e-04*c_1ju_1sa + 0.6554209773861689e-04*s_2sa + -0.6821148796783735e-04*c_2sa + 0.7496109919916363e-04*s_3ju_5sa + 0.3894485887703158e-04*c_3ju_5sa + 0.2324628848494859e-04*s_2ju + 0.8705544462885825e-04*c_2ju + 0.2439305135770230e-04*s_2ju_2sa + 0.5426867336189332e-04*c_2ju_2sa + -0.2584854582415603e-04*s_1sa_3ur + 0.4475190594178514e-04*c_1sa_3ur + -0.1619569812745350e-05*s_4ju_5sa + -0.6873061493006759e-04*c_4ju_5sa + 0.3431959562055474e-04*s_4ju_6sa + 0.2052219559754924e-04*c_4ju_6sa + 0.4159688038733291e-06*s_1sa_2ur + 0.4679033015437421e-04*c_1sa_2ur + -0.3103255997288648e-04*s_3ju_6sa + 0.1600026718141268e-04*c_3ju_6sa + -0.2808306375420003e-04*s_4ju_10sa + 0.7303701236536359e-05*c_4ju_10sa + 0.3722307954020578e-05*s_3ju_7sa + -0.2972436681380179e-04*c_3ju_7sa + -0.2683090033602820e-06*s_5ju_6sa + -0.3067286091210874e-04*c_5ju_6sa + 0.2579990170844796e-04*s_1ju_4sa + -0.3201785889704251e-05*c_1ju_4sa + 0.1739049349085241e-04*s_5ju_7sa + 0.1056302044456419e-04*c_5ju_7sa + -0.8713073559150081e-05*s_1ju1sa + -0.1064214252989052e-04*c_1ju1sa + -0.1318074622850239e-04*s_4ju_7sa + 0.5602812864180577e-05*c_4ju_7sa + -0.6541958657387695e-06*s_2ju_1sa + -0.1683121271349637e-04*c_2ju_1sa + 0.3274840049545486e-05*s_3ju_2sa + -0.1300240045381572e-04*c_3ju_2sa + 0.9124753745398832e-05*s_6ju_8sa + 0.5694388065084316e-05*c_6ju_8sa + -0.1596859007170559e-07*s_6ju_7sa + -0.1413797768976774e-04*c_6ju_7sa + 0.5091493791833114e-08*s_1ea + 0.1407026894841529e-04*c_1ea + -0.1395293793850765e-07*s_1ve + 0.1331595422325215e-04*c_1ve + 0.1013627249107562e-04*s_3ju_3sa + -0.1333942123962096e-05*c_3ju_3sa; vk += dt
* (-0.5295935348421570e-02 + 0.1227660674397330e-03*s_2ju_5sa + 0.3998517433434891e-03*c_2ju_5sa + 0.2336306414211702e-04*s_1ju_3sa + -0.3074655206304296e-04*c_1ju_3sa + -0.2640354346505467e-04*s_2ju_4sa + 0.2764143740128172e-04*c_2ju_4sa + -0.2511011605517513e-05*s_4ju_10sa + -0.1924566520187336e-04*c_4ju_10sa + -0.1230269366482525e-04*s_2sa + -0.7593170233508759e-05*c_2sa + -0.5173734519158230e-05*s_3ju_5sa + 0.9836506149558720e-05*c_3ju_5sa + 0.1158386249070876e-04*s_3ju_7sa + 0.3080779513925908e-05*c_3ju_7sa + 0.9318994802675414e-05*s_1ju_1sa + 0.5231141950705432e-05*c_1ju_1sa); vk += dt2
* (0.3093287173810389e-03 + -0.5787480588432654e-04*s_2ju_5sa + 0.8302324785071555e-05*c_2ju_5sa); vk += dt3 * 0.1296252652539246e-04;
let mut vh = 0.5542963610200000e-01 + 0.6351298603636020e-03*s_2ju_5sa + 0.1409019853370721e-02*c_2ju_5sa + 0.1968876969728439e-02*s_1ju + 0.6603697826702186e-05*c_1ju + 0.1245221794653793e-02*s_1sa + 0.2061008449485522e-04*c_1sa + -0.6865773864409293e-03*s_1ju_2sa + -0.3136985161584894e-04*c_1ju_2sa + 0.4468160022073937e-03*s_2ju_3sa + -0.1126419371272871e-04*c_2ju_3sa + 0.2832211122290840e-03*s_1ju_3sa + -0.1690082452155099e-03*c_1ju_3sa + -0.1360247859775380e-03*s_2ju_4sa + 0.2276605967037709e-03*c_2ju_4sa + 0.1625619584781130e-03*s_3ju_4sa + 0.1637612457600140e-05*c_3ju_4sa + -0.5068591103406004e-04*s_3ju_5sa + 0.7269698796098343e-04*c_3ju_5sa + 0.9312543177844102e-04*s_2ju + -0.2411977600127489e-04*c_2ju + -0.4526112308935245e-04*s_2sa + -0.7006366383806369e-04*c_2sa + 0.6882302871418373e-04*s_4ju_5sa + 0.2555832291839389e-05*c_4ju_5sa + -0.4505790472387551e-04*s_1sa_3ur + -0.2570376618658242e-04*c_1sa_3ur + -0.2069245342123180e-04*s_1ju_1sa + -0.4522456982719095e-04*c_1ju_1sa + -0.3986877007187555e-04*s_2ju_2sa + 0.1640240411166865e-04*c_2ju_2sa + -0.2063616859712771e-04*s_4ju_6sa + 0.3405373230515438e-04*c_4ju_6sa + -0.1577716098883017e-04*s_3ju_6sa + -0.3173172736413843e-04*c_3ju_6sa + -0.4712631421644870e-04*s_1sa_2ur + 0.2488132501065646e-06*c_1sa_2ur + -0.7180432651742803e-05*s_4ju_10sa + -0.2802611817322010e-04*c_4ju_10sa + 0.2993895594484494e-04*s_3ju_7sa + 0.3680063731854517e-05*c_3ju_7sa + 0.3120177649708844e-04*s_5ju_6sa + 0.1615579896840973e-05*c_5ju_6sa + 0.3973690960252504e-05*s_1ju_4sa + 0.2400975321358415e-04*c_1ju_4sa + -0.1028741746583803e-04*s_5ju_7sa + 0.1732287534611786e-04*c_5ju_7sa + -0.2149751956092968e-04*s_2ju_1sa + 0.1351824926194681e-05*c_2ju_1sa + -0.1840595490961019e-04*s_3ju_2sa + 0.3066395967913387e-05*c_3ju_2sa + -0.5795534809221724e-05*s_4ju_7sa + -0.1310715317321198e-04*c_4ju_7sa + 0.1458064021798733e-04*s_6ju_7sa + 0.1248591510022987e-05*c_6ju_7sa + -0.5386423285086304e-05*s_6ju_8sa + 0.9127674036373190e-05*c_6ju_8sa + 0.1406042913149474e-04*s_1ea + 0.5087292401547770e-08*c_1ea + 0.1332027596631956e-04*s_1ve + 0.6680167491234520e-08*c_1ve + 0.1116866901470192e-04*s_3ju_3sa + -0.1717324995092668e-06*c_3ju_3sa + -0.1008878836440961e-04*s_4ju_3sa + 0.1113555663470551e-05*c_4ju_3sa; vh += dt
* (-0.3756078197884624e-02 + -0.3963243047779895e-03*s_2ju_5sa + 0.1231948230505334e-03*c_2ju_5sa + 0.2790905631445607e-04*s_1ju_3sa + 0.3227069164579987e-04*c_1ju_3sa + -0.2923112239713302e-04*s_2ju_4sa + -0.1998488218051631e-04*c_2ju_4sa + 0.1919035300910488e-04*s_4ju_10sa + -0.2410625947415106e-05*c_4ju_10sa + -0.8379535280143646e-05*s_3ju_5sa + -0.9714125078785734e-05*c_3ju_5sa + -0.1223282500289323e-04*s_1ju_1sa + 0.4635399622610733e-05*c_1ju_1sa + -0.3078693770879697e-05*s_3ju_7sa + 0.1170325000667410e-04*c_3ju_7sa + -0.1049235847525357e-04*s_2sa + 0.3462495902828720e-05*c_2sa); vh += dt2
* (-0.3198819340389719e-03 + -0.8659886106466092e-05*s_2ju_5sa + -0.5711382879318548e-04*c_2ju_5sa); vh += dt3 * 0.1598787856566942e-04;
let mut vq = -0.8717455856000001e-02 + 0.1814718710627404e-04*s_2ju_5sa + -0.9708882147686619e-05*c_2ju_5sa; vq += dt * 0.8016916082545978e-03;
vq += dt2 * 0.4145059115445134e-04;
let mut vp = 0.1989143623600000e-01 + 0.8698421468517217e-05*s_2ju_5sa + 0.1870741111592860e-04*c_2ju_5sa; vp += dt * 0.5943892444878046e-03;
vp += dt2 * -0.5236775180658310e-04;
OrbElem {
mu: vmu,
mjd0: mjd_tdb,
a: va,
l: angle::norm_dblpi(vl),
k: vk,
h: vh,
q: vq,
p: vp,
}
}
fn uranus(mjd_tdb: f64) -> OrbElem {
let vmu = (GM[0] + GM[7]) / GM[0];
let dt = (mjd_tdb - mjd::J2000) / mjd::DJMILL;
let dt2 = dt * dt;
let lve = CL0[2] + CLT[2] * dt;
let lea = CL0[3] + CLT[3] * dt;
let lju = CL0[10] + CLT[10] * dt;
let lsa = CL0[11] + CLT[11] * dt;
let lur = CL0[12] + CLT[12] * dt;
let lne = CL0[13] + CLT[13] * dt;
let a_1ea = 1.0 * lea;
let a_1ea_1ur = 1.0 * lea - 1.0 * lur;
let a_1ju = 1.0 * lju;
let a_1ju_1sa = 1.0 * lju - 1.0 * lsa;
let a_1ju_1ur = 1.0 * lju - 1.0 * lur;
let a_1ju1ur = 1.0 * lju + 1.0 * lur;
let a_1ju_1ur_2ne = 1.0 * lju - 1.0 * lur - 2.0 * lne;
let a_1ju_2ne = 1.0 * lju - 2.0 * lne;
let a_1ju_2ur = 1.0 * lju - 2.0 * lur;
let a_1ju_2ur2ne = 1.0 * lju - 2.0 * lur + 2.0 * lne;
let a_1ju_3ur = 1.0 * lju - 3.0 * lur;
let a_1ju_3ur2ne = 1.0 * lju - 3.0 * lur + 2.0 * lne;
let a_1ju_5sa1ur = 1.0 * lju - 5.0 * lsa + 1.0 * lur;
let a_1ne = 1.0 * lne;
let a_1sa = 1.0 * lsa;
let a_1sa_1ur = 1.0 * lsa - 1.0 * lur;
let a_1sa_2ne = 1.0 * lsa - 2.0 * lne;
let a_1sa_2ur = 1.0 * lsa - 2.0 * lur;
let a_1sa_2ur_2ne = 1.0 * lsa - 2.0 * lur - 2.0 * lne;
let a_1sa_2ur2ne = 1.0 * lsa - 2.0 * lur + 2.0 * lne;
let a_1sa_3ur = 1.0 * lsa - 3.0 * lur;
let a_1sa_4ur2ne = 1.0 * lsa - 4.0 * lur + 2.0 * lne;
let a_1ur = 1.0 * lur;
let a_1ur_1ne = 1.0 * lur - 1.0 * lne;
let a_1ur_2ne = 1.0 * lur - 2.0 * lne;
let a_1ur_3ne = 1.0 * lur - 3.0 * lne;
let a_1ve = 1.0 * lve;
let a_1ve_1ur = 1.0 * lve - 1.0 * lur;
let a_2ju_1ur = 2.0 * lju - 1.0 * lur;
let a_2ju = 2.0 * lju;
let a_2ju_2ur = 2.0 * lju - 2.0 * lur;
let a_2ju_3ur = 2.0 * lju - 3.0 * lur;
let a_2ju_4sa_1ur = 2.0 * lju - 4.0 * lsa - 1.0 * lur;
let a_2ju_6sa1ur = 2.0 * lju - 6.0 * lsa + 1.0 * lur;
let a_2ju_6sa3ur = 2.0 * lju - 6.0 * lsa + 3.0 * lur;
let a_2ju_6sa4ur_2ne = 2.0 * lju - 6.0 * lsa + 4.0 * lur - 2.0 * lne;
let a_2sa_1ur = 2.0 * lsa - 1.0 * lur;
let a_2sa = 2.0 * lsa;
let a_2sa_2ur = 2.0 * lsa - 2.0 * lur;
let a_2sa_3ur = 2.0 * lsa - 3.0 * lur;
let a_2sa_4ur = 2.0 * lsa - 4.0 * lur;
let a_2sa_5ur = 2.0 * lsa - 5.0 * lur;
let a_2ur = 2.0 * lur;
let a_2ur_2ne = 2.0 * lur - 2.0 * lne;
let a_2ur_3ne = 2.0 * lur - 3.0 * lne;
let a_2ur_4ne = 2.0 * lur - 4.0 * lne;
let a_3ju_1ur = 3.0 * lju - 1.0 * lur;
let a_3ju_5sa_1ur = 3.0 * lju - 5.0 * lsa - 1.0 * lur;
let a_3sa_3ur = 3.0 * lsa - 3.0 * lur;
let a_3sa_4ur = 3.0 * lsa - 4.0 * lur;
let a_3sa_5ur = 3.0 * lsa - 5.0 * lur;
let a_3ur_3ne = 3.0 * lur - 3.0 * lne;
let a_3ur_4ne = 3.0 * lur - 4.0 * lne;
let a_3ur_5ne = 3.0 * lur - 5.0 * lne;
let a_3ur_6ne = 3.0 * lur - 6.0 * lne;
let a_4ju_11sa3ur = 4.0 * lju - 11.0 * lsa + 3.0 * lur;
let a_4sa_16ur9ne = 4.0 * lsa - 16.0 * lur + 9.0 * lne;
let a_4sa_4ur = 4.0 * lsa - 4.0 * lur;
let a_4sa_5ur = 4.0 * lsa - 5.0 * lur;
let a_4ur_4ne = 4.0 * lur - 4.0 * lne;
let a_4ur_5ne = 4.0 * lur - 5.0 * lne;
let a_5ur_5ne = 5.0 * lur - 5.0 * lne;
let c_1ea_1ur = a_1ea_1ur.cos();
let c_1ea = a_1ea.cos();
let c_1ju_1sa = a_1ju_1sa.cos();
let c_1ju_1ur_2ne = a_1ju_1ur_2ne.cos();
let c_1ju_1ur = a_1ju_1ur.cos();
let c_1ju1ur = a_1ju1ur.cos();
let c_1ju_2ne = a_1ju_2ne.cos();
let c_1ju_2ur2ne = a_1ju_2ur2ne.cos();
let c_1ju_2ur = a_1ju_2ur.cos();
let c_1ju_3ur2ne = a_1ju_3ur2ne.cos();
let c_1ju_3ur = a_1ju_3ur.cos();
let c_1ju_5sa1ur = a_1ju_5sa1ur.cos();
let c_1ju = a_1ju.cos();
let c_1ne = a_1ne.cos();
let c_1sa_1ur = a_1sa_1ur.cos();
let c_1sa_2ne = a_1sa_2ne.cos();
let c_1sa_2ur_2ne = a_1sa_2ur_2ne.cos();
let c_1sa_2ur2ne = a_1sa_2ur2ne.cos();
let c_1sa_2ur = a_1sa_2ur.cos();
let c_1sa_3ur = a_1sa_3ur.cos();
let c_1sa_4ur2ne = a_1sa_4ur2ne.cos();
let c_1sa = a_1sa.cos();
let c_1ur_1ne = a_1ur_1ne.cos();
let c_1ur_2ne = a_1ur_2ne.cos();
let c_1ur_3ne = a_1ur_3ne.cos();
let c_1ur = a_1ur.cos();
let c_1ve_1ur = a_1ve_1ur.cos();
let c_1ve = a_1ve.cos();
let c_2ju_1ur = a_2ju_1ur.cos();
let c_2ju_2ur = a_2ju_2ur.cos();
let c_2ju_3ur = a_2ju_3ur.cos();
let c_2ju_4sa_1ur = a_2ju_4sa_1ur.cos();
let c_2ju_6sa1ur = a_2ju_6sa1ur.cos();
let c_2ju_6sa3ur = a_2ju_6sa3ur.cos();
let c_2ju_6sa4ur_2ne = a_2ju_6sa4ur_2ne.cos();
let c_2ju = a_2ju.cos();
let c_2sa_1ur = a_2sa_1ur.cos();
let c_2sa_2ur = a_2sa_2ur.cos();
let c_2sa_3ur = a_2sa_3ur.cos();
let c_2sa_4ur = a_2sa_4ur.cos();
let c_2sa_5ur = a_2sa_5ur.cos();
let c_2sa = a_2sa.cos();
let c_2ur_2ne = a_2ur_2ne.cos();
let c_2ur_3ne = a_2ur_3ne.cos();
let c_2ur_4ne = a_2ur_4ne.cos();
let c_2ur = a_2ur.cos();
let c_3ju_1ur = a_3ju_1ur.cos();
let c_3ju_5sa_1ur = a_3ju_5sa_1ur.cos();
let c_3sa_3ur = a_3sa_3ur.cos();
let c_3sa_4ur = a_3sa_4ur.cos();
let c_3sa_5ur = a_3sa_5ur.cos();
let c_3ur_3ne = a_3ur_3ne.cos();
let c_3ur_4ne = a_3ur_4ne.cos();
let c_3ur_5ne = a_3ur_5ne.cos();
let c_3ur_6ne = a_3ur_6ne.cos();
let c_4ju_11sa3ur = a_4ju_11sa3ur.cos();
let c_4sa_16ur9ne = a_4sa_16ur9ne.cos();
let c_4sa_4ur = a_4sa_4ur.cos();
let c_4sa_5ur = a_4sa_5ur.cos();
let c_4ur_4ne = a_4ur_4ne.cos();
let c_4ur_5ne = a_4ur_5ne.cos();
let c_5ur_5ne = a_5ur_5ne.cos();
let s_1ea_1ur = a_1ea_1ur.sin();
let s_1ea = a_1ea.sin();
let s_1ju_1sa = a_1ju_1sa.sin();
let s_1ju_1ur_2ne = a_1ju_1ur_2ne.sin();
let s_1ju_1ur = a_1ju_1ur.sin();
let s_1ju1ur = a_1ju1ur.sin();
let s_1ju_2ne = a_1ju_2ne.sin();
let s_1ju_2ur2ne = a_1ju_2ur2ne.sin();
let s_1ju_2ur = a_1ju_2ur.sin();
let s_1ju_3ur2ne = a_1ju_3ur2ne.sin();
let s_1ju_3ur = a_1ju_3ur.sin();
let s_1ju_5sa1ur = a_1ju_5sa1ur.sin();
let s_1ju = a_1ju.sin();
let s_1ne = a_1ne.sin();
let s_1sa_1ur = a_1sa_1ur.sin();
let s_1sa_2ne = a_1sa_2ne.sin();
let s_1sa_2ur_2ne = a_1sa_2ur_2ne.sin();
let s_1sa_2ur2ne = a_1sa_2ur2ne.sin();
let s_1sa_2ur = a_1sa_2ur.sin();
let s_1sa_3ur = a_1sa_3ur.sin();
let s_1sa_4ur2ne = a_1sa_4ur2ne.sin();
let s_1sa = a_1sa.sin();
let s_1ur_1ne = a_1ur_1ne.sin();
let s_1ur_2ne = a_1ur_2ne.sin();
let s_1ur_3ne = a_1ur_3ne.sin();
let s_1ur = a_1ur.sin();
let s_1ve_1ur = a_1ve_1ur.sin();
let s_1ve = a_1ve.sin();
let s_2ju_1ur = a_2ju_1ur.sin();
let s_2ju_2ur = a_2ju_2ur.sin();
let s_2ju_3ur = a_2ju_3ur.sin();
let s_2ju_4sa_1ur = a_2ju_4sa_1ur.sin();
let s_2ju_6sa1ur = a_2ju_6sa1ur.sin();
let s_2ju_6sa3ur = a_2ju_6sa3ur.sin();
let s_2ju_6sa4ur_2ne = a_2ju_6sa4ur_2ne.sin();
let s_2ju = a_2ju.sin();
let s_2sa_1ur = a_2sa_1ur.sin();
let s_2sa_2ur = a_2sa_2ur.sin();
let s_2sa_3ur = a_2sa_3ur.sin();
let s_2sa_4ur = a_2sa_4ur.sin();
let s_2sa_5ur = a_2sa_5ur.sin();
let s_2sa = a_2sa.sin();
let s_2ur_2ne = a_2ur_2ne.sin();
let s_2ur_3ne = a_2ur_3ne.sin();
let s_2ur_4ne = a_2ur_4ne.sin();
let s_2ur = a_2ur.sin();
let s_3ju_1ur = a_3ju_1ur.sin();
let s_3ju_5sa_1ur = a_3ju_5sa_1ur.sin();
let s_3sa_3ur = a_3sa_3ur.sin();
let s_3sa_4ur = a_3sa_4ur.sin();
let s_3sa_5ur = a_3sa_5ur.sin();
let s_3ur_3ne = a_3ur_3ne.sin();
let s_3ur_4ne = a_3ur_4ne.sin();
let s_3ur_5ne = a_3ur_5ne.sin();
let s_3ur_6ne = a_3ur_6ne.sin();
let s_4ju_11sa3ur = a_4ju_11sa3ur.sin();
let s_4sa_16ur9ne = a_4sa_16ur9ne.sin();
let s_4sa_4ur = a_4sa_4ur.sin();
let s_4sa_5ur = a_4sa_5ur.sin();
let s_4ur_4ne = a_4ur_4ne.sin();
let s_4ur_5ne = a_4ur_5ne.sin();
let s_5ur_5ne = a_5ur_5ne.sin();
let mut va = 0.1921843855547400e+02 + 0.2278569703780060e-05*s_1ju_1ur + 0.8030525688697847e-01*c_1ju_1ur + -0.7304916090376657e-05*s_1sa_1ur + 0.2068731026327745e-01*c_1sa_1ur + -0.5353789474210316e-03*s_1ju_2ur + -0.4029008354324488e-02*c_1ju_2ur + 0.9047001649624949e-03*s_2ju_1ur + 0.3538096110164397e-02*c_2ju_1ur + -0.2286522987434570e-03*s_1ur_2ne + -0.3892180617453438e-02*c_1ur_2ne + -0.4409388244772418e-03*s_1ur + -0.3106546537795840e-02*c_1ur + -0.1032685674346201e-02*s_1sa_2ur + -0.1061058925522485e-02*c_1sa_2ur + -0.1238265080841917e-02*s_1sa_3ur + -0.1135392036113201e-03*c_1sa_3ur + -0.6129522816994689e-04*s_2sa_2ur + -0.1203010753388553e-02*c_2sa_2ur + 0.1024052157105916e-02*s_2sa_1ur + -0.8685383606356638e-04*c_2sa_1ur + 0.2657158520248527e-05*s_2ur_2ne + 0.8961462701109142e-03*c_2ur_2ne + 0.3457680765473250e-04*s_1ju_2ur2ne + -0.6153070342623797e-03*c_1ju_2ur2ne + -0.2157861270275737e-03*s_2sa_3ur + 0.4055668970838320e-03*c_2sa_3ur + 0.3241105391913083e-04*s_1ju_2ne + 0.5847363404588588e-03*c_1ju_2ne + -0.9176246890481191e-06*s_3ur_3ne + 0.5302131341537676e-03*c_3ur_3ne + 0.8976676369591675e-09*s_1ea_1ur + 0.5184418175755086e-03*c_1ea_1ur + 0.4063250048332724e-05*s_3sa_3ur + -0.5047757209018188e-03*c_3sa_3ur + 0.9940753829630402e-08*s_1ve_1ur + 0.4883772877826679e-03*c_1ve_1ur + -0.6603655165524963e-04*s_2ju_2ur + -0.3426237754064330e-03*c_2ju_2ur + 0.5052886808364074e-04*s_2ur_4ne + -0.3236471541487284e-03*c_2ur_4ne + -0.1961453974700183e-05*s_1ur_1ne + 0.3677577854502703e-03*c_1ur_1ne + -0.2284814173849648e-04*s_2ur_3ne + 0.2846609889135796e-03*c_2ur_3ne + -0.4117172011776679e-06*s_4ur_4ne + 0.2954471558908101e-03*c_4ur_4ne + -0.9914042114753738e-04*s_3sa_4ur + 0.1895852224358142e-03*c_3sa_4ur + 0.9340334915986698e-04*s_3ju_1ur + 0.1709292584821429e-03*c_3ju_1ur + 0.3641755772717883e-04*s_3ju_5sa_1ur + -0.2271188823004026e-03*c_3ju_5sa_1ur + -0.3506838544868702e-04*s_1ju_5sa1ur + 0.2277036842004612e-03*c_1ju_5sa1ur + 0.6500747935207343e-04*s_1ju_3ur + 0.1906681140078659e-03*c_1ju_3ur + 0.4564497338944461e-04*s_2ur + 0.1820529084754735e-03*c_2ur + 0.5016903068608246e-05*s_4sa_4ur + -0.2155834375936271e-03*c_4sa_4ur + 0.1118846627047209e-03*s_2sa_4ur + -0.6617835817233663e-04*c_2sa_4ur + 0.2252512199742218e-04*s_2ju_6sa1ur + -0.1459178362245056e-03*c_2ju_6sa1ur + -0.1567796442410970e-06*s_5ur_5ne + 0.1679312562071857e-03*c_5ur_5ne + 0.8680025617616316e-05*s_1sa_2ur2ne + -0.1583281430992060e-03*c_1sa_2ur2ne + -0.2331893796617287e-04*s_2ju_4sa_1ur + 0.1429216673532661e-03*c_2ju_4sa_1ur + 0.8210487124944852e-05*s_1sa_2ne + 0.1506775133981031e-03*c_1sa_2ne + -0.4860792506814356e-04*s_4sa_5ur + 0.9325865386940526e-04*c_4sa_5ur + -0.1355511838529854e-04*s_3ur_4ne + 0.1255794413598002e-03*c_3ur_4ne + 0.4231155318676372e-05*s_1ju_3ur2ne + -0.1300336453258423e-03*c_1ju_3ur2ne + 0.2365051854252278e-04*s_2ju_6sa3ur + -0.1076610317820515e-03*c_2ju_6sa3ur + 0.6811519844185526e-05*s_2ju_3ur + 0.1099279477415017e-03*c_2ju_3ur + 0.3296038407347777e-05*s_1ju_1sa + 0.1133148893845274e-03*c_1ju_1sa; va += dt
* (0.1593158937303201e-03*s_1sa_3ur + -0.1015381615448104e-03*c_1sa_3ur + 0.1636126179807707e-03*s_2ju_1ur + 0.8488387144682472e-04*c_2ju_1ur + -0.7066598207230603e-04*s_2sa_1ur + -0.9893318859039495e-04*c_2sa_1ur + 0.7734787338326303e-04*s_1sa_2ur + -0.8390352101265981e-04*c_1sa_2ur); let mut vl = 0.5481225395663000e+01 + -0.1494499507304893e-01*s_1ur_2ne + 0.8348444735902004e-03*c_1ur_2ne + 0.3410476217551242e-02*s_1ju_1ur + -0.1910577101277037e-06*c_1ju_1ur + 0.7558439506440029e-03*s_1sa_1ur + -0.1939674168243784e-05*c_1sa_1ur + -0.6084272355031138e-03*s_2ur_4ne + -0.9867988080376785e-04*c_2ur_4ne + -0.9438935556128809e-04*s_1sa_3ur + 0.5897620855342984e-03*c_1sa_3ur + 0.1872026185647845e-03*s_1ju + 0.2359318022247453e-04*c_1ju + 0.1660053165010615e-03*s_2ju_1ur + -0.4223532940433284e-04*c_2ju_1ur + -0.4110618666494208e-04*s_1sa_2ur + -0.1594916983548545e-03*c_1sa_2ur + 0.1428053001860670e-03*s_2ju_6sa3ur + 0.2778105371276110e-04*c_2ju_6sa3ur + -0.1436347340189469e-03*s_2ur_2ne + -0.5849194252799592e-06*c_2ur_2ne + -0.1297947439548166e-03*s_1ur_1ne + -0.4958581349745169e-06*c_1ur_1ne + 0.1293260008012527e-03*s_2sa_2ur + -0.5547281278833517e-06*c_2sa_2ur + -0.7222064916168526e-04*s_2ur_3ne + -0.4927829100959082e-05*c_2ur_3ne + -0.5851958330186308e-04*s_1ju_2ur + 0.3004022754040014e-05*c_1ju_2ur + -0.6080486503255815e-04*s_3ur_3ne + -0.1476782684348167e-06*c_3ur_3ne + -0.2781151055081685e-04*s_1ur + 0.3249678724510086e-04*c_1ur + -0.3686626134626253e-04*s_2sa_3ur + -0.2283519746842214e-04*c_2sa_3ur + 0.3906267187912942e-04*s_1sa + 0.1211511004935846e-04*c_1sa + 0.4430028667623191e-04*s_3sa_3ur + 0.8907421763277453e-07*c_3sa_3ur + -0.1926651206652868e-05*s_2sa_1ur + -0.3934150467723044e-04*c_2sa_1ur + -0.3245803117686836e-04*s_3ur_6ne + -0.7379305560231800e-05*c_3ur_6ne + 0.1311105860907500e-04*s_1sa_4ur2ne + 0.2512995165008787e-04*c_1sa_4ur2ne + -0.2932200776460696e-04*s_4ur_4ne + -0.8146908006023827e-07*c_4ur_4ne + -0.2575869720272251e-04*s_1ju_2ur2ne + -0.1443220705409923e-05*c_1ju_2ur2ne + 0.2521323533578722e-04*s_1ju_2ne + -0.1410216942028087e-05*c_1ju_2ne + 0.2645174314447063e-04*s_1ea_1ur + 0.2417396477887701e-10*c_1ea_1ur + 0.2487258224700606e-04*s_2ju_2ur + 0.9176966784971568e-06*c_2ju_2ur + 0.2508598627486006e-04*s_1ve_1ur + -0.3221268999009948e-09*c_1ve_1ur + -0.1437876108257563e-04*s_3sa_4ur + -0.8656503047656781e-05*c_3sa_4ur + -0.2102130861170135e-04*s_3ur_4ne + -0.1903410387794480e-05*c_3ur_4ne + 0.7041413809073890e-05*s_4sa_16ur9ne + -0.1064582457219667e-04*c_4sa_16ur9ne + 0.1698011693147848e-04*s_4sa_4ur + 0.2194197109045988e-06*c_4sa_4ur + 0.5809690264255534e-05*s_2sa_4ur + 0.1105565091799064e-04*c_2sa_4ur + -0.7706990460651872e-05*s_4ju_11sa3ur + -0.8411076380222518e-05*c_4ju_11sa3ur + -0.1518644034687567e-04*s_5ur_5ne + -0.3603247896068338e-07*c_5ur_5ne + -0.1255006665735665e-04*s_1ne + 0.2469921154168285e-06*c_1ne + 0.6420901774711292e-06*s_2ju_6sa4ur_2ne + 0.1185573982732530e-04*c_2ju_6sa4ur_2ne + -0.9881987214503471e-06*s_1sa_2ur_2ne + 0.1030528942459202e-04*c_1sa_2ur_2ne; vl += dt
* (0.7478165903077800e+02 + 0.6752982629002030e-04*s_1ur_2ne + -0.2347386427729234e-03*c_1ur_2ne + -0.4756200485466317e-04*s_1sa_3ur + -0.7563524617772784e-04*c_1sa_3ur + -0.2277689586571060e-04*s_2ju_6sa3ur + 0.3128078052874172e-04*c_2ju_6sa3ur + 0.1620070955975591e-04*s_1sa_2ur + 0.1028457666745753e-04*c_1sa_2ur + 0.6160281171352257e-05*s_2ur_4ne + -0.1802549159149159e-04*c_2ur_4ne); let mut vk = -0.4595307483800000e-01 + -0.1727930941617936e-06*s_1ju + 0.2745343620327603e-02*c_1ju + 0.3657353136054777e-05*s_1ur_2ne + -0.2085621323646657e-02*c_1ur_2ne + -0.8204902394337860e-06*s_1ur + 0.1360268904304013e-02*c_1ur + 0.1292621641941805e-06*s_1ju_2ur + 0.1163807362281669e-02*c_1ju_2ur + 0.1486153452523372e-06*s_1sa + 0.6137821966721099e-03*c_1sa + 0.2445106607226763e-03*s_1sa_3ur + -0.8714113427178127e-04*c_1sa_3ur + -0.1914773603020601e-05*s_1sa_2ur + 0.2838794191454488e-03*c_1sa_2ur + 0.1402780478979159e-04*s_2ur_4ne + -0.1488464863661735e-03*c_2ur_4ne + 0.3288850195115662e-04*s_2ju + 0.1289879798333236e-03*c_2ju + -0.1244729242190714e-04*s_2ur + -0.8519564267306283e-04*c_2ur + -0.1252429064266731e-04*s_1ju_3ur + -0.8162049823083534e-04*c_1ju_3ur + -0.1602544329921946e-05*s_2sa_3ur + -0.7827663270644359e-04*c_2sa_3ur + -0.1915626175831125e-06*s_2ur_3ne + 0.6897858764646498e-04*c_2ur_3ne + 0.1254829400097971e-04*s_2ju_2ur + 0.4884008014283808e-04*c_2ju_2ur + -0.1181872530993639e-04*s_1ju_1ur + 0.4902377413831662e-04*c_1ju_1ur + -0.1542553260097041e-04*s_2sa_4ur + 0.2801592011443468e-04*c_2sa_4ur + 0.3358476701110918e-04*s_2sa + -0.2738712076587150e-05*c_2sa + 0.3085601382934919e-06*s_3sa_4ur + -0.2711736582143275e-04*c_3sa_4ur + -0.8971728241696000e-07*s_1ne + -0.2562928293402180e-04*c_1ne + -0.2937055976297910e-07*s_3ur_4ne + 0.2456851416220969e-04*c_3ur_4ne + -0.1394143081655107e-04*s_2ju_6sa3ur + 0.9967180924529146e-05*c_2ju_6sa3ur + -0.1392106472327593e-05*s_2ju_3ur + -0.2041885878728627e-04*c_2ju_3ur + -0.1754734837549576e-09*s_1ea + 0.1996925102603918e-04*c_1ea + -0.2305757276429013e-05*s_1ju1ur + 0.1764239101343507e-04*c_1ju1ur + -0.3733258495689118e-08*s_1ve + 0.1890426462158338e-04*c_1ve + 0.1012301182041299e-05*s_1ju_3ur2ne + -0.1767530002033365e-04*c_1ju_3ur2ne + 0.9364625317848552e-06*s_1ju_1ur_2ne + 0.1707736119860055e-04*c_1ju_1ur_2ne + 0.1096273027840762e-04*s_2sa_5ur + -0.6610185746706410e-05*c_2sa_5ur + 0.1469118840392478e-04*s_2sa_2ur + -0.1981637622364842e-05*c_2sa_2ur + -0.5456174179904064e-05*s_3sa_5ur + 0.1015422198448240e-04*c_3sa_5ur + 0.2123199284577869e-05*s_3ur_6ne + -0.1219532086159283e-04*c_3ur_6ne + -0.1621314895775953e-05*s_1sa_1ur + 0.1202450639333523e-04*c_1sa_1ur + -0.1215427900458587e-05*s_3ur_5ne + 0.1137331866525281e-04*c_3ur_5ne + 0.8421474328687319e-06*s_1ur_3ne + -0.1161710893244997e-04*c_1ur_3ne + -0.5507596708586494e-07*s_4ur_5ne + 0.1177274541622208e-04*c_4ur_5ne + 0.3209310876282949e-06*s_4sa_5ur + -0.1065865365938350e-04*c_4sa_5ur; vk += dt
* (0.1833262663241947e-03 + -0.1568326362224334e-04*s_1sa_3ur + 0.2527517340896218e-04*c_1sa_3ur); let mut vh = 0.5648340159000000e-02 + 0.2746777656405986e-02*s_1ju + -0.4041161998774458e-06*c_1ju + 0.2093557029624033e-02*s_1ur_2ne + 0.5554793824391823e-05*c_1ur_2ne + 0.1361460182335815e-02*s_1ur + 0.1181687075932077e-05*c_1ur + -0.1162891170849826e-02*s_1ju_2ur + -0.2522745017923976e-06*c_1ju_2ur + 0.6131939619695367e-03*s_1sa + -0.6861397826372979e-07*c_1sa + 0.8863104491305542e-04*s_1sa_3ur + 0.2440988390250657e-03*c_1sa_3ur + -0.2821793044396218e-03*s_1sa_2ur + -0.2613649542371907e-05*c_1sa_2ur + 0.1485402329990804e-03*s_2ur_4ne + 0.1399880181255543e-04*c_2ur_4ne + 0.1290263219620540e-03*s_2ju + -0.3291410472361412e-04*c_2ju + -0.9621504590968344e-04*s_1ju_1ur + -0.5624044556020801e-05*c_1ju_1ur + -0.8523357154170282e-04*s_2ur + 0.1247526490213181e-04*c_2ur + 0.8163683184671872e-04*s_1ju_3ur + -0.1249380965727366e-04*c_1ju_3ur + 0.7834377367057352e-04*s_2sa_3ur + -0.2478342949066369e-05*c_2sa_3ur + -0.6849949281652574e-04*s_2ur_3ne + -0.2031980916398915e-06*c_2ur_3ne + -0.4770788346039278e-04*s_2ju_2ur + 0.1254684631738772e-04*c_2ju_2ur + -0.2814092832372423e-04*s_2sa_4ur + -0.1530884965740565e-04*c_2sa_4ur + -0.2718863776937322e-05*s_2sa + -0.3356482282073355e-04*c_2sa + -0.2754830893620328e-04*s_1sa_1ur + 0.2645375234753186e-05*c_1sa_1ur + 0.2701558250747231e-04*s_3sa_4ur + -0.2313881914520962e-06*c_3sa_4ur + -0.2629796269165594e-04*s_1ne + 0.5632969629086568e-07*c_1ne + -0.2490931113641671e-04*s_3ur_4ne + -0.1279282269370278e-06*c_3ur_4ne + 0.9540066931017776e-05*s_2ju_6sa3ur + 0.1419371771408609e-04*c_2ju_6sa3ur + 0.2018933096472913e-04*s_2ju_3ur + -0.1378031831726604e-05*c_2ju_3ur + 0.4010438856710507e-05*s_2sa_2ur + 0.1728372034334168e-04*c_2sa_2ur + 0.1765287395973105e-04*s_1ju1ur + 0.2315665696739246e-05*c_1ju1ur + 0.1996643704349377e-04*s_1ea + -0.1784527938068995e-09*c_1ea + 0.1888629687426026e-04*s_1ve + -0.4434692035779318e-08*c_1ve + 0.1776871223725540e-04*s_1ju_3ur2ne + 0.9992445664469028e-06*c_1ju_3ur2ne + -0.1706424703985150e-04*s_1ju_1ur_2ne + 0.9299807589610650e-06*c_1ju_1ur_2ne + 0.6662210702741834e-05*s_2sa_5ur + 0.1095410115848201e-04*c_2sa_5ur + -0.1020225745244867e-04*s_3sa_5ur + -0.5356729255792582e-05*c_3sa_5ur + 0.1214220131631019e-04*s_3ur_6ne + 0.2112374336624370e-05*c_3ur_6ne + -0.1128660502165944e-04*s_3ur_5ne + -0.1201889005996613e-05*c_3ur_5ne + 0.1164568206719889e-04*s_1ur_3ne + 0.8419098404253247e-06*c_1ur_3ne + -0.1145948767324534e-04*s_4ur_5ne + -0.1927488208189320e-07*c_4ur_5ne + 0.1054646076008215e-04*s_4sa_5ur + -0.2403585297649704e-07*c_4sa_5ur; vh += dt
* (-0.7487546096252627e-03 + -0.2547526487703378e-04*s_1sa_3ur + -0.1543060675385435e-04*c_1sa_3ur); vh += dt2 * 0.1210067446595088e-04;
let mut vq = 0.1859240754000000e-02;
vq += dt * -0.1244781987771900e-03;
let mut vp = 0.6486018467000000e-02;
vp += dt * -0.1173702283669166e-03;
OrbElem {
mu: vmu,
mjd0: mjd_tdb,
a: va,
l: angle::norm_dblpi(vl),
k: vk,
h: vh,
q: vq,
p: vp,
}
}
fn neptune(mjd_tdb: f64) -> OrbElem {
let vmu = (GM[0] + GM[8]) / GM[0];
let dt = (mjd_tdb - mjd::J2000) / mjd::DJMILL;
let lve = CL0[2] + CLT[2] * dt;
let lea = CL0[3] + CLT[3] * dt;
let lju = CL0[10] + CLT[10] * dt;
let lsa = CL0[11] + CLT[11] * dt;
let lur = CL0[12] + CLT[12] * dt;
let lne = CL0[13] + CLT[13] * dt;
let a_1ea = 1.0 * lea;
let a_1ea_1ne = 1.0 * lea - 1.0 * lne;
let a_1ju = 1.0 * lju;
let a_1ju_1ne = 1.0 * lju - 1.0 * lne;
let a_1ju_1sa = 1.0 * lju - 1.0 * lsa;
let a_1ju1sa_2ne = 1.0 * lju + 1.0 * lsa - 2.0 * lne;
let a_1ju_1ur = 1.0 * lju - 1.0 * lur;
let a_1ju_1ur1ne = 1.0 * lju - 1.0 * lur + 1.0 * lne;
let a_1ju1ur_3ne = 1.0 * lju + 1.0 * lur - 3.0 * lne;
let a_1ju1ur_4ne = 1.0 * lju + 1.0 * lur - 4.0 * lne;
let a_1ju_2ne = 1.0 * lju - 2.0 * lne;
let a_1ju_3ne = 1.0 * lju - 3.0 * lne;
let a_1ju_5sa1ne = 1.0 * lju - 5.0 * lsa + 1.0 * lne;
let a_1ne = 1.0 * lne;
let a_1sa = 1.0 * lsa;
let a_1sa_1ne = 1.0 * lsa - 1.0 * lne;
let a_1sa_1ur1ne = 1.0 * lsa - 1.0 * lur + 1.0 * lne;
let a_1sa1ur_3ne = 1.0 * lsa + 1.0 * lur - 3.0 * lne;
let a_1sa_2ne = 1.0 * lsa - 2.0 * lne;
let a_1ur = 1.0 * lur;
let a_1ur_1ne = 1.0 * lur - 1.0 * lne;
let a_1ur_2ne = 1.0 * lur - 2.0 * lne;
let a_1ve = 1.0 * lve;
let a_1ve_1ne = 1.0 * lve - 1.0 * lne;
let a_2ju_1ne = 2.0 * lju - 1.0 * lne;
let a_2ju = 2.0 * lju;
let a_2ju_2ne = 2.0 * lju - 2.0 * lne;
let a_2ju_4sa_1ne = 2.0 * lju - 4.0 * lsa - 1.0 * lne;
let a_2ju_6sa1ne = 2.0 * lju - 6.0 * lsa + 1.0 * lne;
let a_2sa_1ne = 2.0 * lsa - 1.0 * lne;
let a_2sa = 2.0 * lsa;
let a_2sa_2ne = 2.0 * lsa - 2.0 * lne;
let a_2ur_1ne = 2.0 * lur - 1.0 * lne;
let a_2ur_2ne = 2.0 * lur - 2.0 * lne;
let a_2ur_3ne = 2.0 * lur - 3.0 * lne;
let a_2ur_4ne = 2.0 * lur - 4.0 * lne;
let a_3ju_1ne = 3.0 * lju - 1.0 * lne;
let a_3ju_5sa_1ne = 3.0 * lju - 5.0 * lsa - 1.0 * lne;
let a_3ur_3ne = 3.0 * lur - 3.0 * lne;
let a_3ur_4ne = 3.0 * lur - 4.0 * lne;
let a_3ur_5ne = 3.0 * lur - 5.0 * lne;
let a_3ur_6ne = 3.0 * lur - 6.0 * lne;
let a_4ur_4ne = 4.0 * lur - 4.0 * lne;
let a_4ur_5ne = 4.0 * lur - 5.0 * lne;
let a_5ur_5ne = 5.0 * lur - 5.0 * lne;
let c_1ea_1ne = a_1ea_1ne.cos();
let c_1ea = a_1ea.cos();
let c_1ju_1ne = a_1ju_1ne.cos();
let c_1ju1sa_2ne = a_1ju1sa_2ne.cos();
let c_1ju_1sa = a_1ju_1sa.cos();
let c_1ju_1ur1ne = a_1ju_1ur1ne.cos();
let c_1ju1ur_3ne = a_1ju1ur_3ne.cos();
let c_1ju1ur_4ne = a_1ju1ur_4ne.cos();
let c_1ju_1ur = a_1ju_1ur.cos();
let c_1ju_2ne = a_1ju_2ne.cos();
let c_1ju_3ne = a_1ju_3ne.cos();
let c_1ju_5sa1ne = a_1ju_5sa1ne.cos();
let c_1ju = a_1ju.cos();
let c_1ne = a_1ne.cos();
let c_1sa_1ne = a_1sa_1ne.cos();
let c_1sa_1ur1ne = a_1sa_1ur1ne.cos();
let c_1sa1ur_3ne = a_1sa1ur_3ne.cos();
let c_1sa_2ne = a_1sa_2ne.cos();
let c_1sa = a_1sa.cos();
let c_1ur_1ne = a_1ur_1ne.cos();
let c_1ur_2ne = a_1ur_2ne.cos();
let c_1ur = a_1ur.cos();
let c_1ve_1ne = a_1ve_1ne.cos();
let c_1ve = a_1ve.cos();
let c_2ju_1ne = a_2ju_1ne.cos();
let c_2ju_2ne = a_2ju_2ne.cos();
let c_2ju_4sa_1ne = a_2ju_4sa_1ne.cos();
let c_2ju_6sa1ne = a_2ju_6sa1ne.cos();
let c_2ju = a_2ju.cos();
let c_2sa_1ne = a_2sa_1ne.cos();
let c_2sa_2ne = a_2sa_2ne.cos();
let c_2sa = a_2sa.cos();
let c_2ur_1ne = a_2ur_1ne.cos();
let c_2ur_2ne = a_2ur_2ne.cos();
let c_2ur_3ne = a_2ur_3ne.cos();
let c_2ur_4ne = a_2ur_4ne.cos();
let c_3ju_1ne = a_3ju_1ne.cos();
let c_3ju_5sa_1ne = a_3ju_5sa_1ne.cos();
let c_3ur_3ne = a_3ur_3ne.cos();
let c_3ur_4ne = a_3ur_4ne.cos();
let c_3ur_5ne = a_3ur_5ne.cos();
let c_3ur_6ne = a_3ur_6ne.cos();
let c_4ur_4ne = a_4ur_4ne.cos();
let c_4ur_5ne = a_4ur_5ne.cos();
let c_5ur_5ne = a_5ur_5ne.cos();
let s_1ea_1ne = a_1ea_1ne.sin();
let s_1ea = a_1ea.sin();
let s_1ju_1ne = a_1ju_1ne.sin();
let s_1ju1sa_2ne = a_1ju1sa_2ne.sin();
let s_1ju_1sa = a_1ju_1sa.sin();
let s_1ju_1ur1ne = a_1ju_1ur1ne.sin();
let s_1ju1ur_3ne = a_1ju1ur_3ne.sin();
let s_1ju1ur_4ne = a_1ju1ur_4ne.sin();
let s_1ju_1ur = a_1ju_1ur.sin();
let s_1ju_2ne = a_1ju_2ne.sin();
let s_1ju_3ne = a_1ju_3ne.sin();
let s_1ju_5sa1ne = a_1ju_5sa1ne.sin();
let s_1ju = a_1ju.sin();
let s_1ne = a_1ne.sin();
let s_1sa_1ne = a_1sa_1ne.sin();
let s_1sa_1ur1ne = a_1sa_1ur1ne.sin();
let s_1sa1ur_3ne = a_1sa1ur_3ne.sin();
let s_1sa_2ne = a_1sa_2ne.sin();
let s_1sa = a_1sa.sin();
let s_1ur_1ne = a_1ur_1ne.sin();
let s_1ur_2ne = a_1ur_2ne.sin();
let s_1ur = a_1ur.sin();
let s_1ve_1ne = a_1ve_1ne.sin();
let s_1ve = a_1ve.sin();
let s_2ju_1ne = a_2ju_1ne.sin();
let s_2ju_2ne = a_2ju_2ne.sin();
let s_2ju_4sa_1ne = a_2ju_4sa_1ne.sin();
let s_2ju_6sa1ne = a_2ju_6sa1ne.sin();
let s_2ju = a_2ju.sin();
let s_2sa_1ne = a_2sa_1ne.sin();
let s_2sa_2ne = a_2sa_2ne.sin();
let s_2sa = a_2sa.sin();
let s_2ur_1ne = a_2ur_1ne.sin();
let s_2ur_2ne = a_2ur_2ne.sin();
let s_2ur_3ne = a_2ur_3ne.sin();
let s_2ur_4ne = a_2ur_4ne.sin();
let s_3ju_1ne = a_3ju_1ne.sin();
let s_3ju_5sa_1ne = a_3ju_5sa_1ne.sin();
let s_3ur_3ne = a_3ur_3ne.sin();
let s_3ur_4ne = a_3ur_4ne.sin();
let s_3ur_5ne = a_3ur_5ne.sin();
let s_3ur_6ne = a_3ur_6ne.sin();
let s_4ur_4ne = a_4ur_4ne.sin();
let s_4ur_5ne = a_4ur_5ne.sin();
let s_5ur_5ne = a_5ur_5ne.sin();
let mut va = 0.3011041598701700e+02 + -0.3166884538167269e-04*s_1ju_1ne + 0.1481828355075092e+00*c_1ju_1ne + -0.7596256660809161e-05*s_1sa_1ne + 0.3597897749269386e-01*c_1sa_1ne + 0.4405521320990217e-03*s_1ur_2ne + 0.8300030787861581e-02*c_1ur_2ne + 0.1716178449700167e-02*s_2ju_1ne + 0.6727663637118295e-02*c_2ju_1ne + 0.8786198686035557e-06*s_1ur_1ne + 0.4616440618705026e-02*c_1ur_1ne + -0.1065288382049196e-02*s_1ju_2ne + 0.9790535366780812e-03*c_1ju_2ne + 0.1851463869820049e-02*s_2sa_1ne + -0.1430756410825257e-03*c_2sa_1ne + 0.4292772502579743e-05*s_2ur_2ne + -0.1055223614629592e-02*c_2ur_2ne + 0.1523441905530890e-09*s_1ea_1ne + 0.1011738760328321e-02*c_1ea_1ne + -0.7170881093836575e-06*s_1ve_1ne + 0.9552945071246487e-03*c_1ve_1ne + -0.4411376985310350e-04*s_1ju_1ur1ne + 0.7816339125313854e-03*c_1ju_1ur1ne + -0.1064937428706450e-03*s_2ur_4ne + 0.6866645618922459e-03*c_2ur_4ne + -0.4032881981702171e-04*s_1ju1ur_3ne + -0.7234645649785965e-03*c_1ju1ur_3ne + -0.4029243991603840e-03*s_1sa_2ne + 0.2396409686005164e-03*c_1sa_2ne + 0.9989264916046985e-06*s_3ur_3ne + -0.5688399870484251e-03*c_3ur_3ne + 0.3190948002603004e-04*s_2ur_3ne + -0.5058068306522776e-03*c_2ur_3ne + 0.1792659377258140e-03*s_3ju_1ne + 0.3284377328527410e-03*c_3ju_1ne + 0.6726525049754594e-04*s_3ju_5sa_1ne + -0.4188661836208271e-03*c_3ju_5sa_1ne + -0.6466618996030593e-04*s_1ju_5sa1ne + 0.4205296714901091e-03*c_1ju_5sa1ne + -0.3603887502056839e-04*s_2ju_2ne + 0.3158690279584982e-03*c_2ju_2ne + 0.6151337612165370e-06*s_4ur_4ne + -0.3137657379204492e-03*c_4ur_4ne + 0.3897962037757975e-04*s_2ju_6sa1ne + -0.2537886860729642e-03*c_2ju_6sa1ne + -0.3992697183658804e-04*s_2ju_4sa_1ne + 0.2481598480080688e-03*c_2ju_4sa_1ne + 0.1330957377938935e-04*s_2sa_2ne + -0.2602731068520376e-03*c_2sa_2ne + -0.1094803499540447e-07*s_1ju_1sa + 0.2465387953457577e-03*c_1ju_1sa + 0.2492865585068791e-04*s_2ur_1ne + -0.2161026059806596e-03*c_2ur_1ne + 0.1995329982725276e-04*s_3ur_4ne + -0.1976433842552962e-03*c_3ur_4ne + -0.1068967753203705e-04*s_1sa_1ur1ne + 0.1892094157370675e-03*c_1sa_1ur1ne + -0.1002294221387272e-04*s_1sa1ur_3ne + -0.1762164027240680e-03*c_1sa1ur_3ne + 0.2388269349560771e-06*s_5ur_5ne + -0.1790981422859432e-03*c_5ur_5ne + -0.1132432641973006e-06*s_1ju1sa_2ne + 0.1752967541553992e-03*c_1ju1sa_2ne + -0.1389385340889513e-03*s_1ne + 0.2881151803634832e-04*c_1ne + -0.1106292734518844e-04*s_1ju_1ur + 0.1317605569279775e-03*c_1ju_1ur; va += dt
* (0.3109224642376736e-03*s_2ju_1ne + 0.1612136688441680e-03*c_2ju_1ne + -0.1276285847424419e-03*s_2sa_1ne + -0.1790204150263705e-03*c_2sa_1ne + -0.1630895715417067e-03*s_1ju_5sa1ne + -0.4753204579900835e-04*c_1ju_5sa1ne + 0.1622984405545413e-03*s_3ju_5sa_1ne + 0.4818430087839044e-04*c_3ju_5sa_1ne); let mut vl = 0.5311897933164000e+01 + 0.1014690462797575e-01*s_1ur_2ne + -0.5688041401364499e-03*c_1ur_2ne + 0.4417132164176055e-02*s_1ju_1ne + 0.7045195911201201e-06*c_1ju_1ne + 0.9293565823748689e-03*s_1sa_1ne + 0.1727288348982847e-06*c_1sa_1ne + 0.4111704882609788e-03*s_2ur_4ne + 0.6682748202172926e-04*c_2ur_4ne + 0.2112914113346390e-03*s_2ju_1ne + -0.5392251616353442e-04*c_2ju_1ne + 0.1627161218466769e-03*s_1ur_1ne + 0.4238846201502652e-06*c_1ur_1ne + 0.8872165111739010e-04*s_2ur_2ne + 0.2139272500059055e-06*c_2ur_2ne + -0.3125250182417247e-04*s_1ju + 0.3455918334388146e-04*c_1ju + -0.4201466259675197e-05*s_2sa_1ne + -0.5361731085270463e-04*c_2sa_1ne + 0.4662019574830729e-04*s_2ur_3ne + 0.3291310927365163e-05*c_2ur_3ne + 0.3796442160384549e-04*s_3ur_3ne + 0.1030656888205716e-06*c_3ur_3ne + 0.3322119845305415e-04*s_1ea_1ne + -0.6060689201300410e-11*c_1ea_1ne + 0.3147337786912443e-04*s_1ve_1ne + 0.1768577188954487e-07*c_1ve_1ne + 0.2182454529838928e-04*s_3ur_6ne + 0.4971254880181301e-05*c_3ur_6ne + 0.2275211341606973e-04*s_1ju_1ur1ne + 0.1284577025007215e-05*c_1ju_1ur1ne + -0.2213486377990007e-04*s_1ju1ur_3ne + 0.1228336815326300e-05*c_1ju1ur_3ne + -0.4106150902736598e-05*s_1ne + 0.1687226402347856e-04*c_1ne + 0.1856431868304301e-04*s_4ur_4ne + 0.5052346665455549e-07*c_4ur_4ne + 0.1659407821187764e-04*s_2sa_2ne + -0.9379666523961534e-07*c_2sa_2ne + 0.7123762522250896e-05*s_1ju_2ne + 0.9424924584576555e-05*c_1ju_2ne + 0.1050090429817198e-04*s_3ju_1ne + -0.5734548000478842e-05*c_3ju_1ne + -0.6743919223989255e-05*s_1sa + 0.8629745916027280e-05*c_1sa + 0.1397262427212505e-04*s_3ur_4ne + 0.1233610241623096e-05*c_3ur_4ne + -0.1255149891129686e-04*s_1ju_5sa1ne + -0.1930804453094497e-05*c_1ju_5sa1ne + -0.1246905900882537e-04*s_3ju_5sa_1ne + -0.2001877243947378e-05*c_3ju_5sa_1ne; vl += dt
* (0.3813297222612500e+02 + -0.4565273078954130e-04*s_1ur_2ne + 0.1584873111604001e-03*c_1ur_2ne + -0.4162700606896971e-05*s_2ur_4ne + 0.1218004048688237e-04*c_2ur_4ne + 0.5062549319635583e-05*s_2ju_1ne + -0.9764162374264615e-05*c_2ju_1ne); let mut vk = 0.5998838194000000e-02 + -0.1195908189204994e-05*s_1ju + 0.3438127013876512e-02*c_1ju + -0.2340140117574077e-07*s_1ne + 0.1362288518758392e-02*c_1ne + -0.3118114523786671e-06*s_1ju_2ne + 0.1310430241551439e-02*c_1ju_2ne + -0.1529063164571739e-06*s_1sa + 0.7615079638701424e-03*c_1sa + -0.3003665747169621e-05*s_1ur_2ne + 0.5986634451756896e-03*c_1ur_2ne + -0.6729681621770766e-07*s_1sa_2ne + 0.3408085136137868e-03*c_1sa_2ne + 0.4115252354663685e-04*s_2ju + 0.1614730533248087e-03*c_2ju + -0.1265858140071098e-04*s_2ur_4ne + 0.1582161283707438e-03*c_2ur_4ne + -0.2085142008259754e-07*s_1ur + 0.8680654557907470e-04*c_1ur + 0.1472916589985499e-04*s_2ju_2ne + 0.5774912556734455e-04*c_2ju_2ne + 0.2139655856887869e-06*s_2ur_3ne + -0.6842664640819570e-04*c_2ur_3ne + 0.4225576799361271e-04*s_2sa + -0.3275572856147954e-05*c_2sa + -0.1422469292069709e-04*s_1ju_3ne + 0.1350875779196234e-04*c_1ju_3ne + 0.8721758111088190e-07*s_3ur_4ne + -0.2533289197778165e-04*c_3ur_4ne + 0.6313942013248230e-08*s_1ea + 0.2501595878635208e-04*c_1ea + -0.3166194365594856e-07*s_1ve + 0.2367399611639770e-04*c_1ve + -0.1642142584649121e-04*s_1ju_1ne + -0.7064603748716992e-05*c_1ju_1ne + 0.1655688902082871e-04*s_2sa_2ne + -0.1281294669528437e-05*c_2sa_2ne + -0.2105087926520823e-05*s_3ur_6ne + 0.1234877586955676e-04*c_3ur_6ne + -0.7693084238453729e-06*s_1ju_1ur + 0.1335386779258940e-04*c_1ju_1ur + -0.7250586565326062e-06*s_1ju1ur_4ne + -0.1327822190097791e-04*c_1ju1ur_4ne + 0.1192483811581018e-05*s_3ur_5ne + -0.1139346670264192e-04*c_3ur_5ne + 0.4956487813647469e-07*s_4ur_5ne + -0.1203323613273574e-04*c_4ur_5ne; vk += dt * 0.8830856821251260e-05;
let mut vh = 0.6691809982000000e-02 + 0.3440371234102762e-02*s_1ju + 0.2600370896891576e-06*c_1ju + 0.1362745596816718e-02*s_1ne + -0.7316836421432355e-07*c_1ne + -0.1310439985021585e-02*s_1ju_2ne + -0.2553482969688661e-06*c_1ju_2ne + 0.7608159068033625e-03*s_1sa + 0.1832195561690072e-06*c_1sa + -0.5964068464879121e-03*s_1ur_2ne + -0.4117787747356804e-05*c_1ur_2ne + -0.3407664708359854e-03*s_1sa_2ne + -0.2788749422610491e-07*c_1sa_2ne + 0.1615434742743582e-03*s_2ju + -0.4120113462435257e-04*c_2ju + -0.1576255624353831e-03*s_2ur_4ne + -0.1264798012691299e-04*c_2ur_4ne + 0.8722529694334344e-04*s_1ur + 0.7523192366474331e-07*c_1ur + -0.5769596506352083e-04*s_2ju_2ne + 0.1474361161620056e-04*c_2ju_2ne + 0.6857712536570073e-04*s_2ur_3ne + 0.2980702312221004e-06*c_2ur_3ne + -0.3272514371511732e-05*s_2sa + -0.4222992750384469e-04*c_2sa + -0.1350912465045429e-04*s_1ju_3ne + -0.1422449745812264e-04*c_1ju_3ne + 0.2503620980590597e-04*s_3ur_4ne + 0.6880426412186953e-07*c_3ur_4ne + 0.2501305133516332e-04*s_1ea + 0.6306850010498949e-08*c_1ea + 0.2367363499404004e-04*s_1ve + 0.3872624094429797e-08*c_1ve + 0.1465018184152297e-04*s_1ju_1ne + -0.8159417524586127e-05*c_1ju_1ne + 0.1212176054136219e-05*s_2sa_2ne + 0.1680944511009788e-04*c_2sa_2ne + -0.1228347734475589e-04*s_3ur_6ne + -0.2096834515178240e-05*c_3ur_6ne + -0.1336095447628969e-04*s_1ju_1ur + -0.7646193515987792e-06*c_1ju_1ur + 0.1327836256942902e-04*s_1ju1ur_4ne + -0.7256385768637671e-06*c_1ju1ur_4ne + 0.1134695961858660e-04*s_3ur_5ne + 0.1191371802411507e-05*c_3ur_5ne + 0.1182110699503861e-04*s_4ur_5ne + 0.2851388828124312e-07*c_4ur_5ne + 0.1132629521678559e-04*s_1ur_1ne + -0.2904264975965537e-06*c_1ur_1ne; vh += dt * 0.7803136248402970e-04;
let vq = -0.1029147513800000e-01 + -0.4128223319791564e-06*s_1ju_1ne + 0.1009228486085109e-04*c_1ju_1ne; let mut vp = 0.1151676665900000e-01 + -0.1008517921388559e-04*s_1ju_1ne + -0.4104560528929437e-06*c_1ju_1ne; vp += dt * 0.2572175215148812e-04;
OrbElem {
mu: vmu,
mjd0: mjd_tdb,
a: va,
l: angle::norm_dblpi(vl),
k: vk,
h: vh,
q: vq,
p: vp,
}
}