RIYAL calculates astronomical positions and a wide variety of astrological measurements for the following bodies:

- Sun, Moon, and planets.
- Ceres, Pallas, Juno, and Vesta
- all named centaurs and transneptunians
- all numbered centaurs and all named damoclians
- main long-range scattered-disk objects
- all unnamed transneptunians brighter than absolute magnitude 4.0
- additional list of asteroids selected by the user
- solar system barycenter

The internal list of minor bodies included in the program is given in detail below. There is also a detailed section on "accuracy and sources"

The program has also the ability to load the orbital elements of ALL the named asteroids (more than 17,500) and ALL the known distant objects (more than 1,700) and numerically integrate the position of any one chosen by the user to any desired date, as well as to show the complete lists with all the positions sorted in different ways. It can also construct tabular ephemerides by numerical integration of any of the 17500+ named minor planets in its database.

The ephemerides cover the period 4700 BC to 8000 AD for the principal planets, -4700 to +3000 for Pluto, 1 B.C. to 2103 for all the centaurs and transneptunians, and 1701-2018 for the asteroids.

The word “Riyal” is Arabic, and comes from the name of astrologer Abu-l-Hasan ‘Ali ibn Abi-l-Riyal (ca.965-1040), born in Magreb and author, around 1037, of the “Kitab al-Bari ‘Fi Ahkam an-Nugum” or “Liber Completus In Iudiciis Astrorum”, a monumental medieval astrological reference very popular during the Renaissance.

RIYAL is a descendant of a comprehensive astrological program I made for the Atari ST, named “Abenragel”, the latinization of “Ibn Riyal”. Abenragel’s book has a special interest because there is a translation to old Castilian made in 1256 in the court of Alfonso X, “The Wise”, named “Libro Conplido de los Iudizios de las Estrellas”, and published by the Real Academia Española of Language in 1954. This translation, though incomplete, is of immense linguistic and historical interest.


If you downloaded this program from a place that is not Riyal’s homepage (www.expreso.co.cr/centaurs), then you probably have an old version. Please check the end of this “readme.txt” file for information. The “Riyal_for_Windows” package contains 16 files:

     ephemeris files:
     - long.fle
     - asteroid.fle
     - pluton.fle
     - vsopm.fle = arguments and coefficients of VSOP87A
     - vsop2000.fle = arguments and coefficients of VSOP2000
     - distant.dat = Astorb orbital elements of all distant objects
     - named.dat = orbital elements of all numbered asteroids
     world.map = database of world map coordinates
     readme.html = this document
     riyal32.exe = the program’s executable
     riyal.cgf = personal configuration defaults (editable)
     riyal32.fon = the font used to draw the wheel
     sample.csv = sample chart database (editable)
     GfaWin23.ocx = GFA Basic Windows library
     ancient.bmp = picture of extended window (William Blake's “Urizen creating the Universe”)
     new.txt = cumulative list of changes from previous versions

RIYAL FONT. In order to see the graphic wheels, you must install “riyal32.fon”. Use the “Fonts” facility in the Windows Control Panel and install this font in the Windows “fonts” folder, or simply go to that folder with the Windows Explorer and copy the font there. If there is already one font with the same name and characteristics, you will have to delete it first before you can copy the new one, so keep this in mind when you are updating the font.

Riyal is programmed to work with the default “small fonts” (96 dpi) display option of Windows. It uses for all its text output the FIXEDSYS and TERMINAL fonts and the OEM character set that come with every Windows installation. The correct display can be checked looking at the screen samples here:

If your Riyal text display looks different or is marred, it means that your display driver is not standard or properly configured and you will have to change or control the display options yourself, if that is possible.

SCREEN RESOLUTION. Riyal automatically extends the height of the program's window according to the screen vertical resolution, and when drawing graphics and showing some of the spreadsheet ("listview") lists it will expand also the width of the display to almost fullscreen. This can be disabled so that everything is shown in the usual 800x600 window by clicking on "Disk-->extend screen" in the menu; this option acts as a toggle between "fixed-size 800x600 window mode" and automatic or forced adjustment to higher screen resolutions.

CONFIGURATION FILE. When Riyal starts, it reads a file called “riyal.cgf”, which contains values of the time zone, longitude and latitude of the user, default house system, and flags that instruct the program whether to work with centaurs, delta-t, geometric positions, topocentric or geocentric positions, the sidereal year and sidereal bija corrections, absolute sidereal positions,  node and apogee, ayanamsa, etc. This file must be edited in order to have the desired defaults. There are 14 entries (or optionally 17), one line each:

1- The first line is the amount to be added to your computer time in order to have GMT (with a “-” sign if you are ahead of Greenwich).

2- and 3- The second and third lines are the strings for the geographic longitude and the latitude, respectively, used by the input routines. They are formatted and must have an exact number of spaces, with leading zeroes (or spaces) where necessary (002w33, _12e29, 102w33, _9n56, 18s24...).You can add "00" at the end to signify arcseconds in the latitude or longitude: "102w3254", "18s2304"...

4- the fourth line is a flag: and must be “0” (if “1” the program will calculate the true geometric positions of planets, as opposed to the “apparent” position corrected for light- time which are normally used).

5- the fifth line (must be “1”) is a flag and instructs the program to work with delta-T or Universal Time (a “0” here would assume “Ephemeris Time”).

6- the sixth line is a flag and is either “1” (sidereal reference frame, i.e., precession-corrected) or “0” (tropical reference frame, uncorrected).

7- the seventh line is a flag and is either “1” (Fagan/Bradley sidereal positions) or “0” (tropical positions).

8- the eigth line is a flag and instructs the program whether to work with geocentric (”0”) or with topocentric (”1”) positions.

9- the ninth line refers to the lunar node: “0”(=none) ignores it, “1” uses the mean node, and “2” uses the true or osculating node.

10- the tenth line refers to the Black Moon or lunar apogee: “0”(= none) ignores it, “1” uses the mean, and “2” uses the true or osculating apogee or Black Moon.

11- the eleventh line is the default house system: “Placidus”, “Campanus”, “Koch”, etc.

12- the twelveth line is a flag and tells the program whether to start the session with only the normal 10 planets (”0”) or with the normal planets plus the centaurs (”1”).

13- the thirtheenth line refers to the Ayanamsa to be used when working with absolute sidereal positions. The list of choices is as follows:

      "1" = Fagan/Bradley Synetic Vernal Point default)
      "2" = Lahiri (anti-Spica)
      "3" = B.V. Raman
      "4" = Babylonian (Mercier, culmination of Eta Piscium)
      "5" = Sassanian (Mercier)
      "6" = Galactic Center at 0 Sagittarius.
      "7" = Sundara Rajan (beta Delphini)
      "8" = K.S. Krishnamurti
      "9" = user-defined

14- the fourteenth line refers to the drawing style of the graphic wheel. "0" is the normal wheel, where all the houses are shown of the same size, "1" activates the "continental" (European) style, with unequal-houses and the planets distributed along the zodiac.

optional lines:

15- the fifteenth line is the path to the Swiss Ephemeris directory that contains the individual "se" ephemeris files. This is needed only when you already have a Swiss Ephemeris installation and want to use "Tables --> Swiss Ephemeris" (see explanation below) or "Tables--> test position accuracy".

16- and 17- the sixteenth and seventeenth lines are the user-defined ayanamsa and the julian day of its epoch. These are necessary only when a "user-defined" ayanamsa (ayanamsa choice #9) needs to be saved permanently.

All these options (except the last two) can be changed later at run-time by means of the “Options-->Global defaults” menu choice, except the house system which is changed in the “Houses” menu or through the “House Cusps” routine. The name of the default house system must correspond to the first 4 letters of the names used in the “Houses” menu of the program.

That’s it. You can make a shortcut to “Riyal32.exe” and put it in your Desktop.


When the program is started, it identifies itself. Press “Enter” and go to the Menu. You will see only a few options active. The rest will become active after the first chart has been calculated, which is done in “Menu-->Radical” or by pressing “F1”. You can use the keyboard instead of the mouse. It is a lot faster and comfortable (to me at least). The following keys are programmed:

          F1  -  New Radical. Same as "Menu-->Erase-->Radical"
          F2  -  Astronomical Data
          F3  -  Full Display
          F4  -  Sort All
          F5  -  normal wheel
          F6  -  white wheel
          F7  -  normal wheel without centaurs
          F8  -  white wheel without centaurs
          F9  -  global defaults
          Esc  -  Quit

You can also use the “Alt” key plus the initial letter to access the Menu options without using the mouse, if you want, or activate the menu bar and move the arrow keys by pressing “F10”. These are operating system defaults.

When the program asks for a date, you are given default values to be edited, taken either from your computer date and time and “riyal.cgf”, or from the previous calculated chart. To enter new data, you must overwrite the default date, or erase it and write a new one, and then press “Enter”. Riyal accepts dates from 4712 BC to 8000 AD. The main centaurs and transneptunians are calculated from Jan 1, 1 B.C. to May 24, 2103 AD., and all the remaining objects will appear from February 5, 1701 to September 10, 2018.

Take notice that the input is formatted, with “day” first (2 digits), then “month” (2 digits) and then “year” written fully (4 digits). You can use anything as separator in the input strings, and blanks can be entered instead of zeros, but the number of spaces must be maintained. You can over-write the default values, or delete them and write the whole string again.

The "DATABASE" button in the date input dialog allows to load chart data from the user "charts" database (if available) any time you use this dialog, as in calculating a composite, a Davison chart, or in "Comparison" if you want to do synastry. The "HERE NOW" button will give your computer date and time automatically converted to GMT, and will re-install the user longitude and latitude, resulting in a "chart for the moment" and place that you specified in the "cgf" configuration file.

After you enter the date and press “Enter”, the program will ask for the time. If an input error message appears after pressing "Enter" it is because you are entering incorrect data and the program will keep waiting for your correct input. You can cancel the dialog clicking on "Cancel" or pressing "Esc" and then "F1" if you want to start again.

After the time is entered, the program asks for the geographic coordinates. If desired, you can add arcseconds in longitude or latitude at the end of the string. For example: for latitude you write "41N24" (or "41n24 or "41 24" or "41.24 -- with anything as separator except "S" or "s" which is interpreted as "-" or south latitude), but you can optionally write "41N2413" (no separation between arcminutes and arcseconds), which is interpreted as 41 degrees 24 minutes 13 seconds. For longitude you write "73W27" (same rules as in latitude but with "E" or "e" to indicate a negative or east longitude) , but can optionally write "73W2647", which is interpreted as 73 degrees 26 minutes 47 seconds. To check your input in arcseconds, go to "Menu-->House Cusps".

Then the program asks for the name you want to give to the chart. You can leave this blank and simply press “Enter”, or you can write the name you want to appear before the header as a title in the file output. Capital letters are not necessary because the program will capitalize all the letters. This name appears only in the file output and in the white wheel.

After you have entered the data, the results are shown in sorted vertical order from 0 to 30 degrees, longitudes only. Only the positions of the best-known centaurs and tno's are shown in this main sorted display; for the full set of planets and of coordinates you must use the “Full display” option. After this first listing of positions, the full menu will be available.

The input data always appears in the display header in inverse video. Please note that if sunrise or sunset time is chosen, the corresponding UT will not appear at first in the planets listing. You can check the UT corresponding to sunrise or sunset the second time the header appears in the screen.

To erase the radix in order to calculate a new chart, click on "Menu-->Erase" (the last entry in the Menu). This will ask you for confirmation first. For speed and no confirmation press "F1", which will automatically erase it and ask you for the new data.

The data you enter each time becomes the default until you enter a new set. Date, time, name, longitude and latitude input strings are re-used until they are changed by the user again, i.e., the data entered or loaded will always appear in the input dialogs until you enter or load new data. If you need to recover your default longitude and latitude (user default configuration), use the button "HERE NOW".

SAVING AND RETRIEVING DATA: To save the chart data, use "Disk-->Save data" in the menu; you will be asked the name under which the data will be saved, showing the default you had chosen when you entered it the first time.

Data is saved to a file named "charts.csv" in plain text, coma-delimited format, one line per record, which allows you to manually delete undesired records or edit their names. Clicking on "Disk --> edit data" will load the file into Notepad for editing. There is no limit to the amount of records you can save. (You can store tens of thousands if you want). If no file with the name "charts.csv" exists, Riyal creates a new one, otherwise the new record will be appended at the end of the existing file.

To retrieve a chart, use "Disk-->sample database" or "Disk-->personal database". This will open a scrolling window showing the names of all charts previously saved in alphabetical order ("personal database") or the sample charts that come with the program ("sample database"). You select a name by left-clicking on it or with the arrow keys, and to close the window and calculate the chart selected you must double-click a name or press "Enter". Right-clicking on the window or pressing "Esc" or the space-bar closes the window and exits the routine without loading anything.

The package comes with a small, plain-text and comma-delimited database file named "sample.csv". If no ".csv" database is found, the program will notify you and the routine will end. The installation package ("Riyal_for_Windows.exe") does not include a "charts.csv" file, so your personal charts database will never be over-written if you unpack the files to the existent directory when updating Riyal.

A simple procedure to edit your chart database data is as follows:

1-) load the chart
2-) press F1 to re-start the input sequence
3-) adjust the data
4-) save the adjusted data. It will be appended at the end of the "charts.csv" file
5-) click on "Edit data". This loads the database into Notepad
6-) delete the previous entry and keep the last (new) appended line
7-) Re-Save the file and close Notepad.

