Commit Graph

333 Commits

Author SHA1 Message Date
Don Cross
d66fc5a9ff Python: converted refraction types to enumerated type Refraction. 2019-07-08 16:18:34 -04:00
Don Cross
f381740976 Python: Convert rise/set direction kinds to an enumerated type Direction. 2019-07-08 16:05:56 -04:00
Don Cross
9384ce69b3 Python: rework apsis kind as an IntEnum called ApsisKind. 2019-07-08 15:59:24 -04:00
Don Cross
3ea7237e3f Python: eliminate BodyName array; just use IntEnum functionality. 2019-07-08 15:51:10 -04:00
Don Cross
b3e6f185b6 Reworking Python body codes as enumerated type Body.
This will help documentation generator pydown.py organize
body codes and other similar enumerations together as classes.
2019-07-08 15:37:56 -04:00
Don Cross
bbd79d7e33 Following "NumPy style" Python docstrings.
I will probably need to create my own tool for generating
Markdown from these comments. None of the tools I see online
do quite what I want.
2019-07-07 20:59:20 -04:00
Don Cross
0e5dd8cee9 Include members-of-members in Python documentation. 2019-07-07 17:43:46 -04:00
Don Cross
ce3d709d5e Adding a little more Python documentation. 2019-07-07 17:42:21 -04:00
Don Cross
cb82749aec Starting to work on Python documentation. 2019-07-07 14:56:04 -04:00
Don Cross
aa0561a534 Trim trailing whitespace from all generated source. 2019-07-07 14:05:49 -04:00
Don Cross
78d43589ff Generate C iau2000b data from file. 2019-07-06 20:49:11 -04:00
Don Cross
f390fc9201 Generate C CalcMoon AddSol statements from data file.
Use the same data file that I generate AddSol for Python
to also generate them in the C source code.
2019-07-06 18:08:07 -04:00
Don Cross
20f87859d8 Moved AddSol data into a data file, so data can be shared across languages. 2019-07-06 17:50:45 -04:00
Don Cross
d750c61337 Python: Moved iau2000b and CalcMoon AddSol data into codegen phase.
Now the code generator knows how to optimize and inject these
two calculations into the Python code.
2019-07-06 17:29:34 -04:00
Don Cross
ccf8ab041b Made generated code in _iau2000b a little prettier.
Instead of (a + -b*t), generate (a - b*t).
2019-07-05 08:33:05 -04:00
Don Cross
b4b97935c3 _iau2000b: eliminate a few assignment statements. 2019-07-05 08:31:18 -04:00
Don Cross
36482b7b37 Python _iau2000b: remove fmod calls. riseset 17.0 seconds. 2019-07-05 08:28:07 -04:00
Don Cross
a2183214f1 riseset 17.85 seconds: more optimization of _iau2000b. 2019-07-04 22:16:52 -04:00
Don Cross
2a6e4fa8c9 riseset 17.8 seconds: eliminate more 0 terms. 2019-07-04 21:59:47 -04:00
Don Cross
eb7b1c18fc Minor cleanup in _iau2000b optimizer. 2019-07-04 21:46:41 -04:00
Don Cross
efb94660b8 riseset 18.0 seconds: eliminate multiplications by 1.0. 2019-07-04 21:36:44 -04:00
Don Cross
3984be1ee2 riseset 17.9 seconds: omit iau2000b terms with 0 coefficient. 2019-07-04 21:12:13 -04:00
Don Cross
900a4c9554 Unrolled _iau2000b loop: riseset test runs in 18.8 seconds. 2019-07-04 21:00:17 -04:00
Don Cross
a7002adf71 Python: riseset test runs in 19.3 seconds: improved _CalcVsop(). 2019-07-04 20:00:39 -04:00
Don Cross
c07ba908cb Python: _iau2000 is a little faster: remove list indexing from inner loop.
riseset test now finishes in 19.8 seconds.
2019-07-04 19:43:56 -04:00
Don Cross
bdc84e6d15 Python: _iau2000 is a little faster.
riseset test now runs in 20.3 seconds.
Converted all _iaudata to explicit float, and use tuples instead of lists.
Both appear to help.
2019-07-04 19:33:41 -04:00
Don Cross
ba244cdb0d Now running riseset test in 22 seconds: better _iau2000 loop. 2019-07-04 19:08:21 -04:00
Don Cross
0909aeeddd Python: small performance improvement in _iau2000b. 2019-07-04 15:32:15 -04:00
Don Cross
59f23226b6 Python _CalcMoon: Combine complex multiplication lists into single statements. 2019-07-04 09:52:13 -04:00
Don Cross
42a7e1680e Python _CalcMoon: Simplified ADDN, but no real performance change. 2019-07-04 09:38:28 -04:00
Don Cross
f9bdda49e3 Python _CalcMoon optimization: use native Python complex numbers. 2019-07-04 09:32:17 -04:00
Don Cross
cdc7416996 Eliminated AddThe function calls in expanded output. 2019-07-03 22:12:58 -04:00
Don Cross
0ac3fa708f fixaddsol: Major performance improvement: 29.1 seconds.
Use dictionaries instead of creating custom array classes.
That way co[] and si[] subscripts are much faster.
2019-07-03 21:46:18 -04:00
Don Cross
835d6e524b fixaddsol: Eliminate Term and AddSol functions completely. 44.4 seconds. 2019-07-03 21:34:26 -04:00
Don Cross
ca658e2ad1 fixaddsol: Eliminate lines where we are multiplying a term by zero. 2019-07-03 21:27:26 -04:00
Don Cross
19eee58f00 Python: fixaddsol now greatly reduces the number of calls to AddThe(). 46.6 seconds. 2019-07-03 20:57:45 -04:00
Don Cross
ea10e1c793 Python: fixaddsol.py now generates smaller optimized code. 48.7 seconds. 2019-07-03 20:45:43 -04:00
Don Cross
00c2543c7b Python: AddSol translation gets time down to 49 seconds. 2019-07-03 20:36:20 -04:00
Don Cross
810724a7da Python: Another _CalcMoon performance improvement.
Reworked Term() to use less array indexing; pack and unpack tuples instead.
Execution time for riseset is just below 51 seconds now.
2019-07-03 19:54:10 -04:00
Don Cross
adc424106c Python: Improved performance of _CalcMoon.
I unrolled the loop in the Term function.
The riseset test now runs in 52 seconds instead of 56.
2019-07-03 17:49:42 -04:00
Don Cross
9359b80c42 Fixed #46 - Python calculations exactly match C calculations.
The problem was that the Python "%" operator does not behave
exactly like the C function fmod().  However, there is a Python
function math.fmod() that does act just like its counterpart in C.
Now astro_check output is *identical* between Python and C,
at least on my Windows 10 laptop.

