@@ -52,7 +52,7 @@ class ADOLC_API refcounter {
5252 ADOLC_API friend void setNumDir (const size_t p);
5353 ADOLC_API friend void setDegree (const size_t p);
5454 ADOLC_API friend void setMode (enum Mode newmode);
55- friend class adouble ;
55+ ADOLC_API friend class adouble ;
5656
5757public:
5858 refcounter () { ++refcnt; }
@@ -82,22 +82,22 @@ class ADOLC_API adouble {
8282 // addition
8383 inline adouble operator +(const double v) const ;
8484 inline adouble operator +(const adouble &a) const ;
85- inline friend adouble operator +(const double v, const adouble &a);
85+ ADOLC_API inline friend adouble operator +(const double v, const adouble &a);
8686
8787 // subtraction
8888 inline adouble operator -(const double v) const ;
8989 inline adouble operator -(const adouble &a) const ;
90- inline friend adouble operator -(const double v, const adouble &a);
90+ ADOLC_API inline friend adouble operator -(const double v, const adouble &a);
9191
9292 // multiplication
9393 inline adouble operator *(const double v) const ;
9494 inline adouble operator *(const adouble &a) const ;
95- inline friend adouble operator *(const double v, const adouble &a);
95+ ADOLC_API inline friend adouble operator *(const double v, const adouble &a);
9696
9797 // division
9898 inline adouble operator /(const double v) const ;
9999 inline adouble operator /(const adouble &a) const ;
100- inline friend adouble operator /(const double v, const adouble &a);
100+ ADOLC_API inline friend adouble operator /(const double v, const adouble &a);
101101
102102 // inc/dec
103103 inline adouble operator ++();
@@ -106,53 +106,55 @@ class ADOLC_API adouble {
106106 inline adouble operator --(int );
107107
108108 // functions
109- inline friend adouble tan (const adouble &a);
110- inline friend adouble exp (const adouble &a);
111- inline friend adouble log (const adouble &a);
112- inline friend adouble sqrt (const adouble &a);
113- inline friend adouble cbrt (const adouble &a);
114- inline friend adouble sin (const adouble &a);
115- inline friend adouble cos (const adouble &a);
116- inline friend adouble asin (const adouble &a);
117- inline friend adouble acos (const adouble &a);
118- inline friend adouble atan (const adouble &a);
119-
120- inline friend adouble atan2 (const adouble &a, const adouble &b);
121- inline friend adouble pow (const adouble &a, double v);
122- inline friend adouble pow (const adouble &a, const adouble &b);
123- inline friend adouble pow (double v, const adouble &a);
124- inline friend adouble log10 (const adouble &a);
125-
126- inline friend adouble sinh (const adouble &a);
127- inline friend adouble cosh (const adouble &a);
128- inline friend adouble tanh (const adouble &a);
129- inline friend adouble asinh (const adouble &a);
130- inline friend adouble acosh (const adouble &a);
131- inline friend adouble atanh (const adouble &a);
132- inline friend adouble fabs (const adouble &a);
133- inline friend adouble ceil (const adouble &a);
134- inline friend adouble floor (const adouble &a);
135- inline friend adouble fmax (const adouble &a, const adouble &b);
136- inline friend adouble fmax (double v, const adouble &a);
137- inline friend adouble fmax (const adouble &a, double v);
138- inline friend adouble fmin (const adouble &a, const adouble &b);
139- inline friend adouble fmin (double v, const adouble &a);
140- inline friend adouble fmin (const adouble &a, double v);
141- inline friend adouble ldexp (const adouble &a, const adouble &b);
142- inline friend adouble ldexp (const adouble &a, const double v);
143- inline friend adouble ldexp (const double v, const adouble &a);
144- inline friend double frexp (const adouble &a, int *v);
145- inline friend adouble erf (const adouble &a);
146- inline friend adouble erfc (const adouble &a);
147-
148- inline friend void condassign (adouble &res, const adouble &cond,
149- const adouble &arg1, const adouble &arg2);
150- inline friend void condassign (adouble &res, const adouble &cond,
151- const adouble &arg);
152- inline friend void condeqassign (adouble &res, const adouble &cond,
153- const adouble &arg1, const adouble &arg2);
154- inline friend void condeqassign (adouble &res, const adouble &cond,
155- const adouble &arg);
109+ ADOLC_API inline friend adouble tan (const adouble &a);
110+ ADOLC_API inline friend adouble exp (const adouble &a);
111+ ADOLC_API inline friend adouble log (const adouble &a);
112+ ADOLC_API inline friend adouble sqrt (const adouble &a);
113+ ADOLC_API inline friend adouble cbrt (const adouble &a);
114+ ADOLC_API inline friend adouble sin (const adouble &a);
115+ ADOLC_API inline friend adouble cos (const adouble &a);
116+ ADOLC_API inline friend adouble asin (const adouble &a);
117+ ADOLC_API inline friend adouble acos (const adouble &a);
118+ ADOLC_API inline friend adouble atan (const adouble &a);
119+
120+ ADOLC_API inline friend adouble atan2 (const adouble &a, const adouble &b);
121+ ADOLC_API inline friend adouble pow (const adouble &a, double v);
122+ ADOLC_API inline friend adouble pow (const adouble &a, const adouble &b);
123+ ADOLC_API inline friend adouble pow (double v, const adouble &a);
124+ ADOLC_API inline friend adouble log10 (const adouble &a);
125+
126+ ADOLC_API inline friend adouble sinh (const adouble &a);
127+ ADOLC_API inline friend adouble cosh (const adouble &a);
128+ ADOLC_API inline friend adouble tanh (const adouble &a);
129+ ADOLC_API inline friend adouble asinh (const adouble &a);
130+ ADOLC_API inline friend adouble acosh (const adouble &a);
131+ ADOLC_API inline friend adouble atanh (const adouble &a);
132+ ADOLC_API inline friend adouble fabs (const adouble &a);
133+ ADOLC_API inline friend adouble ceil (const adouble &a);
134+ ADOLC_API inline friend adouble floor (const adouble &a);
135+ ADOLC_API inline friend adouble fmax (const adouble &a, const adouble &b);
136+ ADOLC_API inline friend adouble fmax (double v, const adouble &a);
137+ ADOLC_API inline friend adouble fmax (const adouble &a, double v);
138+ ADOLC_API inline friend adouble fmin (const adouble &a, const adouble &b);
139+ ADOLC_API inline friend adouble fmin (double v, const adouble &a);
140+ ADOLC_API inline friend adouble fmin (const adouble &a, double v);
141+ ADOLC_API inline friend adouble ldexp (const adouble &a, const adouble &b);
142+ ADOLC_API inline friend adouble ldexp (const adouble &a, const double v);
143+ ADOLC_API inline friend adouble ldexp (const double v, const adouble &a);
144+ ADOLC_API inline friend double frexp (const adouble &a, int *v);
145+ ADOLC_API inline friend adouble erf (const adouble &a);
146+ ADOLC_API inline friend adouble erfc (const adouble &a);
147+
148+ ADOLC_API inline friend void condassign (adouble &res, const adouble &cond,
149+ const adouble &arg1,
150+ const adouble &arg2);
151+ ADOLC_API inline friend void condassign (adouble &res, const adouble &cond,
152+ const adouble &arg);
153+ ADOLC_API inline friend void condeqassign (adouble &res, const adouble &cond,
154+ const adouble &arg1,
155+ const adouble &arg2);
156+ ADOLC_API inline friend void condeqassign (adouble &res, const adouble &cond,
157+ const adouble &arg);
156158
157159 /* ****************** nontemporary results ***************************/
158160 // assignment
@@ -181,27 +183,27 @@ class ADOLC_API adouble {
181183 // comparison
182184 inline int operator !=(const adouble &) const ;
183185 inline int operator !=(const double ) const ;
184- inline friend int operator !=(const double , const adouble &);
186+ ADOLC_API inline friend int operator !=(const double , const adouble &);
185187
186188 inline int operator ==(const adouble &) const ;
187189 inline int operator ==(const double ) const ;
188- inline friend int operator ==(const double , const adouble &);
190+ ADOLC_API inline friend int operator ==(const double , const adouble &);
189191
190192 inline int operator <=(const adouble &) const ;
191193 inline int operator <=(const double ) const ;
192- inline friend int operator <=(const double , const adouble &);
194+ ADOLC_API inline friend int operator <=(const double , const adouble &);
193195
194196 inline int operator >=(const adouble &) const ;
195197 inline int operator >=(const double ) const ;
196- inline friend int operator >=(const double , const adouble &);
198+ ADOLC_API inline friend int operator >=(const double , const adouble &);
197199
198200 inline int operator >(const adouble &) const ;
199201 inline int operator >(const double ) const ;
200- inline friend int operator >(const double , const adouble &);
202+ ADOLC_API inline friend int operator >(const double , const adouble &);
201203
202204 inline int operator <(const adouble &) const ;
203205 inline int operator <(const double ) const ;
204- inline friend int operator <(const double , const adouble &);
206+ ADOLC_API inline friend int operator <(const double , const adouble &);
205207
206208 /* ****************** getter / setter ********************************/
207209 inline double getValue () const ;
@@ -257,9 +259,9 @@ class ADOLC_API adouble {
257259 static size_t numDir;
258260 static size_t degree;
259261 static enum Mode forward_mode;
260- inline friend void setNumDir (const size_t p);
261- inline friend void setDegree (const size_t p);
262- inline friend void setMode (enum Mode newmode);
262+ ADOLC_API inline friend void setNumDir (const size_t p);
263+ ADOLC_API inline friend void setDegree (const size_t p);
264+ ADOLC_API inline friend void setMode (enum Mode newmode);
263265};
264266
265267} // namespace adtl_hov
0 commit comments