| [882] | 1 | // This may look like C code, but it is really -*- C++ -*- | 
|---|
|  | 2 | // g++ (up to 2.95.1) doesn't handle these inline template | 
|---|
|  | 3 | // functions correctly - with math functions defined in math.h | 
|---|
|  | 4 | //                     R. Ansari, C.Magneville   04/2000 | 
|---|
|  | 5 |  | 
|---|
|  | 6 | // --- This file should not be included directly ----- | 
|---|
|  | 7 | //   conditional include only in matharr.h | 
|---|
|  | 8 |  | 
|---|
|  | 9 | #ifndef GCCARRMATHPB_SEEN | 
|---|
|  | 10 | #define GCCARRMATHPB_SEEN | 
|---|
|  | 11 |  | 
|---|
|  | 12 | inline double _Sqrt_(double x) { return(sqrt(x)) ; } | 
|---|
|  | 13 | inline double _Fabs_(double x) { return(fabs(x)) ; } | 
|---|
|  | 14 | inline double _Sin_(double x) { return(sin(x)) ; } | 
|---|
|  | 15 | inline double _Cos_(double x) { return(cos(x)) ; } | 
|---|
|  | 16 | inline double _Tan_(double x) { return(tan(x)) ; } | 
|---|
|  | 17 | inline double _aSin_(double x) { return(asin(x)) ; } | 
|---|
|  | 18 | inline double _aCos_(double x) { return(acos(x)) ; } | 
|---|
|  | 19 | inline double _aTan_(double x) { return(atan(x)) ; } | 
|---|
|  | 20 | inline double _Exp_(double x) { return(exp(x)) ; } | 
|---|
|  | 21 | inline double _Log_(double x) { return(log(x)) ; } | 
|---|
|  | 22 | inline double _Log10_(double x) { return(log10(x)) ; } | 
|---|
|  | 23 |  | 
|---|
|  | 24 | // ----- Instantiation pour r_8 | 
|---|
|  | 25 | inline TArray<r_8> fabs(const TArray<r_8>& a) | 
|---|
|  | 26 | { MathArray<r_8> ma;   return( ma.ApplyFunction(a, _Fabs_) ); } | 
|---|
|  | 27 |  | 
|---|
|  | 28 | inline TArray<r_8> sqrt(const TArray<r_8>& a) | 
|---|
|  | 29 | { MathArray<r_8> ma;   return( ma.ApplyFunction(a, _Sqrt_) ); } | 
|---|
|  | 30 |  | 
|---|
|  | 31 | inline TArray<r_8> sin(const TArray<r_8>& a) | 
|---|
|  | 32 | { MathArray<r_8> ma;   return( ma.ApplyFunction(a, _Sin_) ); } | 
|---|
|  | 33 |  | 
|---|
|  | 34 | inline TArray<r_8> cos(const TArray<r_8>& a) | 
|---|
|  | 35 | { MathArray<r_8> ma;   return( ma.ApplyFunction(a, _Cos_) ); } | 
|---|
|  | 36 |  | 
|---|
|  | 37 | inline TArray<r_8> tan(const TArray<r_8>& a) | 
|---|
|  | 38 | { MathArray<r_8> ma;   return( ma.ApplyFunction(a, _Tan_) ); } | 
|---|
|  | 39 |  | 
|---|
|  | 40 | inline TArray<r_8> asin(const TArray<r_8>& a) | 
|---|
|  | 41 | { MathArray<r_8> ma;   return( ma.ApplyFunction(a, _aSin_) ); } | 
|---|
|  | 42 |  | 
|---|
|  | 43 | inline TArray<r_8> acos(const TArray<r_8>& a) | 
|---|
|  | 44 | { MathArray<r_8> ma;   return( ma.ApplyFunction(a, _aCos_) ); } | 
|---|
|  | 45 |  | 
|---|
|  | 46 | inline TArray<r_8> atan(const TArray<r_8>& a) | 
|---|
|  | 47 | { MathArray<r_8> ma;   return( ma.ApplyFunction(a, _aTan_) ); } | 
|---|
|  | 48 |  | 
|---|
|  | 49 | inline TArray<r_8> exp(const TArray<r_8>& a) | 
|---|
|  | 50 | { MathArray<r_8> ma;   return( ma.ApplyFunction(a, _Exp_) ); } | 
|---|
|  | 51 |  | 
|---|
|  | 52 | inline TArray<r_8> log(const TArray<r_8>& a) | 
|---|
|  | 53 | { MathArray<r_8> ma;   return( ma.ApplyFunction(a, _Log_) ); } | 
|---|
|  | 54 |  | 
|---|
|  | 55 | inline TArray<r_8> log10(const TArray<r_8>& a) | 
|---|
|  | 56 | { MathArray<r_8> ma;   return( ma.ApplyFunction(a, _Log10_) ); } | 
|---|
|  | 57 |  | 
|---|
|  | 58 |  | 
|---|
|  | 59 | // ----- Instantiation pour r_4 | 
|---|
|  | 60 | inline TArray<r_4> fabs(const TArray<r_4>& a) | 
|---|
|  | 61 | { MathArray<r_4> ma;   return( ma.ApplyFunction(a, _Fabs_) ); } | 
|---|
|  | 62 |  | 
|---|
|  | 63 | inline TArray<r_4> sqrt(const TArray<r_4>& a) | 
|---|
|  | 64 | { MathArray<r_4> ma;   return( ma.ApplyFunction(a, _Sqrt_) ); } | 
|---|
|  | 65 |  | 
|---|
|  | 66 | inline TArray<r_4> sin(const TArray<r_4>& a) | 
|---|
|  | 67 | { MathArray<r_4> ma;   return( ma.ApplyFunction(a, _Sin_) ); } | 
|---|
|  | 68 |  | 
|---|
|  | 69 | inline TArray<r_4> cos(const TArray<r_4>& a) | 
|---|
|  | 70 | { MathArray<r_4> ma;   return( ma.ApplyFunction(a, _Cos_) ); } | 
|---|
|  | 71 |  | 
|---|
|  | 72 | inline TArray<r_4> tan(const TArray<r_4>& a) | 
|---|
|  | 73 | { MathArray<r_4> ma;   return( ma.ApplyFunction(a, _Tan_) ); } | 
|---|
|  | 74 |  | 
|---|
|  | 75 | inline TArray<r_4> asin(const TArray<r_4>& a) | 
|---|
|  | 76 | { MathArray<r_4> ma;   return( ma.ApplyFunction(a, _aSin_) ); } | 
|---|
|  | 77 |  | 
|---|
|  | 78 | inline TArray<r_4> acos(const TArray<r_4>& a) | 
|---|
|  | 79 | { MathArray<r_4> ma;   return( ma.ApplyFunction(a, _aCos_) ); } | 
|---|
|  | 80 |  | 
|---|
|  | 81 | inline TArray<r_4> atan(const TArray<r_4>& a) | 
|---|
|  | 82 | { MathArray<r_4> ma;   return( ma.ApplyFunction(a, _aTan_) ); } | 
|---|
|  | 83 |  | 
|---|
|  | 84 | inline TArray<r_4> exp(const TArray<r_4>& a) | 
|---|
|  | 85 | { MathArray<r_4> ma;   return( ma.ApplyFunction(a, _Exp_) ); } | 
|---|
|  | 86 |  | 
|---|
|  | 87 | inline TArray<r_4> log(const TArray<r_4>& a) | 
|---|
|  | 88 | { MathArray<r_4> ma;   return( ma.ApplyFunction(a, _Log_) ); } | 
|---|
|  | 89 |  | 
|---|
|  | 90 | inline TArray<r_4> log10(const TArray<r_4>& a) | 
|---|
|  | 91 | { MathArray<r_4> ma;   return( ma.ApplyFunction(a, _Log10_) ); } | 
|---|
|  | 92 |  | 
|---|
|  | 93 | #endif | 
|---|