Reinstated "ctest diff" in unit tests to make sure the
two implementations stay in sync.
2019-07-02 19:19:36 -04:00
Don Cross
eb2a8c14d0 Python: finished all unit tests -- LunarApsis was the last one. 2019-07-02 14:13:31 -04:00
Don Cross
d794908472 Python: Added test and fixes for SearchPeakMagnitude. 2019-07-02 13:38:55 -04:00
Don Cross
d5bdb420b1 Simplified NextLunarApsis functions in C and Python. 2019-07-02 13:05:54 -04:00
Don Cross
d01c4fd0a5 Python: Added tests for astronomy.Illumination().
I still need to add a test for SearchPeakMagnitude().
2019-07-01 17:00:28 -04:00
Don Cross
86674e3c73 Python: implemented rise/set tests and fixed associated bugs. 2019-06-30 18:58:04 -04:00
Don Cross
e3759ebde5 Python: finished elongation/longitude tests. 2019-06-30 14:29:25 -04:00
Don Cross
4be7b949f6 JS: renamed field from apsisType to kind. 2019-06-30 07:50:29 -04:00
Don Cross
0ab44ede69 Python: Added MoonPhase test. Fixed errors. 2019-06-29 23:43:38 -04:00
Don Cross
9d304850df Python: Added seasons test and fixed errors uncovered by it. 2019-06-29 23:02:27 -04:00