source: trunk/ADOL-C/src/drivers/drivers.h @ 61

Last change on this file since 61 was 61, checked in by awalther, 10 years ago

inclusion of error function for gcc compiler

  • Property svn:keywords set to Author Date Id Revision
File size: 5.5 KB
Line 
1/*----------------------------------------------------------------------------
2 ADOL-C -- Automatic Differentiation by Overloading in C++
3 File:     drivers/drivers.h
4 Revision: $Id: drivers.h 61 2009-12-07 14:49:34Z awalther $
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 <common.h>
21
22BEGIN_C_DECLS
23
24/****************************************************************************/
25/*                         DRIVERS FOR OPTIMIZATION AND NONLINEAR EQUATIONS */
26
27/*--------------------------------------------------------------------------*/
28/*                                                                 function */
29/* function(tag, m, n, x[n], y[m])                                          */
30ADOLC_DLL_EXPORT int function(short,int,int,double*,double*);
31ADOLC_DLL_EXPORT fint function_(fint*,fint*,fint*,fdouble*,fdouble*);
32
33/*--------------------------------------------------------------------------*/
34/*                                                                 gradient */
35/* gradient(tag, n, x[n], g[n])                                             */
36ADOLC_DLL_EXPORT int gradient(short,int,const double*,double*);
37ADOLC_DLL_EXPORT fint gradient_(fint*,fint*,fdouble*,fdouble*);
38
39/*--------------------------------------------------------------------------*/
40/*                                                                 jacobian */
41/* jacobian(tag, m, n, x[n], J[m][n])                                       */
42ADOLC_DLL_EXPORT int jacobian(short,int,int,double*,double**);
43ADOLC_DLL_EXPORT fint jacobian_(fint*,fint*,fint*,fdouble*,fdouble*);
44
45/*--------------------------------------------------------------------------*/
46/*                                                           large_jacobian */
47/* large_jacobian(tag, m, n, k, x[n], y[m], J[m][n])                        */
48ADOLC_DLL_EXPORT int large_jacobian(short,int,int,int,double*,double*,double**);
49ADOLC_DLL_EXPORT fint large_jacobian_(fint*,fint*,fint*,fint*,fdouble*,fdouble*,fdouble*);
50
51
52/*--------------------------------------------------------------------------*/
53/*                                                         vector_jacobian  */
54/* vec_jac(tag, m, n, repeat, x[n], u[m], v[n])                             */
55ADOLC_DLL_EXPORT int vec_jac(short,int,int,int,double*,double*,double*);
56ADOLC_DLL_EXPORT fint vec_jac_(fint*,fint*,fint*,fint*,
57                               fdouble*,fdouble*,fdouble*);
58
59/*--------------------------------------------------------------------------*/
60/*                                                          jacobian_vector */
61/* jac_vec(tag, m, n, x[n], v[n], u[m]);                                    */
62ADOLC_DLL_EXPORT int jac_vec(short,int,int,double*,double*,double*);
63ADOLC_DLL_EXPORT fint jac_vec_(fint*,fint*,fint*,fdouble*,fdouble*,fdouble*);
64
65/*--------------------------------------------------------------------------*/
66/*                                                                  hessian */
67/* hessian(tag, n, x[n], lower triangle of H[n][n])                         */
68/* uses Hessian-vector product                                              */
69ADOLC_DLL_EXPORT int hessian(short,int,double*,double**);
70ADOLC_DLL_EXPORT fint hessian_(fint*,fint*,fdouble*,fdouble*);
71
72/*--------------------------------------------------------------------------*/
73/*                                                                 hessian2 */
74/* hessian2(tag, n, x[n], lower triangle of H[n][n])                        */
75/* uses Hessian-matrix product                                              */
76ADOLC_DLL_EXPORT int hessian2(short,int,double*,double**);
77ADOLC_DLL_EXPORT fint hessian2_(fint*,fint*,fdouble*,fdouble*);
78
79/*--------------------------------------------------------------------------*/
80/*                                                           hessian_vector */
81/* hess_vec(tag, n, x[n], v[n], w[n])                                       */
82ADOLC_DLL_EXPORT int hess_vec(short,int,double*,double*,double*);
83ADOLC_DLL_EXPORT fint hess_vec_(fint*,fint*,fdouble*,fdouble*,fdouble*);
84
85/*--------------------------------------------------------------------------*/
86/*                                                           hessian_matrix */
87/* hess_mat(tag, n, q, x[n], V[n][q], W[n][q])                              */
88ADOLC_DLL_EXPORT int hess_mat(short,int,int,double*,double**,double**);
89ADOLC_DLL_EXPORT fint hess_mat_(fint*,fint*,fint*,
90                                fdouble*,fdouble**,fdouble**);
91
92/*--------------------------------------------------------------------------*/
93/*                                                  lagrange_hessian_vector */
94/* lagra_hess_vec(tag, m, n, x[n], v[n], u[m], w[n])                        */
95ADOLC_DLL_EXPORT int lagra_hess_vec(short,int,int,double*,
96                                    double*,double*,double*);
97ADOLC_DLL_EXPORT fint lagra_hess_vec_(fint*,fint*,fint*,
98                                      fdouble*,fdouble*,fdouble*,fdouble*);
99
100END_C_DECLS
101
102/****************************************************************************/
103#endif
104
Note: See TracBrowser for help on using the repository browser.