mod earth;
mod earth_moon;
mod jupiter;
mod mars;
mod mercury;
mod neptune;
mod saturn;
mod uranus;
mod venus;
use super::{calculate_t, calculate_var, RectangularCoordinates};
pub fn mercury(jde: f64) -> RectangularCoordinates {
let t = calculate_t(jde);
let x0 = calculate_var(t, &mercury::X0[0], &mercury::X0[1], &mercury::X0[2]);
let x1 = calculate_var(t, &mercury::X1[0], &mercury::X1[1], &mercury::X1[2]);
let x2 = calculate_var(t, &mercury::X2[0], &mercury::X2[1], &mercury::X2[2]);
let x3 = calculate_var(t, &mercury::X3[0], &mercury::X3[1], &mercury::X3[2]);
let x4 = calculate_var(t, &mercury::X4[0], &mercury::X4[1], &mercury::X4[2]);
let x5 = calculate_var(t, &mercury::X5[0], &mercury::X5[1], &mercury::X5[2]);
let y0 = calculate_var(t, &mercury::Y0[0], &mercury::Y0[1], &mercury::Y0[2]);
let y1 = calculate_var(t, &mercury::Y1[0], &mercury::Y1[1], &mercury::Y1[2]);
let y2 = calculate_var(t, &mercury::Y2[0], &mercury::Y2[1], &mercury::Y2[2]);
let y3 = calculate_var(t, &mercury::Y3[0], &mercury::Y3[1], &mercury::Y3[2]);
let y4 = calculate_var(t, &mercury::Y4[0], &mercury::Y4[1], &mercury::Y4[2]);
let y5 = calculate_var(t, &mercury::Y5[0], &mercury::Y5[1], &mercury::Y5[2]);
let z0 = calculate_var(t, &mercury::Z0[0], &mercury::Z0[1], &mercury::Z0[2]);
let z1 = calculate_var(t, &mercury::Z1[0], &mercury::Z1[1], &mercury::Z1[2]);
let z2 = calculate_var(t, &mercury::Z2[0], &mercury::Z2[1], &mercury::Z2[2]);
let z3 = calculate_var(t, &mercury::Z3[0], &mercury::Z3[1], &mercury::Z3[2]);
let z4 = calculate_var(t, &mercury::Z4[0], &mercury::Z4[1], &mercury::Z4[2]);
let t2 = t * t;
let t3 = t2 * t;
let t4 = t2 * t2;
let t5 = t2 * t3;
let x = x0 + x1 * t + x2 * t2 + x3 * t3 + x4 * t4 + x5 * t5;
let y = y0 + y1 * t + y2 * t2 + y3 * t3 + y4 * t4 + y5 * t5;
let z = z0 + z1 * t + z2 * t2 + z3 * t3 + z4 * t4;
RectangularCoordinates { x, y, z }
}
pub fn venus(jde: f64) -> RectangularCoordinates {
let t = calculate_t(jde);
let x0 = calculate_var(t, &venus::X0[0], &venus::X0[1], &venus::X0[2]);
let x1 = calculate_var(t, &venus::X1[0], &venus::X1[1], &venus::X1[2]);
let x2 = calculate_var(t, &venus::X2[0], &venus::X2[1], &venus::X2[2]);
let x3 = calculate_var(t, &venus::X3[0], &venus::X3[1], &venus::X3[2]);
let x4 = calculate_var(t, &venus::X4[0], &venus::X4[1], &venus::X4[2]);
let x5 = calculate_var(t, &venus::X5[0], &venus::X5[1], &venus::X5[2]);
let y0 = calculate_var(t, &venus::Y0[0], &venus::Y0[1], &venus::Y0[2]);
let y1 = calculate_var(t, &venus::Y1[0], &venus::Y1[1], &venus::Y1[2]);
let y2 = calculate_var(t, &venus::Y2[0], &venus::Y2[1], &venus::Y2[2]);
let y3 = calculate_var(t, &venus::Y3[0], &venus::Y3[1], &venus::Y3[2]);
let y4 = calculate_var(t, &venus::Y4[0], &venus::Y4[1], &venus::Y4[2]);
let y5 = calculate_var(t, &venus::Y5[0], &venus::Y5[1], &venus::Y5[2]);
let z0 = calculate_var(t, &venus::Z0[0], &venus::Z0[1], &venus::Z0[2]);
let z1 = calculate_var(t, &venus::Z1[0], &venus::Z1[1], &venus::Z1[2]);
let z2 = calculate_var(t, &venus::Z2[0], &venus::Z2[1], &venus::Z2[2]);
let z3 = calculate_var(t, &venus::Z3[0], &venus::Z3[1], &venus::Z3[2]);
let z4 = calculate_var(t, &venus::Z4[0], &venus::Z4[1], &venus::Z4[2]);
let t2 = t * t;
let t3 = t2 * t;
let t4 = t2 * t2;
let t5 = t2 * t3;
let x = x0 + x1 * t + x2 * t2 + x3 * t3 + x4 * t4 + x5 * t5;
let y = y0 + y1 * t + y2 * t2 + y3 * t3 + y4 * t4 + y5 * t5;
let z = z0 + z1 * t + z2 * t2 + z3 * t3 + z4 * t4;
RectangularCoordinates { x, y, z }
}
pub fn earth(jde: f64) -> RectangularCoordinates {
let t = calculate_t(jde);
let x0 = calculate_var(t, &earth::X0[0], &earth::X0[1], &earth::X0[2]);
let x1 = calculate_var(t, &earth::X1[0], &earth::X1[1], &earth::X1[2]);
let x2 = calculate_var(t, &earth::X2[0], &earth::X2[1], &earth::X2[2]);
let x3 = calculate_var(t, &earth::X3[0], &earth::X3[1], &earth::X3[2]);
let x4 = calculate_var(t, &earth::X4[0], &earth::X4[1], &earth::X4[2]);
let x5 = calculate_var(t, &earth::X5[0], &earth::X5[1], &earth::X5[2]);
let y0 = calculate_var(t, &earth::Y0[0], &earth::Y0[1], &earth::Y0[2]);
let y1 = calculate_var(t, &earth::Y1[0], &earth::Y1[1], &earth::Y1[2]);
let y2 = calculate_var(t, &earth::Y2[0], &earth::Y2[1], &earth::Y2[2]);
let y3 = calculate_var(t, &earth::Y3[0], &earth::Y3[1], &earth::Y3[2]);
let y4 = calculate_var(t, &earth::Y4[0], &earth::Y4[1], &earth::Y4[2]);
let y5 = calculate_var(t, &earth::Y5[0], &earth::Y5[1], &earth::Y5[2]);
let z0 = calculate_var(t, &earth::Z0[0], &earth::Z0[1], &earth::Z0[2]);
let z1 = calculate_var(t, &earth::Z1[0], &earth::Z1[1], &earth::Z1[2]);
let z2 = calculate_var(t, &earth::Z2[0], &earth::Z2[1], &earth::Z2[2]);
let z3 = calculate_var(t, &earth::Z3[0], &earth::Z3[1], &earth::Z3[2]);
let z4 = calculate_var(t, &earth::Z4[0], &earth::Z4[1], &earth::Z4[2]);
let t2 = t * t;
let t3 = t2 * t;
let t4 = t2 * t2;
let t5 = t2 * t3;
let x = x0 + x1 * t + x2 * t2 + x3 * t3 + x4 * t4 + x5 * t5;
let y = y0 + y1 * t + y2 * t2 + y3 * t3 + y4 * t4 + y5 * t5;
let z = z0 + z1 * t + z2 * t2 + z3 * t3 + z4 * t4;
RectangularCoordinates { x, y, z }
}
#[allow(clippy::too_many_lines)]
pub fn earth_moon(jde: f64) -> RectangularCoordinates {
let t = calculate_t(jde);
let x0 = calculate_var(
t,
&earth_moon::X0[0],
&earth_moon::X0[1],
&earth_moon::X0[2],
);
let x1 = calculate_var(
t,
&earth_moon::X1[0],
&earth_moon::X1[1],
&earth_moon::X1[2],
);
let x2 = calculate_var(
t,
&earth_moon::X2[0],
&earth_moon::X2[1],
&earth_moon::X2[2],
);
let x3 = calculate_var(
t,
&earth_moon::X3[0],
&earth_moon::X3[1],
&earth_moon::X3[2],
);
let x4 = calculate_var(
t,
&earth_moon::X4[0],
&earth_moon::X4[1],
&earth_moon::X4[2],
);
let x5 = calculate_var(
t,
&earth_moon::X5[0],
&earth_moon::X5[1],
&earth_moon::X5[2],
);
let y0 = calculate_var(
t,
&earth_moon::Y0[0],
&earth_moon::Y0[1],
&earth_moon::Y0[2],
);
let y1 = calculate_var(
t,
&earth_moon::Y1[0],
&earth_moon::Y1[1],
&earth_moon::Y1[2],
);
let y2 = calculate_var(
t,
&earth_moon::Y2[0],
&earth_moon::Y2[1],
&earth_moon::Y2[2],
);
let y3 = calculate_var(
t,
&earth_moon::Y3[0],
&earth_moon::Y3[1],
&earth_moon::Y3[2],
);
let y4 = calculate_var(
t,
&earth_moon::Y4[0],
&earth_moon::Y4[1],
&earth_moon::Y4[2],
);
let y5 = calculate_var(
t,
&earth_moon::Y5[0],
&earth_moon::Y5[1],
&earth_moon::Y5[2],
);
let z0 = calculate_var(
t,
&earth_moon::Z0[0],
&earth_moon::Z0[1],
&earth_moon::Z0[2],
);
let z1 = calculate_var(
t,
&earth_moon::Z1[0],
&earth_moon::Z1[1],
&earth_moon::Z1[2],
);
let z2 = calculate_var(
t,
&earth_moon::Z2[0],
&earth_moon::Z2[1],
&earth_moon::Z2[2],
);
let z3 = calculate_var(
t,
&earth_moon::Z3[0],
&earth_moon::Z3[1],
&earth_moon::Z3[2],
);
let z4 = calculate_var(
t,
&earth_moon::Z4[0],
&earth_moon::Z4[1],
&earth_moon::Z4[2],
);
let t2 = t * t;
let t3 = t2 * t;
let t4 = t2 * t2;
let t5 = t2 * t3;
let x = x0 + x1 * t + x2 * t2 + x3 * t3 + x4 * t4 + x5 * t5;
let y = y0 + y1 * t + y2 * t2 + y3 * t3 + y4 * t4 + y5 * t5;
let z = z0 + z1 * t + z2 * t2 + z3 * t3 + z4 * t4;
RectangularCoordinates { x, y, z }
}
pub fn mars(jde: f64) -> RectangularCoordinates {
let t = calculate_t(jde);
let x0 = calculate_var(t, &mars::X0[0], &mars::X0[1], &mars::X0[2]);
let x1 = calculate_var(t, &mars::X1[0], &mars::X1[1], &mars::X1[2]);
let x2 = calculate_var(t, &mars::X2[0], &mars::X2[1], &mars::X2[2]);
let x3 = calculate_var(t, &mars::X3[0], &mars::X3[1], &mars::X3[2]);
let x4 = calculate_var(t, &mars::X4[0], &mars::X4[1], &mars::X4[2]);
let x5 = calculate_var(t, &mars::X5[0], &mars::X5[1], &mars::X5[2]);
let y0 = calculate_var(t, &mars::Y0[0], &mars::Y0[1], &mars::Y0[2]);
let y1 = calculate_var(t, &mars::Y1[0], &mars::Y1[1], &mars::Y1[2]);
let y2 = calculate_var(t, &mars::Y2[0], &mars::Y2[1], &mars::Y2[2]);
let y3 = calculate_var(t, &mars::Y3[0], &mars::Y3[1], &mars::Y3[2]);
let y4 = calculate_var(t, &mars::Y4[0], &mars::Y4[1], &mars::Y4[2]);
let y5 = calculate_var(t, &mars::Y5[0], &mars::Y5[1], &mars::Y5[2]);
let z0 = calculate_var(t, &mars::Z0[0], &mars::Z0[1], &mars::Z0[2]);
let z1 = calculate_var(t, &mars::Z1[0], &mars::Z1[1], &mars::Z1[2]);
let z2 = calculate_var(t, &mars::Z2[0], &mars::Z2[1], &mars::Z2[2]);
let z3 = calculate_var(t, &mars::Z3[0], &mars::Z3[1], &mars::Z3[2]);
let z4 = calculate_var(t, &mars::Z4[0], &mars::Z4[1], &mars::Z4[2]);
let t2 = t * t;
let t3 = t2 * t;
let t4 = t2 * t2;
let t5 = t2 * t3;
let x = x0 + x1 * t + x2 * t2 + x3 * t3 + x4 * t4 + x5 * t5;
let y = y0 + y1 * t + y2 * t2 + y3 * t3 + y4 * t4 + y5 * t5;
let z = z0 + z1 * t + z2 * t2 + z3 * t3 + z4 * t4;
RectangularCoordinates { x, y, z }
}
pub fn jupiter(jde: f64) -> RectangularCoordinates {
let t = calculate_t(jde);
let x0 = calculate_var(t, &jupiter::X0[0], &jupiter::X0[1], &jupiter::X0[2]);
let x1 = calculate_var(t, &jupiter::X1[0], &jupiter::X1[1], &jupiter::X1[2]);
let x2 = calculate_var(t, &jupiter::X2[0], &jupiter::X2[1], &jupiter::X2[2]);
let x3 = calculate_var(t, &jupiter::X3[0], &jupiter::X3[1], &jupiter::X3[2]);
let x4 = calculate_var(t, &jupiter::X4[0], &jupiter::X4[1], &jupiter::X4[2]);
let x5 = calculate_var(t, &jupiter::X5[0], &jupiter::X5[1], &jupiter::X5[2]);
let y0 = calculate_var(t, &jupiter::Y0[0], &jupiter::Y0[1], &jupiter::Y0[2]);
let y1 = calculate_var(t, &jupiter::Y1[0], &jupiter::Y1[1], &jupiter::Y1[2]);
let y2 = calculate_var(t, &jupiter::Y2[0], &jupiter::Y2[1], &jupiter::Y2[2]);
let y3 = calculate_var(t, &jupiter::Y3[0], &jupiter::Y3[1], &jupiter::Y3[2]);
let y4 = calculate_var(t, &jupiter::Y4[0], &jupiter::Y4[1], &jupiter::Y4[2]);
let y5 = calculate_var(t, &jupiter::Y5[0], &jupiter::Y5[1], &jupiter::Y5[2]);
let z0 = calculate_var(t, &jupiter::Z0[0], &jupiter::Z0[1], &jupiter::Z0[2]);
let z1 = calculate_var(t, &jupiter::Z1[0], &jupiter::Z1[1], &jupiter::Z1[2]);
let z2 = calculate_var(t, &jupiter::Z2[0], &jupiter::Z2[1], &jupiter::Z2[2]);
let z3 = calculate_var(t, &jupiter::Z3[0], &jupiter::Z3[1], &jupiter::Z3[2]);
let z4 = calculate_var(t, &jupiter::Z4[0], &jupiter::Z4[1], &jupiter::Z4[2]);
let t2 = t * t;
let t3 = t2 * t;
let t4 = t2 * t2;
let t5 = t2 * t3;
let x = x0 + x1 * t + x2 * t2 + x3 * t3 + x4 * t4 + x5 * t5;
let y = y0 + y1 * t + y2 * t2 + y3 * t3 + y4 * t4 + y5 * t5;
let z = z0 + z1 * t + z2 * t2 + z3 * t3 + z4 * t4;
RectangularCoordinates { x, y, z }
}
pub fn saturn(jde: f64) -> RectangularCoordinates {
let t = calculate_t(jde);
let x0 = calculate_var(t, &saturn::X0[0], &saturn::X0[1], &saturn::X0[2]);
let x1 = calculate_var(t, &saturn::X1[0], &saturn::X1[1], &saturn::X1[2]);
let x2 = calculate_var(t, &saturn::X2[0], &saturn::X2[1], &saturn::X2[2]);
let x3 = calculate_var(t, &saturn::X3[0], &saturn::X3[1], &saturn::X3[2]);
let x4 = calculate_var(t, &saturn::X4[0], &saturn::X4[1], &saturn::X4[2]);
let x5 = calculate_var(t, &saturn::X5[0], &saturn::X5[1], &saturn::X5[2]);
let y0 = calculate_var(t, &saturn::Y0[0], &saturn::Y0[1], &saturn::Y0[2]);
let y1 = calculate_var(t, &saturn::Y1[0], &saturn::Y1[1], &saturn::Y1[2]);
let y2 = calculate_var(t, &saturn::Y2[0], &saturn::Y2[1], &saturn::Y2[2]);
let y3 = calculate_var(t, &saturn::Y3[0], &saturn::Y3[1], &saturn::Y3[2]);
let y4 = calculate_var(t, &saturn::Y4[0], &saturn::Y4[1], &saturn::Y4[2]);
let y5 = calculate_var(t, &saturn::Y5[0], &saturn::Y5[1], &saturn::Y5[2]);
let z0 = calculate_var(t, &saturn::Z0[0], &saturn::Z0[1], &saturn::Z0[2]);
let z1 = calculate_var(t, &saturn::Z1[0], &saturn::Z1[1], &saturn::Z1[2]);
let z2 = calculate_var(t, &saturn::Z2[0], &saturn::Z2[1], &saturn::Z2[2]);
let z3 = calculate_var(t, &saturn::Z3[0], &saturn::Z3[1], &saturn::Z3[2]);
let z4 = calculate_var(t, &saturn::Z4[0], &saturn::Z4[1], &saturn::Z4[2]);
let t2 = t * t;
let t3 = t2 * t;
let t4 = t2 * t2;
let t5 = t2 * t3;
let x = x0 + x1 * t + x2 * t2 + x3 * t3 + x4 * t4 + x5 * t5;
let y = y0 + y1 * t + y2 * t2 + y3 * t3 + y4 * t4 + y5 * t5;
let z = z0 + z1 * t + z2 * t2 + z3 * t3 + z4 * t4;
RectangularCoordinates { x, y, z }
}
pub fn uranus(jde: f64) -> RectangularCoordinates {
let t = calculate_t(jde);
let x0 = calculate_var(t, &uranus::X0[0], &uranus::X0[1], &uranus::X0[2]);
let x1 = calculate_var(t, &uranus::X1[0], &uranus::X1[1], &uranus::X1[2]);
let x2 = calculate_var(t, &uranus::X2[0], &uranus::X2[1], &uranus::X2[2]);
let x3 = calculate_var(t, &uranus::X3[0], &uranus::X3[1], &uranus::X3[2]);
let x4 = calculate_var(t, &uranus::X4[0], &uranus::X4[1], &uranus::X4[2]);
let y0 = calculate_var(t, &uranus::Y0[0], &uranus::Y0[1], &uranus::Y0[2]);
let y1 = calculate_var(t, &uranus::Y1[0], &uranus::Y1[1], &uranus::Y1[2]);
let y2 = calculate_var(t, &uranus::Y2[0], &uranus::Y2[1], &uranus::Y2[2]);
let y3 = calculate_var(t, &uranus::Y3[0], &uranus::Y3[1], &uranus::Y3[2]);
let y4 = calculate_var(t, &uranus::Y4[0], &uranus::Y4[1], &uranus::Y4[2]);
let z0 = calculate_var(t, &uranus::Z0[0], &uranus::Z0[1], &uranus::Z0[2]);
let z1 = calculate_var(t, &uranus::Z1[0], &uranus::Z1[1], &uranus::Z1[2]);
let z2 = calculate_var(t, &uranus::Z2[0], &uranus::Z2[1], &uranus::Z2[2]);
let t2 = t * t;
let t3 = t2 * t;
let t4 = t2 * t2;
let x = x0 + x1 * t + x2 * t2 + x3 * t3 + x4 * t4;
let y = y0 + y1 * t + y2 * t2 + y3 * t3 + y4 * t4;
let z = z0 + z1 * t + z2 * t2;
RectangularCoordinates { x, y, z }
}
pub fn neptune(jde: f64) -> RectangularCoordinates {
let t = calculate_t(jde);
let x0 = calculate_var(t, &neptune::X0[0], &neptune::X0[1], &neptune::X0[2]);
let x1 = calculate_var(t, &neptune::X1[0], &neptune::X1[1], &neptune::X1[2]);
let x2 = calculate_var(t, &neptune::X2[0], &neptune::X2[1], &neptune::X2[2]);
let x3 = calculate_var(t, &neptune::X3[0], &neptune::X3[1], &neptune::X3[2]);
let x4 = calculate_var(t, &neptune::X4[0], &neptune::X4[1], &neptune::X4[2]);
let y0 = calculate_var(t, &neptune::Y0[0], &neptune::Y0[1], &neptune::Y0[2]);
let y1 = calculate_var(t, &neptune::Y1[0], &neptune::Y1[1], &neptune::Y1[2]);
let y2 = calculate_var(t, &neptune::Y2[0], &neptune::Y2[1], &neptune::Y2[2]);
let y3 = calculate_var(t, &neptune::Y3[0], &neptune::Y3[1], &neptune::Y3[2]);
let y4 = calculate_var(t, &neptune::Y4[0], &neptune::Y4[1], &neptune::Y4[2]);
let z0 = calculate_var(t, &neptune::Z0[0], &neptune::Z0[1], &neptune::Z0[2]);
let z1 = calculate_var(t, &neptune::Z1[0], &neptune::Z1[1], &neptune::Z1[2]);
let z2 = calculate_var(t, &neptune::Z2[0], &neptune::Z2[1], &neptune::Z2[2]);
let t2 = t * t;
let t3 = t2 * t;
let t4 = t2 * t2;
let x = x0 + x1 * t + x2 * t2 + x3 * t3 + x4 * t4;
let y = y0 + y1 * t + y2 * t2 + y3 * t3 + y4 * t4;
let z = z0 + z1 * t + z2 * t2;
RectangularCoordinates { x, y, z }
}