Repository navigation
pullen_sinusoidal_admission_doctrine
This note governs any future admission of the house systems commonly called:
-
Pullen SD— Pullen Sinusoidal Delta -
Pullen SR— Pullen Sinusoidal Ratio
It exists because these systems previously appeared in the codebase through a ported lineage that was later removed under the repository's anti-leakage and anti-Swiss-smell rules.
This document therefore does not permit restoration of any prior implementation shape.
It defines:
- what these systems are, in source-owned terms
- what they are not
- the governing mathematical objects that a Moira-owned implementation must use
- the singularity and branch doctrine that must be declared before coding
- the explicit anti-lineage constraints on implementation
Primary source descriptions recovered for this admission:
-
Walter D. Pullen, "Sinusoidal House Systems"
- https://www.astrolog.org/astrolog/astsine.htm
- Author's own description of both systems, including the defining formulas and the stated SD limitation / SR all-chart claim.
-
Astro.com Swiss Ephemeris house overview
- https://www.astro.com/swisseph/sweph_ht_i.htm
- Confirms naming, historical attribution, and points to the Swiss Ephemeris documentation sections that describe the mathematical process.
Secondary technical reference:
- Swiss Ephemeris programmer's manual
- https://www.astro.com/ftp/swisseph/doc/swephprg.2.10.pdf
- Useful only as historical corroboration of naming and support status.
- Not a governing executable source for Moira.
Authority rule:
- Pullen's own text is the governing source for the systems' mathematical intent.
- Swiss may be used as a corroborating oracle or historical cross-check.
- Swiss implementation structure must not govern Moira's implementation shape.
These systems are admissible only as ecliptic sinusoidal graduation systems built on the Ascendant and Midheaven anchors.
They are not admissible as:
- borrowed Swiss runtime structure
- undocumented "same numbers, different names" ports
- sphere-division systems with invented non-source geometry
- generic Porphyry variants justified only by software parity
The Moira admission target is:
- obtain the angle anchors through Moira's existing spherical astronomy substrate
- define the relevant ecliptic quadrant arcs explicitly
- derive house widths from the Pullen source laws
- accumulate cusp positions from those widths
- validate the result against source-owned invariants before any secondary parity check
Both Pullen systems share the same governing foundation:
- the ecliptic Ascendant
- the ecliptic Midheaven
- the four ecliptic quadrant arcs between:
- Asc -> MC
- MC -> DSC
- DSC -> IC
- IC -> ASC
Because the four cardinal points occur in antipodal pairs, opposite quadrants share equal arc size and the full figure is determined by one complementary pair of quadrant sizes:
q180° - q
These systems are therefore quadrant-based on the ecliptic, but their graduation law is neither Porphyry trisection nor a space-division law.
If admitted, both systems should be treated doctrinally as:
HouseSystemFamily.QUADRANTHouseSystemCuspBasis.SINUSOIDAL- latitude-sensitive:
True - polar-capable:
True, insofar as Asc/MC remain computable and the source laws continue to define widths even at degenerate limits
They are not to be classified as:
- equatorial-division systems
- prime-vertical systems
- semi-arc systems
- polar-projection systems
- event/root systems
Pullen SD is governed by a sinusoidal delta law over house widths.
Let x be the smallest house in the compressed quadrant and n the delta
increment. Per Pullen's source description, the six house widths across the
compressed and expanded half-figure are:
- compressed side:
x + n,x,x + n - expanded side:
x + 3n,x + 4n,x + 3n
For a compressed quadrant of size q, the defining equations are:
(x + n) + x + (x + n) = q(x + 3n) + (x + 4n) + (x + 3n) = 180 - q
Pullen gives the closed-form solution:
n = (90 - q) / 4x = (q - 30) / 2
Pullen explicitly states that SD fails as a pure sinusoidal-delta model for
quadrants smaller than 30°.
Source-owned doctrine:
- when
q >= 30°, use the exact SD law above - when
q < 30°, the pure SD law is no longer physically realizable with positive house sizes - in that regime, Pullen's own recommendation is to:
- keep the middle house of the narrow quadrant at
0° - bisect the remaining narrow quadrant between the flanking houses
- keep the middle house of the narrow quadrant at
Moira may adopt this degeneracy branch only if it is coded as explicit doctrine, not as a post hoc repair.
If adopted, the implementation must state plainly that:
- this branch is still Pullen-derived
- the result no longer satisfies the ideal sinusoidal-delta law
- it remains the source-preferred extension rather than a Moira invention
Pullen SR is governed by a sinusoidal ratio law over house widths.
Let x be the smallest house in the compressed quadrant and r the ratio
factor. Per Pullen's source description, the six house widths are:
- compressed side:
r x,x,r x - expanded side:
x r^3,x r^4,x r^3
For compressed quadrant size q, the defining equations are:
r x + x + r x = qx r^3 + x r^4 + x r^3 = 180 - q
Pullen gives:
x = q / (2r + 1)
and recommends solving r numerically from the second equation, for example by
binary search.
Pullen's source states that SR works for all charts and quadrant sizes.
Source-owned limiting behavior:
- as the compressed quadrant approaches
0°,x -> 0 r -> infinity- the largest house approaches
180° - the compressed houses collapse accordingly
Moira may therefore admit SR as the stronger all-chart sinusoidal system, provided the numeric solver and limiting behavior are expressed explicitly and deterministically.
The user's requirement that the work "must use spherical trig" is admissible only in the following sense:
- spherical astronomy may be used to obtain the Ascendant, MC, and the underlying ecliptic quadrant arcs
- spherical astronomy may be used to validate that the anchors are true ecliptic angle points
However, the governing graduation law of Pullen SD/SR is not itself a spherical-trigonometric house-family law. It is an ecliptic sinusoidal width law.
Therefore a source-faithful Moira implementation must:
- use spherical astronomy for the anchors
- use original Moira-owned derivation for the sinusoidal graduation
- not pretend the systems are something deeper or different than their source definition
This preserves both truth and ownership.
Because these systems previously entered the repository through a disputed ported lineage, any future implementation must satisfy the strictest possible clean-room rule.
The implementation must not:
- consult or recreate prior removed runtime code
- mirror Swiss helper boundaries or switch-branch staging
- assemble cusps by remembered legacy slot choreography
- justify branch behavior by "that's how Swiss/Astro.com does it"
- use parity against Swiss as the main proof of legitimacy
The implementation must:
- define the compressed and expanded ecliptic quadrants explicitly
- define the width law explicitly from source
- define the degeneracy policy explicitly before coding
- assemble house widths from named doctrinal quantities
- accumulate cusp positions from the angle anchors in a transparent order
- run a smell audit after numerical validation
If the best explanation of the code is still "this is a cleaned-up Swiss translation", the admission fails even if the numbers are correct.
Before either system is admitted into moira/houses.py, the implementation
must prove:
-
Anchor truth
- cusp 1 is anchored to the Ascendant
- cusp 10 is anchored to the Midheaven
- opposite cardinal anchors remain consistent
-
Width-law truth
- SD: house-width differences satisfy the declared delta relations whenever
q >= 30° - SR: house-width ratios satisfy the declared power-of-
rrelations
- SD: house-width differences satisfy the declared delta relations whenever
-
Complementarity
- opposite quadrants sum correctly
- the full twelve-house circuit sums to
360°
-
Degeneracy truth
- SD narrow-quadrant branch behaves exactly as the doctrine states
- SR limiting cases remain finite, ordered, and deterministic
-
Ownership truth
- the implementation can be explained from this doctrine and the source packet without any appeal to inherited software shape
Secondary parity against external engines may be used only after these primary proofs are satisfied.
Current status: runtime admitted
The source packet, governing mathematical objects, and clean-room runtime path are now admitted in the live houses Pillar.
The active implementation remains bound by this doctrine:
- spherical astronomy only for Asc/MC anchor recovery
- ecliptic sinusoidal graduation as the governing law
- explicit SD narrow-quadrant branch doctrine
- deterministic SR numeric solve
- no Swiss-shaped restoration of prior implementation structure