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