Placidus Problem

Jason_Harvestdancer

Active member
I've been trying to teach my computer how to do Placidus House Calculations in C++, but I've run into a problem. Here is the Placidus equations as I collected them from the internet.

Excerpts from Michael P. Munkasey's "An Astrological House Formulary"

e represents the obliquity of the ecliptic
f represents the terrestrial latitude
ASC is the ascendant
MC is the midhaven
RAMC is the Right Ascension of the MC

F, G, J, K, and L are working terms, unimportant astronomically
H11, etc. stands for the offset to compute the cusp of house eleven, etc.
C11, etc. stands for the value of the cusp of house eleven, etc.

PRELIMINARY CALCULATIONS

The RAMC (the right ascension of the midheaven) is computed from Local Sidereal Time (LST) by converting time units to degree units. RAMC = Sidereal time * 15

MC = ARCTAN ( TAN (RAMC) ÷ COS e )

ASC = ARCCOT (- ( (TAN f * SIN e) + (SIN RAMC * COS e) ) ÷ COS RAMC)

The obliquity of the ecliptic, for any date in modern times, is
calculated by:

e = 23°27'08.26" - 46.845" * T - .0059" * T^2 + .00181" * T^3
where T is in fractions of a century starting from Jan 1, 1900


THE PLACIDIAN HOUSE SYSTEM FORMULATION

1. Compute the RAMC, MC, and ASC in the normal manner. Use the MC as the cusp of the tenth house and the ASC as the cusp of the first house. This is a very fast converging algorithm adapted from a work by M. Vijayaraghavulu.

2. Determine the following house cusp intervals:
H11 = RAMC + 30°
H12 = RAMC + 60°
H2 = RAMC + 120°
H3 = RAMC + 150°

3. Set the Semi-arc ratios:
F11 = 1 ÷ 3
F12 = 2 ÷ 3
F2 = 2 ÷ 3
F3 = 1 ÷ 3

4. Compute the cuspal declinations:
D11 = ARCSIN ( SIN e * SIN H11 )
D12 = ARCSIN ( SIN e * SIN H12 )
D2 = ARCSIN ( SIN e * SIN H2 )
D3 = ARCSIN ( SIN e * SIN H3 )

5. Compute the first intermediate values:
A11 = F11 * ( ARCSIN ( TAN f * TAN D11 ) )
A12 = F12 * ( ARCSIN ( TAN f * TAN D12 ) )
A2 = F2 * ( ARCSIN ( TAN f * TAN D2 ) )
A3 = F3 * ( ARCSIN ( TAN f * TAN D3) )

6. Compute the house cusp positions as follows:
M11 = ARCTAN ( SIN A11 ÷ ( COS H11 x TAN D11) )
M12 = ARCTAN ( SIN A12 ÷ ( COS H12 x TAN D12) )
M2 = ARCTAN ( SIN A2 ÷ ( COS H2 x TAN D2) )
M3 = ARCTAN ( SIN A3 ÷ ( COS H3 x TAN D3) )

7. Compute the intermediate house cusps:
R11 = ARCTAN ( ( TAN H11 * COS M11 ) ÷ COS ( M11 + e) )
R12 = ARCTAN ( ( TAN H12 * COS M12 ) ÷ COS ( M12 + e) )
R2 = ARCTAN ( ( TAN H2 * COS M2 ) ÷ COS ( M2 + e) )
R3 = ARCTAN ( ( TAN H3 * COS M3 ) ÷ COS ( M3 + e) )

8. If Rx is more than 0.1° different from Dx then Dx = Rx and resume at step 4.

9. Compute the individual house cusps as follows:
C11 = R11
C5 = 180° + C11
C12 = R12
C6 = 180° + C12
C2 = R2
C8 = 180° + C2
C3 = R3
C9 = 180° + C3
C4 = 180° + MC
C7 = 180° + ASC

So far so good. Except for one huge problem. Step 5.

I keep getting a problem where the absolute value of ( TAN f * TAN Dx ) is greater than one, and you cannot take the Arcsin of something that has an absolute value of greater than one.

Has anyone encountered this problem? Is there a slightly more accurate set of equations out there that I could perhaps try instead?
 

miquar

Well-known member
Hi. I doubt you'll find anyone on the forum who has any idea about all this I'm afraid. We all use ready made computer software to calculate charts.
 

