/usr/include/adolc/drivers/odedrivers.h is in libadolc-dev 2.5.2-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 | /*----------------------------------------------------------------------------
ADOL-C -- Automatic Differentiation by Overloading in C++
File: drivers/odedrivers.h
Revision: $Id: odedrivers.h 354 2012-10-01 11:32:26Z kulshres $
Contents: Easy to use drivers for ordinary differential equations (ODE)
(with C and C++ callable interfaces including Fortran
callable versions).
Copyright (c) Andrea Walther, Andreas Griewank, Andreas Kowarz,
Hristo Mitev, Sebastian Schlenkrich, Jean Utke, Olaf Vogel
This file is part of ADOL-C. This software is provided as open source.
Any use, reproduction, or distribution of the software constitutes
recipient's acceptance of the terms of the accompanying license file.
----------------------------------------------------------------------------*/
#if !defined(ADOLC_DRIVERS_ODEDRIVERS_H)
#define ADOLC_DRIVERS_ODEDRIVERS_H 1
#include <adolc/common.h>
#include <adolc/interfaces.h>
BEGIN_C_DECLS
/****************************************************************************/
/* DRIVERS FOR ODEs */
/*--------------------------------------------------------------------------*/
/* forodec */
/* forodec(tag, n, tau, dold, dnew, X[n][d+1]) */
ADOLC_DLL_EXPORT int forodec(short,int,double,int,int,double**);
ADOLC_DLL_EXPORT fint forodec_(fint*,fint*,fdouble*,fint*,fint*,fdouble*);
/*--------------------------------------------------------------------------*/
/* accodec */
/* accodec(n, tau, d, Z[n][n][d+1], B[n][n][d+1], nz[n][n]) */
ADOLC_DLL_EXPORT void accodec(int,double,int,double***,double***,short**);
ADOLC_DLL_EXPORT fint accodec_(fint*,fdouble*,fint*,fdouble*,fdouble*);
END_C_DECLS
/****************************************************************************/
/****************************************************************************/
/* Now the C++ THINGS */
#if defined(__cplusplus)
/****************************************************************************/
/* DRIVERS FOR ODEs, overloaded calls */
/*--------------------------------------------------------------------------*/
/* forode */
/* forode(tag, n, tau, dold, dnew, X[n][d+1]) */
inline int forode(
short tag, // tape identifier
int n, // space dimension
double tau, // scaling
int dold, // previous degree defaults to zero
int dnew, // New degree of consistency
double **X) // Taylor series
{
return forodec(tag,n,tau,dold,dnew,X);
}
/*--------------------------------------------------------------------------*/
/* forode */
/* the scaling tau defaults to 1 */
/* */
/* forode(tag, n, dold, dnew, X[n][d+1]) */
inline int forode(short tag, int n, int dold, int dnew, double** X) {
return forodec(tag,n,1.0,dold,dnew,X);
}
/*--------------------------------------------------------------------------*/
/* forode */
/* previous order defaults to 0 */
/* */
/* forode(tag, n, tau, dnew, X[n][d+1]) */
inline int forode( short tag, int n, double tau, int deg, double **X) {
return forodec(tag,n,tau,0,deg, X);
}
/*--------------------------------------------------------------------------*/
/* forode */
/* both tau and dold default */
/* */
/* forode(tag, n, dnew, X[n][d+1]) */
inline int forode(short tag, int n, int deg, double** X) {
return forode(tag,n,1.0,0,deg,X);
}
/*--------------------------------------------------------------------------*/
/* accode */
/* accode(n, tau, d, Z[n][n][d+1], B[n][n][d+1], nz[n][n]) */
inline void accode(
int n, // space dimension
double tau, // scaling defaults to 1.0
int deg, // highest degree
double ***A, // input tensor of "partial" Jacobians
double ***B, // output tensor of "total" Jacobians
short **nonzero = 0) // optional sparsity characterization
{
accodec(n,tau,deg,A,B,nonzero);
}
/*--------------------------------------------------------------------------*/
/* accode */
/* scaling defaults to 1 */
/* */
/* accode(n, d, Z[n][n][d+1], B[n][n][d+1], nz[n][n]) */
inline void accode(
int n, // space dimension
int deg, // highest degree
double ***A, // input tensor of "partial" Jacobians
double ***B, // output tensor of "total" Jacobians
short **nonzero = 0) // optional sparsity characterization
{
accodec(n,1.0,deg,A,B,nonzero);
}
#endif
/****************************************************************************/
#endif
|