DACE 2.0 API Manual
Differential Algebra Core Engine
dacecompat.h
Go to the documentation of this file.
1 /******************************************************************************
2 * *
3 * DIFFERENTIAL ALGEBRA CORE ENGINE *
4 * *
5 *******************************************************************************
6 * *
7 * Copyright 2016 Politecnico di Milano (2014 Dinamica Srl) *
8 * Licensed under the Apache License, Version 2.0 (the "License"); *
9 * you may not use this file except in compliance with the License. *
10 * You may obtain a copy of the License at *
11 * *
12 * http://www.apache.org/licenses/LICENSE-2.0 *
13 * *
14 * Unless required by applicable law or agreed to in writing, software *
15 * distributed under the License is distributed on an "AS IS" BASIS, *
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *
17 * See the License for the specific language governing permissions and *
18 * limitations under the License. *
19 * *
20 *******************************************************************************/
21 /*
22  * dacecompat.h
23  *
24  * Created on: November 18, 2016
25  * Author: Politecnico di Milano
26  */
27 
28 /*
29  Compatibility file mapping old unreadable names to new DACE function names.
30  Where possible, function names are #define'ed to map to new names.
31  Where necessary, small shims with the old interface are provided in dacecompat.c.
32 */
33 
37 #ifndef DINAMICA_DACECOMPAT_H_
38 #define DINAMICA_DACECOMPAT_H_
39 
40 #ifdef __cplusplus
41  extern "C" {
42 #endif /* __cplusplus */
43 
44 #define daceini(no, nv) daceInitialize(no, nv)
45 #define dacever(imaj, imin, icos) daceGetVersion(imaj, imin, icos)
46 #define daceseteps(deps) daceSetEpsilon(deps)
47 #define dacegeteps() daceGetEpsilon()
48 #define dacegetepsmac() daceGetMachineEpsilon()
49 #define dacegetnomax() daceGetMaxOrder()
50 #define dacegetnvmax() daceGetMaxVariables()
51 #define dacegetnmmax() daceGetMaxMonomials()
52 #define dacegetnot() daceGetTruncationOrder()
53 #define dacesetnot(fnot) daceSetTruncationOrder(fnot)
54 
55 //#define dacegeterr() daceGetError() // do not redefine this routine, it causes problems with the inlining of a function of the same name we do in C++ interface!
56 #define dacegetxerr() daceGetErrorX()
57 #define dacegetyyerr() daceGetErrorYY()
58 #define daceclrerr() daceClearError()
59 
60 #define daceall(inc, len) daceAllocateDA(inc, len)
61 #define dacedal(inc) daceFreeDA(ARG(inc))
62 #define dacememdump(iunit) daceMemoryDump()
63 
64 #define dacevar(ina, i, ckon) daceCreateVariable(ARG(ina), i, ckon)
65 #define dacecoef(ina, jj, ckon) daceCreateMonomial(ARG(ina), jj, ckon)
66 #define dacecon(ina, ckon) daceCreateConstant(ARG(ina), ckon)
67 #define daceran(ina, cm) daceCreateRandom(ARG(ina), cm)
68 
69 #define daceconst(ina) daceGetConstant(ARG(ina))
70 #define dacelinear(ina, c) daceGetLinear(ARG(ina), c)
71 #define dacepok(ina, jj, cjj) daceSetCoefficient(ARG(ina), jj, cjj)
72 DACE_API void dacepek(const DACEDA REF(ina), const unsigned int jj[], double REF(cjj));
73 #define dacelist(ina, npos, jj, cjj) daceGetCoefficientAt(ARG(ina), npos, jj, cjj)
74 DACE_API void dacesize(const DACEDA REF(ina), unsigned int REF(size));
75 
76 #define dacecop(ina, inb) daceCopy(ARG(ina), ARG(inb))
77 
78 #define dacetrim(ina, imin, imax, inc) daceTrim(ARG(ina), imin, imax, ARG(inc))
79 
80 DACE_API void daceabs(const DACEDA REF(ina), double REF(anorm));
81 DACE_API void dacenorm(const DACEDA REF(ina), const unsigned int ityp, double REF(anorm));
82 #define daceonorm(ina, ivar, ityp, onorm) daceOrderedNorm(ARG(ina), ivar, ityp, onorm)
83 #define daceest(ina, ivar, ityp, c, nc) daceEstimate(ARG(ina), ivar, ityp, c, NULL, nc)
84 #define dacebound(ina, alo, aup) daceGetBounds(ARG(ina), alo, aup)
85 
86 #define daceplug(ina, nvar, val, inc) daceEvalVariable(ARG(ina), nvar, val, ARG(inc))
87 DACE_API void dacetree(const DACEDA das[], const unsigned int count, double ac[], unsigned int REF(nterm), unsigned int REF(nvar), unsigned int REF(nord));
88 #define dacewrite(ina, strs, nstrs) daceWrite(ARG(ina), strs, nstrs)
89 #define daceread(ina, strs, nstrs) daceRead(ARG(ina), strs, nstrs)
90 
91 #define daceadd(ina, inb, inc) daceAdd(ARG(ina), ARG(inb), ARG(inc))
92 #define dacesub(ina, inb, inc) daceSubtract(ARG(ina), ARG(inb), ARG(inc))
93 #define dacemul(ina, inb, inc) daceMultiply(ARG(ina), ARG(inb), ARG(inc))
94 #define dacediv(ina, inb, inc) daceDivide(ARG(ina), ARG(inb), ARG(inc))
95 #define dacesqr(ina, inb) daceSquare(ARG(ina), ARG(inb))
96 #define dacecadd(ina, ckon, inb) daceAddDouble(ARG(ina), ckon, ARG(inb))
97 #define dacecsub(ina, ckon, inb) daceDoubleSubtract(ARG(ina), ckon, ARG(inb))
98 #define dacesubc(ina, ckon, inb) daceSubtractDouble(ARG(ina), ckon, ARG(inb))
99 #define dacecmul(ina, ckon, inb) daceMultiplyDouble(ARG(ina), ckon, ARG(inb))
100 #define dacecdiv(ina, ckon, inb) daceDoubleDivide(ARG(ina), ckon, ARG(inb))
101 #define dacedivc(ina, ckon, inb) daceDivideDouble(ARG(ina), ckon, ARG(inb))
102 #define daceder(idif, ina, inc) daceDifferentiate(idif, ARG(ina), ARG(inc))
103 #define daceint(iint, ina, inc) daceIntegrate(iint, ARG(ina), ARG(inc))
104 
105 #define dacetrunc(ina, inc) daceTruncate(ARG(ina), ARG(inc))
106 #define daceround(ina, inc) daceRound(ARG(ina), ARG(inc))
107 #define dacemod(ina, p, inc) daceModulo(ARG(ina), p, ARG(inc))
108 #define dacepow(ina, np, inc) dacePower(ARG(ina), np, ARG(inc))
109 #define daceroot(ina, np, inc) daceRoot(ARG(ina), np, ARG(inc))
110 #define daceminv(ina, inc) daceMultiplicativeInverse(ARG(ina), ARG(inc))
111 #define dacesqrt(ina, inc) daceSquareRoot(ARG(ina), ARG(inc))
112 #define daceisrt(ina, inc) daceInverseSquareRoot(ARG(ina), ARG(inc))
113 #define daceexp(ina, inc) daceExponential(ARG(ina), ARG(inc))
114 #define dacelog(ina, inc) daceLogarithm(ARG(ina), ARG(inc))
115 #define dacelogb(ina, b, inc) daceLogarithmBase(ARG(ina), b, ARG(inc))
116 #define dacesin(ina, inc) daceSine(ARG(ina), ARG(inc))
117 #define dacecos(ina, inc) daceCosine(ARG(ina), ARG(inc))
118 #define dacetan(ina, inc) daceTangent(ARG(ina), ARG(inc))
119 #define daceasin(ina, inc) daceArcSine(ARG(ina), ARG(inc))
120 #define daceacos(ina, inc) daceArcCosine(ARG(ina), ARG(inc))
121 #define daceatan(ina, inc) daceArcTangent(ARG(ina), ARG(inc))
122 #define daceatan2(ina, inb, inc) daceArcTangent2(ARG(ina), ARG(inb), ARG(inc))
123 #define dacesinh(ina, inc) daceHyperbolicSine(ARG(ina), ARG(inc))
124 #define dacecosh(ina, inc) daceHyperbolicCosine(ARG(ina), ARG(inc))
125 #define dacetanh(ina, inc) daceHyperbolicTangent(ARG(ina), ARG(inc))
126 #define daceasinh(ina, inc) daceHyperbolicArcSine(ARG(ina), ARG(inc))
127 #define daceacosh(ina, inc) daceHyperbolicArcCosine(ARG(ina), ARG(inc))
128 #define daceatanh(ina, inc) daceHyperbolicArcTangent(ARG(ina), ARG(inc))
129 
130 #ifdef __cplusplus
131  } // extern "C"
132 #endif /* __cplusplus */
133 
134 #endif /* DINAMICA_DACECOMPAT_H_ */
DACE_API void dacenorm(const DACEDA REF(ina), const unsigned int ityp, double REF(anorm))
DACE_API void dacesize(const DACEDA REF(ina), unsigned int REF(size))
DACE_API void dacepek(const DACEDA REF(ina), const unsigned int jj[], double REF(cjj))
DACE_API void dacetree(const DACEDA das[], const unsigned int count, double ac[], unsigned int REF(nterm), unsigned int REF(nvar), unsigned int REF(nord))
DACE_API void daceabs(const DACEDA REF(ina), double REF(anorm))
#define REF(x)
Definition: dacebase.h:57
#define DACE_API
Definition: dace_s.h:33
unsigned int size(const DA &da)
Definition: DA.cpp:2549
int DACEDA
Definition: dacebase.h:70