============================================================================== F O R M U L A S Here are a few interesting formulas which I have gleaned from some 20 years in computers. Some of these will be familiar to you, some may not. All of these formulas work properly. The calendar functions have been tested for all dates from 1/1/1 through 12/31/5000. Even though these dates are meaningless, you cam depend on the formulas for precision on real dates. If you are interested in other constants, or constants to much greater precision, you might want to try my BIGCALC program which emulates a Hewlett-Packard calculator on screen. BIGCALC has a four register stack and 10 memory registers. You can specify the precision from 3 to 1000 digits. The constants pi and e are provided to full precision. BIGCALC was used to derive the following constants. BIGCALC is available on the IBM Software and Microsoft Systems Forums on Compuserve. The file is named BCALxx.ARC where xx is the revision number. The file FORMULAS.TXT is in ASCII form. The file FORMULAS.PRN is in form suitable for IBM compatible printers and uses the extended character set for pi, powers, etc. Looks better. I would be happy to recieve comments on this stuff, especially any new formulas or algorithms! Enjoy. Judson D. McClendon Sun Valley Systems 844 Sun Valley Road Birmingham, AL 35215 205-853-8440 Compuserve [74415,1003] ============================================================================== ============================================================================== MATHEMATICAL FORMULAS: ============================================================================== Some Important Constants: pi: 3.14159 26535 89793 23846 26433 83279 50288 41971 69399 37510 58209 74944 59230 78164 06286 20899 86280 34825 34211 70679 82 1/pi: 0.31830 98861 83790 67153 77675 26745 02872 40689 19291 48091 28974 95334 68811 77935 95268 45307 01802 27605 53250 61719 12 pi^2: 9.86960 44010 89358 61883 44909 99876 15113 53136 99407 24079 06264 13349 37622 00448 22419 20524 30017 73403 71855 22318 24 pi/180: 0.01745 32925 19943 29576 92369 07684 88612 71344 28718 88541 72545 60971 91440 17100 91146 03449 44368 22415 69634 50948 22 180/pi: 57.29577 95130 82320 87679 81548 14105 17033 24054 72466 56432 15491 60243 86120 28471 48321 55263 24409 68995 85111 09441 86 e: 2.71828 18284 59045 23536 02874 71352 66249 77572 47093 69995 95749 66967 62772 40766 30353 54759 45713 82178 52516 64274 27 1/e: 0.36787 94411 71442 32159 55237 70161 46086 74458 11131 03176 78345 07836 80169 74614 95744 89980 33571 47274 34591 96437 46 e^2: 7.38905 60989 30650 22723 04274 60575 00781 31803 15570 55184 73240 87127 82252 25737 96079 05776 33843 12485 07912 17947 73 Sqrt(2): 1.41421 35623 73095 04880 16887 24209 69807 85696 71875 37694 80731 76679 73799 07324 78462 10703 88503 87534 32764 15727 35 Sqrt(3): 1.73205 08075 68877 29352 74463 41505 87236 69428 05253 81038 06280 55806 97945 19330 16908 80003 70811 46186 75724 85756 75 Golden Ratio: 1.61803 39887 49894 84820 45868 34365 63811 77203 09179 80576 (Sqrt(5)+1)/2 28621 35448 62270 52604 62818 90244 97072 07204 18939 11374 84 ============================================================================== ============================================================================== Newton's Method: Newton's Method for extracting positive integral roots of positive numbers is as follows: The Rth root of the positive number A is obtained as a root of the function: f(X) = X^R - N by means of the iterated equation: Xj = Xi - (Xi^R - N) / (R * Xi^(R-1)) = Xi * (1 - 1/R) + (N / (R * Xi^(R-1))) For square root, the equation simplifies to Xj = (Xi + (N / Xi)) / 2 Where: Xi = previous approximation Xj = next approximation R = root N = number This method converges very rapidly if a reasonable first approximation is obtained. ============================================================================== ============================================================================== CALENDAR FORMULAS: ============================================================================== Zeller's Congruence: Zeller's Congruence is used to determine the day of the week of any date in the Gregorian calendar, which was instituted October 15, 1582. The formula, good for any date since October 15, 1582 is as follows: weekday = ( day + 1 + (month * 2) + INT((month + 1) * 3 / 5) Note: or INT((month + 1) * .6) + year + INT(year / 4) - INT(year / 100) + (year / 400) ) MOD 7 Where: weekday = (0=Sun, 1=Mon, 2=Tue, 3=Wed, 4=Thu, 5=Fri, 6=Sat) day = day of the month month = month of year (Jan & Feb = 13 & 14 of prev year) year = year (year - 1 if month is Jan or Feb) INT = integer part (eg: INT(3.5) = 3) MOD = modulus or remainder part (eg: (10 MOD 7) = 3) Example: Feb 12, 1809 day = 12, month = 14, year = 1808 (weekday = 0 Sun) Jul 4, 1776 day = 4, month = 7, year = 1776 (weekday = 4 Thu) ============================================================================== ============================================================================== Date Day Number: Date Day Number is used to determine the number of days between any two dates in the Gregorian calendar, which was instituted October 15, 1582. Date day number calculates a number which is one greater for each succeeding date. The formula, good for any date since October 15, 1582 is as follows: dateday = ( (year * 365) + INT(year / 4) - INT(year / 100) + INT(year / 400) + INT(month * 306001 / 10000) Note: or INT(month * 30.6001) + day ) Where: dateday = Date Day Number (Note that dateday can be 6 digits or more) day = day of the month month = month + 13 (Jan & Feb) month + 1 (Mar - Dec) year = year - 1 (Jan & Feb) year (Mar - Dec) INT = integer part (eg: INT(3.5) = 3) Example: Feb 12, 1809 day = 12, month = 15, year = 1808 (dateday = 660,730) Jul 4, 1776 day = 4, month = 8, year = 1776 (dateday = 648,801) (days between = 11,929) ============================================================================== ============================================================================== Easter Computation: Easter falls on the first Sunday following the arbitrary Paschal Full Moon, which does not necessarily coincide with a real or astronomical full moon. The date of the Paschal Full Moon is obtained by dividing the year by 19 and applying the remainder to the following table: 0: Apr 14 5: Apr 18 10: Mar 25 15: Mar 30 1: Apr 3 6: Apr 8 11: Apr 13 16: Apr 17 2: Mar 23 7: Mar 28 12: Apr 2 17: Apr 7 3: Apr 11 8: Apr 16 13: Mar 22 18: Mar 27 4: Mar 31 9: Apr 5 14: Apr 10 Thus, for the year 2000 the key is 5 or April 18. Since April 18th in the year 2000 is a Tuesday, Easter Sunday is April 23rd. CAUTION - If the Paschal Full Moon falls on a Sunday, Easter is the following Sunday. The earliest Easter can fall is March 23rd and the latest is April 25th. Lent begins on Ash Wednesday which comes 40 days before Easter, excluding Sundays, or 45 days overall. ==============================================================================