Based on: J. G. Mascheroni — Course on Geodesy
This document makes explicit the spherical trigonometry underlying the calculation of the natal chart and house division (Placidus System), moving the model away from symbolic representation to ground it in celestial kinematics.
To anchor the celestial vault to the observer's local horizon, the engine solves the Position Triangle ($ZP_nE$). The vertices are:
From Gauss's equations applied to this triangle, we obtain the Zenith Distance ($\zeta$), which is vital to know the body's altitude above the horizon:
$$ \cos \zeta = \sin \varphi \sin \delta + \cos \varphi \cos \delta \cos H $$And to locate the exact cardinal position (Azimuth $A$), fundamental for the Ascendant:
$$ \tan A = \frac{\cos \delta \sin H}{-\cos \varphi \sin \delta + \sin \varphi \cos \delta \cos H} $$
The longitudinal advance of the Sun (and planets) on the ecliptic ($l$) is projected onto the celestial equator (Right Ascension, $\alpha$) undergoing a geometric deformation due to the inclination of the Earth's axis ($\epsilon \approx 23.5^\circ$).
The engine calculates this projection using the following geodetic equation:
$$ \tan \alpha = \tan l \cdot \cos \epsilon $$Note: This formula is responsible for the "short and long ascensions". It explains why signs near the equinoxes (Aries/Libra) ascend in radically different times than those near the solstices (Cancer/Capricorn), distorting the size of houses on a two-dimensional plane.
The Placidus system, used by abu_engine, does not divide physical space, but rather the time it takes for a zodiacal degree to travel from the horizon to the meridian.
To calculate the houses, we must first know when a zodiac degree "touches" the horizon. Mascheroni establishes that the altitude $h$ of a celestial body is $90^\circ - \zeta$. Therefore, on the horizon the altitude is zero ($h = 0$).
Substituting $0$ into the general altitude formula ($\sin h = \sin \varphi \sin \delta + \cos \varphi \cos \delta \cos H$), we deduce the fundamental equation of diurnal motion:
$$ 0 = \sin \varphi \sin \delta + \cos \varphi \cos \delta \cos H $$By solving for the Hour Angle ($H$), we obtain the Diurnal Semi-Arc (SAD):
$$ \cos H = -\tan \varphi \cdot \tan \delta $$The core loop of the Placidus algorithm iterates using the Diurnal Semi-Arc to find the ecliptic degrees that divide the time of ascension into three equal parts (Temporal Hours).
Because $\delta$ is a non-linear function of ecliptic longitude $l$, intermediate cusps cannot be isolated with a simple closed-form equation, requiring in the backend root-finding algorithms (iterative numerical methods like Newton-Raphson). This turns the Placidus house division calculation into the operation with the highest algorithmic cost within the core engine $O(K)$, compared to the constant $O(1)$ of simple spatial division house systems.