Surya Siddhanta mean-motion longitudes
astronomy.surya-siddhanta-longitudes
A bounded transcription of mean-motion and manda corrections produces solar and lunar longitudes for the Surya Siddhanta engine.
Assurance
| Level | Current statement |
|---|---|
| Documented and traceable | Yes — the canonical record includes the process and a worked example. |
| Regression or reproduction checked | Linked to 1 repository test file(s). |
| Independently source-supported | Not independently verified at this level; current behavior is regression-pinned. |
Computation method
Method type: formula
Compute mean longitude from elapsed Kali-epoch days and revolution counts, then apply one variable-circumference manda correction for the Sun and Moon.
Process
- Subtract the code epoch, including the Ujjain longitude adjustment, to obtain Kali ahargana.
- Convert ahargana and the body's revolution count into a normalized mean longitude.
- Compute anomaly from the fixed solar apogee or moving lunar apogee.
- Interpolate the manda epicycle circumference between its even- and odd-quadrant values.
- Subtract the arcsine manda correction and normalize to 0-360 degrees; subtract Sun from Moon for elongation.
Formulae
Mean motion and manda correction
K = JD - epoch
L_mean = (K * revolutions / 1577917828 * 360) mod 360
A = (L_mean - apogee) mod 360
C = C_even - (C_even - C_odd) * abs(sin A)
manda = asin((C / 360) * sin A)
L_true = (L_mean - manda) mod 360- K: Kali ahargana in days
- A: anomaly
- C: interpolated epicycle circumference in degrees
- L_true: returned longitude
Worked example
Hyderabad sunrise, 2026-06-11
Inputs
- UT Julian day: 2461202.5077662035
- Sun revolutions: 4,320,000
- Moon revolutions: 57,753,336
Calculation
- Apply the mean-motion formula with the Sun constants and solar apogee 77.333 degrees.
- Apply it again with the moving lunar apogee and lunar epicycle constants.
- Compute elongation as (Moon - Sun) modulo 360.
Result
- Sun: 55.6206770967 degrees
- Moon: 0.5772516191 degrees
- Elongation: 304.9565745224 degrees
Method notes
- The direct floating-point formula is a bounded modern transcription, not a complete traditional procedure.
- The ayanamsa constructor argument is validated but does not alter these longitudes.
Contract
Owning layer: engine-core
Claim kind: deterministic-fact
Time basis: Julian day relative to the engine's Kali epoch constants.
Inputs
- Julian day
Outputs
- solar longitude
- lunar longitude
- Moon-Sun elongation
References and evidence
Evidence classes: astronomical, textual
Verification states: partially_verified, engine_pinned
The algorithm family is source-traced in part; production outputs remain regression-pinned rather than independently compared.
surya_siddhanta.mean_motion_manda
Evidence class: textual
Verification state: partially_verified
Locator: Chapter I verses 29-34 and 53 for revolution counts and mean place; chapter II verses 29-39 for anomaly, epicycle dimensions and the manda equation
Last reviewed: 2026-08-27
Scope: Supports the mean-motion and manda-correction algorithm family and the Sun/Moon revolution and epicycle constants. The implementation uses direct floating-point trigonometry, a fixed code epoch and simplified apogee treatment; this claim does not make it a complete textual transcription or independently verify its modern Panchangam outputs.
Sources
- Translation of the Surya-Siddhanta: A Text-Book of Hindu Astronomy — Ebenezer Burgess; edited with notes by William Dwight Whitney; Journal of the American Oriental Society, volume 6, 1860, pages 141-498; authority type:
primary_text_translation
panchangam.non_drik_engine_outputs
Evidence class: astronomical
Verification state: engine_pinned
Locator: tests/test_surya_siddhanta_engine.py and tests/test_vakya_engine.py
Scope: Regression tests preserve the current Surya Siddhanta and Vakya Pancha-Anga and sky-event outputs. No independent published-Panchangam comparison set is registered, so engine-pinned output must not be described as externally verified.
Sources
- No external source is registered for this claim.
The complete machine-readable source registry is available in provenance.json. A regression fixture or same-code reproduction is not independent verification.
Reproduce and review
Run the linked tests, then the complete offline contract:
python tools/verify_project.pyPublic surfaces
python-librarymcpicswebsitegenerated-data
Limitations
- This is not a complete textual transcription; direct floating-point trigonometry and simplified epoch/apogee constants intentionally differ from a full traditional procedure and from modern Drik positions.
Implementation
- owner:
telugu_panchangam/engines/surya_siddhanta.py—ss_sun_longitude - owner:
telugu_panchangam/engines/surya_siddhanta.py—ss_moon_longitude - owner:
telugu_panchangam/engines/surya_siddhanta.py—ss_elongation
This route is generated from computations.json. Edit the registry and canonical reference prose in the same pull request as a behavior change.