CelestialCalendar 1.0.0 · unreleased development @ 67a7c4c79a4a4a6aa7e703c9e6f0039ae34bee82
Loading...
Searching...
No Matches
house.hpp File Reference
#include <algorithm>
#include <array>
#include <cmath>
#include <cstddef>
#include <cstdint>
#include <format>
#include <limits>
#include <numeric>
#include <stdexcept>
#include "coord_transform.hpp"
#include "earth.hpp"
#include "geolocation.hpp"
#include "sidereal_time.hpp"
#include "toolbox.hpp"

Classes

struct  astro::house::Axes
 The four principal tropical angles, independent of a house division system. More...
struct  astro::house::Result
 The four principal angles and twelve cusps of a house calculation. More...

Namespaces

namespace  astro
namespace  astro::house
namespace  astro::house::detail

Enumerations

enum class  astro::house::System : uint8_t { astro::house::EQUAL , astro::house::WHOLE_SIGN , astro::house::PLACIDUS }
 A supported system for dividing the ecliptic into twelve houses. More...
enum class  astro::house::detail::PlacidusCusp : uint8_t { astro::house::detail::TWO , astro::house::detail::THREE , astro::house::detail::ELEVEN , astro::house::detail::TWELVE }

Functions

auto astro::house::detail::midheaven (const toolbox::AngleDeg &armc, const toolbox::AngleDeg &obliquity) -> toolbox::AngleDeg
auto astro::house::detail::antipode (const toolbox::AngleDeg &angle) -> toolbox::AngleDeg
 Return the opposite ecliptic direction, normalized to [0°, 360°).
auto astro::house::detail::ascendant (const toolbox::AngleDeg &armc, const toolbox::AngleDeg &latitude, const toolbox::AngleDeg &obliquity) -> toolbox::AngleDeg
auto astro::house::detail::placidus_equation (const double longitude_deg, const toolbox::AngleDeg &latitude, const toolbox::AngleDeg &obliquity, const PlacidusCusp cusp) -> double
 Evaluate one Placidus semi-arc equation on its continuous longitude branch.
auto astro::house::detail::placidus_cusp (const toolbox::AngleDeg &armc, const toolbox::AngleDeg &latitude, const toolbox::AngleDeg &obliquity, const PlacidusCusp cusp, const std::size_t max_iterations=PLACIDUS_MAX_ITERATIONS) -> toolbox::AngleDeg
 Solve one Placidus cusp in degrees on the lifted semi-arc branch for the supplied house frame.
auto astro::house::detail::placidus_cusps (const toolbox::AngleDeg &armc, const toolbox::AngleDeg &latitude, const toolbox::AngleDeg &obliquity, const toolbox::AngleDeg &ascendant, const toolbox::AngleDeg &midheaven) -> std::array< toolbox::AngleDeg, 12 >
 Construct twelve Placidus cusps; latitude must lie strictly inside the obliquity's polar circles.
auto astro::house::detail::uniform_cusps (const toolbox::AngleDeg &first) -> std::array< toolbox::AngleDeg, 12 >
 Construct twelve 30-degree cusps from the first, each normalized to [0°, 360°).
auto astro::house::detail::whole_sign_start (const toolbox::AngleDeg &ascendant) -> toolbox::AngleDeg
 Return the start of the 30-degree sign containing the Ascendant; an exact boundary starts that sign.
auto astro::house::detail::axes (const toolbox::AngleDeg &armc, const toolbox::AngleDeg &latitude, const toolbox::AngleDeg &obliquity) -> Axes
 Resolve the horizon/ecliptic angles before any cusp construction.
auto astro::house::detail::calculate (const toolbox::AngleDeg &armc, const toolbox::AngleDeg &latitude, const toolbox::AngleDeg &obliquity, const System system) -> Result
 Resolve axes before cusps, with a physical-obliquity check only for Placidus.
auto astro::house::detail::validate (const double jd_ut1, const double jde_tt, const astro::GeoLocation &location) -> void
 Require finite UT1/TT times, nonpolar latitude and geographic longitude, in that order.
auto astro::house::axes (const double jd_ut1, const double jde_tt, const astro::GeoLocation &location, const astro::earth::nutation::Model model=DEFAULT_NUTATION_MODEL) -> Axes
 Calculate the four principal angles without constructing house cusps.
auto astro::house::calculate (const double jd_ut1, const double jde_tt, const astro::GeoLocation &location, const System system, const astro::earth::nutation::Model model=DEFAULT_NUTATION_MODEL) -> Result
 Calculate the four principal angles and house cusps for an observer and instant.

Variables

constexpr astro::earth::nutation::Model astro::house::DEFAULT_NUTATION_MODEL
 Default nutation model for house geometry.
constexpr std::size_t astro::house::detail::PLACIDUS_BRACKET_SEGMENTS
constexpr double astro::house::detail::PLACIDUS_ROOT_TOLERANCE_DEG
constexpr std::size_t astro::house::detail::PLACIDUS_MAX_ITERATIONS
constexpr double astro::house::detail::ASCENDANT_ROUNDOFF_FACTOR