I am trying to incorporate PRIMA into my own (hobby) project, having successfully added NLOPT. The latter was installed as a package so headers & libraries are easy to find. I am not a "career" programmer (I am more concerned with the problem domain) so this stuff can be really hard! I was pleasantly surprised how easiily the c example (NEWUOA) built & ran from the commands supplied!
The following include seems to work:
#include "/opt/PRIMA/prima/install/include/prima/prima.h"
But I am less sure of the library locations:
# Powell's methods (PRIMA)
pow-%-std: %.o base.o filters.o prima.o
$(CC) $(CFLAGS) -o $@ $^ -L /opt/PRIMA/prima/install/lib -lprimaf -lprimac $(LIB_STD)
-lprima got me nowhere . . . so I tried to use both primac and primaf as above, but I am getting:
./pow-trid-std: error while loading shared libraries: libprimac.so: cannot open shared object file: No such file or directory
make: *** [Makefile:213: test-3d] Error 127
(my project uses make, and I don't know cmake!). Would it be possible to add something to the README that shows how to do this?
Incidentally, my project contains some really substantial problems involving electrical filters that are far more interesting than the standard test functions (and are also variable in dimension), you might even be interested in taking them on, but that is another matter ;)
After a further days' testing, I can say with some confidence that my filter functions seem to have defeated NEWUOA entirely - despite it working on the "standard" test functions up to 64th order, NEWUOA fails entirely on my filter functions, even when started at a solution in a second-order problem! I would dearly love to get a second opinion, to eliminate the possibility of a bug in NLOPT.
Conversely, my "enhanced Nelder-Mead" optimizer succeeds up to dimension at least 21 (41st-order filter by symmetry), with various fixed and random-ish starting conditions. Surely this is not right?
For information, the filter functions are the complex magnitudes of ratios of complex polynomials (and transcandentals - tan()), over a range of frequency points (against ideal filter characteristic or passband/stopband specifications). Perhaps this is not a suitable form?
If there is a better contact point to report this sort of information please let me know!
I am trying to incorporate PRIMA into my own (hobby) project, having successfully added NLOPT. The latter was installed as a package so headers & libraries are easy to find. I am not a "career" programmer (I am more concerned with the problem domain) so this stuff can be really hard! I was pleasantly surprised how easiily the c example (NEWUOA) built & ran from the commands supplied!
The following include seems to work:
#include "/opt/PRIMA/prima/install/include/prima/prima.h"But I am less sure of the library locations:
-lprimagot me nowhere . . . so I tried to use both primac and primaf as above, but I am getting:(my project uses make, and I don't know cmake!). Would it be possible to add something to the README that shows how to do this?
Incidentally, my project contains some really substantial problems involving electrical filters that are far more interesting than the standard test functions (and are also variable in dimension), you might even be interested in taking them on, but that is another matter ;)
After a further days' testing, I can say with some confidence that my filter functions seem to have defeated NEWUOA entirely - despite it working on the "standard" test functions up to 64th order, NEWUOA fails entirely on my filter functions, even when started at a solution in a second-order problem! I would dearly love to get a second opinion, to eliminate the possibility of a bug in NLOPT.
Conversely, my "enhanced Nelder-Mead" optimizer succeeds up to dimension at least 21 (41st-order filter by symmetry), with various fixed and random-ish starting conditions. Surely this is not right?
For information, the filter functions are the complex magnitudes of ratios of complex polynomials (and transcandentals - tan()), over a range of frequency points (against ideal filter characteristic or passband/stopband specifications). Perhaps this is not a suitable form?
If there is a better contact point to report this sort of information please let me know!