Commit Graph

92 Commits

Author SHA1 Message Date
Don Cross
00a80bd45a Python: escape examples as code blocks in Markdown. 2019-07-12 20:04:15 -04:00
Don Cross
f97096105a Python docs: support documentation of enumerated types. 2019-07-12 19:58:14 -04:00
Don Cross
033a2a1b53 pydown: Split classes into regular classes, enums, and errors.
Will generate different Markdown for my regular classes,
enumerated types, and error types.

Found out that 'from enum import IntEnum' pulls IntEnum
into the astronomy module and causes us to try to generate
documentation for it. Just keep it in the enum module.

Removed spurious dump of JavaScript README.md when verify_clean
fails.
2019-07-10 21:57:07 -04:00
Don Cross
1834b18ca0 pydown: Making a little progress converting Python docstrings to Markdown. 2019-07-10 20:19:26 -04:00
Don Cross
c7210a108f Python: replace _DEG2RAD, _RAD2DEG constants with math functions. 2019-07-09 22:09:53 -04:00
Don Cross
fdbad8a252 Python type annotations are causing problems.
I'm not going to use type annotations in function signatures
because they are causing more problems than they are worth.
The last straw was that different versions of Python don't
generate the same text representation. This broke my Travis CI
tests.
2019-07-09 18:16:04 -04:00
Don Cross
e169f79fc8 Baby step in converting Python docstrings to Markdown. 2019-07-09 17:02:56 -04:00
Don Cross
284894c7e1 Updated Windows build process.
Fixed C compiler warnings that show up on Windows but not Linux.
Trim trailing whitespace for target code.
Generate Python documentation.
2019-07-09 16:35:15 -04:00
Don Cross
4ba3130ecc Python: experimenting with generation of Markdown documentation. 2019-07-08 21:59:29 -04:00
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