CORRUPT DATABASE. If after editing the database cannot be loaded and is said to be "corrupt", it probably is because you saved it without a carriage return at the end of the file. Load the database into Notepad again, position the cursor at the end of the last line, and press "enter" so that the cursor is left at the beginning of the next line, deleting everything after it; save it again.

NOTE: The ".csv" extension means the file is in a universal format that can be recognized by any database or spreadsheet software. The fields that appear in the file are: (1) julian day minus 1721089, (2) latitude (decimal), (3) longitude (decimal), and (4) name.

PRINTER AND FILE OUTPUT: This works as a re-direction of the output to the printer or to a file, except that (in most cases) everything is also sent to the screen for monitoring. You must arrange the redirection first through the corresponding menu option. When choosing a file for output, the file selector with “Riyaldat.txt” as default appears. After you choose your output file or create one, it gives you a confirmation notice with the complete path of the file.

The message "output sent to file" will appear near the center of the screen while the file or disk output takes place and while the program waits for user input. It can be eliminated simply by clicking on it.

Output to a file is optional, but it becomes necessary under Windows 95/98/ME when the listings of some of the routines becomes too large and the Operating System truncates it in the display window. This limitation does not exist in the newer versions of Windows.

There are 2 routines that send information to the printer. The first is when you are seeing the graphic wheel (if you press F6 or F8 the wheel will be in white background in order to be suitable for printing). When you are looking at the wheel, you press “W” or right-click to see the small pop-up menu. Immediately the printing starts. The wheel printouts look great as far as I am concerned, and soon it will be printed with the astronomical data (Black Moons, etc.) and the date of the printout added below it in small letters.

The second printing option sends all the tabulations of a specific (non-graphic) routine instantly, once the redirection option has been set. However, Windows multitasking architecture prevents the text information from being sent immediately to the printer. The information is “queued” or “spooled” until I send the “close document” instruction, so the printing starts as soon as the routine is over, when you return to the main menu and the black screen. There are other more convenient ways of doing the printing that I still have to learn and that will result from input by users. This is an experimental way of using the printer that works fine, but will be improved or replaced as I learn how to do things better under Windows.

COLOR USAGE: The angles and the true lunar node appear in white, while the planets, Sun, and Moon in yellow, and you will see in pink the centaurs with well-known orbits. The transneptunians appear in cyan, and the damocloids in green. Closer and faster asteroids are shown in blue. Between 1990 and 2010 very recently discovered objects appear in normal light-gray, but outside this time-span, some will appear dark-gray, meaning that their positions are not certain and should not be used.

GENERATE EPHEMERIDES: You are given the choice of generating multiple-object ephemerides of up to 7 planets, and single-object ephemerides of any of the planetary bodies included in the program. If you simply press “Enter”, Riyal will produce a one-object only ephemeris by default. You will be asked to choose the starting and ending dates and the interval of tabulation. The quantities included are: geocentric longitude, latitude, distance, and velocity, heliocentric longitude, heliocentric distance, and the heliocentric “angle of crossing” (the angle between the direction of a planet’s motion and the direction perpendicular to the radius vector).

If the Moon is chosen the program will give its distance in Km and the positions of its ascending node and apogee. This routine can produce ephemerides of the Lunar Node and the Black Moon, either true or mean depending on the program's configuration. Only longitude, latitude, declination, distance in kilometers and velocities are shown in this case. Pressing “P” will scroll backwards in all the 6 different ephemeris types, while “ESC” interrupts the routine.

Apsides and Nodes: this option tabulates the planet’s osculating heliocentric node and aphelion, the osculating geocentric ascending and descending nodes, and the osculating geocentric empty focus. If it is the Moon, it tabulates the geocentric osculating apogee (“Oscu”), the mean apogee (“Mean”), the local topocentric osculating apogee ("TopoA"), the local topocentric osculating perigee ("TopoP"), the local topocentric osculating Empty Focus ("TopoF"), the natural or interpolated apogee (“n.Apog”), and the natural or interpolated Perigee (“n.Peri”) of the lunar orbit.

Group of Objects: This handles the regular planets, the centaurs, and the main transneptunians. It produces ephemerides for any length of time that can be seen on the screen or sent to a file. With "select group" you can choose at will up to secen planets to generate the group ephemeris with any desired tabular interval.

One Pair: this option makes an ephemerides of only two bodies, at any interval in days (0.01, 0.1, 0.25, 1, 5, etc.) and for any time period desired (if the internal ephemerides range supports it), and in any combination of regular planets and/or centaurs and main transneptunians. Three additional columns show their distance along the ecliptic (”ecl.”), their true angular distance in the sky (”true”), and their midpoint ("midp").

Precession: this option generates ephemerides for any length of time of the sidereal Zero Point (as defined by the ayanamsa previously chosen by the user), the position in the IAU-defined constellations of the vernal point, the longitudes of the Galactic Center, galactic pole, and the axis of rotation of the moving over the fixed ecliptic.

Physical Ephemerides: this generates the usual ephemerides for physical observation. The quantities are: illuminated fraction ("phase"), phase angle ("angle"), brilliance of the disc ("brightness"), stellar or visual magnitude ("magnitude"), and the elongation. The brilliance is the quantity [ k · f^2 / v^2 ], where "k" is the phase angle and "f" and "v" are respectively the geocentric and heliocentric distance of the planet.

Solar System Barycenter: this produces ephemerides of the solar system barycenter. It gives heliocentric ecliptic longitude and latitude of date, angular velocity in longitude, and distance in 1-) astronomical units from the Sun and 2-) kilometers measured from the Barycenter to the tip of the solar radius. A negative distance in Km indicates the periods during which the Barycenter is inside the Sun, a positive distance when the Barycenter is outside.

Fixed Star: this makes an ephemerides of the apparent position a single fixed star selected from any of the 1078 stars in the internal catalog (just scroll the list horizontally and double-click on the desired star). The quantities listed are ecliptic longitude, latitude, declination, and right ascension.

User-defined objects: Riyal can make ephemerides of a user-defined object with the orbit that has been entered through the “user defined osculating orbital elements” dialog. To do it one chooses the planet “Aux” highlighted in green. If the user orbit is not defined a warning will appear and the routine will end smoothly. The ephemerides will be "2-body" and will not account for planetary perturbations, so they will loose accuracy over time and for dates away from the present should be considered approximate.

