Provisional Vakya lunar longitude
astronomy.vakya-longitudes
A provisional nine-value project offset alters the inherited Surya Siddhanta lunar model.
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
Choose one of nine project offsets from 3,031-day blocks since the code epoch and add it to the Surya Siddhanta Moon; the Sun remains the Surya Siddhanta Sun.
Process
- Compute absolute elapsed days K from the Surya Siddhanta code epoch.
- Select phase index floor(K / 3031) modulo 9.
- Read the corresponding correction from [0, +0.5, +1, +0.5, 0, -0.5, -1, -0.5, 0] degrees.
- Add the correction to the Surya Siddhanta Moon and normalize to one revolution.
- Subtract the inherited Surya Siddhanta Sun to obtain Vakya elongation.
Formulae
Provisional lunar correction
i = floor(abs(JD - epoch) / 3031) mod 9
M_vakya = (M_SS + correction[i]) mod 360
E_vakya = (M_vakya - S_SS) mod 360- i: nine-phase table index
- M_SS: Surya Siddhanta Moon longitude
- S_SS: Surya Siddhanta Sun longitude
- E_vakya: corrected elongation
Worked example
Hyderabad sunrise, 2026-06-11
Inputs
- UT Julian day: 2461202.5077662035
- Elapsed days from code epoch: 1,872,737.2182337036
- Surya Siddhanta Moon: 0.5772516191 degrees
Calculation
- floor(1,872,737.2182 / 3,031) modulo 9 = 5.
- Correction[5] = -0.5 degrees.
- Normalize 0.5772516191 - 0.5 and subtract the Surya Siddhanta Sun.
Result
- Vakya Moon: 0.0772516191 degrees
- Vakya elongation: 304.4565745224 degrees
Method notes
- This documents current code exactly; the table derivation is unresolved and tracked separately.
- The 3,031-day block must not be represented as a verified 248-year Vakya cycle.
Contract
Owning layer: engine-core
Claim kind: regional-convention
Time basis: Julian day with inherited Surya Siddhanta solar longitude.
Inputs
- Julian day
- Vakya correction table
Outputs
- corrected lunar longitude
- corrected Moon-Sun elongation
References and evidence
Evidence classes: astronomical, regional_convention, project_heuristic
Verification states: engine_pinned
No registered source derives the nine-value/3,031-day model; issue 176 tracks source reconstruction and possible correction.
vakya.provisional_lunar_model
Evidence class: project_heuristic
Verification state: engine_pinned
Locator: _VAKYA_CORRECTIONS and _VAKYA_CYCLE_DAYS; research gap tracked in GitHub issue 176
Last reviewed: 2026-08-27
Scope: The current nine-value offset over 3,031-day steps is regression-pinned but has no registered primary-table derivation or published-Vakya comparison set. It must be described as provisional, not as a verified 248-day or 248-year Vākya algorithm.
Sources
- No external source is registered for this claim.
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
- The current model must not be described as a faithful 248-entry lunar-vākya table or as independently verified against a published Vakya Panchangam.
Implementation
- owner:
telugu_panchangam/engines/vakya.py—vakya_moon_longitude - owner:
telugu_panchangam/engines/vakya.py—vakya_elongation
This route is generated from computations.json. Edit the registry and canonical reference prose in the same pull request as a behavior change.