Trigonometry
The Surya Siddhanta defines a graha's orbit by its mean motion, which means the graha at any given moment is not at its true position. To find the graha's true position, we need to triangulate it. Triangulate comes from triangle, and triangle math is how we find the true position of the graha.
A triangle has three sides and three angles. If you remember the formula a² + b² = c², it says that if you know two of the sides you can find the third. This formula only works for a right triangle, because its two sides never overlap in direction.
This formula is widely credited to Pythagoras (c. 570–495 BCE), but it appears far earlier in the Baudhāyana Śulba Sūtra, a Vedic text on the geometry of altar construction dated to around 800 BCE — two to three centuries before Pythagoras. The text states the same relationship in general form: the diagonal of a rectangle produces an area equal to the combined areas produced by its length and its breadth. Babylonian tablets list specific examples, like 3-4-5, even earlier, around 1800 BCE, but without stating it as a general rule. Because of this, the relationship is sometimes called Baudhāyana's theorem rather than Pythagoras's.
Right triangles are what we are going to use to measure distances and angles, and Baudhāyana's Theorem will help us achieve that.
Same Shape, Different Scales
Every graha travels along some massive circle out in the real sky, at an actual physical size nobody can go out and measure. Fortunately, we don't need to go into space. In fact, thanks to the mysteries of math, we can use a small circle to stand in for the bigger one. This is because some characteristics of circles are always the same no matter what size they are. These characteristics act as a bridge between large circles and smaller ones.
A circle has three main properties we are interested in: circumference, radius, and diameter. If you take the circumference and divide it by the diameter, you get the famous number pi (3.14). No matter the size of the circle, dividing its circumference by its diameter will always give you pi.
If you take half the diameter, you get the radius. You can write this formula to get the circumference:
C = 2πr
So, let's say we have two circles of different sizes. Their circumference formulas can be expressed like this:
C₁ = 2π × r₁
C₂ = 2π × r₂
We can combine the two formulas above to find a way to convert between the two circles.
Let's start with C1's formula:
C₁ = 2π × r₁
If two quantities are equal, multiplying both sides by the same number or expression keeps the equation true.
Ex.: 10 = 10, and multiplying both sides by 5 gives 50 = 50.
Ex. with a formula instead of a number: 10 × (a + b) = 10 × (a + b). Solving it out gives 10a + 10b = 10a + 10b.
With the Multiplication Property of Equality, we can multiply both sides of this equation by 1 / C2. Since we're looking for a ratio, we place C2 as the denominator. This gives us:
C₁ × 1/C₂ = (2π × r₁) × 1/C₂
Any number can be written as the expression x/1, so the formula above can also be written as:
C₁/1 × 1/C₂ = (2π × r₁)/1 × 1/C₂
This lets us multiply the fractions straight across. Working through the math, we get:
C₁/C₂ = (2π × r₁)/C₂
If two things are equal, one can be swapped in for the other anywhere it shows up, since they're really just two names for the same value.
Since we know C2 = 2π × r2, we can swap out C2 for its right-hand side. That leaves us with:
C₁/C₂ = (2π × r₁)/(2π × r₂)
If the same nonzero number appears as a factor in both the numerator and denominator of a fraction, it cancels out, leaving the remaining factors behind.
Ex.: (2 × 3) / (2 × 5) = 3 / 5, since the 2 cancels out of both.
Ex. with a formula instead of a number: (a × b) / (a × c) = b / c, since the a cancels out the same way.
Based on the Cancellation Property, the 2π in our numerator and denominator cancels out. This leaves us with the final formula:
C₁/C₂ = r₁/r₂
This is the formula that will allow us to work with two circles of different sizes: one being our own reference circle and the other being the orbit, which we have data for.
The Reference Circle
The circle we are working with isn't arbitrarily formed. Since we are working with angles and timing, the reference circle needs to be built with the same principle.
Since the sky completes one full rotation every 24 hours, that rotation can be expressed as a circle of 360 degrees. Each degree, in turn, can be expressed as 60 minutes.
Multiplying 360 by 60 gives us:
360 degrees × 60 minutes per degree = 21,600 minutes
We can use the circumference formula and solve for the radius:
C = 2π × r
21,600 = 2π × r
If two quantities are equal, dividing both sides by the same nonzero number or expression keeps the equation true.
Ex.: 50 = 50, and dividing both sides by 5 gives 10 = 10.
Ex. with a formula instead of a number: 10 × (a + b) = 10 × (a + b). Dividing both sides by 10 gives (a + b) = (a + b).
Dividing both sides by 2π leaves us with:
Circumference ÷ 2π = Radius (Trijyā)
21,600 / 2π = 3437.7467 (r)
21,600 / 6.2832 = 3437.7467
r (trijyā) = 3437.7467
Sine and Cosine
A right triangle has one right angle and two other angles. Triangles can come in different sizes while keeping those same angles, and sine and cosine are two ratios that take advantage of that. Sine is the opposite side divided by the hypotenuse. Cosine is the adjacent side divided by the hypotenuse.
Sine and cosine allow us to work out problems using a smaller triangle and then apply the solutions to bigger ones. They are a core part of triangulating true graha positions.
θ = 45°
sin(θ) = Opposite / Hypotenuse = 106.1 / 150 = 0.707
cos(θ) = Adjacent / Hypotenuse = 106.1 / 150 = 0.707
Sine and cosine have a complementary relationship: sin(20°) = cos(70°). Take 90 minus the angle and you get the complement: 70°. Sine is concerned with the vertical component, cosine with the horizontal. This comes into play in the true position formulas, where both the sine and cosine of an angle are needed.
The same triangle viewed from the other angle swaps the sine and cosine values. Angles greater than 90° utilize this swap, which is covered in the Gata and Gamya section below.
sin(60°) = Opposite / Hypotenuse = 173.2 / 200 ≈ 0.866
cos(60°) = Adjacent / Hypotenuse = 100 / 200 = 0.5
sin(30°) = Opposite / Hypotenuse = 100 / 200 = 0.5
cos(30°) = Adjacent / Hypotenuse = 173.2 / 200 ≈ 0.866
Bhuja means "arm" (SS 2.29–30). This is the name given to the angle we start with. Koṭi means "complement," the remaining angle once bhuja is subtracted from 90°. So if bhuja is 30°, koṭi is 60°.
Jyā means "chord," specifically a bowstring: picture an archer's bow bent into an arc, with the string stretched taut between its two tips. That chord is the jyā of the arc, the Sanskrit word for sine.
Combine the two:
- bhujajyā = sin(30°)
- koṭijyā = sin(60°) = cos(30°)
Trijyā
trijyā = 3437.7467
bhujajyā = trijyā × sin(45°) ≈ 2430.7
koṭijyā = trijyā × sin(45°) ≈ 2430.7
Trijyā is the word for radius. It derives its name from the three (tri) rāśis within a 90 degree angle, each 30 degrees (jyā).
The radius we found for the reference circle takes the place of the hypotenuse in the right triangle.
If you have the sine of an angle, multiplying it by the radius gives you the length of the opposite side in arc-minutes. With that, you can find the adjacent side using Baudhāyana's Theorem.
Radius × sin(47°00′00″) = Opposite Side
3437.7467 × 0.7314 = 2514.2
Radius² − Opposite² = Adjacent² (Baudhāyana's Theorem)
3437.7467² − 2514.2² = Adjacent²
11,818,102 − 6,321,202 = 5,496,900
Adjacent = √5,496,900 ≈ 2344.5
Using this technique, we can calculate the arc-lengths needed to find the true positions of the grahas.
Sine Table
In modern times, with the use of programming languages, we can easily calculate a sine value by plugging in a degree and executing the program. The ancients did not have access to this kind of technology. Instead, they crafted a 24-row table they could use to look up the arc-length (jyā) for any angle.
To start with, they worked in pure integers. For trijyā, they used 3438 instead of the decimal we derived earlier. The sine system works only up to 90 degrees because it utilizes right triangles, so we take a quarter of the circle. The SS table has 24 entries, so we divide that 90 degrees by 24. The number 24 has no special significance — it was the sweet spot between accuracy and simplicity for a hand-calculated table.
90° / 24 entries = 3.75° per entry
3.75° per entry × 60 arc-minutes per degree = 225 arc-minutes per entry
An alternate way to reach this is to take the arc-minutes of 90° directly and divide by 24.
90° × 60 arc-minutes per degree = 5,400 arc-minutes
5,400 arc-minutes / 24 entries = 225 arc-minutes per entry
Building the Table
In the Surya Siddhanta, the formula for each sine works like this: the first one is stated directly as 225. Every value after that is calculated from the one before it:
S = jyā₁ + jyā₂ + ... + jyā₍ₙ₋₁₎
jyā_n = jyā₍ₙ₋₁₎ + (225 − (S / 225))
Working through the first three entries:
jyā₁ = 225 (stated directly)
S = 225
jyā₂ = jyā₁ + (225 − S / 225)
= 225 + (225 − 225/225)
= 225 + (225 − 1)
= 449
S = 225 + 449 = 674
jyā₃ = jyā₂ + (225 − S / 225)
= 449 + (225 − 674/225)
= 449 + (225 − 2.996)
= 449 + 222.004
≈ 671
| Index | Angle | Computed Jyā | SS Table | Diff |
|---|---|---|---|---|
| 1 | 3.75° | 225.0000 | 225 | 0.0000 |
| 2 | 7.50° | 449.0000 | 449 | 0.0000 |
| 3 | 11.25° | 671.0044 | 671 | -0.0044 |
| 4 | 15.00° | 890.0266 | 890 | -0.0266 |
| 5 | 18.75° | 1105.0932 | 1105 | -0.0932 |
| 6 | 22.50° | 1315.2482 | 1315 | -0.2482 |
| 7 | 26.25° | 1519.5576 | 1520 | 0.4424 |
| 8 | 30.00° | 1717.1135 | 1719 | 1.8865 |
| 9 | 33.75° | 1907.0378 | 1910 | 2.9622 |
| 10 | 37.50° | 2088.4863 | 2093 | 4.5137 |
| 11 | 41.25° | 2260.6526 | 2267 | 6.3474 |
| 12 | 45.00° | 2422.7717 | 2431 | 8.2283 |
| 13 | 48.75° | 2574.1228 | 2585 | 10.8772 |
| 14 | 52.50° | 2714.0334 | 2728 | 13.9666 |
| 15 | 56.25° | 2841.8816 | 2859 | 17.1184 |
| 16 | 60.00° | 2957.0993 | 2978 | 20.9007 |
| 17 | 63.75° | 3059.1743 | 3084 | 24.8257 |
| 18 | 67.50° | 3147.6529 | 3177 | 29.3471 |
| 19 | 71.25° | 3222.1420 | 3256 | 33.8580 |
| 20 | 75.00° | 3282.3105 | 3321 | 38.6895 |
| 21 | 78.75° | 3327.8909 | 3372 | 44.1091 |
| 22 | 82.50° | 3358.6806 | 3409 | 50.3194 |
| 23 | 86.25° | 3374.5430 | 3431 | 56.4570 |
| 24 | 90.00° | 3375.4073 | 3438 | 62.5927 |
Looking at the 24th entry, it doesn't reach 3438. In hammering away at why 225 doesn't work, I found that the true first sine value is 224.856, not 225. The number 225 is actually the arc-minutes, not a sine value. The true sine value is slightly less than that.
I don't know why this wasn't specifically addressed in the Surya Siddhanta. The text gives us the formula and the complete 24-entry table, but never flags this discrepancy.
This 225 is used both as the first sine and as the divisor, and it's wrong for both jobs. Fortunately, there's a way to find the corrected values.
Corrected Sine Formula
We will once again utilize triangles to determine the correct sine values. Take an equilateral triangle. The angles for each corner are 60° and the length of the sides are 3438. If you cut this triangle in half, you have two right triangles.
The hypotenuse remains 3438 and the opposite is half of that, 1719. Using Baudhāyana's Theorem we can derive the adjacent side.
adjacent² = 3438² − 1719²
adjacent ≈ 2977.395
Equilateral triangle
Cut in half: two right triangles
There would be a tendency to think you can just divide the opposite by half and get the sine for the midpoint between 0° and 30°, but that isn't how it works.
Here is a diagram showing how to derive the correct sine value.
You can repeat this method until you reach 3.75°, which gives us the true sine of 224.856.
That corrects the first sine value. The divisor in the formula (also set to 225) has the same issue. It was taken from the arc step, not derived from the actual geometry of a 3.75° angle.
ratio using divisor 224.856 = 1 − 1/(2 × 224.856) ≈ 0.997776
adjacent(3.75°) = √(3438² − 224.856²) ≈ 3430.64
true ratio for 3.75° = 3430.64 / 3438 ≈ 0.997859
0.997776 ≠ 0.997859 — confirms the divisor is wrong
Using the true sine and Baudhāyana's Theorem, we can find the true ratio for 3.75°, which we'll use as the divisor.
adjacent(3.75°) = √(3438² − 224.856²) ≈ 3430.64
true ratio for 3.75° = 3430.64 / 3438 ≈ 0.997859
2 − 1/D = 2 × 0.997859 = 1.995718
1/D = 0.0042822
D = 1 / 0.0042822 ≈ 233.5274
| Index | Angle | Computed Jyā | SS Table | Diff |
|---|---|---|---|---|
| 1 | 3.75° | 224.8560 | 225 | 0.1440 |
| 2 | 7.50° | 448.7490 | 449 | 0.2510 |
| 3 | 11.25° | 670.7205 | 671 | 0.2795 |
| 4 | 15.00° | 889.8199 | 890 | 0.1801 |
| 5 | 18.75° | 1105.1089 | 1105 | -0.1089 |
| 6 | 22.50° | 1315.6656 | 1315 | -0.6656 |
| 7 | 26.25° | 1520.5885 | 1520 | -0.5885 |
| 8 | 30.00° | 1719.0000 | 1719 | 0.0000 |
| 9 | 33.75° | 1910.0505 | 1910 | -0.0505 |
| 10 | 37.50° | 2092.9218 | 2093 | 0.0782 |
| 11 | 41.25° | 2266.8309 | 2267 | 0.1691 |
| 12 | 45.00° | 2431.0331 | 2431 | -0.0331 |
| 13 | 48.75° | 2584.8253 | 2585 | 0.1747 |
| 14 | 52.50° | 2727.5488 | 2728 | 0.4512 |
| 15 | 56.25° | 2858.5925 | 2859 | 0.4075 |
| 16 | 60.00° | 2977.3953 | 2978 | 0.6047 |
| 17 | 63.75° | 3083.4485 | 3084 | 0.5515 |
| 18 | 67.50° | 3176.2978 | 3177 | 0.7022 |
| 19 | 71.25° | 3255.5458 | 3256 | 0.4542 |
| 20 | 75.00° | 3320.8530 | 3321 | 0.1470 |
| 21 | 78.75° | 3371.9398 | 3372 | 0.0602 |
| 22 | 82.50° | 3408.5874 | 3409 | 0.4126 |
| 23 | 86.25° | 3430.6390 | 3431 | 0.3610 |
| 24 | 90.00° | 3438.0000 | 3438 | 0.0000 |
Forward Lookup
To look up the sine for a given angle, first convert the angle to arc-minutes, then divide by 225. The quotient gives the index of the preceding table entry, and the remainder is used to interpolate between that entry and the next (SS 2.31).
Degrees + (Minutes ÷ 60) + (Seconds ÷ 3600) = Decimal Degrees
11 + (44 ÷ 60) + (48 ÷ 3600) = 11.7467°
Decimal Degrees × 60 = Angle in Arc-Minutes
11.7467 × 60 = 704.8 arc-minutes
Angle in Arc-Minutes ÷ 225 = Decimal Result
704.8 ÷ 225 = 3.1324
Decimal Part × 225 = Remainder in Kālās
0.1324 × 225 = 29.8
Remainder × (Following Entry − Preceding Entry) = Scaled Remainder
29.8 × (890 − 671) = 29.8 × 219 = 6526.2
Scaled Remainder ÷ 225 = Sine Increment
6526.2 ÷ 225 = 29
Preceding Entry + Sine Increment = Kramajyā
671 + 29 = 700
Inverse Lookup
To use the sine table to do a reverse lookup (taking a given sine (iṣṭajyā) and getting the angle in arc-minutes), perform the following steps (SS 2.33):
- Find the two table entries nearest to your given sine, one preceding and one following.
- Subtract the preceding entry from your given sine.
- Multiply that result by 225.
- Take the product from step 3 and divide by the difference between the following and preceding entries.
- Add the result to the preceding entry's index multiplied by 225.
- Divide by 60 to convert the arc from kālās to degrees.
Given Sine − Preceding Entry = Difference
700 − 671 = 29
Difference × 225 = Product
29 × 225 = 6525
Product ÷ (Following Entry − Preceding Entry) = Interpolated Arc
6525 ÷ (890 − 671) = 29.8
(Preceding Index × 225) + Interpolated Arc = Arc in Kālās
(3 × 225) + 29.8 = 704.8 kālās
Arc in Kālās ÷ 60 = Arc in Degrees
704.8 ÷ 60 = 11°44′48″
Gata and Gamya
Gata and gamya are two parts that a radius line splits a 90° span into. Gata is the part already covered; gamya is the part still remaining. If the radius sits at 60°, gata is 60° and gamya is 30° (90° − 60°). However, so far we have only worked with angles within that 90° span. A graha's position can be anywhere in the full 360° circle.
The solution to this is easy. If you divide 360 into four parts (quadrants), each part spans 90°. From there, we just need to find where it lands within its own quadrant's 90° range.
There are a few rules to know about each quadrant. Quadrants one and three use gata to find the sine value. Quadrants two and four use gamya to find the sine value. This is because the sine at 90° equals one (and remember, sine is a ratio). Going from 90°-180°, the ratio moves from one to zero. It goes back up to one from 180°-270° and back down to zero from 270°-360°.
This up-and-down pattern is exactly what gives the 'sine wave' its name.
Use the following to find the correct angle for the sine table:
| Quadrant | Formula |
|---|---|
| 1 | given |
| 2 | 180° − deg |
| 3 | deg − 180° |
| 4 | 360° − deg |