Jason_Harvestdancer

Active member
This isn't a software or coding problem. It's simply a trigonometry problem. A competent coder can turn any valid formula into a program, but the formula has a bug. That's why I'm hoping we have someone here is is perhaps more expert on this subject of calculating house cusps.
 

Anachiel

Well-known member
You should contact that guy at Halloran Software (halloran.com)
or Allen Edwall at Astrowin (astrowin.org)
 
Last edited:

gbrunati

Active member
¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬
Hi, Jason_Harvestdancer,
I recommend you the Walter D. Pullen's Web Site, it is absolutely open source code; you can download the C language files there.

[ http://www.astrolog.org/astrolog.htm ]

Present,
G. Brunati
¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬
 

Jason_Harvestdancer

Active member
¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬
Hi, Jason_Harvestdancer,
I recommend you the Walter D. Pullen's Web Site, it is absolutely open source code; you can download the C language files there.

[ http://www.astrolog.org/astrolog.htm ]

Present,
G. Brunati
¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬

I should be able to use that to reverse engineer to find the trigonometric formulas so that I can then code it myself. Thanks.

Hopefully someone has a better version of the Placidus equations, and if his program doesn't crash he probably does.
 

Jason_Harvestdancer

Active member
Looking over the code, I remembered why I wanted to do the programming myself. All other programmers repeat the algorithm a set number of times, and I use a while loop for how great the distance is between two variables - if it is greater than 0.1 then repeat loop.

That guy didn't strive for readability in his coding, and left out graph.h from the download.

But here's the main.

It is STILL not a programming problem I'm having. It is a trigonometry problem.
 

Lin

Well-known member
If you go to astrodienst.com you can get all types and varieties of charts in all formats and they are VERY accurate. VERY accurate. and totally FREE.

I can't imagine why you would want to do math (if you don't need to) when it's the delineation that makes the astrology.

LIN
 

gbrunati

Active member
It is STILL not a programming problem I'm having. It is a trigonometry problem.
I feel, dear Jason_Harvestdancer, that your problem is not trigonometrical but philosophical, Metaphysical and existential. You are going around a key point in the astrological houses calculation where worldly and reasonable things are contiguous with the Infinite; for that reason you feel so anxious about the solution of the problem. Not to all the Astrology developers Fate gives the opportunity to show that window to further on, and many of them reject it; do not do it, Jason_Harvestdancer, I lived that experience about 20 years ago. Think that there is a reason why the houses Placidus system has prevailed during centuries. There are many mysteries in it.

Present,
G. Brunati
 

Jason_Harvestdancer

Active member
If you go to astrodienst.com you can get all types and varieties of charts in all formats and they are VERY accurate. VERY accurate. and totally FREE.

I can't imagine why you would want to do math (if you don't need to) when it's the delineation that makes the astrology.

LIN

It is my Virgoan obsession with precision and neatness. I dislike estimating if I do not have to do so. Thanks to computers, the equations should be easy.

I'm also a mathematician, so when I see a problem of this nature it really does irk me tremendously. Unfortunately not only am I rusty on my trigonometry, this isn't at the same level of the trigonometry I took as a prerequisite for calculus.

I can use tables. I can get close. I want to do better than that. I used to calculate the mean local time of birth and the sidereal time of birth by hand because I didn't necessarily trust other peoples programming.

And, as I pointed out, everyone else uses a "for loop" for a specific number of iterations, while I use a "while loop" for a specific precision.

But thanks for the recommendation, I'll see what that site has to offer.
 

poyi

Premium Member
I've been trying to teach my computer how to do Placidus House Calculations in C++, but I've run into a problem. Here is the Placidus equations as I collected them from the internet.



So far so good. Except for one huge problem. Step 5.

I keep getting a problem where the absolute value of ( TAN f * TAN Dx ) is greater than one, and you cannot take the Arcsin of something that has an absolute value of greater than one.

Has anyone encountered this problem? Is there a slightly more accurate set of equations out there that I could perhaps try instead?

I admire your hardwork of learning how to program and calculate the chart manually. The other day when my WIFI network decided to malfunction got no Internet....and no 3G for my iPhone. I instantly felt a bit depressed (Nerd) but then I wonder if any major natural disaster happened that we have no communication or computer devices to use. It will be nice to know how to calculate a chart to do prediction at such critical time. It will keep me busy until the network back online anyway LOL!
 

