16#ifndef ADOLC_EXTERNFCTS_H
17#define ADOLC_EXTERNFCTS_H
27#pragma warning(disable : 4251)
33 std::function<int(
short tapeId,
int m,
int n,
double *x,
double *y)>;
35 short tapeId,
int m,
int n,
int keep,
double *x,
double *y)>;
37 std::function<int(
short tapeId,
int m,
int n,
int keep,
double *x,
38 double *X,
double *y,
double *Y)>;
40 std::function<int(
short tapeId,
int m,
int n,
int p,
double *x,
double **Xp,
41 double *y,
double **Yp)>;
43 std::function<int(
short tapeId,
int m,
int n,
int d,
int keep,
double *x,
44 double **Xd,
double *y,
double **Yd)>;
46 std::function<int(
short tapeId,
int m,
int n,
int d,
int p,
double *x,
47 double ***Xpd,
double *y,
double ***Ypd)>;
49 short tapeId,
int m,
int n,
double *u,
double *z,
double *x,
double *y)>;
51 std::function<int(
short tapeId,
int m,
int n,
int q,
double **Uq,
52 double **Zq,
double *x,
double *y)>;
54 std::function<int(
short tapeId,
int m,
int n,
int d,
double *u,
double **Zd,
55 double **Xd,
double **Yd)>;
57 std::function<int(
short tapeId,
int m,
int n,
int d,
double **Ud,
58 double **Zd,
double **Xd,
double **Yd)>;
60 std::function<int(
short tapeId,
int m,
int n,
int d,
int q,
double **Uq,
61 double ***Zqd,
short **nz,
double **Xd,
double **Yd)>;
68 std::function<int(
short tapeId,
size_t iArrLength,
size_t *iArr,
int m,
69 int n,
double *x,
double *y)>;
71 std::function<int(
short tapeId,
size_t iArrLength,
size_t *iArr,
int m,
72 int n,
int keep,
double *x,
double *y)>;
74 short tapeId,
size_t iArrLength,
size_t *iArr,
int m,
int n,
int keep,
75 double *x,
double *X,
double *y,
double *Y)>;
77 short tapeId,
size_t iArrLength,
size_t *iArr,
int m,
int n,
int p,
78 double *x,
double **Xp,
double *y,
double **Yp)>;
80 short tapeId,
size_t iArrLength,
size_t *iArr,
int m,
int n,
int d,
81 int keep,
double *x,
double **Xd,
double *y,
double **Yd)>;
83 short tapeId,
size_t iArrLength,
size_t *iArr,
int m,
int n,
int d,
int p,
84 double *x,
double ***Xpd,
double *y,
double ***Ypd)>;
86 std::function<int(
short tapeId,
size_t iArrLength,
size_t *iArr,
int m,
87 int n,
double *u,
double *z,
double *x,
double *y)>;
89 short tapeId,
size_t iArrLength,
size_t *iArr,
int m,
int n,
int q,
90 double **Uq,
double **Zq,
double *x,
double *y)>;
92 short tapeId,
size_t iArrLength,
size_t *iArr,
int m,
int n,
int d,
93 double *u,
double **Zd,
double **Xd,
double **Yd)>;
95 short tapeId,
size_t iArrLength,
size_t *iArr,
int m,
int n,
int d,
int q,
96 double **Uq,
double ***Zqd,
short **nz,
double **Xd,
double **Yd)>;
118 size_t firstDepLocation{0};
119 size_t firstIndLocation{0};
175 char dp_x_changes{1};
178 char dp_y_priorRequired{1};
181 char *allmem{
nullptr};
#define ADOLC_API
Definition adolcexport.h:16
Taped active scalar for reusable forward and reverse differentiation.
Definition adtb_types.h:211
BEGIN_C_DECLS ADOLC_API int function(short, int, int, const double *, double *)
std::function< int(short tapeId, size_t iArrLength, size_t *iArr, int m, int n, double *u, double *z, double *x, double *y)> ADOLC_ext_fct_iArr_fos_reverse
Definition externfcts.h:87
std::function< int(short tapeId, size_t iArrLength, size_t *iArr, int m, int n, int d, int q, double **Uq, double ***Zqd, short **nz, double **Xd, double **Yd)> ADOLC_ext_fct_iArr_hov_reverse
Definition externfcts.h:96
ADOLC_API ext_diff_fct * get_ext_diff_fct(short tapeId, size_t index)
std::function< int(short tapeId, size_t iArrLength, size_t *iArr, int m, int n, int keep, double *x, double *y)> ADOLC_ext_fct_iArr_zos_forward
Definition externfcts.h:72
std::function< int(short tapeId, int m, int n, int d, int p, double *x, double ***Xpd, double *y, double ***Ypd)> ADOLC_ext_fct_hov_forward
Definition externfcts.h:47
ADOLC_API ext_diff_fct * reg_ext_fct(short tapeId, short extTapeId, ADOLC_ext_fct ext_fct)
std::function< int(short tapeId, int m, int n, int keep, double *x, double *X, double *y, double *Y)> ADOLC_ext_fct_fos_forward
Definition externfcts.h:38
std::function< int(short tapeId, size_t iArrLength, size_t *iArr, int m, int n, int q, double **Uq, double **Zq, double *x, double *y)> ADOLC_ext_fct_iArr_fov_reverse
Definition externfcts.h:90
std::function< int(short tapeId, size_t iArrLength, size_t *iArr, int m, int n, int d, int p, double *x, double ***Xpd, double *y, double ***Ypd)> ADOLC_ext_fct_iArr_hov_forward
Definition externfcts.h:84
std::function< int(short tapeId, size_t iArrLength, size_t *iArr, int m, int n, int d, double *u, double **Zd, double **Xd, double **Yd)> ADOLC_ext_fct_iArr_hos_reverse
Definition externfcts.h:93
std::function< int(short tapeId, size_t iArrLength, size_t *iArr, int m, int n, double *x, double *y)> ADOLC_ext_fct_iArr
Definition externfcts.h:69
std::function< int(short tapeId, int m, int n, int d, int q, double **Uq, double ***Zqd, short **nz, double **Xd, double **Yd)> ADOLC_ext_fct_hov_reverse
Definition externfcts.h:61
std::function< int(short tapeId, int m, int n, double *u, double *z, double *x, double *y)> ADOLC_ext_fct_fos_reverse
Definition externfcts.h:49
std::function< int(short tapeId, size_t iArrLength, size_t *iArr, int m, int n, int keep, double *x, double *X, double *y, double *Y)> ADOLC_ext_fct_iArr_fos_forward
Definition externfcts.h:75
std::function< int(short tapeId, int m, int n, int keep, double *x, double *y)> ADOLC_ext_fct_zos_forward
Definition externfcts.h:35
ADOLC_API int call_ext_fct(ext_diff_fct *edfct, int n, adouble *xa, int m, adouble *ya)
std::function< int(short tapeId, size_t iArrLength, size_t *iArr, int m, int n, int p, double *x, double **Xp, double *y, double **Yp)> ADOLC_ext_fct_iArr_fov_forward
Definition externfcts.h:78
std::function< int(short tapeId, int m, int n, double *x, double *y)> ADOLC_ext_fct
Definition externfcts.h:33
std::function< int(short tapeId, size_t iArrLength, size_t *iArr, int m, int n, int d, int keep, double *x, double **Xd, double *y, double **Yd)> ADOLC_ext_fct_iArr_hos_forward
Definition externfcts.h:81
std::function< int(short tapeId, int m, int n, int p, double *x, double **Xp, double *y, double **Yp)> ADOLC_ext_fct_fov_forward
Definition externfcts.h:41
std::function< int(short tapeId, int m, int n, int q, double **Uq, double **Zq, double *x, double *y)> ADOLC_ext_fct_fov_reverse
Definition externfcts.h:52
std::function< int(short tapeId, int m, int n, int d, int keep, double *x, double **Xd, double *y, double **Yd)> ADOLC_ext_fct_hos_forward
Definition externfcts.h:44
std::function< int(short tapeId, int m, int n, int d, double *u, double **Zd, double **Xd, double **Yd)> ADOLC_ext_fct_hos_reverse
Definition externfcts.h:55
std::function< int(short tapeId, int m, int n, int d, double **Ud, double **Zd, double **Xd, double **Yd)> ADOLC_ext_fct_hos_ti_reverse
Definition externfcts.h:58
ADOLC_API int fos_forward(short, int, int, int, const double *, const double *, double *, double *)
ADOLC_API int hov_forward(short, int, int, int, int, const double *, const double *const *const *, double *, double ***)
ADOLC_API int fos_reverse(short, int, int, const double *, double *)
ADOLC_API int fov_forward(short, int, int, int, const double *, const double *const *, double *, double **)
ADOLC_API int hos_forward(short, int, int, int, int, const double *, const double *const *, double *, double **)
ADOLC_API int hos_reverse(short, int, int, int, const double *, double **)
ADOLC_API int fov_reverse(short, int, int, int, const double *const *, double **)
BEGIN_C_DECLS ADOLC_API int zos_forward(short, int, int, int, const double *, double *)
ADOLC_API int hov_reverse(short, int, int, int, int, const double *const *, double ***, short **)
ADOLC_API int hos_ti_reverse(short, int, int, int, const double *const *, double **)
Callback descriptor for an externally differentiated function.
Definition externfcts.h:106