ADOL-C: Automatic Differentiation in C/C++ 2.7.3
Loading...
Searching...
No Matches
drivers/drivers.h
Go to the documentation of this file.
1/*----------------------------------------------------------------------------
2 ADOL-C -- Automatic Differentiation by Overloading in C++
3 File: drivers/drivers.h
4 Revision: $Id$
5 Contents: Easy to use drivers for optimization and nonlinear equations
6 (with C and C++ callable interfaces including Fortran
7 callable versions).
8
9 Copyright (c) Andrea Walther, Andreas Griewank, Andreas Kowarz,
10 Hristo Mitev, Sebastian Schlenkrich, Jean Utke, Olaf Vogel
11
12 This file is part of ADOL-C. This software is provided as open source.
13 Any use, reproduction, or distribution of the software constitutes
14 recipient's acceptance of the terms of the accompanying license file.
15
16----------------------------------------------------------------------------*/
17#if !defined(ADOLC_DRIVERS_DRIVERS_H)
18#define ADOLC_DRIVERS_DRIVERS_H 1
19
20#include <adolc/adolcexport.h>
22
24
25/****************************************************************************/
26/* DRIVERS FOR OPTIMIZATION AND NONLINEAR EQUATIONS */
27
28/*--------------------------------------------------------------------------*/
29/* function */
30/* function(tag, m, n, x[n], y[m]) */
31ADOLC_API int function(short, int, int, const double *, double *);
33
34/*--------------------------------------------------------------------------*/
35/* gradient */
36/* gradient(tag, n, x[n], g[n]) */
37ADOLC_API int gradient(short, int, const double *, double *);
39
40/*--------------------------------------------------------------------------*/
41/* jacobian */
42/* jacobian(tag, m, n, x[n], J[m][n]) */
43ADOLC_API int jacobian(short, int, int, const double *, double **);
45
46/*--------------------------------------------------------------------------*/
47/* large_jacobian */
48/* large_jacobian(tag, m, n, k, x[n], y[m], J[m][n]) */
49ADOLC_API int large_jacobian(short, int, int, int, double *, double *,
50 double **);
52 fdouble *, fdouble *);
53
54/*--------------------------------------------------------------------------*/
55/* vector_jacobian */
56/* vec_jac(tag, m, n, repeat, x[n], u[m], v[n]) */
57ADOLC_API int vec_jac(short, int, int, int, const double *, const double *,
58 double *);
60 const fdouble *, fdouble *);
61
62/*--------------------------------------------------------------------------*/
63/* jacobian_vector */
64/* jac_vec(tag, m, n, x[n], v[n], u[m]); */
65ADOLC_API int jac_vec(short, int, int, const double *, const double *,
66 double *);
68 fdouble *);
69
70/*--------------------------------------------------------------------------*/
71/* hessian */
72/* hessian(tag, n, x[n], lower triangle of H[n][n]) */
73/* uses Hessian-vector product */
74ADOLC_API int hessian(short, int, const double *, double **);
76
77/*--------------------------------------------------------------------------*/
78/* hessian2 */
79/* hessian2(tag, n, x[n], lower triangle of H[n][n]) */
80/* uses Hessian-matrix product */
81ADOLC_API int hessian2(short, int, double *, double **);
83
84/*--------------------------------------------------------------------------*/
85/* hessian_vector */
86/* hess_vec(tag, n, x[n], v[n], w[n]) */
87ADOLC_API int hess_vec(short, int, const double *, const double *, double *);
89
90/*--------------------------------------------------------------------------*/
91/* hessian_matrix */
92/* hess_mat(tag, n, q, x[n], V[n][q], W[n][q]) */
93ADOLC_API int hess_mat(short, int, int, const double *, const double *const *,
94 double **);
96 fdouble **);
97
98/*--------------------------------------------------------------------------*/
99/* lagrange_hessian_vector */
100/* lagra_hess_vec(tag, m, n, x[n], v[n], u[m], w[n]) */
101ADOLC_API int lagra_hess_vec(short, int, int, const double *, const double *,
102 const double *, double *);
104 fdouble *, fdouble *);
105
107
108/****************************************************************************/
109#endif
#define ADOLC_API
Definition adolcexport.h:16
#define BEGIN_C_DECLS
Definition common.h:115
#define END_C_DECLS
Definition common.h:116
ADOLC_API fint hessian_(fint *, fint *, fdouble *, fdouble *)
BEGIN_C_DECLS ADOLC_API int function(short, int, int, const double *, double *)
ADOLC_API fint gradient_(fint *, fint *, fdouble *, fdouble *)
ADOLC_API fint function_(fint *, fint *, fint *, fdouble *, fdouble *)
ADOLC_API int hess_vec(short, int, const double *, const double *, double *)
ADOLC_API fint jacobian_(fint *, fint *, fint *, fdouble *, fdouble *)
ADOLC_API int lagra_hess_vec(short, int, int, const double *, const double *, const double *, double *)
ADOLC_API int hess_mat(short, int, int, const double *, const double *const *, double **)
ADOLC_API int hessian(short, int, const double *, double **)
ADOLC_API fint hess_mat_(fint *, fint *, fint *, fdouble *, fdouble **, fdouble **)
ADOLC_API int jacobian(short, int, int, const double *, double **)
ADOLC_API fint jac_vec_(fint *, fint *, fint *, fdouble *, fdouble *, fdouble *)
ADOLC_API int vec_jac(short, int, int, int, const double *, const double *, double *)
ADOLC_API fint lagra_hess_vec_(fint *, fint *, fint *, fdouble *, fdouble *, fdouble *, fdouble *)
ADOLC_API fint hess_vec_(fint *, fint *, fdouble *, fdouble *, fdouble *)
ADOLC_API fint hessian2_(fint *, fint *, fdouble *, fdouble *)
ADOLC_API fint vec_jac_(fint *, fint *, fint *, fint *, fdouble *, const fdouble *, fdouble *)
ADOLC_API int gradient(short, int, const double *, double *)
ADOLC_API int hessian2(short, int, double *, double **)
ADOLC_API int jac_vec(short, int, int, const double *, const double *, double *)
ADOLC_API fint large_jacobian_(fint *, fint *, fint *, fint *, fdouble *, fdouble *, fdouble *)
ADOLC_API int large_jacobian(short, int, int, int, double *, double *, double **)
#define fint
Definition usrparms.h:38
#define fdouble
Definition usrparms.h:39