NUMERICAL INTEGRATION: Accurate numerically integrated tabular ephemerides of any named minor planet chosen by the user will be displayed, for the time interval between the epoch of the osculating elements and the chosen target date. There will be a "blind spot" of several days before and after the date of osculation, so if ephemerides only for the present time (1 or 2 years) are needed, it is recommended to use instead the 2-body "user-defined" method. Results are accurate at the arcminute level for a few centuries before and after the year 2000. Very fast bodies that come close to the Earth (NEO's) requiring very short integration steps are excluded.

INPUT ORBITAL ELEMENTS: You can input the elements manually or you can do it automatically through a special file ("named.dat") that includes the osculating elements of all the more than 13,000 named asteroids. You will see the elements of 1 Ceres appearing as default. Click on "1 Ceres" (upper left). If available, the program will display the list of names in a window at the left arranged in columns which you can scroll. When you click on a name (or when you select it with arrow keys and then press "Enter"), its orbital elements appear in the dialog. You can click and display as many as you want. To calculate, double-click or right-click on it in the list or press "Esc"; the left window disappears and you can choose either "integration" (with your choice of target date/time and time-step for the numerical integration), or "calculate" (motion along the orbit fixed at epoch).

The file "named.dat" is a simple text file. It can be edited, lines can be added or removed, etc. It consists of osculating orbital elements taken from the Astorb database. Each line is an asteroid, consisting of 9 quantities or strings separated by commas (spaces don't matter): 1- number, 2- name, 3- epoch of osculation, 4- mean anomaly, 5- argument of perihelion, 6- ascending node, 7- inclination, 8- eccentricity, 9- semimajor axis.

The result of the numerical integration is very sensitive to the step-size you choose. You can change the default 12 days and experiment with other time intervals. The optimum step-size is that after which there is no significant change in the result when you use a shorter step. Keep in mind that this is only an elementary numerical integration procedure and that errors will accumulate over time in direct proportion to the orbital velocity of the object.

You can also input any desired (J2000) elements manually (in this case just ignore the name in the upper left, which cannot be edited manually). Only dates from A.D. 600 to 3400 are accepted for the numerical integration, but errors accumulate rapidly so it is recommended that you use it for a limited time range of a couple of centuries only.

ALL THE NAMED (17,500+) ASTEROIDS: All the objects in "named.dat" and the main planets are shown here in their longitude, location in the IAU constellations, latitude, and declination, with an additional column showing the orbital period in years. You can sort the list according to any of the 5 columns by clicking on the corresponding header. The asteroid positions shown are accurate several years before and after the epoch of the osculating elements and begin to loose accuracy outside that range. They can be safely used for the examination of current transits within a few years, but should be taken with care, as only approximations, several years before or after the osculating epoch.

For accuracy outside the osculation range, you can perform a quick numerical integration right-clicking or double-clicking on the desired object or selecting it and then pressing "Enter" or the space bar. After the integration, a small window appears at the center of the screen showing the improved coordinates. The integration in this case is done with a pre-determined step-size.

ALL THE DISTANT (1,700+) OBJECTS: All the objects in the file "distant.dat" --the known damoclians, centaurs, and transneptunians (including those that have not been numbered) are shown here in their longitude, location in the IAU constellations, latitude, and declination, with additional columns showing heliocentric distance, orbital period, aphelion and perihelion distances, estimated diameter (based on an assumed albedo), and the Astorb database CEU ("current ephemeris uncertainty"), CEU rate of change per century, and the peak ephemeris uncertainty after 10 years. The list can be sorted according to any of the columns by clicking on the corresponding header. The coordinates are accurate within a couple of decades before and after the epoch of osculation and begin to loose accuracy beyond that range. You can obtain more accurate positions through numerical integration by right-clicking on the desired object, or selecting it and then pressing "Enter" or the space bar.

The file "distant.dat" is a portion of the Astorb database containing the orbital elements and accuracy estimates of ALL the known objects with semimajor axis beyond that of 944 Hidalgo (period = 13.8 years). It can be easily updated by adding or replacing the corresponding Astorb database lines, that the user can download directly from the Astorb site at ftp://ftp.lowell.edu/pub/elgb/.

HARMONICS: The routine "Harmonics" asks you for an integer between 1 and 999 and calculates the corresponding harmonic or age chart. If harmonic "9" is chosen, you are given the option to produce a "navamsa" (beginning with 0 Aries) or a Fagan's "novien" (beginning with 0 Taurus) chart or "sexascope". The routine "MICROSCOPE" calculates a harmonic chart based on the unique angular relationship between any chosen pair of planets, so that the two planets appear in exact conjunction.

UNUSUAL DEEP SPACE: This presents in tabular form Philip Sedgwick's collection of (in his own words) "quasars, odd pulsars, black holes and notable galactic phenomena", that he generously gave to be included in Riyal. The display includes the principal planets, and shows the paranatellontas in addition to the longitude, latitude, right ascension, and declination. To find the planet/point configurations, click on the header labelled "Longitude" (for the conjunctions) or in "Zodiacal" for all the 30-degree aspects, or in "Declinat" for the parallels, and so on. The columns labeled "MC", "IC", "DESC", "ASC" are the physical temporal distances to the angles, that you can use to find the paranatellontas. For more information and details you can visit http://www.philipsedgwick.com/

SWISS EPHEMERIS: Riyal does not use the Swiss Ephemeris and does not need it, but it can take advantage of it to calculate the positions of any desired number of minor planets, limited only by the availability of the numerous Swiss Ephem external files in your hard disk. In order for this to work, you must personally make sure of the following: 1-) the file swedll32.dll is in the Riyal directory, 2-) there is another directory somewhere with the individual Swiss Ephem ephemeris files that you desire installed, and 3-) the path to this directory must be the 15th line in "riyal.cgf", like this:

(line 15) C:\SWEPH\EPHE; path to Swiss Ephemeris files

The SE path can be modified through the "Options-->global defaults" dialog. If there is something wrong with the Swiss Ephemeris installation or if there are missing or damaged Swiss Ephemeris files Riyal gives the necessary error messages and continues working without it.

The program takes a while going through your Swiss Ephemeris folder, and you will see a progress bar and the number of asteroids scanned until the search ends. The search for external asteroid ephemeris files can be interrupted pressing "Esc". If there is no ephemeris file, the asteroid will not appear in the list. The main planets, the angles, the 8 Uranians, plus Ceres, Pallas, Juno, and Vesta are always displayed. The list can be sorted according to any of the columns if you click on the corresponding header.

Once you have properly installed the Swiss Ephemeris, you can take further advantage of it through a special routine under "Tables --> test position accuracy" that compares Riyal's internal positions with those of the Swiss Ephemeris with both programs in "Ephemeris Time" and "True" (geometric) heliocentric J2000 and geocentric "of date" positions mode (the comparisons in the "accuracy" section were calculated this way).

THE HOUSE CUSPS ROUTINE: house cusps calculated with all the different house systems are sequentially displayed by pressing any key. The “P” key cycles backwards and the “Enter” and “Esc” key exit the cycle and return you to the menu. The last system displayed before leaving the cycle will be used by all subsequent calculations and by the wheel drawing routine. The middle of all the houses calculated in the same rigorous way as the conventional cusps is also displayed. If the houses are above the Polar circle and Riyal finds that it cannot be done, it warns you and calculates using the Alchabitius system.

THE WHEEL DRAWING: Pressing “F5” will draw a colored graphics geocentric wheel. If “F6” is pressed instead, the wheel will be drawn over a white --not black-- background. The drawing can be saved to a file by right-clicking or pressing “S”. Pressing “F7” and “F8” will draw the same wheels but with only the main planets and the lunar node in them. The wheels can be drawn in either American (house distrubution) or European (zodiac distribution) styles, depending on how the program is configured by the user. Pressing "W" on a white wheel ("F6" or "F8") will send it directly to the printer.

The planets shown in the wheel are by default only those that have received a name and the lunar node, but the user can select or deselect which planets (up to a total of 48) are shown using the "Options-->planets in wheel" facility in the menu. This selection will also affect the planets that are shown in the main display window and in many of the routines.

THE DOUBLE WHEEL: When there is a second set of positions in addition to a radical (transits, Davison chart, solar and lunar returns), you will be given the option to draw 1) a normal single wheel with the transit positions and angles, 2) a bi-wheel with the radical angles and the radical positions in the inner wheel, and 3) a bi-wheel with the transiting angles instead of those of the radix.

The border of the "American style" house-distribution wheel represents the signs of the zodiac in alternating color. If the program is working in “absolute” sidereal mode, then the border circle represents the unequal constellations defined by the I.A.U in 1930, with Scorpio and Ophiucus shown as one single constellation occupying the 8th place. The border of the "European style" zodiacal wheel represents the signs of the zodiac divided in segments of 5 degrees.

WHICH OF THE 2 RADICALS?: When there is a second set of positions in addition to a radical (transits, Davison chart, solar and lunar returns), the program will ask at the start of many of the routines which of the 2 sets do you want to use in the calculations. Choosing “same” (the default) will keep the 2 sets, and it will often show them both at the same time. Choosing “radical” will erase the second set from memory and restore the program to radical-only calculations.

SAVING GRAPHICS: all graphic charts can be saved to the Clipboard or to a file through the menu that appears when you right-click on the screen. Alternatively, it is useful to remember that one can save to the Clipborad in graphic format any of the Riyal screens, graphic or not, by pressing “Alt”+”Printscreen” (this is a Windows operating system feature).

ASPECTS AND PHASES: This routine calculates mutual distances. The first column gives the phase (new=1, crescent=2, first quarter=3, gibbous=4, full=5, disseminating=6, last quarter=7, balsamic=8). Phases are established with the perspective of the faster-moving planet cycling with respect to the slower-moving, and the parameter used to assertain this is the semi-major axis of the orbit. The second column gives the TRUE angular distance between the two points, as they would be seen in the sky. The 3rd column gives the distance along the ecliptic, which is the one used to measure the aspect. The fourth column, if applicable, gives the aspect and its orb. A fifth column, when applicable, lists the parallel or contra-parallel of declination and its orb.  The  listing can be sorted according to any of the tabulated items by clicking on the column header.

