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