Commit Graph

1683 Commits

Author SHA1 Message Date
Don Cross
633b7ae2ef C# rotation: Added CombineRotation. Started unit tests. 2019-12-21 20:52:15 -05:00
Don Cross
88eaadf176 C# rotation: split nutation into nutation_rot, nutation. 2019-12-21 19:55:16 -05:00
Don Cross
8d28f07ef3 C#: Added class RotationMatrix, reworked precession function.
Starting to work on rotation functions in C#.
Added class RotationMatrix.
Split precession() into precession() and precession_rot().
Fixed problem in csdown handling type double[3,3].
2019-12-21 19:03:26 -05:00
Don Cross
1fde8049c6 Added check_internal_links.py utility to look for broken links in markdown files.
Currently I ignore any errors when checking the C# documentation,
because there are broken links for the rotation functions I
haven't started adding yet.  I will turn that error check back on
once I finish those functions.
2019-12-21 15:41:39 -05:00
Don Cross
30d03321e3 C# doc: fixed broken internal links. 2019-12-21 15:15:44 -05:00
Don Cross
3160bbc992 C# doc: Fixed incorrect symbol names in documentation internal links. 2019-12-21 14:46:26 -05:00
Don Cross
0801769b35 C# doc: Starting to reflect in astronomy.dll. 2019-12-20 15:24:44 -05:00
Don Cross
a20bac5ce5 Updated Windows build to invoke C# documentation generator. 2019-12-20 14:03:40 -05:00
Don Cross
96288bf014 Starting to add a C# utility for generating C# documentation.
I will need to use reflection into the astronomy.dll assembly,
along with the generated astronomy.xml, to generate Markdown
documentation. This is the start of that project.
2019-12-20 13:41:15 -05:00
Don Cross
54e886f1a5 C#: starting to work on documentation generator.
I was going to write a Python program to parse the
xml file generated by the C# compiler.
The problem is it does not contain enough information
about types, as explained here:

https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/xmldoc/how-to-use-the-xml-documentation-features

"The XML file does not provide full information about the type and members
(for example, it does not contain any type information).
To get full information about a type or member, the documentation file
must be used together with reflection on the actual type or member."

