On Monday, 22 December 2014 at 08:43:56 UTC, Laeeth Isharc wrote:
Last one for a while, I think. I wish you all a very peaceful
Christmas and New Year, and let's hope 2015 brings some more
positive energy to the world.
Links here:
https://github.com/Laeeth/d_simplex
https://github.com/Laeeth/d_swisseph
1. D bindings/wrappers for the swiss ephemeris
http://www.astro.com/swisseph/swephinfo_e.htm
"The SWISS EPHEMERIS is the high precision ephemeris developed
by Astrodienst, largely based upon the DExxx ephemerides from
NASA's JPL . The original release in 1997 was based on the
DE405/406 ephemeris. Since release 2.00 in February 2014, it is
based on the DE431 ephemeris released by JPL in September 2013".
NB - Swiss Ephemeris is not free for commercial use.
====
2. D port of simple Nelder-Mead simplex minimisation (written
by Michael F. Hutt in original C version) here. With
constraints. From Wiki:
https://en.wikipedia.org/wiki/Nelder-Mead_method
"The Nelder–Mead method or downhill simplex method or amoeba
method is a commonly used nonlinear optimization technique,
which is a well-defined numerical method for problems for which
derivatives may not be known. However, the Nelder–Mead
technique is a heuristic search method that can converge to
non-stationary points[1] on problems that can be solved by
alternative methods".
====
Links here:
https://github.com/Laeeth/d_simplex
https://github.com/Laeeth/d_swisseph
It's been ages since I read the paper, but there is a parallel
version of Nelder-Mead that is supposed to give very large
performance improvements, even when used on a single processor:
http://www.cs.ucsb.edu/~kyleklein/publications/neldermead.pdf
It is not difficult to implement. I may look into modifying your
code to implement it when I get some time.