1 #ifndef CLASSIC_TransportMath_HH
2 #define CLASSIC_TransportMath_HH
34 template <
class T,
int N>
38 template <
class T,
int N>
42 template <
class T,
int N>
46 template <
class T,
int N>
50 template <
class T,
int N>
54 template <
class T,
int N>
58 template <
class T,
int N>
62 template <
class T,
int N>
66 template <
class T,
int N>
70 template <
class T,
int N>
74 template <
class T,
int N>
78 template <
class T,
int N>
82 template <
class T,
int N>
89 template <
class T,
int N>
94 for(
int i = 1; i <= N; ++i) z[i] = fac * x[i];
99 template <
class T,
int N>
102 if(aZero <= 0.0)
throw DomainError(
"sqrt(const TransportFun &)");
104 series[0] =
sqrt(aZero);
105 series[1] = series[0] / (2.0 * aZero);
110 template <
class T,
int N>
114 series[0] =
sin(aZero);
115 series[1] =
cos(aZero);
120 template <
class T,
int N>
124 series[0] =
cos(aZero);
125 series[1] = -
sin(aZero);
130 template <
class T,
int N>
136 template <
class T,
int N>
138 return cos(x).inverse();
142 template <
class T,
int N>
144 return sin(x).inverse();
148 template <
class T,
int N>
152 series[0] = series[1] =
exp(aZero);
157 template <
class T,
int N>
160 if(aZero <= 0)
throw DomainError(
"log(const TransportFun &)");
163 series[0] =
log(aZero);
164 series[1] =
T(1) / aZero;
169 template <
class T,
int N>
173 series[0] =
sinh(aZero);
174 series[1] =
cosh(aZero);
179 template <
class T,
int N>
183 series[0] =
cosh(aZero);
184 series[1] =
sinh(aZero);
189 template <
class T,
int N>
194 #endif // CLASSIC_TransportMath_HH
Tps< T > sin(const Tps< T > &x)
Sine.
Tps< T > exp(const Tps< T > &x)
Exponential.
Tps< T > tan(const Tps< T > &x)
Tangent.
Tps< T > cot(const Tps< T > &x)
Cotangent.
Tps< T > sec(const Tps< T > &x)
Secant.
Tps< T > log(const Tps< T > &x)
Natural logarithm.
Tps< T > cosh(const Tps< T > &x)
Hyperbolic cosine.
TransportFun taylor(const T series[2]) const
Taylor series.
Tps< T > csc(const Tps< T > &x)
Cosecant.
Transport function in N variables of type T.
Tps< T > pow(const Tps< T > &x, int y)
Integer power.
Tps< T > sqrt(const Tps< T > &x)
Square root.
Tps< T > cos(const Tps< T > &x)
Cosine.
Tps< T > tanh(const Tps< T > &x)
Hyperbolic tangent.
Tps< T > sinh(const Tps< T > &x)
Hyperbolic sine.