1 #ifndef DIRECT_INTERNAL_H
2 #define DIRECT_INTERNAL_H
9 #include "nlopt-util.h"
14 #endif /* __cplusplus */
17 typedef double doublereal;
18 typedef direct_objective_func fp;
20 #define ASRT(c) if (!(c)) { fprintf(stderr, "DIRECT assertion failure at " __FILE__ ":%d -- " #c "\n", __LINE__); exit(EXIT_FAILURE); }
22 #define MIN(a,b) ((a) < (b) ? (a) : (b))
23 #define MAX(a,b) ((a) > (b) ? (a) : (b))
27 extern void direct_dirheader_(
28 FILE *logfile, integer *version,
29 doublereal *x, integer *n, doublereal *eps, integer *maxf, integer *
30 maxt, doublereal *l, doublereal *u, integer *algmethod, integer *
31 maxfunc, const integer *maxdeep, doublereal *fglobal, doublereal *fglper,
32 integer *ierror, doublereal *epsfix, integer *iepschange, doublereal *
33 volper, doublereal *sigmaper);
34 extern void direct_dirinit_(
35 doublereal *f, fp fcn, doublereal *c__,
36 integer *length, integer *actdeep, integer *point, integer *anchor,
37 integer *free, FILE *logfile, integer *arrayi,
38 integer *maxi, integer *list2, doublereal *w, doublereal *x,
39 doublereal *l, doublereal *u, doublereal *minf, integer *minpos,
40 doublereal *thirds, doublereal *levels, integer *maxfunc, const integer *
41 maxdeep, integer *n, integer *maxor, doublereal *fmax, integer *
42 ifeasiblef, integer *iinfeasible, integer *ierror, void *fcndata,
43 integer jones, double starttime, double maxtime, int *force_stop);
44 extern void direct_dirinitlist_(
45 integer *anchor, integer *free, integer *
46 point, doublereal *f, integer *maxfunc, const integer *maxdeep);
47 extern void direct_dirpreprc_(doublereal *u, doublereal *l, integer *n,
48 doublereal *xs1, doublereal *xs2, integer *oops);
49 extern void direct_dirchoose_(
50 integer *anchor, integer *s, integer *actdeep,
51 doublereal *f, doublereal *minf, doublereal epsrel, doublereal epsabs, doublereal *thirds,
52 integer *maxpos, integer *length, integer *maxfunc, const integer *maxdeep,
53 const integer *maxdiv, integer *n, FILE *logfile,
54 integer *cheat, doublereal *kmax, integer *ifeasiblef, integer jones);
55 extern void direct_dirdoubleinsert_(
56 integer *anchor, integer *s, integer *maxpos, integer *point,
57 doublereal *f, const integer *maxdeep, integer *maxfunc,
58 const integer *maxdiv, integer *ierror);
59 extern integer direct_dirgetmaxdeep_(integer *pos, integer *length, integer *maxfunc,
61 extern void direct_dirget_i__(
62 integer *length, integer *pos, integer *arrayi, integer *maxi,
63 integer *n, integer *maxfunc);
64 extern void direct_dirsamplepoints_(
65 doublereal *c__, integer *arrayi,
66 doublereal *delta, integer *sample, integer *start, integer *length,
67 FILE *logfile, doublereal *f, integer *free,
68 integer *maxi, integer *point, doublereal *x, doublereal *l,
69 doublereal *minf, integer *minpos, doublereal *u, integer *n,
70 integer *maxfunc, const integer *maxdeep, integer *oops);
71 extern void direct_dirdivide_(
72 integer *new__, integer *currentlength,
73 integer *length, integer *point, integer *arrayi, integer *sample,
74 integer *list2, doublereal *w, integer *maxi, doublereal *f,
75 integer *maxfunc, const integer *maxdeep, integer *n);
76 extern void direct_dirinsertlist_(
77 integer *new__, integer *anchor, integer *point, doublereal *f,
78 integer *maxi, integer *length, integer *maxfunc,
79 const integer *maxdeep, integer *n, integer *samp, integer jones);
80 extern void direct_dirreplaceinf_(
81 integer *free, integer *freeold,
82 doublereal *f, doublereal *c__, doublereal *thirds, integer *length,
83 integer *anchor, integer *point, doublereal *c1, doublereal *c2,
84 integer *maxfunc, const integer *maxdeep, integer *maxdim, integer *n,
85 FILE *logfile, doublereal *fmax, integer jones);
86 extern void direct_dirsummary_(
87 FILE *logfile, doublereal *x, doublereal *l, doublereal *u,
88 integer *n, doublereal *minf, doublereal *fglobal,
89 integer *numfunc, integer *ierror);
90 extern integer direct_dirgetlevel_(
91 integer *pos, integer *length,
92 integer *maxfunc, integer *n, integer jones);
93 extern void direct_dirinfcn_(
94 fp fcn, doublereal *x, doublereal *c1,
95 doublereal *c2, integer *n, doublereal *f, integer *flag__,
98 /* DIRserial.c / DIRparallel.c */
99 extern void direct_dirsamplef_(
100 doublereal *c__, integer *arrayi, doublereal
101 *delta, integer *sample, integer *new__, integer *length,
102 FILE *logfile, doublereal *f, integer *free, integer *maxi,
103 integer *point, fp fcn, doublereal *x, doublereal *l, doublereal *
104 minf, integer *minpos, doublereal *u, integer *n, integer *maxfunc,
105 const integer *maxdeep, integer *oops, doublereal *fmax, integer *
106 ifeasiblef, integer *iinfesiblef, void *fcn_data, int *force_stop);
109 extern void direct_direct_(
110 fp fcn, doublereal *x, integer *n, doublereal *eps, doublereal epsabs,
111 integer *maxf, integer *maxt,
112 double starttime, double maxtime,
113 int *force_stop, doublereal *minf, doublereal *l,
114 doublereal *u, integer *algmethod, integer *ierror, FILE *logfile,
115 doublereal *fglobal, doublereal *fglper, doublereal *volper,
116 doublereal *sigmaper, void *fcn_data);
120 #endif /* __cplusplus */
122 #endif /* DIRECT_INTERNAL_H */