source: trunk/ADOL-C/include/adolc/drivers/taylor.h @ 450

Last change on this file since 450 was 450, checked in by awalther, 6 years ago

extend tensor driver address(..) for unsorted arguments, renaming to tensor_address to avoid conflicts

  • Property svn:keywords set to Author Date Id Revision
File size: 3.3 KB
Line 
1/*----------------------------------------------------------------------------
2 ADOL-C -- Automatic Differentiation by Overloading in C++
3 File:     drivers/taylor.h
4 Revision: $Id: taylor.h 450 2014-01-21 10:16:57Z awalther $
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/common.h>
19
20BEGIN_C_DECLS
21
22/****************************************************************************/
23/*                                                       TENSOR EVALUATIONS */
24
25/*--------------------------------------------------------------------------*/
26/* tensor_eval(tag,m,n,d,p,x[n],tensor[m][dim],S[n][p])
27      with dim = ((p+d) over d) */
28ADOLC_DLL_EXPORT int tensor_eval
29(short tag, int m, int n, int d, int p,
30 double *x, 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_DLL_EXPORT int inverse_tensor_eval
36(short tag, int n, int d, int p, double *x, double **tensor, double **S);
37
38/*--------------------------------------------------------------------------*/
39/*  inverse_Taylor_prop(tag,n,d,Y[n][d+1],X[n][d+1]) */
40ADOLC_DLL_EXPORT int inverse_Taylor_prop
41(short tag, int n, int d, double** Y, 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_DLL_EXPORT void tensor_value
50(int d, int m, double *y, double **tensor, int *multi);
51
52/*--------------------------------------------------------------------------*/
53/* void** tensorsetup(m,p,d,tensorig) */
54ADOLC_DLL_EXPORT void** tensorsetup(int m, int p, int d, double** tensorig);
55
56/*--------------------------------------------------------------------------*/
57/* void freetensor(m,p,d,tensor) */
58ADOLC_DLL_EXPORT void freetensor(int m, int p, int d, double** tensor);
59
60/*--------------------------------------------------------------------------*/
61/* int tensor_address(d, im[d]) */
62ADOLC_DLL_EXPORT int tensor_address(int d, int* im);
63
64/****************************************************************************/
65/*                                                                    UTILS */
66
67/*--------------------------------------------------------------------------*/
68/* int binomi(a,b)  ---> binomial coefficient to compute tensor dimension */
69ADOLC_DLL_EXPORT long binomi(int a, int b);
70
71/*--------------------------------------------------------------------------*/
72/* jac_solv(tag,n,x,b,mode) */
73ADOLC_DLL_EXPORT int jac_solv
74(unsigned short tag, int n, const double* x, double* b,
75 unsigned short mode);
76
77
78END_C_DECLS
79
80/****************************************************************************/
81#endif
Note: See TracBrowser for help on using the repository browser.