ADOL-C: Automatic Differentiation in C/C++ 2.7.3
Loading...
Searching...
No Matches
taylor.h
Go to the documentation of this file.
1/*----------------------------------------------------------------------------
2 ADOL-C -- Automatic Differentiation by Overloading in C++
3 File: drivers/taylor.h
4 Revision: $Id$
5 Contents: Easy to use drivers for the evaluation of higher order derivative
6 tensors and inverse/impicit function differentiation
7
8 Copyright (c) Andrea Walther, Andreas Griewank, Andreas Kowarz, Olaf Vogel
9
10 This file is part of ADOL-C. This software is provided as open source.
11 Any use, reproduction, or distribution of the software constitutes
12 recipient's acceptance of the terms of the accompanying license file.
13
14----------------------------------------------------------------------------*/
15#if !defined(ADOLC_DRIVERS_TAYLOR_H)
16#define ADOLC_DRIVERS_TAYLOR_H 1
17
18#include <adolc/adolcexport.h>
20
22
23/****************************************************************************/
24/* TENSOR EVALUATIONS */
25
26/*--------------------------------------------------------------------------*/
27/* tensor_eval(tag,m,n,d,p,x[n],tensor[m][dim],S[n][p])
28 with dim = ((p+d) over d) */
29ADOLC_API int tensor_eval(short tag, int m, int n, int d, int p, double *x,
30 double **tensor, double **S);
31
32/*--------------------------------------------------------------------------*/
33/* inverse_tensor_eval(tag,n,d,p,x,tensor[n][dim],S[n][p])
34 with dim = ((p+d) over d) */
35ADOLC_API int inverse_tensor_eval(short tag, int n, int d, int p, double *x,
36 double **tensor, double **S);
37
38/*--------------------------------------------------------------------------*/
39/* inverse_Taylor_prop(tag,n,d,Y[n][d+1],X[n][d+1]) */
40ADOLC_API int inverse_Taylor_prop(short tag, int n, int d, double **Y,
41 double **X);
42
43/****************************************************************************/
44/* ACCESS TO TENSOR VALUES */
45
46/*--------------------------------------------------------------------------*/
47/* tensor_value(d,m,y[m],tensori[m][dim],multi[d])
48 with dim = ((p+d) over d) */
49ADOLC_API void tensor_value(int d, int m, double *y, double **tensor,
50 int *multi);
51
52/*--------------------------------------------------------------------------*/
53/* void** tensorsetup(m,p,d,tensorig) */
54ADOLC_API void **tensorsetup(int m, int p, int d, double **tensorig);
55
56/*--------------------------------------------------------------------------*/
57/* void freetensor(m,p,d,tensor) */
58ADOLC_API void freetensor(int m, int p, int d, double **tensor);
59
60/*--------------------------------------------------------------------------*/
61/* int tensor_address(d, im[d]) */
62ADOLC_API size_t tensor_address(int d, int *im);
63
64/****************************************************************************/
65/* UTILS */
66
67/*--------------------------------------------------------------------------*/
68/* int binomi(n,k) ---> binomial coefficient to compute tensor dimension */
69ADOLC_API long binomi(size_t n, size_t k);
70
71/*--------------------------------------------------------------------------*/
72/* jac_solv(tag,n,x,b,mode) */
73ADOLC_API int jac_solv(unsigned short tag, int n, const double *x, double *b,
74 unsigned short mode);
75
77
78/****************************************************************************/
79#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 void tensor_value(int d, int m, double *y, double **tensor, int *multi)
ADOLC_API int jac_solv(unsigned short tag, int n, const double *x, double *b, unsigned short mode)
ADOLC_API void freetensor(int m, int p, int d, double **tensor)
BEGIN_C_DECLS ADOLC_API int tensor_eval(short tag, int m, int n, int d, int p, double *x, double **tensor, double **S)
ADOLC_API void ** tensorsetup(int m, int p, int d, double **tensorig)
ADOLC_API size_t tensor_address(int d, int *im)
ADOLC_API int inverse_Taylor_prop(short tag, int n, int d, double **Y, double **X)
ADOLC_API long binomi(size_t n, size_t k)
ADOLC_API int inverse_tensor_eval(short tag, int n, int d, int p, double *x, double **tensor, double **S)