13 February 2020 08:22:11 AM CALPAK_TEST C++ version Test the CALPAK library. CH_CAP_TEST CH_CAP uppercases a character. C CH_CAP(C) F F f F 1 1 b B B B DATENUM_TO_JED_TEST DATENUM_TO_JED: Matlab DATENUM -> JED. JED (in) DATENUM JED (out) 1.72106e+06 0 1.72106e+06 1.72142e+06 364 1.72142e+06 1.72142e+06 365 1.72142e+06 1.72143e+06 367 1.72143e+06 1.72143e+06 367 1.72143e+06 1.72422e+06 3162 1.72422e+06 1.74196e+06 20901 1.74196e+06 1.74999e+06 28936 1.74999e+06 1.82503e+06 103971 1.82503e+06 1.86284e+06 141778 1.86284e+06 1.92287e+06 201809 1.92287e+06 1.93675e+06 215689 1.93675e+06 1.94035e+06 219293 1.94035e+06 1.94832e+06 227262 1.94832e+06 1.94844e+06 227380 1.94844e+06 1.94844e+06 227381 1.94844e+06 1.95206e+06 231004 1.95206e+06 1.95207e+06 231009 1.95207e+06 2.1107e+06 389642 2.1107e+06 2.11487e+06 393814 2.11487e+06 2.28943e+06 568367 2.28943e+06 2.29916e+06 578102 2.29916e+06 2.29916e+06 578102 2.29916e+06 2.33327e+06 612211 2.33327e+06 2.36122e+06 640162 2.36122e+06 2.36122e+06 640164 2.36122e+06 2.37255e+06 651489 2.37255e+06 2.37584e+06 654781 2.37584e+06 2.39465e+06 673588 2.39465e+06 2.39471e+06 673652 2.39471e+06 2.39738e+06 676325 2.39738e+06 2.4e+06 678942 2.4e+06 2.4097e+06 688644 2.4097e+06 2.41502e+06 693962 2.41502e+06 2.4297e+06 708644 2.4297e+06 2.4397e+06 718644 2.4397e+06 2.44059e+06 719529 2.44059e+06 2.44382e+06 722759 2.44382e+06 2.44382e+06 722760 2.44382e+06 2.44424e+06 723186 2.44424e+06 2.44979e+06 728732 2.44979e+06 2.45014e+06 729080 2.45014e+06 2.45154e+06 730486 2.45154e+06 2.45889e+06 737835 2.45889e+06 2.45628e+06 735224 2.45628e+06 2.91394e+06 1.19288e+06 2.91394e+06 DATENUM_VALUES_TEST: DATENUM_VALUES returns values of the MATLAB datenum for a given Y/M/D date. Y M D DATENUM 0 1 1 1 1 1 1 367 100 1 1 36526 1000 1 1 365244 1939 8 17 708434 1944 9 9 710284 1952 3 10 713023 1966 5 12 718199 1980 1 6 723186 1996 2 25 729080 2000 1 1 730486 DAY_LIST_COMMON_TEST DAY_LIST_COMMON prints a list of days between two given YMD dates in the common calendar. Initial date: CE 2012/09/01 Final date: CE 2012/12/31 Sat, 1 Sep 2012 Sun, 2 Sep 2012 Mon, 3 Sep 2012 Tue, 4 Sep 2012 Wed, 5 Sep 2012 Thu, 6 Sep 2012 Fri, 7 Sep 2012 Sat, 8 Sep 2012 Sun, 9 Sep 2012 Mon, 10 Sep 2012 Tue, 11 Sep 2012 Wed, 12 Sep 2012 Thu, 13 Sep 2012 Fri, 14 Sep 2012 Sat, 15 Sep 2012 Sun, 16 Sep 2012 Mon, 17 Sep 2012 Tue, 18 Sep 2012 Wed, 19 Sep 2012 Thu, 20 Sep 2012 Fri, 21 Sep 2012 Sat, 22 Sep 2012 Sun, 23 Sep 2012 Mon, 24 Sep 2012 Tue, 25 Sep 2012 Wed, 26 Sep 2012 Thu, 27 Sep 2012 Fri, 28 Sep 2012 Sat, 29 Sep 2012 Sun, 30 Sep 2012 Mon, 1 Oct 2012 Tue, 2 Oct 2012 Wed, 3 Oct 2012 Thu, 4 Oct 2012 Fri, 5 Oct 2012 Sat, 6 Oct 2012 Sun, 7 Oct 2012 Mon, 8 Oct 2012 Tue, 9 Oct 2012 Wed, 10 Oct 2012 Thu, 11 Oct 2012 Fri, 12 Oct 2012 Sat, 13 Oct 2012 Sun, 14 Oct 2012 Mon, 15 Oct 2012 Tue, 16 Oct 2012 Wed, 17 Oct 2012 Thu, 18 Oct 2012 Fri, 19 Oct 2012 Sat, 20 Oct 2012 Sun, 21 Oct 2012 Mon, 22 Oct 2012 Tue, 23 Oct 2012 Wed, 24 Oct 2012 Thu, 25 Oct 2012 Fri, 26 Oct 2012 Sat, 27 Oct 2012 Sun, 28 Oct 2012 Mon, 29 Oct 2012 Tue, 30 Oct 2012 Wed, 31 Oct 2012 Thu, 1 Nov 2012 Fri, 2 Nov 2012 Sat, 3 Nov 2012 Sun, 4 Nov 2012 Mon, 5 Nov 2012 Tue, 6 Nov 2012 Wed, 7 Nov 2012 Thu, 8 Nov 2012 Fri, 9 Nov 2012 Sat, 10 Nov 2012 Sun, 11 Nov 2012 Mon, 12 Nov 2012 Tue, 13 Nov 2012 Wed, 14 Nov 2012 Thu, 15 Nov 2012 Fri, 16 Nov 2012 Sat, 17 Nov 2012 Sun, 18 Nov 2012 Mon, 19 Nov 2012 Tue, 20 Nov 2012 Wed, 21 Nov 2012 Thu, 22 Nov 2012 Fri, 23 Nov 2012 Sat, 24 Nov 2012 Sun, 25 Nov 2012 Mon, 26 Nov 2012 Tue, 27 Nov 2012 Wed, 28 Nov 2012 Thu, 29 Nov 2012 Fri, 30 Nov 2012 Sat, 1 Dec 2012 Sun, 2 Dec 2012 Mon, 3 Dec 2012 Tue, 4 Dec 2012 Wed, 5 Dec 2012 Thu, 6 Dec 2012 Fri, 7 Dec 2012 Sat, 8 Dec 2012 Sun, 9 Dec 2012 Mon, 10 Dec 2012 Tue, 11 Dec 2012 Wed, 12 Dec 2012 Thu, 13 Dec 2012 Fri, 14 Dec 2012 Sat, 15 Dec 2012 Sun, 16 Dec 2012 Mon, 17 Dec 2012 Tue, 18 Dec 2012 Wed, 19 Dec 2012 Thu, 20 Dec 2012 Fri, 21 Dec 2012 Sat, 22 Dec 2012 Sun, 23 Dec 2012 Mon, 24 Dec 2012 Tue, 25 Dec 2012 Wed, 26 Dec 2012 Thu, 27 Dec 2012 Fri, 28 Dec 2012 Sat, 29 Dec 2012 Sun, 30 Dec 2012 Mon, 31 Dec 2012 EASTER_GREGORIAN_DS_TEST For the Gregorian calendar, for a given year, compute the day and month of Easter. EASTER_GREGORIAN_DS uses Duffett-Smith''s algorithm. CORRECT: AD 1997/03/30 COMPUTED: AD 1997/03/30 CORRECT: AD 1998/04/12 COMPUTED: AD 1998/04/12 CORRECT: AD 1999/04/04 COMPUTED: AD 1999/04/04 CORRECT: AD 2000/04/23 COMPUTED: AD 2000/04/23 CORRECT: AD 2001/04/15 COMPUTED: AD 2001/04/15 CORRECT: AD 2002/03/31 COMPUTED: AD 2002/03/31 CORRECT: AD 2003/04/20 COMPUTED: AD 2003/04/20 CORRECT: AD 2004/04/11 COMPUTED: AD 2004/04/11 CORRECT: AD 2005/03/27 COMPUTED: AD 2005/03/27 CORRECT: AD 2006/04/16 COMPUTED: AD 2006/04/16 EASTER_GREGORIAN_EGR_TEST For the Gregorian calendar, for a given year, compute the day and month of Easter. EASTER_GREGORIAN_EGR uses Richard's algorithm #1. CORRECT: AD 1997/03/30 COMPUTED: AD 1997/03/30 CORRECT: AD 1998/04/12 COMPUTED: AD 1998/04/12 CORRECT: AD 1999/04/04 COMPUTED: AD 1999/04/04 CORRECT: AD 2000/04/23 COMPUTED: AD 2000/04/23 CORRECT: AD 2001/04/15 COMPUTED: AD 2001/04/15 CORRECT: AD 2002/03/31 COMPUTED: AD 2002/03/31 CORRECT: AD 2003/04/20 COMPUTED: AD 2003/04/20 CORRECT: AD 2004/04/11 COMPUTED: AD 2004/04/11 CORRECT: AD 2005/03/27 COMPUTED: AD 2005/03/27 CORRECT: AD 2006/04/16 COMPUTED: AD 2006/04/16 EASTER_GREGORIAN_EGR2_TEST For the Gregorian calendar, for a given year, compute the day and month of Easter. EASTER_GREGORIAN_EGR2 uses Richard's algorithm #2. CORRECT: AD 1997/03/30 COMPUTED: AD 1997/03/30 CORRECT: AD 1998/04/12 COMPUTED: AD 1998/04/12 CORRECT: AD 1999/04/04 COMPUTED: AD 1999/04/04 CORRECT: AD 2000/04/23 COMPUTED: AD 2000/04/23 CORRECT: AD 2001/04/15 COMPUTED: AD 2001/04/15 CORRECT: AD 2002/03/31 COMPUTED: AD 2002/03/31 CORRECT: AD 2003/04/20 COMPUTED: AD 2003/04/20 CORRECT: AD 2004/04/11 COMPUTED: AD 2004/04/11 CORRECT: AD 2005/03/27 COMPUTED: AD 2005/03/27 CORRECT: AD 2006/04/16 COMPUTED: AD 2006/04/16 EASTER_GREGORIAN_KNUTH_TEST For the Gregorian calendar, for a given year, compute the day and month of Easter. EASTER_GREGORIAN_KNUTH uses Knuth's algorithm. CORRECT: AD 1997/03/30 COMPUTED: AD 1997/03/30 CORRECT: AD 1998/04/12 COMPUTED: AD 1998/04/12 CORRECT: AD 1999/04/04 COMPUTED: AD 1999/04/04 CORRECT: AD 2000/04/23 COMPUTED: AD 2000/04/23 CORRECT: AD 2001/04/15 COMPUTED: AD 2001/04/15 CORRECT: AD 2002/03/31 COMPUTED: AD 2002/03/31 CORRECT: AD 2003/04/20 COMPUTED: AD 2003/04/20 CORRECT: AD 2004/04/11 COMPUTED: AD 2004/04/11 CORRECT: AD 2005/03/27 COMPUTED: AD 2005/03/27 CORRECT: AD 2006/04/16 COMPUTED: AD 2006/04/16 EASTER_GREGORIAN_STEWART_TEST For the Gregorian calendar, for a given year, compute the day and month of Easter. EASTER_GREGORIAN_STEWART uses Stewart's algorithm. CORRECT: AD 1997/03/30 COMPUTED: AD 1997/03/30 CORRECT: AD 1998/04/12 COMPUTED: AD 1998/04/12 CORRECT: AD 1999/04/04 COMPUTED: AD 1999/04/04 CORRECT: AD 2000/04/23 COMPUTED: AD 2000/04/23 CORRECT: AD 2001/04/15 COMPUTED: AD 2001/04/15 CORRECT: AD 2002/03/31 COMPUTED: AD 2002/03/31 CORRECT: AD 2003/04/20 COMPUTED: AD 2003/04/20 CORRECT: AD 2004/04/11 COMPUTED: AD 2004/04/11 CORRECT: AD 2005/03/27 COMPUTED: AD 2005/03/27 CORRECT: AD 2006/04/16 COMPUTED: AD 2006/04/16 EASTER_JULIAN_EGR_TEST For the Julian calendar, for a given year, compute the day and month of Easter. EASTER_JULIAN_EGR uses Richards''s algorithm #1. CORRECT (Gregorian): AD 1997/04/27 CORRECT (Julian): AD 1997/04/14 COMPUTED AD 1997/04/14 CORRECT (Gregorian): AD 1998/04/19 CORRECT (Julian): AD 1998/04/06 COMPUTED AD 1998/04/06 CORRECT (Gregorian): AD 1999/04/11 CORRECT (Julian): AD 1999/03/29 COMPUTED AD 1999/03/29 CORRECT (Gregorian): AD 2000/04/30 CORRECT (Julian): AD 2000/04/17 COMPUTED AD 2000/04/17 CORRECT (Gregorian): AD 2001/04/15 CORRECT (Julian): AD 2001/04/02 COMPUTED AD 2001/04/02 CORRECT (Gregorian): AD 2002/05/05 CORRECT (Julian): AD 2002/04/22 COMPUTED AD 2002/04/22 CORRECT (Gregorian): AD 2003/04/27 CORRECT (Julian): AD 2003/04/14 COMPUTED AD 2003/04/14 CORRECT (Gregorian): AD 2004/04/11 CORRECT (Julian): AD 2004/03/29 COMPUTED AD 2004/03/29 CORRECT (Gregorian): AD 2005/05/01 CORRECT (Julian): AD 2005/04/18 COMPUTED AD 2005/04/18 CORRECT (Gregorian): AD 2006/04/23 CORRECT (Julian): AD 2006/04/10 COMPUTED AD 2006/04/10 EASTER_JULIAN_EGR2_TEST For the Julian calendar, for a given year, compute the day and month of Easter. EASTER_JULIAN_EGR2 uses Richards''s algorithm #2. CORRECT (Gregorian): AD 1997/04/27 CORRECT (Julian): AD 1997/04/14 COMPUTED AD 1997/04/14 CORRECT (Gregorian): AD 1998/04/19 CORRECT (Julian): AD 1998/04/06 COMPUTED AD 1998/04/06 CORRECT (Gregorian): AD 1999/04/11 CORRECT (Julian): AD 1999/03/29 COMPUTED AD 1999/03/29 CORRECT (Gregorian): AD 2000/04/30 CORRECT (Julian): AD 2000/04/17 COMPUTED AD 2000/04/17 CORRECT (Gregorian): AD 2001/04/15 CORRECT (Julian): AD 2001/04/02 COMPUTED AD 2001/04/02 CORRECT (Gregorian): AD 2002/05/05 CORRECT (Julian): AD 2002/04/22 COMPUTED AD 2002/04/22 CORRECT (Gregorian): AD 2003/04/27 CORRECT (Julian): AD 2003/04/14 COMPUTED AD 2003/04/14 CORRECT (Gregorian): AD 2004/04/11 CORRECT (Julian): AD 2004/03/29 COMPUTED AD 2004/03/29 CORRECT (Gregorian): AD 2005/05/01 CORRECT (Julian): AD 2005/04/18 COMPUTED AD 2005/04/18 CORRECT (Gregorian): AD 2006/04/23 CORRECT (Julian): AD 2006/04/10 COMPUTED AD 2006/04/10 GPS_TO_JED_TEST GPS_TO_JED: GPS -> JED. JED (in) GPS (C/W/S) JED (out) 2.44424e+06 0/0/0 (GPS) 2.44424e+06 2.44979e+06 0/792/172800 (GPS) 2.44979e+06 2.45014e+06 0/842/0 (GPS) 2.45014e+06 2.45154e+06 1/18/518400 (GPS) 2.45154e+06 2.45889e+06 2/44/462131 (GPS) 2.45889e+06 2.45628e+06 1/695/432000 (GPS) 2.45628e+06 2.91394e+06 65/539/475200 (GPS) 2.91394e+06 I4_MODP_TEST I4_MODP factors a number into a multiple and a remainder. Number Divisor Multiple Remainder 107 50 2 7 107 -50 -2 7 -107 50 -2 43 -107 -50 2 43 Repeat using C++ percent operator: 107 50 2 7 107 -50 -2 7 -107 50 -2 -7 -107 -50 2 -7 I4_NORMAL_AB_TEST I4_NORMAL_AB computes pseudonormal integer values with mean MU and standard deviation SIGMA. The mean = 70 The standard deviation = 10 SEED = 123456789 1 87 2 64 3 82 4 83 5 53 6 48 7 70 8 77 9 67 10 92 I4_UNIFORM_AB_TEST I4_UNIFORM_AB computes pseudorandom values in an interval [A,B]. The lower endpoint A = -100 The upper endpoint B = 200 The initial seed is 123456789 1 -35 2 187 3 149 4 69 5 25 6 -81 7 -23 8 -67 9 -87 10 90 11 -82 12 35 13 20 14 127 15 139 16 -100 17 170 18 5 19 -72 20 -96 I4_WRAP_TEST I4_WRAP forces an integer to lie within given limits. ILO = 4 IHI = 8 I I4_WRAP(I) -10 5 -9 6 -8 7 -7 8 -6 4 -5 5 -4 6 -3 7 -2 8 -1 4 0 5 1 6 2 7 3 8 4 4 5 5 6 6 7 7 8 8 9 4 10 5 11 6 12 7 13 8 14 4 15 5 16 6 17 7 18 8 19 4 20 5 JED_CE_VALUES_TEST: JED_CE_VALUES returns: JED, a Julian Ephemeris Date, and YMDF, the corresponding year, month, day, fraction. JED Y M D F 0 -4713 1 1 0.5 1 -4713 1 2 0.5 259261 -4004 10 26 0.5 347998 -3761 10 8 0 584282 -3114 9 6 0 588466 -3102 2 18 0.25 758326 -2637 3 8 0 1.43818e+06 -776 7 9 0 1.44639e+06 -753 1 1 0 1.44864e+06 -747 2 26 0 1.44864e+06 -747 2 26 0 1.60771e+06 -312 9 1 0 1.60774e+06 -312 10 1 0 1.71326e+06 -23 8 29 0 1.72142e+06 -1 12 31 0 1.72142e+06 1 1 1 0 1.72143e+06 1 1 3 0 1.72143e+06 1 1 3 0 1.72422e+06 8 8 29 0 1.74196e+06 57 3 24 0 1.74999e+06 79 3 24 0 1.82503e+06 284 8 29 0 1.86284e+06 388 3 3 0 1.92287e+06 552 7 11 0 1.93675e+06 590 7 12 0 1.94035e+06 600 5 24 0 1.94832e+06 622 3 19 0 1.94844e+06 622 7 15 0 1.94844e+06 622 7 16 0 1.95206e+06 632 6 16 0 1.95207e+06 632 6 21 0 2.11487e+06 1078 3 17 0 2.28943e+06 1556 2 9 0 2.29916e+06 1582 10 4 0.5 2.29916e+06 1582 10 15 0.5 2.33327e+06 1676 3 4 0 2.36122e+06 1752 9 13 0.5 2.36122e+06 1752 9 14 0.5 2.37255e+06 1783 9 18 0 2.37584e+06 1792 9 22 0 2.39465e+06 1844 3 21 0 2.39471e+06 1844 5 24 0 2.4e+06 1858 11 17 0 2.41502e+06 1899 12 31 0.81 2.44059e+06 1970 1 1 0 2.44424e+06 1980 1 6 0 2.45014e+06 1996 2 25 0 2.45154e+06 2000 1 1 0 2.45307e+06 2004 3 9 0.33 2.45628e+06 2012 12 23 0 2.91394e+06 3266 1 1 0.5 JED_IS_LEGAL_TEST JED_IS_LEGAL determines if a JED is legal, JED JED_IS_LEGAL: -100 False -1 False 0 True 1 True 1.5 True 100 True 50000 True JED_MJD_VALUES_TEST: JED_MJD_VALUES returns: JED, a Julian Ephemeris Date, and MJD, the corresponding Modified Julian Day count. JED MJD 1.50723e+06 -892769 1.66004e+06 -739963 1.74689e+06 -653107 1.77064e+06 -629359 1.89273e+06 -507269 1.93158e+06 -468421 1.97485e+06 -425149 2.09116e+06 -308836 2.12151e+06 -278491 2.15578e+06 -244221 2.17403e+06 -225971 2.19158e+06 -208416 2.19526e+06 -204739 2.22927e+06 -170726 2.24558e+06 -154420 2.2661e+06 -133900 2.28854e+06 -111458 2.2909e+06 -109099 2.32314e+06 -76860 2.33485e+06 -65152 2.34802e+06 -51980 2.36698e+06 -33022 2.38565e+06 -14352 2.39283e+06 -7175 2.41622e+06 16223 2.42585e+06 25848 2.43027e+06 30266 2.43083e+06 30833 2.431e+06 31004 2.4487e+06 48698 2.45014e+06 50138 2.46574e+06 65737 2.48608e+06 86076 JED_RD_VALUES_TEST: JED_RD_VALUES returns: JED, a Julian Ephemeris Date, and RD, the corresponding Reingold Dershowitz Day count. JED RD 1.50723e+06 -214193 1.66004e+06 -61387 1.74689e+06 25469 1.77064e+06 49217 1.89273e+06 171307 1.93158e+06 210155 1.97485e+06 253427 2.09116e+06 369740 2.12151e+06 400085 2.15578e+06 434355 2.17403e+06 452605 2.19158e+06 470160 2.19526e+06 473837 2.22927e+06 507850 2.24558e+06 524156 2.2661e+06 544676 2.28854e+06 567118 2.2909e+06 569477 2.32314e+06 601716 2.33485e+06 613424 2.34802e+06 626596 2.36698e+06 645554 2.38565e+06 664224 2.39283e+06 671401 2.41622e+06 694799 2.42585e+06 704424 2.43027e+06 708842 2.43083e+06 709409 2.431e+06 709580 2.4487e+06 727274 2.45014e+06 728714 2.46574e+06 744313 2.48608e+06 764652 JED_TO_DATENUM_TEST JED_TO_DATENUM: Matlab DATENUM -> JED. JED (in) DATENUM JED (out) 1.72106e+06 0 1.72106e+06 1.72142e+06 364 1.72142e+06 1.72142e+06 365 1.72142e+06 1.72143e+06 367 1.72143e+06 1.72143e+06 367 1.72143e+06 1.72422e+06 3162 1.72422e+06 1.74196e+06 20901 1.74196e+06 1.74999e+06 28936 1.74999e+06 1.82503e+06 103971 1.82503e+06 1.86284e+06 141778 1.86284e+06 1.92287e+06 201809 1.92287e+06 1.93675e+06 215689 1.93675e+06 1.94035e+06 219293 1.94035e+06 1.94832e+06 227262 1.94832e+06 1.94844e+06 227380 1.94844e+06 1.94844e+06 227381 1.94844e+06 1.95206e+06 231004 1.95206e+06 1.95207e+06 231009 1.95207e+06 2.1107e+06 389642 2.1107e+06 2.11487e+06 393814 2.11487e+06 2.28943e+06 568367 2.28943e+06 2.29916e+06 578102 2.29916e+06 2.29916e+06 578102 2.29916e+06 2.33327e+06 612211 2.33327e+06 2.36122e+06 640162 2.36122e+06 2.36122e+06 640164 2.36122e+06 2.37255e+06 651489 2.37255e+06 2.37584e+06 654781 2.37584e+06 2.39465e+06 673588 2.39465e+06 2.39471e+06 673652 2.39471e+06 2.39738e+06 676325 2.39738e+06 2.4e+06 678942 2.4e+06 2.4097e+06 688644 2.4097e+06 2.41502e+06 693962 2.41502e+06 2.4297e+06 708644 2.4297e+06 2.4397e+06 718644 2.4397e+06 2.44059e+06 719529 2.44059e+06 2.44382e+06 722759 2.44382e+06 2.44382e+06 722760 2.44382e+06 2.44424e+06 723186 2.44424e+06 2.44979e+06 728732 2.44979e+06 2.45014e+06 729080 2.45014e+06 2.45154e+06 730486 2.45154e+06 2.45889e+06 737835 2.45889e+06 2.45628e+06 735224 2.45628e+06 2.91394e+06 1.19288e+06 2.91394e+06 JED_TO_GPS_TEST JED_TO_GPS: JED => GPS. JED (in) GPS (C/W/S) JED (out) 2.44424e+06 0/0/0 (GPS) 2.44424e+06 2.44979e+06 0/792/172800 (GPS) 2.44979e+06 2.45014e+06 0/842/0 (GPS) 2.45014e+06 2.45154e+06 1/18/518400 (GPS) 2.45154e+06 2.45889e+06 2/44/462131 (GPS) 2.45889e+06 2.45628e+06 1/695/432000 (GPS) 2.45628e+06 2.91394e+06 65/539/475200 (GPS) 2.91394e+06 JED_TO_NOON_NEAREST_TEST JED_TO_NOON_NEAREST: JED => JED (nearest noon). JED JED (nearest noon) 0 BCE 4713/01/010.50 0 BCE 4713/01/010.50 1 BCE 4713/01/020.50 1 BCE 4713/01/020.50 259258 BCE 4004/10/230.50 259258 BCE 4004/10/230.50 347998 BCE 3761/10/080.00 347999 BCE 3761/10/080.50 584282 BCE 3114/09/060.00 584283 BCE 3114/09/060.50 588466 BCE 3102/02/180.25 588466 BCE 3102/02/180.50 758326 BCE 2637/03/080.00 758326 BCE 2637/03/080.50 1.43818e+06 BCE 776/07/090.00 1.43818e+06 BCE 776/07/090.50 1.44639e+06 BCE 753/01/010.00 1.44639e+06 BCE 753/01/010.50 1.44864e+06 BCE 747/02/260.00 1.44864e+06 BCE 747/02/260.50 1.44864e+06 BCE 747/02/260.00 1.44864e+06 BCE 747/02/260.50 1.60771e+06 BCE 312/09/010.00 1.60771e+06 BCE 312/09/010.50 1.60774e+06 BCE 312/10/010.00 1.60774e+06 BCE 312/10/010.50 1.71326e+06 BCE 23/08/290.00 1.71326e+06 BCE 23/08/290.50 1.72106e+06 BCE 1/01/020.00 1.72106e+06 BCE 1/01/020.50 1.72142e+06 BCE 1/12/310.00 1.72142e+06 BCE 1/12/310.50 1.72142e+06 CE 1/01/010.00 1.72142e+06 CE 1/01/010.50 1.72143e+06 CE 1/01/030.00 1.72143e+06 CE 1/01/030.50 1.72143e+06 CE 1/01/030.00 1.72143e+06 CE 1/01/030.50 1.72422e+06 CE 8/08/290.00 1.72422e+06 CE 8/08/290.50 1.74196e+06 CE 57/03/240.00 1.74196e+06 CE 57/03/240.50 1.74999e+06 CE 79/03/240.00 1.75e+06 CE 79/03/240.50 1.82503e+06 CE 284/08/290.00 1.82503e+06 CE 284/08/290.50 1.86284e+06 CE 388/03/030.00 1.86284e+06 CE 388/03/030.50 1.92287e+06 CE 552/07/110.00 1.92287e+06 CE 552/07/110.50 1.93675e+06 CE 590/07/120.00 1.93675e+06 CE 590/07/120.50 1.94035e+06 CE 600/05/240.00 1.94035e+06 CE 600/05/240.50 1.94832e+06 CE 622/03/190.00 1.94832e+06 CE 622/03/190.50 1.94844e+06 CE 622/07/150.00 1.94844e+06 CE 622/07/150.50 1.94844e+06 CE 622/07/160.00 1.94844e+06 CE 622/07/160.50 1.95206e+06 CE 632/06/160.00 1.95206e+06 CE 632/06/160.50 1.95207e+06 CE 632/06/210.00 1.95207e+06 CE 632/06/210.50 2.1107e+06 CE 1066/10/140.00 2.1107e+06 CE 1066/10/140.50 2.11487e+06 CE 1078/03/170.00 2.11487e+06 CE 1078/03/170.50 2.28943e+06 CE 1556/02/090.00 2.28943e+06 CE 1556/02/090.50 2.29916e+06 CE 1582/10/040.50 2.29916e+06 CE 1582/10/040.50 2.29916e+06 CE 1582/10/150.50 2.29916e+06 CE 1582/10/150.50 2.33327e+06 CE 1676/03/040.00 2.33327e+06 CE 1676/03/040.50 2.36122e+06 CE 1752/09/130.50 2.36122e+06 CE 1752/09/130.50 2.36122e+06 CE 1752/09/140.50 2.36122e+06 CE 1752/09/140.50 2.37255e+06 CE 1783/09/180.00 2.37255e+06 CE 1783/09/180.50 2.37584e+06 CE 1792/09/220.00 2.37584e+06 CE 1792/09/220.50 2.39465e+06 CE 1844/03/210.00 2.39465e+06 CE 1844/03/210.50 2.39471e+06 CE 1844/05/240.00 2.39471e+06 CE 1844/05/240.50 2.39738e+06 CE 1851/09/180.00 2.39738e+06 CE 1851/09/180.50 2.4e+06 CE 1858/11/170.00 2.4e+06 CE 1858/11/170.50 2.4097e+06 CE 1885/06/100.00 2.4097e+06 CE 1885/06/100.50 2.41502e+06 CE 1899/12/310.81 2.41502e+06 CE 1899/12/310.50 2.4297e+06 CE 1940/03/140.00 2.4297e+06 CE 1940/03/140.50 2.4397e+06 CE 1967/07/310.00 2.4397e+06 CE 1967/07/310.50 2.44059e+06 CE 1970/01/010.00 2.44059e+06 CE 1970/01/010.50 2.44382e+06 CE 1978/11/050.00 2.44382e+06 CE 1978/11/050.50 2.44382e+06 CE 1978/11/060.00 2.44382e+06 CE 1978/11/060.50 2.44424e+06 CE 1980/01/060.00 2.44424e+06 CE 1980/01/060.50 2.44979e+06 CE 1995/03/140.00 2.44979e+06 CE 1995/03/140.50 2.45014e+06 CE 1996/02/250.00 2.45014e+06 CE 1996/02/250.50 2.45154e+06 CE 2000/01/010.00 2.45154e+06 CE 2000/01/010.50 2.45889e+06 CE 2020/02/140.35 2.45889e+06 CE 2020/02/140.50 2.45628e+06 CE 2012/12/210.00 2.45628e+06 CE 2012/12/210.50 2.91394e+06 CE 3266/01/010.50 2.91394e+06 CE 3266/01/010.50 JED_TO_NOON_NEXT_TEST JED_TO_NOON_NEXT: JED => JED (next noon). JED JED (next noon) 0 BCE 4713/01/010.50 0 BCE 4713/01/010.50 1 BCE 4713/01/020.50 1 BCE 4713/01/020.50 259258 BCE 4004/10/230.50 259258 BCE 4004/10/230.50 347998 BCE 3761/10/080.00 347999 BCE 3761/10/080.50 584282 BCE 3114/09/060.00 584283 BCE 3114/09/060.50 588466 BCE 3102/02/180.25 588466 BCE 3102/02/180.50 758326 BCE 2637/03/080.00 758326 BCE 2637/03/080.50 1.43818e+06 BCE 776/07/090.00 1.43818e+06 BCE 776/07/090.50 1.44639e+06 BCE 753/01/010.00 1.44639e+06 BCE 753/01/010.50 1.44864e+06 BCE 747/02/260.00 1.44864e+06 BCE 747/02/260.50 1.44864e+06 BCE 747/02/260.00 1.44864e+06 BCE 747/02/260.50 1.60771e+06 BCE 312/09/010.00 1.60771e+06 BCE 312/09/010.50 1.60774e+06 BCE 312/10/010.00 1.60774e+06 BCE 312/10/010.50 1.71326e+06 BCE 23/08/290.00 1.71326e+06 BCE 23/08/290.50 1.72106e+06 BCE 1/01/020.00 1.72106e+06 BCE 1/01/020.50 1.72142e+06 BCE 1/12/310.00 1.72142e+06 BCE 1/12/310.50 1.72142e+06 CE 1/01/010.00 1.72142e+06 CE 1/01/010.50 1.72143e+06 CE 1/01/030.00 1.72143e+06 CE 1/01/030.50 1.72143e+06 CE 1/01/030.00 1.72143e+06 CE 1/01/030.50 1.72422e+06 CE 8/08/290.00 1.72422e+06 CE 8/08/290.50 1.74196e+06 CE 57/03/240.00 1.74196e+06 CE 57/03/240.50 1.74999e+06 CE 79/03/240.00 1.75e+06 CE 79/03/240.50 1.82503e+06 CE 284/08/290.00 1.82503e+06 CE 284/08/290.50 1.86284e+06 CE 388/03/030.00 1.86284e+06 CE 388/03/030.50 1.92287e+06 CE 552/07/110.00 1.92287e+06 CE 552/07/110.50 1.93675e+06 CE 590/07/120.00 1.93675e+06 CE 590/07/120.50 1.94035e+06 CE 600/05/240.00 1.94035e+06 CE 600/05/240.50 1.94832e+06 CE 622/03/190.00 1.94832e+06 CE 622/03/190.50 1.94844e+06 CE 622/07/150.00 1.94844e+06 CE 622/07/150.50 1.94844e+06 CE 622/07/160.00 1.94844e+06 CE 622/07/160.50 1.95206e+06 CE 632/06/160.00 1.95206e+06 CE 632/06/160.50 1.95207e+06 CE 632/06/210.00 1.95207e+06 CE 632/06/210.50 2.1107e+06 CE 1066/10/140.00 2.1107e+06 CE 1066/10/140.50 2.11487e+06 CE 1078/03/170.00 2.11487e+06 CE 1078/03/170.50 2.28943e+06 CE 1556/02/090.00 2.28943e+06 CE 1556/02/090.50 2.29916e+06 CE 1582/10/040.50 2.29916e+06 CE 1582/10/040.50 2.29916e+06 CE 1582/10/150.50 2.29916e+06 CE 1582/10/150.50 2.33327e+06 CE 1676/03/040.00 2.33327e+06 CE 1676/03/040.50 2.36122e+06 CE 1752/09/130.50 2.36122e+06 CE 1752/09/130.50 2.36122e+06 CE 1752/09/140.50 2.36122e+06 CE 1752/09/140.50 2.37255e+06 CE 1783/09/180.00 2.37255e+06 CE 1783/09/180.50 2.37584e+06 CE 1792/09/220.00 2.37584e+06 CE 1792/09/220.50 2.39465e+06 CE 1844/03/210.00 2.39465e+06 CE 1844/03/210.50 2.39471e+06 CE 1844/05/240.00 2.39471e+06 CE 1844/05/240.50 2.39738e+06 CE 1851/09/180.00 2.39738e+06 CE 1851/09/180.50 2.4e+06 CE 1858/11/170.00 2.4e+06 CE 1858/11/170.50 2.4097e+06 CE 1885/06/100.00 2.4097e+06 CE 1885/06/100.50 2.41502e+06 CE 1899/12/310.81 2.41502e+06 CE 1900/01/010.50 2.4297e+06 CE 1940/03/140.00 2.4297e+06 CE 1940/03/140.50 2.4397e+06 CE 1967/07/310.00 2.4397e+06 CE 1967/07/310.50 2.44059e+06 CE 1970/01/010.00 2.44059e+06 CE 1970/01/010.50 2.44382e+06 CE 1978/11/050.00 2.44382e+06 CE 1978/11/050.50 2.44382e+06 CE 1978/11/060.00 2.44382e+06 CE 1978/11/060.50 2.44424e+06 CE 1980/01/060.00 2.44424e+06 CE 1980/01/060.50 2.44979e+06 CE 1995/03/140.00 2.44979e+06 CE 1995/03/140.50 2.45014e+06 CE 1996/02/250.00 2.45014e+06 CE 1996/02/250.50 2.45154e+06 CE 2000/01/010.00 2.45154e+06 CE 2000/01/010.50 2.45889e+06 CE 2020/02/140.35 2.45889e+06 CE 2020/02/140.50 2.45628e+06 CE 2012/12/210.00 2.45628e+06 CE 2012/12/210.50 2.91394e+06 CE 3266/01/010.50 2.91394e+06 CE 3266/01/010.50 JED_TO_WEEKDAY_TEST JED_TO_WEEKDAY determines the weekday corresponding to a JED: JED W W True Computed 1.50723e+06 1 1 0 1.66004e+06 4 4 0 1.74689e+06 4 4 0 1.77064e+06 1 1 0 1.89273e+06 4 4 0 1.93158e+06 2 2 7 1.97485e+06 7 7 0 2.09116e+06 1 1 0 2.12151e+06 1 1 0 2.15578e+06 6 6 0 2.17403e+06 7 7 0 2.19158e+06 6 6 0 2.19526e+06 1 1 0 2.22927e+06 1 1 0 2.24558e+06 4 4 0 2.2661e+06 7 7 0 2.28854e+06 7 7 0 2.2909e+06 7 7 0 2.32314e+06 4 4 0 2.33485e+06 1 1 0 2.34802e+06 6 6 0 2.36698e+06 1 1 0 2.38565e+06 2 2 7 2.39283e+06 4 4 0 2.41622e+06 1 1 0 2.42585e+06 1 1 0 2.43027e+06 2 2 7 2.43083e+06 2 2 7 2.431e+06 5 5 0 2.4487e+06 3 3 0 2.45014e+06 1 1 0 2.46574e+06 4 4 0 2.48608e+06 1 1 0 JED_WEEKDAY_VALUES_TEST: JED_WEEKDAY_VALUES returns Julian Ephemeris Dates (JED) and the corresponding weekday JED # Weekday 1.50723e+06 1 Sunday 1.66004e+06 4 Wednesday 1.74689e+06 4 Wednesday 1.77064e+06 1 Sunday 1.89273e+06 4 Wednesday 1.93158e+06 2 Monday 1.97485e+06 7 Saturday 2.09116e+06 1 Sunday 2.12151e+06 1 Sunday 2.15578e+06 6 Friday 2.17403e+06 7 Saturday 2.19158e+06 6 Friday 2.19526e+06 1 Sunday 2.22927e+06 1 Sunday 2.24558e+06 4 Wednesday 2.2661e+06 7 Saturday 2.28854e+06 7 Saturday 2.2909e+06 7 Saturday 2.32314e+06 4 Wednesday 2.33485e+06 1 Sunday 2.34802e+06 6 Friday 2.36698e+06 1 Sunday 2.38565e+06 2 Monday 2.39283e+06 4 Wednesday 2.41622e+06 1 Sunday 2.42585e+06 1 Sunday 2.43027e+06 2 Monday 2.43083e+06 2 Monday 2.431e+06 5 Thursday 2.4487e+06 3 Tuesday 2.45014e+06 1 Sunday 2.46574e+06 4 Wednesday 2.48608e+06 1 Sunday MONTH_TO_MONTH_NAME_COMMON_TEST For the Common calendar, MONTH_TO_MONTH_NAME_COMMON names the months: 1 January 2 February 3 March 4 April 5 May 6 June 7 July 8 August 9 September 10 October 11 November 12 December MONTH_TO_MONTH_NAME_COMMON3_TEST For the Common calendar, MONTH_TO_MONTH_NAME_COMMON3 names the months: 1 Jan 2 Feb 3 Mar 4 Apr 5 May 6 Jun 7 Jul 8 Aug 9 Sep 10 Oct 11 Nov 12 Dec R8_MOD_TEST R8_MOD returns the remainder after division. R8_MOD ( X, Y ) has the same sign as X. X Y FMOD(X,Y) R8_MOD(X,Y) -5.63163 9.12635 -5.63163 -5.63163 6.59018 1.23391 0.42064 0.42064 -1.69386 -8.67763 -1.69386 -1.69386 -4.84844 -7.80086 -4.84844 -4.84844 -9.12342 2.67931 -1.08548 -1.08548 -8.76546 -1.00922 -0.691689 -0.691689 -1.97387 5.09347 -1.97387 -1.97387 5.94574 -9.96323 5.94574 5.94574 7.95008 -2.98495 1.98017 1.98017 -8.1091 -9.72766 -8.1091 -8.1091 R8_NINT_TEST R8_NINT produces the nearest integer. X R8_NINT(X) -5.63163 -6 9.12635 9 6.59018 7 1.23391 1 -1.69386 -2 -8.67763 -9 -4.84844 -5 -7.80086 -8 -9.12342 -9 2.67931 3 R8_UNIFORM_01_TEST R8_UNIFORM_01 samples a uniform random distribution in [0,1]. distributed random numbers. Using initial random number seed = 123456789 First few values: 0 0.218418 1 0.956318 2 0.829509 3 0.561695 4 0.415307 5 0.0661187 6 0.257578 7 0.109957 8 0.043829 9 0.633966 Number of samples was 1000 Minimum value was 0 Maximum value was 0.997908 Average value was 0.50304 Variance was 0.0822497 R8_UNIFORM_AB_TEST R8_UNIFORM_AB produces a random real in a given range. Using range 10 <= A <= 25. I A 0 10.002 1 13.5421 2 22.6794 3 21.9558 4 10.8556 5 20.8346 6 21.9964 7 18.1105 8 18.2206 9 23.3467 WEEKDAY_TO_NAME_COMMON_TEST WEEKDAY_TO_NAME_COMMON names the days of the week, 1 Sunday 2 Monday 3 Tuesday 4 Wednesday 5 Thursday 6 Friday 7 Saturday WEEKDAY_TO_NAME_COMMON2_TEST WEEKDAY_TO_NAME_COMMON2 names the days of the week, 1 Su 2 M 3 Tu 4 W 5 Th 6 F 7 Sa WEEKDAY_TO_NAME_COMMON3_TEST WEEKDAY_TO_NAME_COMMON3 names the days of the week, 1 Sun 2 Mon 3 Tue 4 Wed 5 Thu 6 Fri 7 Sat WEEKDAY_VALUES_TEST: WEEKDAY_VALUES returns values of the weekday for a given Y/M/D date. Y M D W -587 7 30 1 -169 12 8 4 70 9 26 4 135 10 3 1 470 1 7 4 576 5 18 2 694 11 7 7 1013 4 19 1 1066 10 14 7 1096 5 18 1 1190 3 16 6 1240 3 3 7 1288 3 26 6 1298 4 20 1 1391 6 4 1 1436 1 25 4 1492 3 31 7 1553 9 9 7 1560 2 24 7 1648 6 10 4 1680 6 30 1 1716 7 24 6 1768 6 19 1 1819 8 2 2 1839 3 27 4 1903 4 19 1 1929 8 25 1 1941 9 29 2 1943 4 19 2 1943 10 7 5 1992 3 17 3 1996 2 25 1 2038 11 10 4 2094 7 18 1 Y_TO_S_COMMON_TEST: Y_TO_S_COMMON converts a year Y to a string S. Y 'S' 1679 'CE 1679' -566 'BCE 566' 1213 'CE 1213' 1269 'CE 1269' -1666 'BCE 1666' -2242 'BCE 2242' 40 'CE 40' 673 'CE 673' -275 'BCE 275' 2164 'CE 2164' YEAR_LENGTH_DAYS_COMMON_TEST For the Common calendar: YEAR_LENGTH_DAYS_COMMON gives the length of a year. Year Length CE 1580 366 CE 1581 365 CE 1582 355 CE 1583 365 CE 1584 366 CE 1585 365 CE 1750 365 CE 1751 365 CE 1752 366 CE 1753 365 CE 1754 365 CE 1755 365 CE 1000 366 CE 1100 366 CE 1200 366 CE 1300 366 CE 1400 366 CE 1500 366 CE 1600 366 CE 1700 365 CE 1800 365 CE 1900 365 CE 2000 366 YEAR_TO_GOLDEN_NUMBER_TEST YEAR_TO_GOLDEN_NUMBER determines the golden number of a year. Year Golden Number BCE 2 19 BCE 1 1 CE 1 2 CE 2 3 CE 3 4 CE 4 5 CE 5 6 CE 6 7 CE 7 8 CE 8 9 CE 9 10 CE 10 11 CE 11 12 CE 12 13 CE 13 14 CE 14 15 CE 15 16 CE 16 17 CE 17 18 CE 18 19 CE 19 1 CE 20 2 YMD_TO_DECIMAL_TEST YMD_TO_DECIMAL converts a date to a year and decimal. YMD Y.F CE 1962/03/08 1962.1822 CE 1969/07/25 1969.563 CE 1968/04/18 1968.2964 CE 1965/08/13 1965.6151 CE 1964/02/26 1964.1544 CE 1960/08/29 1960.6598 CE 1962/07/29 1962.574 CE 1961/02/05 1961.0973 CE 1960/06/09 1960.4385 CE 1966/05/04 1966.3384 YMD_TO_WEEKDAY_COMMON_TEST YMD_TO_WEEKDAY_COMMON returns the day of the week for dates in the Common calendar: YMD Weekday Weekday Tabulated Computed BCE 587/07/30 Sunday Sunday BCE 169/12/08 Wednesday Wednesday CE 70/09/26 Wednesday Wednesday CE 135/10/03 Sunday Sunday CE 470/01/07 Wednesday Wednesday CE 576/05/18 Monday Monday CE 694/11/07 Saturday Saturday CE 1013/04/19 Sunday Sunday CE 1066/10/14 Saturday Saturday CE 1096/05/18 Sunday Sunday CE 1190/03/16 Friday Friday CE 1240/03/03 Saturday Saturday CE 1288/03/26 Friday Friday CE 1298/04/20 Sunday Sunday CE 1391/06/04 Sunday Sunday CE 1436/01/25 Wednesday Wednesday CE 1492/03/31 Saturday Saturday CE 1553/09/09 Saturday Saturday CE 1560/02/24 Saturday Saturday CE 1648/06/10 Wednesday Wednesday CE 1680/06/30 Sunday Sunday CE 1716/07/24 Friday Friday CE 1768/06/19 Sunday Sunday CE 1819/08/02 Monday Monday CE 1839/03/27 Wednesday Wednesday CE 1903/04/19 Sunday Sunday CE 1929/08/25 Sunday Sunday CE 1941/09/29 Monday Monday CE 1943/04/19 Monday Monday CE 1943/10/07 Thursday Thursday CE 1992/03/17 Tuesday Tuesday CE 1996/02/25 Sunday Sunday CE 2038/11/10 Wednesday Wednesday CE 2094/07/18 Sunday Sunday CALPAK_TEST Normal end of execution. 13 February 2020 08:22:11 AM