Lin

Well-known member
I had an "epiphany" many many years ago.

I was just starting to go for astrology classes. I'd learned a LOT on my own and had actually drawn up charts according to a simple system I got from "Horoscope" magazine. My first class was Chart Construction.

And guess what? I redid all my previous charts that I'd thought would be very "Off" and I found that the most I was off on any of the charts was a couple of minutes (degrees, minutes, seconds - not "minutes" as in one hour has 60).

I showed my teacher and she said...."do any of the changes change the facts? the delineation?" - and when I'd studied each chart and compared, the answer was NO!! I was amazed. Like Isaid....it was an epiphany.
LIN
 

Jason_Harvestdancer

Active member
Unfortunately, for the chart I'm doing now, both the first and second house cusp are within a degree of the edge of their respective signs. The Ascendant is at 29°20' Scorpio and the 2nd House is at 0°18' Capricorn.
 

!4C

Well-known member
So far so good. Except for one huge problem. Step 5.

I keep getting a problem where the absolute value of ( TAN f * TAN Dx ) is greater than one, and you cannot take the Arcsin of something that has an absolute value of greater than one.
Oops, I missed this one. It looks like fun. Did you get it? If not, what is the time and latitude for the example you used?

Also, step #8 looks rather suspicious. Can you verify the instructions for this step?

FYI, I used the swiss ephemeris libraries from astro.com for processing custom batches. I was in a hurry and wanted to focus on the high level task.
 

Jason_Harvestdancer

Active member
Step 8 is my own unique twist on this procedure, because most of the times when people describe Placidus they say 'do it so many times'. I'm doing it to a certain level of precision instead, because as you iterate you find that Rx and Dx converge.

Ok, the initial values for my most recent attempt.

August 25, 1992. 1:17 pm, Pacific Daylight Time, 36°10'30" North. Midnight Ephemeris gives the Sidereal Time as 22:14:01 for that day.

But I've gotten this same error for other charts as well.
 
Last edited:

!4C

Well-known member
Step 8 is my own unique twist on this procedure, because most of the times when people describe Placidus they say 'do it so many times'. I'm doing it to a certain level of precision instead, because as you iterate you find that Rx and Dx converge
I think you want to compare R and H and set H equal to R for the next pass.


Ok, the initial values for my most recent attempt.

August 25, 1992. 1:17 pm, Pacific Daylight Time, 36°10'30" North. Midnight Ephemeris gives the Sidereal Time as 22:14:01 for that day.
I think Local Sidereal Time should be ~10:41 for Los Angeles Longitude on that date.
But I've gotten this same error for other charts as well.
When sin/cos angle exceed 90 degrees, make sure you keep track of this offset for the final answer.

I still have to go through your case, but I did another chart and the results were close to what I expected.
 
Last edited:

!4C

Well-known member
I keep getting a problem where the absolute value of ( TAN f * TAN Dx ) is greater than one, and you cannot take the Arcsin of something that has an absolute value of greater than one..
There are two issues:
1) As latitude approaches 90 degrees (the poles), tan(f) will approach infinity.
2) As Dx approaches 90 or 270, tan(Dx) approaches infinity.

I think the first one is typical of house system, but the second is a real issue that you will eventually run into at any latitude. Noting that step 5 is just an intermediate step, I merged equations 5 and 6. With a little simplification I got

M = atan(F*tan(f)/cos(H))

This worked in a Matlab script I made. However, you notice that Dx is eliminated from the equation and that removes the loop process and need for step 4. Despite one pass using the simplified equation, the results looked dead on when compared to astro chart programs. At this point I'm starting to wonder about this algorithm. What was the intent for having all these intermediate steps? Is the point to make the longest solution possible? My hunch was that it could be simplified further, but the would require a lot of ugly trig substitutions. It would be easier to start from scratch.

Out of curiosity, I downloaded the astrolog files listed above and found the CuspPLacidus() function in the Matrix.c file. It looks like a lot less math, but there are still a lot of the unavoidable sign/quadrant corrections along the way. This convinces me that the above algorithm is indeed the scenic route.

Something else I found was that MS Excel does not handle signs for trig functions properly, so you might want to check your tools by testing the trig calculations in the different quadrants.
 
Last edited:
Top