PRECESSED POSITIONS: Transiting positions as well as solar and lunar returns are calculated by default in a sidereal reference frame that shows positions in the "siderealized" tropical zodiac of the radix, usually known as a "precession-corrected tropical zodiac". The display shows the radical positions in the first column and the precession-corrected positions in the second column, with the amount of accumulated precession in the title field. (Likewise, progressions and solar arcs are calculated using the sidereal --not the tropical-- year. This sidereal framework can be disabled with a flag in the “riyal.cgf” file or through the “Options-->Global defaults” menu option at runtime.

COMPARISON: This routine is used to monitor conventional transits and to compare charts. It can calculate regular direct or converse transits and “type II” transits, where the targeted time occupies the midpoint between the radical and the transiting positions. Type II transits move twice as fast as the normal direct or converse transits. The graphic wheel shows by default the transiting chart with the radical positions inside.  The second wheel will be shown precessed if Riyal is working in its default “precession-corrected” mode.

TRANSIT SEARCH: This is limited to one-pair combinations. Transits can be calculated in longitude, declination, or right ascension. If only one planet is chosen, the program calculates the transits to its own radix position. Transit-to-transit hits as well as transits to a user-defined position in the radix can also be calculated. The user is asked to choose the coordinate, the pair of planets, the time-range, and the time-step in days (and in the case of geocentric longitude, the desired harmonic aspect pattern). A default time-step is used if one leaves the default as "1". 

This routine can be used to calculate the time of returns and demi or quarti-returns. In the present version, only the angles, centaurs and transneptunians can be chosen as radix points. Transiting points can include any of the asteroids and damocloids. Converse transits are always included and are listed first in reverse order, followed by the direct transits.

For the years +600 to +3400, this routine uses a very fast "low precision" formula for the Sun and the planets Mercury through Neptune which will give accurate results most of the time, but if a very exact time of a geocentric transit in longitude is needed (i.e., to the minute or to the second of the day in question), the user can choose the "high precision longitude" option. This works only for geocentric longitudes, and will make the search 10 or 20 times slower, and in most cases, the difference will not be significant. It is recommended that you always use "high precision" for the accurate calculation of returns.

It is important to remember that Riyal works by default in "precession-corrected" mode, so the exact time of a transit will be different from a merely tropical, un-corrected calculation. If the user wants to work with exclusively tropical positions, the "precession-corrected" option of the program's configuration must be de-selected. Precession-corrected (or "bija-rate") and "absolute sidereal" (by means of an ayanamsa) positions will give the same results, but the timing of the tropical transits will differ.

SOLAR RETURNS: this routine has been enhanced with the ability to calculate both tropical and sidereal cardinal ingresses and demi-returns. You have the option to progress the solar return or demi-return (tropical or sidereal) with 2 different methods. The first is the PSSR “anniversary second” method, where the progressed RAMC is established by the difference between the right ascension of the Sun of the progressed date and the right ascension of the solar return Sun multiplied by the anniversary second. The second method is the "neo-SSQ" ("Solar Quotidian") method, which differs from the first in that it does not use the anniversary second.

The progession is shown day by day from one anniversary to the next, with the progressed Moon and angles of the return and the conjunctions of all radical, solar, and transiting bodies. The columns, from left to right, are: date, longitude of the progressed Moon, progressed Midheaven, progressed Ascendant, and Right Ascension of the MC (=sidereal time). Then follow the planets that are in conjunction with the progressed horizon or meridian that day, with their corresponding measure of right ascension, so that the approximate time of the day can be calculated (”m”=Midheaven, “i”= I.C., “d”=Descendant, “a”=Ascendant, “S”=solar, “R”=radical, “T”= transiting). The data applies to the actual physical planet, not its ecliptical longitude (the same as with the parans). Right-clicking on any of the days of the progressed return will allow you to draw a wheel "on the fly" for that day with the exact progressed angles of the return.

LUNAR RETURNS: the lunar returns and demi-returns can optionally be progressed with Robert Nicewander's method. This is the same as the "solar quotidian" method of progressing the solar return, but the progressed motion of the angles is controlled by the changing position of the transiting Moon instead of the Sun, so it could be called a "lunar quotidian" method. Because a whole progression cycle is completed in only 27 days, the tabular interval is 2 hours instead of 1 day in order to see the progression of the angles at intervals of about 1 degree. The tabulated quantities are the same as in the progressed solar return. As with the progressed solar return, the ascensional hits of the progressed angles include radix, lunar return, and transiting planets, but only transits up to Mars are included in this case.

DEGREE SYMBOLS: Three sets of symbolic degree images are shown (without the commentaries): Sabian Symbols ("S:"), La Volasfera of Sepharial ("V:") and Charubel ("C:"). Numerals rather than numbers are used to figure out what symbol to use (i.e., from 0:00 to 1:00 is the first degree, 23:12 is the 24th degree, 29:03 is the 30th degree, etc.). The Sabian Symbols were originally the mimeographed version of Marc Edmund Jones used prior to the publication of his book in 1953, but later versions of the program replaced them with those of the book, the reason being that they are much more compact.

COMPLETE SORTED DISPLAY (Extra-->Sort All): After the first page showing the Uranians and the named asteroids, Riyal will show the full internal list of objects included in the program, sorted in 30 degree order, including the osculating lunar apogee, lunar node, and the angles. The quantities shown are: longitude, latitude, declination, IAU constellation where it is found in the sky, heliocentric distance, orbital period in years, orbital inclination, and distance range in astronomical units.

TABLE OF HOUSES: This routine works with the house system that was previously chosen in the “House Cusps” routine. It asks for the coordinates (you can ignore the longitude by simply pressing “Enter”), for a date, and for the interval in minutes (1-9), and it will construct a Table of Houses for any latitude from 0 to 89,59 degrees, with sidereal time as argument. For polar latitudes, the screen output changes color when the Midheaven is below the horizon, except in the Koch system, which produces erroneous cusps and appears all colored; although Riyal will show Koch cusps at any latitude, the results are meaningless near the Poles. The Topocentric system uses its own “polar ascendants” that have nothing to do with the real horizon. The Placidus cusps present no problems only partially, as long as the Midheaven is not below the horizon. The anomalous Placidus cusps are not shown (see the explanation later below). The asymmetrical APC houses 5/6 and 8/9 are not shown, so the table would correspond exclusively to the method of division of Abenragel.

GEODETIC CHARTS: Johndro “geodetic right ascension equivalence” charts using the Placidus system and the Greenwich meridian as the zero point can be calculated and drawn by choosing the “Geodetic” house system in the "Houses-->Geodetic" menu option or in the "Menu-->House Cusps" routine. An astro-cartography option can show where in the world the planets will be at the geodetic angles (see the "Cartography" section for more details).

PARANATELLONTAS: This routine consists of temporal distances from the angles. i.e., the times of rising and setting of celestial objects. The user must choose the orb that will be used to highlight all rotated parans. A minus sign (”-”) indicates time in the past. When the orb is less than 1 minute of time (15’), the parans are highlighted. In the case of transits, solar and lunar returns, etc., the radical positions (”r”) are included in the tabulation with the transiting ones, and the positions are corrected for precession (unless this has been disabled in the “cgf” file).

THE SPECULUM: The speculum includes 2 semiarcs. The first is the actual one, and in parenthesis is given its complement. Then follows a letter, “N” meaning “nocturnal” and “D” meaning diurnal, which indicates whether the object is above or below the horizon. The second column after the meridian distance is the normalized or "oblique" distance. A second speculum in the next display includes right ascension, ascensional difference, oblique ascension or descension, and the pole of the planet according to the Topocentric system.

The third page of the Speculum displays the azimuths and altitudes, plus three aditional columns showing the planetary positions IN MUNDO according to the house system the program is working with at the moment, followed by the corresponding "oblique" zodiacal longitude (=the projection of the mundo position to the ecliptic) and the ordinary zodiacal longitude which is shown for comparison. For clarity the mundo positions are shown in their zodiacal equivalents, Aries corresponding to the first house, Capricorn to the tenth, etc.

PRIMARY DIRECTIONS: "In mundo" primary directions can be calculated according to any of the following systems: Placidus (semiarc), Campanus, Regiomontanus, Alchabitius, Topocentric (in zodiaco), Horizontal (Azimuth), Meridian, and Porphyry. All the classical aspects plus the quincunx can be used. The directions include the lunar nodes, converse and direct arcs, aspects to the angles (promisor and significator), and directed planets aspecting themselves. Rapt parallels, conjunctions to the intermediate cusps, "in zodiaco" and progressed or "dynamic" directions, as well as securing the calculations for polar regions will be added soon. All the directions up to 180 degrees are calculated but only the arcs smaller 100 degrees are displayed.

The arcs of direction (with the exception of the "Topocentric" directions which are "under the pole of the significator") are calculated using one single iterative algorithm that is valid for all house systems and is based on the planets "mundoscope" positions. This simple approach gives the same results as the classical trigonometric methods with an accuracy of 0.001 degrees, and is possible thanks to the astronomical principles and properties of the mundoscope with respect to primary directions and progressions explained by Roberto Luporini from Italy. In a graphic mundoscope we can find the exact dates or orbs of all directions and the corresponding mundane positions indirectly, moving the wheel through time by hand until the mundane aspect becomes exact, but the Primary Directions module calculates and lists all the possible directions directly, based on successive approximations of the directed mundo positions, without having to write or develop a specific formulation for each house system. The same universal algorithm calculates them all, according to the house system chosen.

I wish to express my sincere thanks to Roberto Luporini for his encouragement and his help in debugging, improving, and testing the algorithm.

FIXED STARS: this routine can display the complete star catalogue used by Riyal (up to 1078 stars), but it will ask for a limiting magnitude between 1 and 5 so that the listing can be made smaller. If the magnitude chosen is 2 or more, the planets will be included in the listing. It will give the right ascension, declination, ecliptic longitude and latitude (zodiacal and whole circle), acimut and altitude, the meridian longitude (the degree of the ecliptic that culminates simultaneously with the star, i.e., the M.C. when the star is on the Meridian), and the temporal distances to the four angles that allow to calculate the star’s paranatellontas. The display can be sorted according to any of the tabulated quantities by clicking on the corresponding column header.

DARK MOON: This is the hypothetical “second moon” of the Earth calculated by Waltemath and popularized by Sepharial, often called “Lilith”. Mathematically, it is a speculative point moving around the Earth in an ellipse with eccentricity 0.1587, inclined 2.5 degrees to the ecliptic, and with a period of 119.227434 days. The positions labelled “S.F.” are equivalent to those available in Solar fire version 4, while those labelled “S.E.” are equivalent to the version made recently available in the Swiss Ephemeris with the orbital elements revised by Dieter Koch.

WHITE MOON: The “White Moon” is based on data provided by Russian astrologer Margaret Almazova, who comments on a long oral tradition in his country regarding its use. According to her, its origin is really unknown, in spite of his countryman Pavel Globa’s claims that the present ephemeris is the result of his insight. The meaning of the White Moon --a positive counterpart of the “Black Moon”-- is well established in the practice and experience of Russian astrologers, and Almazova summarizes it as “invisible spiritual support in life which must be nourished (by sign and house) in order that the effect of a shagreen leather does not emerge”. Mathematically, it is an imaginary point with a circular and co-planar orbit, like the Uranian planets, except that its orbit is geocentric. Its motion is likewise linear and completes a cycle in 7 years (2556.409663 days). According to the data provided by Almazova its position on 1-1-1900 at 0h GMT was 18,45 Leo.

COORDINATES CONVERSION: This is a flexible routine that converts J2000 either mean or astrometric, as well as "of date" true or apparent, right ascension and declination (or longitude and latitude) to their ecliptical (or equatorial) counterparts. There is a box that must be checked if you want to convert “catalog” positions measured with respect to the mean ecliptic and equinox of J2000 (as in star catalogs), otherwise when converting to or from J2000 the astrometric position with the true obliquity of the date is assumed. To select the type of conversion, click on the button "from" to activate the "from" and "to" items, and once you are sure of your choice and of the corresponding source positions, click "convert". If you are using this routine when there is no chart data stored in memory, the "of date" options are disabled.

CARTOGRAPHY: This uses a world-map with a simple rectangular projection built from a database of 105,000 coordinate points. The mouse pointer is used to indicate the coordinates within the map in the lower part of the screen, and to return to the menu (you must right-click in order to end the routine and return to the menu). Only the bodies shown in the main display (regular planets, centaurs, and main transneptunians) can be shown. The rising curve is always between the IC and the MC, while the setting curve is between the MC and the IC; the sequence is: IC-rise-MC-set-IC.

After choosing which planet or group of planets to represent, the user must choose whether to draw the lines where the planets will be at the angles according to the Johndro geodetic equivalents in right ascension (with 0 Aries corresponding to the Greenwich meridian) or the conventional representation of the astro-cartographic map, based on the physical rising, culmination, and setting of the planets. The Johndro geodetic equivalents are drawn with 0 latitude so that the positions correspond to the right ascension of the planet's zodiacal position.

If the “precession-corrected” functionality of the program has not been disabled, this routine will perform precession from the time of the radical when the date corresponds to a secondary chart (returns, transits, etc.), so the results may not be comparable with results obtained with other software in this case (you must enter the data as radical in order to make the comparison).

PHENOMENA: This is a "binary search" engine used to produce a list giving the desired coordinates, the julian day, the date, and the exact time of the day in UT when the search conditions are met. The present interface allows to choose among 20 pre-defined searches. The user must choose the planet or planets involved, the starting and ending dates of the search, and the step-size in days. If the step- size is “1” (the default), the program will choose one automatically.

There is an option to enter a user-defined zodiacal position to which geocentric conjunctions and oppositions will be calculated. The position must be from 0 to 359 degrees, including decimals. No letters are allowed and the user is responsible for converting the desired zodiacal position to the whole circunference and to decimals. An erroneous input will terminate the routine and return you to the menu.

If you think the search did not produce the desired results, try again with a reduced time-step. If increased accuracy is needed for the inner planets (Mercury, Venus, Mars, Sun) , you can try activating the "VSOP2000" mode in "Global configuration". You can monitor the progress and stop it at any time. The results can be copied to the clipboard or sent directly to a file as usual. All the planets and asteroids included in the program, plus the Lunar Node, the Black Moon, and the angles (Ascendant and Midheaven) can be part of a search.


GRAPHIC TRANSITS: This uses a very fast lower-precission algorithm to produce a graphic representation of either ecliptic longitude, 4th harmonic longitude, declination, heliocentric distance, or geocentric distance of 1 planet alone or of 2 planets together. A 6th choice plots the semimajor axis of the orbit and the planetocentric distance from an optional second planet. The user must choose the coordinate (more coordinates will be included in future versions), the planet or planets, the interval of time, and the time-step. If there is a radix already calculated, the radical positions of the 10 principal planets are shown and the transiting positions are corrected for precession if the program is in sidereal or precession-corrected mode (the declinations are corrected only in precession-corrected mode).

The “4th harmonic longitude” option will show the points of conjunction, opposition, and square to the second planet or to the radical positions. Heliocentric and geocentric orbit-crossings are shown in the "geodistance" and "heliodistance" options with 2 planets chosen. The "heliodistance" option includes also the distance range (from perihelion to aphelion) of the planet being crossed.

The angles (Ascendant and Midheaven), the Lunar Node and the Black Moon can be included. If you choose the angles, make sure the time-step for the plotting is small enough (such as 0.01 days), otherwise the graphic will be cluttered and meaningless. Angles are ignored if you choose to plot distance. The distance shown will be in kilometers instead of astronomical units in the case of the lunar orbit.

Choosing "semimajor axis" gives a perspective of the changes in the size and/or shape of the orbit over long periods of time (a step-size of 200 or 400 days is recommended). The principal planets and the stable centaur and transneptunian orbits appear as more or less smoothly osillating or almost-straight lines, but the orbital instability of some of the centaurs becomes evident in the plots. If an optional second planet is chosen, the program plots the distance of the planet ahead in the list with respect to the planet behind (e.g., if you mark "XX143" and "Saturn", the graphic will show the semimajor axis of XX143 and the planetocentric distance of XX143 from Saturn). The optional second planet in the plot of the planetocentric distance is restricted to planets up to the last centaur in the list.

The display of longitudes has 0 Aries at the top and 29 Pisces (or 29 Gemini in the 4th harmonic) at the bottom, while that of declinations has 0 at the bottom and the maximim possible declination of the first planet at the top. Distance is shown in astronomical units.

The routine can be stopped at any time pressing the “space” key in the keyboard. When the plotting has ended, the mouse reappears and moving the mouse displays the coordinates and the corresponding date. Right-clicking gives the ususal graphic options and exits the routine.

OKTOTOPOS: This is a chart consisting of 8 houses in clockwise order. The Ascendant occupies the middle of the 1st house, the MC occupies the middle of the 3rd, the Descendant the middle of the 5th, and the IC is in the middle of the 7th house. Additionally the 4 angles are shown together with the midpoint between them, for a total of 16 points or a double Oktotopos. The method used to calculate the points is that of CAMPANUS. Chapter 19 of Cyril Fagan's "Astrological Origins" (1971, based on previously published material in 'American Astrology') is dedicated to the "Oktotopos". He believes the "Dodekotopos" --the traditional 12 houses-- to be "an Hellenistic rendition of an Egyptian original", this original being the Oktotopos. Fagan mentions two ancient sources: 1-) Greek Michigan Papyrus No.149 (ca. A.D. 80) a translation of which by Rupert Gleadow appeared in September and October 1950 of American Astrology, and  2-) Manilius' Astronomicon. According to Fagan these are not really "houses" but temporal divisions or "watches" originally devised by "the immortal Imhotep, of Sothic fame". Each watch comprises a period of 3 temporal (oblique ascension) hours. The Ascendant or horizon is not the beginning of the 1st house but the middle, and the meaning of the topoi is (clockwise): life, money, travel, parents, children, illness, wife, death.

: The planetary positions are the true house positions rather than the zodiacal positions. Each house measures exactly 30 degrees and zodiacal notation is used only to facilitate identification: Aries stands for first house, Libra for the 7th house. For example: a planet in 15 degrees of "pseudo" Aquarius is exactly in the middle of the 11th house.

: These are true zodiacal positions but the method used to locate the planets is different. The true house position of the planet is projected unto the ecliptic by means of the same method that was used to locate the house cusps, and this creates a zodiacal longitude that reflects the real position of the planets in the houses. This "real" longitude results from the planet's own latitude with respect to the ecliptic, which is ignored in the conventional zodiacal longitudes.

: This draws a clockwise “compass” (North above, South below, East right, West left) and plots the planets and asteroids’ azimuths. For convenience, as in the Mundoscope drawing, the positions are shown in sign notation. 0 Aries stands for East, 0 Cancer stands for North, 0 Libra stands for West, 0 Capricorn stands for South. The orientation of the 4 cardinal points is shown inside the chart, with North (”N”) always pointing above. The altitudes are shown at the right of the chart. This tabulates directly the distance to the horizon and the zenith. The bodies close to the horizon and to the zenith are always stronger, while the planet of maximum altitude (above or below the horizon) can be visualized as being “above” all others. An altitude of 90 degrees means that the planet is exactly on the zenith, 0 degress is exactly on the horizon.

SPHERE: This graphic is a good approximation of a 3-dimensional view of a conventional astrological chart. Each ecliptical degree is drawn in acimutal equidistant projection. All the signs of the zodiac and the true positions of the planets in the sky can be appreciated in their correct position with respect to the horizon and to the ecliptic. There are labels for the MC, the Ascendant, the Sun, and the Moon, plus one additional optional body that can be chosen at the start of the routine. There is some distortion toward the zenith, so when the MC is close to it the chart appears larger, but all the angles are maintained. This is not true 3-D, but the effect is close enough. Because the point of view is fixed in space (always aligned with the Prime Vertical), there are times when the ecliptic appears as a straight line and the 3-D effect disappears, but this is the exception and lasts only a few minutes; it happens when the Ascendant aligns with the exact East.

CONSTELLATIONS: You choose the field of vision (60, 90, or 180 degrees), after which you will be shown a series of screens that show the whole sky around the zodiac, plotting sequentially Riyal’s catalog of 1078 bright stars. The names of the principal stars brighter than magnitude 3.0 are given. Also plotted are the planets, the centaurs, the ecliptic, and the 12 signs of the zodiac. The real positions of the planets in the sky with respect to the constellations and the fixed stars is seen, as well as the position of the vernal point and the tropical zodiac with respect to the stars. The names of the main stars allow one to know what portion of the sky one is looking at.

HORIZON: This is a simple rectangular projection (in the future I will switch to a more realistic gnomonic projection) that shows the stars and planets as they look in the sky above the horizon. The bottom of the screen is the horizon, the top is the zenith. Each screen represents an extension of 90 degrees on both sides of the 4 cardinal points, plus an elliptical acimutal view of the zenith showing all stars and planet situated around it. Unless one is very familiar with the shapes of the constellations, they will be difficult to identify. This is why more star names are shown in this routine. I feel there is a need to make the star pixels larger, but that will come in later versions. Each screen represents a hemisphere. The label above indicates what cardinal point one is looking at and in which direction the other cardinal points are, such as “E___SOUTH___W”.


Riyal uses VSOP87 to calculate the positions of the inner planets (including the Sun), but uses a faster and more accurate approach (see below) to calculate Jupiter, Saturn, Uranus, Neptune, and Pluto from -4700 to +3000. It goes back to VSOP87 only beyond +3000 with the outer planets. Pluto is not calculated after +3000.

The VSOP87 accuracy of the outer planets deteriorates rapidly due to an erroneous mass of Neptune taken from DE200 and because the claimed 1" accuracy of the Jupiter and Saturn part of the theory was meant for only 2000 years. The following tables gives an approximation of the VSOP87 errors obtained by comparing Riyal's internal J2000 heliocentric longitudes every 100 days with the equivalent DE406 positions provided by the Swiss Ephemeris from -4000 to +2100:

maximum differences between VSOP87 and DE406 - heliocentric longitude
  1000 to 2100
0 to 1000 -1000 to 0  
-2000 to -1000 -3000 to -2000 -4000 to -3000
Mercury 0.5" 1.3" 2.1" 3.1" 3.6" 5.2"
Venus 0.3" 0.8" 1.6" 3.2" 5.8" 8.9"
Earth 0.4" 0.4" 0.9" 1.4" 2.7" 4.6"
Mars 1.3" 2.8" 3.1" 5.8" 5.9" 8.7"
Jupiter 1.0" 1.3" 15"  49" 2'34" 7'24"
Saturn 2.7" 5.1" 29" 1'38"  5'05" 16'21"
Uranus 24" 55" 1'07" 1'07"  1'36" 1'55"
Neptune 24" 52" 1'15" 1'38"  2'10" 2'47"

VSOP87 - heliocentric distance inner planets
heliocentric   1900-2100  
     1000-1900     0-1000   
-1000 to 0   
Mercury 3.2 Km
   33   76   120
Venus 2.0 Km
    4  15    39
Earth 4.0 Km
   15   63   156
Mars 8.2 Km
  178  315   665

Beginning with version 3.7, Riyal can optionally use VSOP2000 instead of VSOP87 for better accuracy. To speed-up the calculation and reduce the storage space (VSOP2000 is about 12 times larger than VSOP87), it was first transformed into the VSOP87A format of only 3 quantities = a * cos (b + c * T).

The following tables gives an approximation of the transformed VSOP2000 errors obtained by comparing Riyal's internal J2000 heliocentric longitudes every 100 days with the equivalent DE406 positions provided by the Swiss Ephemeris from -4000 to +2100:
maximum difference between VSO2000 and DE406 - heliocentric longitude
  1000 to 2100
0 to 1000 -1000 to 0  
-2000 to -1000 -3000 to -2000 -4000 to -3000
Mercury 0.1" 0.4" 1.4" 3.6" 7.4" 13"
Venus 0.0" 0.2" 0.4" 0.9" 1.6" 2.6"
Earth 0.1" 0.3" 0.7" 1.8" 4.3" 8.5"
Mars 0.7" 0.9" 0.6" 1.8" 2.4" 5.9"
Jupiter 0.6" 1.8" 1.8" 2.4" 14" 43"
Saturn 0.5" 1.9" 4.2" 16"  51" 2'31"
Uranus 0.6" 0.7" 3.4" 6"  8" 16"
Neptune 1.5" 3.3" 6" 10"  15" 26"

VSOP2000 - heliocentric distance inner planets
    0-1000  -1000 to 0
Mercury 1.4 Km
   8.5   30  175
Venus 0.7 Km
    3   15   44
Earth 1.6 Km
   26   101  229
Mars 3.6 Km
   62   76


For the Moon, Riyal uses its own simplified version of ELP/MPP02 designed with the same truncation criteria used in ELP2000-85. This level of truncation results in 1443 terms compared to the 1326 terms of ELP2000-85. The polynomials of time of the mean longitude and the Delaunay arguments are fitted to DE406 but the perturbation coefficients were left uncorrected. The maximum deviation is 0.4" in longitude and 0.5 km in distance between 1900 and 2100, and is kept below 1" from A.D. 1000 to 3000.

According to the authors of ELP/MPP02, Jean Chapront and Gerard Francou, the largest difference in longitude with DE406 from -3000 to +3000 is 3.5", which compares very well with Riyal's vastly reduced and compact adaptation of the theory. The following table shows the maximum deviation of Riyal's lunar longitude and distance from the lunar positions based on DE406 provided by the Swiss Ephemeris (distance in kilometers):

1750-2500 1000-3000 -1000 to +1000 -2000 to -1000 -3000 to -2000
 longitude 0.4" 1.0" 1.6" 3.6" 7.8"
distance    0.6 km
   0.7 km    0.9 km    1.1 km    1.8 km
(*) simplified truncated version

The VSOP2000 files include a complete theory of the Moon in rectangular variables represented by 28633 trigonometric terms. For its use in Riyal it was transformed into the a * cos (b + c * T) format, and a correction was applied to the end longitude equal to the difference between the linear parts of the Moon's mean longitude of ELP/MPP02 (fitted to DE406) and VSOP2000, plus an empirical quadratic term. Unfortunately this theory is undocumented and its high accuracy is compromised by the need of an external correction. It should not be used before 1000 AD when its maximum deviation from DE406 reaches 1". The following table shows the maximum differences with DE406 every 10 days (distance in meters):

  VSOP2000* 1300-2200 1732-2057
0.5" 0.1"
rms 0.2" 0.1"
147 m 95 m
51 m
30 m
(*) with externally corrected longitude


Mercury, Venus, Mars, the Sun (and the outer planets except Pluto after +3000) are calculated with the full VSOP87A theory in rectangular variables,  or optionally, with the full VSOP2000 . Here are the maximum deviations in Riyal's geocentric longitude every 100 days from -1000 to +2100 when compared to the DE406 implementation of the Swiss Ephemeris:

  VSOP87 1800-2100 1000-1800 -1000 to 1000
Sun 0.1" 0.4" 1.2"
Mercury 0.4" 0.7" 2.2"
Venus 0.2" 1.0" 3.0"
Mars 0.3" 5.2" 9.1"
  VSOP2000 1800-2100 1000-1800 -1000 to 1000
Sun 0.0" 0.1" 1.0"
Mercury 0.0" 0.2" 2.0"
Venus 0.0" 0.3" 2.4"
Mars 0.1" 2.3" 3.2"

Note that the geocentric position has larger errors accumulating over time than the heliocentric position, the reason being that the geocentric positions have the planet-to-Sun and Earth-to-Sun distance and heliocentric longitude errors all added together.


The first four asteroids (Ceres, Pallas, Juno, and Vesta) are available from 1702 to 2018, and are calculated from osculating elements every 80 days. The rated mean square and maximum errors in geocentric longitude due to tabular interpolation in a sample every 10 days from 1800 to 2000 are as follows:

  rms maximum
Ceres 0.3" 1.5"
Pallas 0.5" 3.3"
Juno 0.5" 2.9"
Vesta 0.3" 2.0"


From -4700 to +3000, the outer planets (Jupiter, Saturn, Uranus, Neptune, and Pluto) are calculated by interpolation from a table of positions every 160 days produced with version 10 of "Solex" of Aldo Vitagliano. The largest possible error in longitude using this method is as follows:

Riyal max error of the outer planets

heliocentric -3000 to +2999
 Jupiter  0.5"
 Saturn 0.1"
 Uranus 0.1"
 Neptune 0.0"
 Pluto 0.0"
The Solex 10.0 positions of the outer planets used by Riyal are based on DE421, and differ from the DE406 standard used by NASA "Horizons" and the Swiss Ephemeris. Since the differences between DE421 and DE406 provide a good estimate of the errors of DE406, a comparison between Riyal and the Swiss Ephemeris gives us an estimate of the errors in the Swiss Ephemeris:
maximum differences between Solex DE421 and DE406
heliocentric longitude J2000
  1000 to 3000
0 to 1000 -1000 to 0  
-2000 to -1000 -3000 to -2000 -4000 to -3000
Jupiter 2.0" 3.3" 4.7" 5.9" 7.4" 8.2"
Saturn 0.3" 0.2" 0.3" 0.3" 0.4" 0.6"
Uranus 2.8" 5.1" 7.3" 10" 14" 17"
Neptune 5.8" 11" 16" 22" 29" 35"
Pluto 1'09" 2'04" 2'37" 2'44"  2'42" 2'19"


The centaurs and the transneptunians are interpolated from a table of numerically integrated positions calculated with “Solex”. This has an accuracy comparable to that of the JPL Horizons integrator and the Swiss Ephemeris. The accuracy of the transneptunians is similar to Pluto's. Here is a sample of the maximum possible error in the positions of centaurs in the period 1900-2018, obtained from a comparison with the geocentric longitudes calculated by the Solex program using the same orbital elements:

Chiron 0.4" Pholus 0.5"
Nessus 0.1" Pylenor 0.1"
Asbolus 1.2" Hylonome 0.2"
Chariklo 0.3" Okyrhoe 2.2"

The larger error of Asbolus and of Okyrhoe is due to the large interpolation step (200 days), since at perihelion they get closer and move faster than the others. Okyrhoe at perihelion moves exceptionally fast compared with all the other centaurs, therefore its error above 1” is the exception. Errors of more than 1” in the slower bodies (including all transneptunians) are caused by inconsistencies or errors in the ephemeris files used for the comparison and are not related to the program’s internal accuracy.

There are other errors, much larger, caused not by a faulty ephemeris but by uncertainties in the osculating elements used for the numerical integration. The orbits of all the recently-discovered, poorly-observed bodies are not well known by astronomers, and accurate positions for the past or future cannot be calculated; their ephemeris after only a few years from the present have a very large margin of error.

: some of the centaurs have chaotic orbits. A survey by the author in 2001 of 33 centaurs and quasi-centaurs with well-known orbits back to -4500 gave results like the following:

      Chiron turns chaotic before A.D. 720
      Asbolus turns chaotic before A.D. 347
      Okyrhoe becomes uncertain in A.D. 850 and turns chaotic before A.D. 496
      Elatus turns chaotic before A.D. 1314
      Echeclus becomes uncertain before 1418 and turns chaotic before A.D. 1071

“Uncertain” here means “unstable”, the orbit begins to appear to expand or contract; “chaotic” means a clearly observed infinite expansion (usually) or contraction (less frequent) or a sharp break in the plot of the semimajor axis. All the details of this study can be found at the author’s site:

SOLAR SYSTEM BARYCENTER: This is the inversion of the position of the Sun with respect to the barycenter of the solar system provided by the full series of 6334 terms of VSOP87E. Its accuracy is similar to that of the VSOP87A position of the Earth and the maximum deviation from a comparison with the Swiss Ephemeris barycentric Sun from -2000 to +2100 is 1". To calculate the distance from the surface of the Sun a radius of 695660 Km is used.

: The program compensates internally for delta-t, but after 1/1/2017 it makes no correction. The modern values of delta-t are taken from the IERS data. For dates before 1622 it uses the polynomial fits of Fred Espenak and Jean Meeus published in the Nasa Eclipse Home Page, based on the latest Morrison and Stephenson publication (2004). If you are going to compare Riyal’s positions with positions calculated by another program, especially before 1622 or after 2011, you must take the difference in the modelling of delta-t into account.

: The “distance values” are percentages of the possible geocentric and heliocentric distance along the instantaneous orbit. 100 means closest and 0 means farthest.

: the osculating nodes and apsides are obtained directly from the positions and velocities, and are usually accurate as displayed, but a-) the apsides of the planets are reduced to the ecliptic heliocentrically and then converted to geocentric without latitude, therefore small differences may appear in the geocentric positions when comparing with ouput from other software, and b-) low-eccentricty orbits can have errors of a few arcminutes in the apogee. The reduction to the ecliptic of the apogee or aphelion is always applied. The instantaneous velocity of the osculating lunar node has an accuracy of a few arcseconds, that of the osculating lunar apogee a few arcminutes.

