|
CelestialCalendar 1.0.0 · unreleased development @ 67a7c4c79a4a4a6aa7e703c9e6f0039ae34bee82
|
Classes | |
| struct | RootGenerator |
| Eager-by-one Moon-phase roots in JDE(TT); next refines the following root before returning. More... | |
Enumerations | |
| enum class | NumericPolicy : uint8_t { CONJUNCTION , PHASE } |
| The existing conjunction and principal-phase numerical conventions. More... | |
Functions | |
| template<NumericPolicy POLICY> | |
| auto | objective_at (const double diff, const double target_deg) -> double |
| Map elongation to the Newton objective; conjunction uses its local near-360° unwrap. | |
| template<NumericPolicy POLICY> | |
| auto | miss_at (const double diff, const double target_deg) -> double |
| Signed mean-rate miss; conjunction keeps +180°, principal phases fold it to -180°. | |
| template<NumericPolicy POLICY> | |
| auto | bracket_rejected (const double left_diff, const double right_diff, const double target_deg) -> bool |
| Reject endpoints outside the policy's local branch. | |
| template<NumericPolicy POLICY> | |
| auto | reject_bracket (const double left_jde, const double left_diff, const double right_jde, const double right_diff, const double target_deg) -> void |
| Report rejected endpoints using the policy's raw or folded elongations. | |
| template<NumericPolicy POLICY> | |
| auto | reject_estimate (const double jde, const double est_jde, const double miss_deg, const double elongation_deg, const double target_deg) -> void |
| Report an estimate outside the refinement allowance without reevaluating positions. | |
| template<NumericPolicy POLICY> | |
| auto | reject_seed (const double jde, const double target_deg) -> void |
| Report a candidate root time whose elongation misses the target by more than one degree. | |
| template<NumericPolicy POLICY> | |
| auto | newton_method (const double left_jde, const double right_jde, const double target_deg, const std::size_t iterations=toolbox::NEWTON_MAX_ITERATIONS) -> double |
| Refine a root in [left_jde, right_jde), on the TT scale. | |
| template<NumericPolicy POLICY> | |
| auto | first_root_range_after (const double jde, const double target_deg) -> std::pair< double, double > |
| Approximate the range of the first root after the given JDE for a target elongation. | |
| template<NumericPolicy POLICY> | |
| auto | next_root (const double jde, const double target_deg) -> double |
| Find the next root after a known root for the same target elongation. | |
| template<NumericPolicy POLICY> | |
| auto | first_root_after (const double jde, const double target_deg) -> double |
| Estimate, bracket and refine the first root after a JDE(TT). | |
| template<NumericPolicy POLICY> | |
| auto | roots_before (RootGenerator< POLICY > gen, const double end_jde) -> std::vector< double > |
| Collect roots strictly before end_jde, testing each root only after next() advances. | |
Variables | |
| constexpr double | BRACKET_TOLERANCE_DEG |
| How near the target elongation a bracket endpoint must sit before Newton's method accepts it, in degrees. | |
| constexpr double | ESTIMATE_TOLERANCE_DEG |
| How far the mean-rate extrapolation may miss the root and still be worth refining, in degrees. | |
| constexpr double | BRACKET_HALF_WIDTH_DAYS |
| Half the width of the bracket handed to Newton's method, in days. | |
|
strong |
|
inlinenodiscard |
Reject endpoints outside the policy's local branch.
|
inlinenodiscard |
Estimate, bracket and refine the first root after a JDE(TT).
|
inlinenodiscard |
Approximate the range of the first root after the given JDE for a target elongation.
| jde | The JDE on the TT scale. |
| target_deg | Zero for conjunction, a principal elongation otherwise. |
| std::invalid_argument | If the mean-rate estimate lands too far from the target. |
|
inlinenodiscard |
Signed mean-rate miss; conjunction keeps +180°, principal phases fold it to -180°.
|
inlinenodiscard |
Refine a root in [left_jde, right_jde), on the TT scale.
| iterations | The Newton iteration cap; zero retains the bracket midpoint. |
| std::invalid_argument | If the endpoints fail the policy's bracket check. |
|
inlinenodiscard |
Find the next root after a known root for the same target elongation.
| jde | The known root JDE. |
| target_deg | The target elongation, in degrees. |
| std::invalid_argument | If jde is not a root for the target. |
|
inlinenodiscard |
Map elongation to the Newton objective; conjunction uses its local near-360° unwrap.
|
inline |
Report rejected endpoints using the policy's raw or folded elongations.
|
inline |
Report an estimate outside the refinement allowance without reevaluating positions.
|
inline |
Report a candidate root time whose elongation misses the target by more than one degree.
|
inlinenodiscard |
Collect roots strictly before end_jde, testing each root only after next() advances.
|
inlineconstexpr |
Half the width of the bracket handed to Newton's method, in days.
|
inlineconstexpr |
How near the target elongation a bracket endpoint must sit before Newton's method accepts it, in degrees.
|
inlineconstexpr |
How far the mean-rate extrapolation may miss the root and still be worth refining, in degrees.