CelestialCalendar 1.0.0 · unreleased development @ 67a7c4c79a4a4a6aa7e703c9e6f0039ae34bee82
Loading...
Searching...
No Matches
astro::vsop87d Namespace Reference

Classes

struct  Coefficients
 Representing 3 coefficients in a VSOP87D term. More...
struct  PlanetTables
 The type trait for the VSOP87D tables. Expected specializations in *_coeff.hpps. More...
struct  Evaluation
 The result of the VSOP87D evaluation. More...

Typedefs

using Vsop87dTable
 The VSOP87D table of coefficients.
using Vsop87dTables
 The VSOP87D tables.

Enumerations

enum class  Planet : uint8_t {
  EAR , MER , VEN , MAR ,
  JUP , SAT , URA , NEP
}
 The planets supported by VSOP87D. More...

Functions

auto evaluate_table (const Vsop87dTable &vsop_table, const double jm) -> double
 Return the sum of all the terms in the given VSOP87D table, for the given julian millennium.
auto evaluate_tables (const Vsop87dTables &vsop_tables, const double jm) -> double
 Evaluate the given VSOP87D tables on the given julian millennium.
template<Planet planet>
auto evaluate (const double jm) -> Evaluation
 Evaluate the VSOP87D tables on the given julian millennium.

Variables

constexpr double SCALING_FACTOR
 The scaling factor used for the VSOP87D tables in this project.

Typedef Documentation

◆ Vsop87dTable

The VSOP87D table of coefficients.

◆ Vsop87dTables

The VSOP87D tables.

Enumeration Type Documentation

◆ Planet

enum class astro::vsop87d::Planet : uint8_t
strong

The planets supported by VSOP87D.

Enumerator
EAR 
MER 
VEN 
MAR 
JUP 
SAT 
URA 
NEP 

Function Documentation

◆ evaluate()

template<Planet planet>
auto astro::vsop87d::evaluate ( const double jm) ->Evaluation
inlinenodiscard

Evaluate the VSOP87D tables on the given julian millennium.

Template Parameters
planetThe planet to evaluate.
Parameters
jmThe julian millennium since J2000, calculated based on JDE (julian ephemeris date).
Returns
The evaluation result. VSOP87D provides the heliocentric ecliptic spherical coordinates for the equinox of the day.
Example
evaluate<Planet::EAR>(0.0) means evaluating the Earth's L, B, and R tables on the given julian millennium 0.0.

◆ evaluate_table()

auto astro::vsop87d::evaluate_table ( const Vsop87dTable & vsop_table,
const double jm )->double
inlinenodiscard

Return the sum of all the terms in the given VSOP87D table, for the given julian millennium.

Parameters
vsop_tableThe VSOP87D table.
jmThe julian millennium.
Returns
The sum of the terms in the table.
Example
evaluate_table(astro::vsop87d::earth::L0, 0.0) means apply the Earth's L0 table on the given julian millennium 0.0.

◆ evaluate_tables()

auto astro::vsop87d::evaluate_tables ( const Vsop87dTables & vsop_tables,
const double jm )->double
inlinenodiscard

Evaluate the given VSOP87D tables on the given julian millennium.

Parameters
vsop_tablesThe VSOP87D tables.
jmThe julian millennium.
Returns
The evaluated result. As per the VSOP87D model, the result is in radians.
Example
evaluate_tables(astro::vsop87d::earth::L, 0.0) means apply all Earth's L tables on the given julian millennium 0.0.

Variable Documentation

◆ SCALING_FACTOR

double astro::vsop87d::SCALING_FACTOR
inlineconstexpr

The scaling factor used for the VSOP87D tables in this project.

Note
In this project, the coefficient "A"s in the tables are multiplied by 1e8. So before getting the correct radians, we need to divide them by 1e8.