According to the authors of ELP2000-85 (Riyal's version of ELP/MPP02 has the same truncation level but a larger number of terms), the accuracy of the osculating node of the Moon is approximately 9" and that of the osculating apogee approximately 36". The following table shows the rms and maximum deviations from the Swiss Ephemeris in the positions of the osculating lunar node and apogee, compared to positions obtained every 10 days using the Moon included in VSOP2000:

VSOP2000 1800-2020
-1000 to 1900
  node rms 1.9" 0.4"
  node max 10" 0.9"
  apogee rms 18" 4.3"
  apogee max 58" 18"
(*) simplified truncated version

: The algorithm for calculating these cusps is an adaptation of code written by Ingmar de Boer for the calculation of the "Ascendant Parallel Circle" houses, and the hybrid name is based on the assertion of Rüdiger Plantiko that they are the same system. This is a variant of the Alchabitius system, but it is not clear if the Abenragel method for dividing the houses produced symmetrical houses or not. Plantiko declares that it does, while the APC system does produce asymmetrical houses and requires a separate calculation for houses 5, 6, 8, and 9. Houses 11, 12, 2, and 3 should be the same as Abenragel's according to Plantiko's definition, but the others (5, 6, 8, and 9) are exclusive to APC. The chart drawing does not yet reproduce graphically the asymmetry of the APC houses, but the labels at the cusp of each house are correct APC cusps. If one ignores the labels for houses 5, 6, 8, and 9, and keeps the numbers shown in 11, 12, 2 and 3, one would have an Abenragel chart IF Plantiko's assertion that hey are the same sysytem is at least partially correct.

: The Svarogich cusps are very similar to those of Placidus and Topocentric, and are calculated according to the trigonometrical principles outlined by Ptolomei Svarogich in "Principia of Polyzodiacal Astrology (1996). The formulas used by Riyal were supplied by Ed Falis, who also helped debugging the algorithm. The procedure applies a small adjustment to the geographic latitude that gives a "gravitational latitude" or "dynamic angle", resulting in small displacements with respect to cusps calculated for an uncorrected latitude. Therefore it is normal to find, for example, slight differences (of a few arcminutes) in the Svarogich cusp of the first house when compared with the traditional Ascendant. According to Ed Falis, "Svarogich conceptualizes the model in terms of what he calls 'parameterizing great semicircles' rather than diurnal/nocturnal semiarcs as is done in classical Placidus. The idea is that for each mundo (terrestrial zodiac) longitude there is a great semicircle with endpoints on the horizon, an angular relationship to the north and south celestial (equatorial) poles, and an angular relationship of its endpoints on the horizon to the north and south points of the horizon.  (In other words, the axes of the semicircles vary with time relative to the horizontal north and south points, even as the altitude of the semicircles vary - the classical notion of "polar elevation" of a great circle). The points on the celestial equator through which the local meridian passes are called the "point of conjunction" (makes an acute angle to the nadir) and the "point of opposition" (obtuse angle to the nadir).  The point of opposition is taken by convention (in this formulation) to be the RAMC. This approach roughly coincides with classical Placidus in moderate latitudes, and coincides even more closely with Topocentric (since, once you think about it, it's largely a translation from the latter system's linear geometry to spherical geometry)."

NUMERICAL INTEGRATION: for some of its routines Riyal uses a rudimentary numerical integration procedure described in Chapter 6 ("Special Perturbations") of Dan L. Boulet "Methods of Orbit Determination for the Microcomputer" (Willmann-Bell, 1991). It is based on a fixed-step 5th-order Runge-Kutta algorithm and the orbit propagation method is that of Cowell. I copied the core RK5 numerical procedure (6 integration steps) and the "acceleration" (2-body and n-body) subroutine from the program "Cowell" that appears in the book, and wrote myself the rest. The high speed of the integration process is a result of using a "low precision" method to calculate the heliocentric positions and velocities of the 8 perturbing planets. This method was created by the same team responsible for the creation of VSOP87, and is used by Riyal also to calculate geocentric positions in "Graphic Transits" and in the "Transits" search from A.D. 600 to A.D. 3400. The algorithm is based on mean orbital elements and a minimum set of perturbations applied to the mean longitude and semimajor axis.

In the following table, the column labelled "heliocentric" shows the maximum error in heliocentric longitude in the period 1800-2050 compared to DE102, given by the authors in Astronomy and Astrophysics 282, p.683 - Table 7 (1994); the other two columns show the maximum error I have obtained in a comparison with the DE406 heliocentric positions provided by the Swiss Ephemeris:

Mercury 4" 6" 7"
Venus 5" 7" 7"
Earth/Moon 6" 9" 11"
Mars 17" 26" 40"
Jupiter 1'11" 1'18" 1'17"
Saturn 1'21" 1'27" 2'10"
Uranus 1'26" 1'26" 1'51"
Neptune 11" 10" 55"

Ephemerides by numerical integration: The positions calculated by numerical integration have an accuracy of 1-arcminute from 1900 to 2100. Only asteroids with perihelion distance farther than 1.3 AU are accepted. The accuracy of the integration varies according to the characteristics of the orbit. The following table shows the maximum possible errors in the period 1900-2012 in a sample of objects belonging to the same class:

main belt

The loss of accuracy before 1900 varies according to the orbit. For example, Ceres is very stable and the maximum error as far back as AD 1300 is never more than 1'36", while Pallas accumulates a maximum error of 5'31 in the period 1800-1850. If the Swiss Ephemeris is properly installed with the corresponding asteroid files, the individual errors of the numerical integration for any time period can be examined through the "test position accuracy" option in the "Tables" sub-menu.

: The Great Attractor, Galactic Pole, and Sagittarius A* at the galactic center are treated as stellar objects. The position of the Galactic Center at epoch J2000 was taken from Yusef-Zadeh, Choate, & Cotton in “The Astrophysical Journal”, Volume 518 (1999), Issue 1, pp. L33-L35. The Galactic Pole is the conventional (and old) IAU definition for B1950. The position of the "GREAT ATTRACTOR" is that of the "Norma galactic cluster", called "Abell (or ACO) 3627", and was taken from the original Abell et als catalog published in the Astrophysical Journal Supplement Series, vol. 70, May 1989, p.65.

: the list of 1078 bright stars is the same used for many years by the United States Naval Observatory, and includes all stars brighter than magnitude 4.75. The transformation algorithm was taken from “The Astronomical Almanac” of 1981, pages B36-37, and accounts for the effects of precession, proper motion, nutation, annual parallax and annual aberration, but the result is limited by the 0.1s precision of the source right ascensions. The overall accuracy of the positions is therefore around 2 arcseconds. The sources are the FK5 catalogue and --if not found there-- the “Yale Bright Star Catalog”.

: Riyal uses the numerical expressions and precession formulas of the Bureau des Longitudes (Simon et als, Astronomy and Astrophysics 282:663, 1994), complemented by improved values of the precessional quantities published by Capitaine, Wallace, and Chapront in "Improvement of the IAU 2000 precession model", Astronomy and Astrophysics 432, 355-367 (2005). The positions and velocities obtained from VSOP87 and from interpolation of Solex data, as well as the Greenwich Mean Sidereal Time, are treated with the improved quantities. The Nutation is calculated with the abridged "IAU 2000B" model.

NUTATION AND SIDEREAL POSITIONS: When Riyal is in" full" sidereal mode all positions have the nutation removed by equating the nutation in longitude and obliquity to zero. However, precession-corrected positions, i.e., positions ex-precessed from the time of the radix, are not sidereal positions to start with but tropical, and are "siderealized" only by taking them as fixed in space afterwards. Consequently, in precession-corrected (as opposed to "full" sidereal") mode, the *tropical* radix positions are fixed with the nutation included, and the corresponding precession-corrected transiting positions with respect to this radix have their nutation removed and the original nutation of the radix added to them, so that they are aligned properly with the "siderealized" ecliptic of the radix.


Riyal calculates several variants of the lunar apogee or “Black Moon”. They are mostly variations of the mean apogee (reduced to the ecliptic), and the osculating or true geocentric apogee. The user can choose either the traditional mean or the true osculating apogee, geocentric or topocentric, to be displayed in the tabulations.

Astronomically, because of its apparently more “erratic” or irregular motion, the osculating apogeee is given by default because in the author's opinion it is the best astronomical description of the Black Moon symbolism, which I have explained in

The astronomical reality of the osculating apogee can be described as an ellipse that changes very fast from instant to instant. It is an accurate representation of the instantaneous geocentric trajectory of the Moon at a specific moment. When seen through time, the true lunar orbit in space can be described mathematically by a Keplerian ellipse only very roughly, because it changes shape very fast and irregularly, but it is precisely that the changes are so erratic or “wild” what makes the symbolism of this point so powerful.

Riyal's “natural apogee” applies an interpolation to find the approximate intermediate values between the Moon position at one apogee occurrence and the next. When the apogee and perigee are calculated this way, they are never 180 degrees apart. The perigee must be calculated separately.

This approach to the lunar apogee or Black Moon, based on past and future coordinate points instead of instantaneous positions and geometrical projections was outlined by Miguel García in Spain (”Realidad y ficción astronómica de Lilith”, Cuadernos de Investigación astrológica Mercurio-3, nº 6 – 1997) and is the approach of Dieter Koch, who calls it “interpolated” apogee (I followed Dieter's suggestions about how to calculate it before including it in Riyal).

The positions of the natural apogee given by Riyal are based on the formulas for the times of apogee and perigee of Jean Meeus in “Astronomical Algorithms”. The accuracy of the apogee according to Meeus is 3 minutes of time, which added to the necessarily approximate interpolation results in several arcminutes of accuracy for the position of the natural apogee. Meeus states that the accuracy of the perigee is 31 minutes of time, which would result in probable errors of about 1 degree in the position of the natural perigee.

When the true Black Moon is defined not as the apogee but as the position of the second or empty focus or “kenofocus” of the lunar orbit, its topocentric position can differ by as much as 7 degrees from the geocentric position, while geocentrically it always coincides with the geocentric apogee. Riyal shows the true or osculating topocentric empty focus in “Tables --> Astronomical Data”, with the other variations of the lunar apogee. A comparative tabulation for any period of time and tabular interval showing all 7 variations of the lunar apogee –excluding the topocentric ones-- can be made in the “Generate Ephemerides--> Apsides and Node” routine.

A detailed astronomical discussion of all the variants of the lunar apogee can be found at


Riyal works by default in a sidereal reference frame. The dates of aspects of solar arc directions and secondary and tertiary progressions are calculated sidereally, i.e., using the sidereal year instead of the tropical, with a “bija” correction equivalent to about one day for every year of life. A tropical date at 60 years of age, for example, would occur roughly 60 days before the one listed. Similarly, by default, the transiting positions contain a bija correction, and the solar and lunar returns are sidereal. All of this can be disabled by writing “0” (”zero”) instead of “1” in the last line of the “Riyal.cfg” configuration file read by the program at startup.

The use of precession does not imply using any of the traditional sidereal zodiacs. It means that we are using a “sidereal reference frame”, i.e., fixed in space, unlike the tropical zodiac, which rotates with respect to the sidereal. Movement along this fixed space is then measured in sidereal units of time instead of tropical. The result is that as time passes, all progressions, transits, returns, etc., happen a little later than if we use a tropical measurement.

Most astrological software, with the supposed capability of working in the sidereal zodiac, mistakenly calculates using the tropical year. If one uses the sidereal zodiac, then one has to use the sidereal year. The time of a sidereal progression must be different from the time of a tropical progression. Failure to make this distinction is inconsistent and gives wrong results.

When comparing positions from different dates, like in transits or in synastry, most people would simply take them from the ephemeris and then compare, without making any correction for precession. That is the generally accepted practice, so you would not be making anything wrong. It is really a minority who use precession. In the case of a radix set in the year 1095, for example, the tropical positions of 1999 will be ahead 12.6 degrees, so that you would have to subtract this quantity in order to refer them to the tropical zodiac of 1095 instead of that of 1999. This is what it is about: since the year 1095 is the radical, then all other positions should be measured with respect to the fixed zodiac of the time of the radix.

Riyal does this for you if you have not disabled the “precessed” functionality in the “riyal.cfg” file. But the situation can get very confusing when you are checking transits of more than 1 radix, because the transits of one radix cannot be compared with the transits of the other (this is where the use of positions in the sidereal zodiac comes in handy). In other words, each radix establishes its own fixed zodiac, so that positions referenced to different radices cannot be compared. In this case, all one needs to do is reference all radices and transiting positions to a sidereal zodiac, and then the problem disappears.

A thorough discussion of the "sidereal" concept as used in Astrology can be found at:


Here is an explanation of how the weighting and quantification (routine “Tables -->Planetary Weighting”) is done. The quantification numbers are based on this author’s experience and are of course arbitrary.

First the program considers the main essential dignities, excluding the centaurs: if in exaltation add 100; if in its domicile add 100; if in mutual reception add 60 to each; if it is “singleton by disposition” add 100; if it is the final dispositor add 100 (it actually adds 10 for each extra planet that is disposed). It passes this routine twice: one with the traditional rulerships and another with the new rulerships of Uranus, Neptune, and Pluto, so that if a planet rules 2 signs in the modern rulership scheme, the values above are doubled.

Then the program considers accidental dignities: if stationary add 100; add the percentage of the geocentric distance (0=farthest, 100= closest); add the declination doubled (e.g.18 degrees=36); if in an angle add 60; if in the 1st house add 60; if in the 10th house add 60; if ruler of the Ascendant add 90; if less than 15 degrees from the Ascendant add 90; if less than 5 degrees from the ascendant add 60; if in the ascending sign add 50; if less than 5 degrees from the Descendant add 90; if less than 24 degrees from the MC add 90; if less than 5 degrees from the MC add 60; if in the MC sign add 50; if less than 5 degrees from the IC add 90.

Then the program considers aspects with the luminaries: if it rules the Sun add 50; if in hard (harmonic 4) aspect with the Sun add 200 (orb=6); if the above is less than 2.5 degrees orb add 100 -->add another 100 to the Sun; if in trine to the Sun add 200 (orb=6); if in sextile to the Sun add 200 (orb=2); if in cazimi add 100; if in any aspect with the Sun of less than 1 degree add 100 -->add another 100 to the Sun; if in parallel to the Sun (orb=1) add 90; if it rules the Moon add 50; if in hard aspect to the Moon add 200 (orb=3); if the above is less than 1.5 orb add 100 -->add another 100 to the Moon; if in trine to the Moon add 200 (orb=3); if in sextile to the Moon add 200 (orb=2); if in any aspect with the Moon of less than 1 degree add 100 --> add another 100 to the Moon; if in parallel to the Moon (orb=1) add 90.

Then follow the aspects with the Lunar Nodes and Part of Fortune: if conjunct the Part of Fortune (orb=2) add 100; if in hard aspect (harmonic 4, orb=2) with the Nodes add 100.

After the accidental dignities come additional Marc Edmund Jones focal determinators (centaurs excluded): if singleton by hemisphere add 200; add 100 to each planet in the “wing” of the pattern; add 100 to any leading or receiving planet; add 100 to the leading if locomotive or bowl; add 200 if it is handle of a bucket; add 90 if of oriental appearance.


Riyal will calculate houses for polar latitudes with mathematical rigour in any of the available systems except (1) Koch at all times and (2) Placidus when the Midheaven is below the horizon. In these cases the user is warned and the program changes to Alchabitius. In the case of the so-called “Topocentric” system, its arbitrary and artificial “solution” for the polar regions is used.

It is said repeatedly that house systems cannot be used in polar latitudes. This is not true. The problem is not with the house systems but with the conventional methods or algorithms used to calculate them. All house systems work in polar latitudes, the problem is that “sometimes they don’t”. This ambiguity in the mechanics or geometry of polar houses is the cause of great and unnecessary confusion, and puts in evidence the poor treatment it has received in the astrological literature.

Above 66,33 degrees --the Artic and Antartic polar circles-- the division of houses is taken to extremes, and houses are gradually deformed to the point where one begins to doubt the whole concept of houses. In these latitudes, the horizon can coincide with the ecliptic. When this happens the Ascendant is undefined, and all systems except the “Meridian” (Zariel) and that of J.B. Morin are useless.

Right after this, the Ascendant “changes phase” and the Midheaven is below the horizon. When the Midheaven is in this situation, Riyal warns you with the message << Polar Ambiguity! >>. Press “Enter” for the calculation to end normally. Strictly the houses are inverted 180 degrees, but the program leaves them “normal” to avoid confusion. Please be aware that when the Midheaven is below the horizon the Ascendant must always be inverted. The optional inversion of all the houses is a separate operation.

Additionally, complete sectors of the ecliptic can be circumpolar. This is not a mathematical or mechanical problem but a question of definition, since the fact that a diurnal circle never intercepts the horizon doesn’t stop us from trisecting it the way the Placidus system requires. The semiarcs will be exactly 180 and 0 degrees. Riyal supplements the definition of the Placidus house system by using circumpolar cusps, and indicates with “*” when it is proceeding this way.

With the supplementary definition mentioned, it is possible to calculate the cusps of Magini-Placidus without difficulty for most of the sidereal times at a given polar latitude, but during a certain period of the day it will not be possible to use the Magini-Placidus system. This “blank space” corresponds to the time when the Midheaven is below the horizon, and increases with the latitude from 1.6 hours at 67 degrees until it reaches 12 hours at the pole.

It is worth mentioning, in passing, that the system “of Placidus” was not invented by Placidus. Giovanni Antonii Magini (1555-1617), professor of mathematics at the University of Bologna, in “Tabulae Primi Mobilis, quas Directionem Vulgo Dicunt” (1602), builds astrological charts with this method when Placidus had not even been born! Magini’s book was examined by Delhambre in “Histoire de L’Astronomie au Moyen Age” [Paris, 1819], who calls him “the clearest and most intelligible of all astrologers”.


The criteria used to select which bodies to include in the program varies according to the group to which the body belongs:

: all centaurs that have been numbered and all damocloids that have been named.

: all transneptunians (cubewanos, scattered disk objects, plutinos) brighter than absolute magnitude 4.0 are included. Additionally, all the scattered disk objects with orbital periods larger than or equal to those of 1996 TL66 (about 800 years) discovered up to the year 2000 that have been observed for more than 1000 days. Any transneptunian object that has received a name is also included, regardless of its characteristics.

The detailed internal list of individual bodies follows:

> NAMED CENTAURS:           > NAMED TNO'S:            > PLUTO STEEDS:
- Chiron                    - Varuna                  - 1998 BU48 ("Alastor")
- Pholus                    - Chaos                   - 1999 OX3
- Nessus                    - Rhadamanthus            - 2000 QB243
- Asbolus                   - Deucalion               - 2002 PN34
- Chariklo                  - Huya
- Hylonome                  - Ixion
- Pylenor (1994 TA)         - Quaoar
- Okyrhoe                   - Sedna
- Pelion                    - Orcus
- Elatus                    - Logos
- Cyllarus                  - Ceto
- Bienor                    - Typhon
- Thereus                   - Teharaonhiawako
- Amycus                    - Eris
- Crantor                   - Makemake
- Echeclus                  - Haumea
                            - Borasisi
                            - Altjira
                            - Salacia

- 1999 XX143                - 1996 TL66               - 1996 TO66
- 2001 BL41                 - 1999 TD10               - 2002 AW197 ("Tekton")
- 2001 KF77                 - 1996 GQ21               - 2002 MS4
- 2001 SQ73                 - 1999 CF119              - 2002 TC302
- 2001 XA255                - 1999 CY118              - 2002 TX300
- 2002 GZ32                 - 1999 CZ118              - 2002 UX25
- 2002 KY14                 - 1999 RD215              - 2003 AZ84
- 2002 VR130                - 1999 RZ214              - 2003 MW12
- 2003 CO1                  - 1999 RZ215              - 2003 OP32
- 2003 WL7                  - 2000 CR105              - 2005 RN43
- 2005 RL43                 - 2000 OM67               - 2005 UQ513
- 2006 SX368                - 2000 OO67               - 2006 QH181
- 2007 JG43                 - 2000 PJ30               - 2007 OR10
                                                      - 2007 UK126
                                                      - 2010 EK139
- 1992 QB1

- Dioretsa
- Narcissus
- Hidalgo
- Damocles


As with all freeware, you don’t have to pay anything and can use Riyal freely, as long as you respect its authorship and do not steal this program for commercial purposes. The only thing I ask is that you give me the credit for the work I have done and I am sharing with you, so please do not make money with it!

If you want this program to be made directly available from your site for download, or from from any other site that is not the author’s homepage, you must provide free access to it, and the direct link to the program’s homepage must be placed in an easily visible place.


The updates of the different files in the package can be downloaded directly if you go to the “Riyal” folder:

Remember that other than the small file “riyal32.exe”, update of the other files is necessary only when those files are changed (updating the ephemerides, adding more objects, etc.). Each updated file is placed in the above folder where you can check its date and time and compare it with the one you have.

This program is in continual development; there are frequent updates, so it is suggested that you check my “What’s New” page often:

Please let me know to ragel@expreso.co.cr all the problems you find. I am slowly learning to program under Windows and there are still many things that I don’t know how to do. Your input is very important in this respect because it allows me to know which are the priorities for learning, what important bugs have to be resolved, and how the program in its present concept can be improved.

I will not follow any of the usual Windows standards unless I feel they add to the program’s efficiency and consistency. The main concept of the program will remain the same. Except for the points mentioned, all the suggestions I receive and the concrete improvements will be related to this concept.

There is a specialized Yahoo group called "RIYAL_compute" that I moderate. Its purpose is two-fold:

1-) to document and discuss the technical aspects of the calculation routines used by "Riyal for Windows", offering at the same time a forum to discuss questions and ideas from users

2-) to offer a technical forum for the general sharing and discussion of astrological and astronomical formulae and algorithms (tropical, sidereal, vedic, etc.), including bibliographic and web references as well as freely available source code.

All those interested in the technical or mathematical aspects of Riyal and of astro-computing in general are invited to join.

Subscribe to RIYAL_compute
Powered by groups.yahoo.com

I hope this program will be useful to all astrologers and especially those doing research on the centaurs and Kuiper Belt objects. Enjoy it, and please don’t use it for commercial purposes!

Juan Antonio Revilla
Apartado 1562
San José – 1000
Costa Rica.