1 /* 2 * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab 3 * Copyright (C) 2013 - Scilab Enterprises - Cedric DELAMARRE 4 * 5 * Copyright (C) 2012 - 2016 - Scilab Enterprises 6 * 7 * This file is hereby licensed under the terms of the GNU GPL v2.0, 8 * pursuant to article 5.3.4 of the CeCILL v.2.1. 9 * This file was originally licensed under the terms of the CeCILL v2.1, 10 * and continues to be available under such terms. 11 * For more information, see the COPYING file which you should have received 12 * along with this program. 13 * 14 */ 15 /*--------------------------------------------------------------------------*/ 16 17 #include "dynlib_optimization.h" 18 19 // optim 20 typedef void (*costf_t)(int *ind, int *n, double *x, double *f, double *g, int *ti, float *tr, double *td); 21 typedef void (*fuclid_t)(int *n, double *x, double *y, double *ps, int *ti, float *tr, double *td); 22 typedef void (*ctonb_t)(int *n, double *u, double *v, int *ti, float *tr, double *td); 23 typedef void (*ctcab_t)(int *n, double *u, double *v, int *ti, float *tr, double *td); 24 extern void C2F(n1qn1)(costf_t, int*, double*, double*, double*, double*, double*, int*, int*, int*, int*, int*, double*, int*, float*, double*); 25 extern void C2F(n1qn3)(costf_t, fuclid_t, ctonb_t, ctcab_t, int*, double*, double*, double*, double*, double*, double*, int*, int*, int*, int*, int*, double*, int*, int*, float*, double*); 26 extern void C2F(n1fc1)(costf_t, fuclid_t, int*, double*, double*, double*, double*, double*, double*, double*, int*, int*, int*, int*, int*, int*, int*, double*, double*, int*, float*, double*); 27 extern void C2F(qnbd)(int*, costf_t, int*, double*, double*, double*, int*, int*, double*, int*, int*, double*, double*, double*, double*, double*, double*, int*, double*, int*, int*, int*, int*, float*, double*); 28 extern void C2F(gcbd)(int*, costf_t, char*, int*, double*, double*, double*, int*, int*, double*, int*, int*, double*, double*, double*, double*, double*, double*, int*, double*, int*, int*, int*, int*, float*, double*); 29 OPTIMIZATION_IMPEXP void costf(int *ind, int *n, double *x, double *f, double *g, int *ti, float *tr, double *td); 30 OPTIMIZATION_IMPEXP void C2F(fuclid)(int *n, double *x, double *y, double *ps, int *ti, float *tr, double *td); 31 OPTIMIZATION_IMPEXP void C2F(ctonb)(int *n, double *u, double *v, int *ti, float *tr, double *td); 32 OPTIMIZATION_IMPEXP void C2F(ctcab)(int *n, double *u, double *v, int *ti, float *tr, double *td); 33 34 // fsolve 35 typedef void (*fct_t)(int *n, double *x, double *v, int *iflag); 36 typedef void (*jac_t)(int *n, double *x, double *v, double *jac, int *ldjac, int *iflag); 37 extern void C2F(hybrd1)(fct_t, int* n, double* x, double* v, double* tol, int* info, double* pdblWork, int* iWorkSize); 38 extern void C2F(hybrj1)(jac_t, int* n, double* x, double* v, double* jac, int* ldjac, double* tol, int* info, double* pdblWork, int* iWorkSize); 39 OPTIMIZATION_IMPEXP void fct(int *n, double *x, double *v, int *iflag); 40 OPTIMIZATION_IMPEXP void jac(int *n, double *x, double *v, double *jac, int *ldjac, int *iflag); 41 42 // lsqrsolve 43 typedef void (*lsqrfct_t)(int *m, int *n, double *x, double *v, int *iflag); 44 typedef void (*lsqrjac_t)(int *m, int *n, double *x, double *v, double *jac, int *ldjac, int *iflag); 45 typedef void (*lsqrjac_ext_t)(int *m, int *n, double *x, double *jac, int *ldjac, int *iflag); 46 extern void C2F(lmder)( lsqrjac_t, int*, int*, double*, double*, double*, int*, double*, double*, double*, int*, double*, int*, double*, int*, int*, int*, int*, int*, double*, double*, double*, double*, double*); 47 extern void C2F(lmdif)( lsqrfct_t, int*, int*, double*, double*, double*, double*, double*, int*, double*, double*, int*, double*, int*, int*, int*, double*, int*, int*, double*, double*, double*, double*, double*); 48 OPTIMIZATION_IMPEXP void lsqrfct(int *m, int *n, double *x, double *v, int *iflag); 49 OPTIMIZATION_IMPEXP void lsqrjac(int *m, int *n, double *x, double *v, double *jac, int *ldjac, int *iflag); 50