So that means I will end up writing the documentation generator in C#
and using reflection along with the XML file to generate Markdown.
2019-12-19 21:16:57 -05:00
Don Cross
3d38890aaf Merge branch 'master' into csharp.
Includes coordinate transform logic support in
C, JavaScript, and Python.
Will start porting to C# soon.
2019-12-19 14:28:09 -05:00
Don Cross
07e68707a6 Add prefix markdown to Python documentation. 2019-12-19 13:35:56 -05:00
Don Cross
fce1468a1c Fixed #55 - Python documentation internal links translated to Markdown.
pydown.py now searches description text for internal links
and expands them properly for Markdown file README.md.
For example:  "#Body" ==> "[`Body`](#Body)".
Fixed a couple of incorrect "Astronomy_..." names in Python docs.
2019-12-18 17:07:00 -05:00
Don Cross
7040ff8684 Cleaned up documented return types for Python functions.
Never use pound-signs inside documentation for Python return types.
Automatically create internal link just like for function parameter types.
Added special case logic in pydown.py for "Time or `None`".
Fixed minor documentation mistakes in JS version.
2019-12-18 16:53:13 -05:00
Don Cross
69463e04cf Python/Windows: added rotation and refraction unit tests.
Also had to adjust a couple of error thresholds.
Windows version of Python calculates slightly different
numbers than Linux version. Perhaps a difference in
runtime libraries?
2019-12-18 10:19:26 -05:00
Don Cross
e168f37ac5 Python: Finished rotation logic and unit tests.
I thought I had finished the rotation functions last time,
but I missed a couple of them. Finishing the unit tests
revealed that, thankfully.
2019-12-18 10:05:00 -05:00
Don Cross
23315375cf Increased error thresholds in ctest.c for Microsoft C.
The Microsoft C compiler/runtime for Windows is generating
slightly larger floating point discrepancies in the unit
tests. Adjusted the thresholds upward so all the tests pass
in Windows also.
2019-12-18 09:54:35 -05:00
Don Cross
98deea4523 Python: Finished coding rotation functions. Need to finish test cases. 2019-12-17 20:32:37 -05:00
Don Cross
85d9113f77 Python: Added more rotation functions and unit tests. 2019-12-15 21:24:32 -05:00
Don Cross
d572edb10f Python: Implemented Rotation_ECL_EQJ. 2019-12-15 20:41:03 -05:00
Don Cross
126cc04d1d Python: Implemented CombineRotation. 2019-12-15 20:29:41 -05:00
Don Cross
8c590e4449 Python: implemented InverseRotation function. Cleaned up trailing whitespace.
Also added missing check in Python apsis test where
I did not verify that each apsis kind was correct.
2019-12-15 20:23:35 -05:00
Don Cross
e1d1aa4b50 Python: implemented unit test of refraction functions. 2019-12-15 20:04:44 -05:00
Don Cross
92cc2d9783 Python: starting to implement rotation functions and associated unit tests. 2019-12-15 19:51:30 -05:00
Don Cross
4a449cc0a1 Python: InverseRefractionAngle, RotateVector. Minor doc fixes. 2019-12-15 13:11:47 -05:00
Don Cross
6440743052 Python: Added function RefractionAngle.
Separate the calculation of refraction angle from the Horizon function.
Added missing documentation for the parameters of the Horizon function.
Added definition of class Spherical. Not yet used, but soon will be.
2019-12-15 12:25:17 -05:00
Don Cross
ab8d8ba295 Python: Starting to port new rotation code.
Split _precession into _precession_rot/_precession.
Split _nutation into _nutation_rot/_nutation.
Removed trailing whitespace from readme.
2019-12-15 11:34:16 -05:00
Don Cross
4fc2787569 JS: Added demo program horizon.js. 2019-12-14 21:16:43 -05:00
Don Cross
ef633967e3 C, JS: continued eliminating redunancies in precession, nutation. 2019-12-14 20:18:45 -05:00
Don Cross
e7d8804bf1 C: Eliminated duplicate code - nutation() is based on nutation_rot().
Instead of having the same calculations duplicated in both
nutation() and nutation_rot(), I reworked nutation() in terms of
nutation_rot(). Use nutation_rot() to calculate the rotation matrix,
then multiply that matrix by the input vector to produce the output vector.
2019-12-14 18:15:13 -05:00
Don Cross
c4a537a236 C: Fixed some code documentation mistakes. 2019-12-14 17:24:19 -05:00
Don Cross
7b7c28bced C: Added Astronomy_VectorFromEquator and Astronomy_EquatorFromVector.
These helper routines in the JavaScript code make sense for C also.
2019-12-14 17:20:32 -05:00
Don Cross
55e2a52004 JS: Added RefractionTest. Removed unnecessary typecast from C RefractionTest. 2019-12-14 15:16:07 -05:00
Don Cross
8b11d9d5e7 JS: Finished rotation unit tests. 2019-12-14 14:58:47 -05:00
Don Cross
e7d1b4bc25 JS: More work in progress - rotation unit tests. 2019-12-14 14:55:09 -05:00
Don Cross
185a872082 JS: Added helper function EquatorFromVector. 2019-12-14 14:44:29 -05:00
Don Cross
7307c99280 JS: Added function VectorFromEquator to convert equatorial coordinates to vector. 2019-12-14 14:36:56 -05:00
Don Cross
46fa5174a2 JS: Added factory function MakeRotation.
There was no way for outside callers to directly instantiate
a RotationMatrix object. Provided the factory function MakeRotation.
2019-12-14 14:19:25 -05:00
Don Cross
a7c5b9ef48 C rotation test: missed checking threshold. 2019-12-13 21:07:38 -05:00
Don Cross
32f5567254 JS: More unit testing of rotation. Fixed a couple more bugs it uncovered. 2019-12-13 21:06:52 -05:00
Don Cross
8e0d88aa18 Fixed completely wrong threshold in C RefractionTest. 2019-12-13 20:26:13 -05:00
Don Cross
690d3d0528 JS: More unit testing of rotation. Fixed a couple of bugs. 2019-12-13 20:18:48 -05:00
Don Cross
68f816f0a8 JS: Added unit test for matrix multiplication. 2019-12-13 19:27:19 -05:00
Don Cross
8322975e15 JS: Added inverse matrix unit test. Fixed bugs it uncovered. 2019-12-13 07:21:24 -05:00
Don Cross
13041b735e JS: Finished porting rotation functions. Not yet tested. 2019-12-12 21:30:54 -05:00
Don Cross
d6ab8b5148 JS: Beginning to port vector rotation code from C. 2019-12-12 17:16:17 -05:00
Don Cross
52db7cd898 Fixing travis-ci build error: looks like they changed gcc-6.
The gcc-6 compiler in travis-ci has changed its behavior.
It is warning that 'fmid' local variable in Search() may
be used uninitialized. I believe it is safe but I'm adding
an initialization to fmid to make the warning go away.
2019-12-12 13:52:58 -05:00
Don Cross
9b0a9fcd78 C: Added Astronomy_VectorFromHorizon. 2019-12-10 20:55:27 -05:00
Don Cross
696dbbaa5d C: Implemented Astronomy_InverseRefraction. 2019-12-10 20:20:31 -05:00
Don Cross
824792004d Starting to work on inverse function for refraction calculation.
I need a way to undo a refraction correction:
given a post-refraction altitude, find the unrefracted
altitude that leads to it. Starting to write the code.
Not finished yet.
2019-12-10 17:58:38 -05:00