mkl_stub.h
1 /*
2  @copyright Russell Standish 2000-2013
3  @author Russell Standish
4  This file is part of EcoLab
5 
6  Open source licensed under the MIT license. See LICENSE for details.
7 */
8 
9 #ifndef MKL_STUB_H
10 #define MKL_STUB_H
11 #ifdef MKL_STUB
12 #ifdef MASS
13 #include <massv.h>
14 inline void vdInv(int n, double *x, double *y) {for (int i=0; i<n; i++) y[i]=1/x[i];}
15 inline void vdSqrt(int n, double *x, double *y) {vsqrt(y,x,&n);}
16 inline void vdExp(int n, double *x, double *y) {vexp(y,x,&n);}
17 inline void vdLn(int n, double *x, double *y) {vlog(y,x,&n);}
18 inline void vdCos(int n, double *x, double *y) {vcos(y,x,&n);}
19 inline void vdSin(int n, double *x, double *y) {vsin(y,x,&n);}
20 #else
21 inline void vdDiv(int n, const double *x, const double *y, double *z) {
22  for (int i=0; i<n; i++) z[i]=x[i]/y[i];}
23 inline void vdPow(int n, const double *x, const double *y, double *z) {
24  for (int i=0; i<n; i++) z[i]=pow(x[i],y[i]);}
25 inline void vdPowx(int n, const double *x, double y, double *z) {
26  for (int i=0; i<n; i++) z[i]=pow(x[i],y);}
27 inline void vdInv (int n, const double *x, double *y) {for (int i=0; i<n; i++) y[i]=1/x[i];}
28 inline void vdSqrt (int n, const double *x, double *y) {for (int i=0; i<n; i++) y[i]=sqrt(x[i]);}
29 inline void vdExp (int n, const double *x, double *y) {for (int i=0; i<n; i++) y[i]=exp(x[i]);}
30 inline void vdLn (int n, const double *x, double *y) {for (int i=0; i<n; i++) y[i]=log(x[i]);}
31 inline void vdLog10(int n, const double *x, double *y) {for (int i=0; i<n; i++) y[i]=log10(x[i]);}
32 inline void vdCos (int n, const double *x, double *y) {for (int i=0; i<n; i++) y[i]=cos(x[i]);}
33 inline void vdSin (int n, const double *x, double *y) {for (int i=0; i<n; i++) y[i]=sin(x[i]);}
34 inline void vdTan (int n, const double *x, double *y) {for (int i=0; i<n; i++) y[i]=tan(x[i]);}
35 inline void vdSinh (int n, const double *x, double *y) {for (int i=0; i<n; i++) y[i]=sinh(x[i]);}
36 inline void vdCosh (int n, const double *x, double *y) {for (int i=0; i<n; i++) y[i]=cosh(x[i]);}
37 inline void vdTanh (int n, const double *x, double *y) {for (int i=0; i<n; i++) y[i]=tanh(x[i]);}
38 inline void vdAsin (int n, const double *x, double *y) {for (int i=0; i<n; i++) y[i]=asin(x[i]);}
39 inline void vdAcos (int n, const double *x, double *y) {for (int i=0; i<n; i++) y[i]=acos(x[i]);}
40 inline void vdAtan (int n, const double *x, double *y) {for (int i=0; i<n; i++) y[i]=atan(x[i]);}
41 inline void vdAtan2(int n, const double *x, const double *y, double *z) {
42  for (int i=0; i<n; i++) z[i]=atan2(x[i],y[i]);}
43 
44 inline void vsDiv(int n, const float *x, const float *y, float *z) {
45  for (int i=0; i<n; i++) z[i]=x[i]/y[i];}
46 inline void vsPow(int n, const float *x, const float *y, float *z) {
47  for (int i=0; i<n; i++) z[i]=pow(x[i],y[i]);}
48 inline void vsPowx(int n, const float *x, float y, float *z) {
49  for (int i=0; i<n; i++) z[i]=pow(x[i],y);}
50 inline void vsInv (int n, const float *x, float *y) {for (int i=0; i<n; i++) y[i]=1/x[i];}
51 inline void vsSqrt (int n, const float *x, float *y) {for (int i=0; i<n; i++) y[i]=sqrt(x[i]);}
52 inline void vsExp (int n, const float *x, float *y) {for (int i=0; i<n; i++) y[i]=exp(x[i]);}
53 inline void vsLn (int n, const float *x, float *y) {for (int i=0; i<n; i++) y[i]=log(x[i]);}
54 inline void vsLog10(int n, const float *x, float *y) {for (int i=0; i<n; i++) y[i]=log10(x[i]);}
55 inline void vsCos (int n, const float *x, float *y) {for (int i=0; i<n; i++) y[i]=cos(x[i]);}
56 inline void vsSin (int n, const float *x, float *y) {for (int i=0; i<n; i++) y[i]=sin(x[i]);}
57 inline void vsTan (int n, const float *x, float *y) {for (int i=0; i<n; i++) y[i]=tan(x[i]);}
58 inline void vsSinh (int n, const float *x, float *y) {for (int i=0; i<n; i++) y[i]=sinh(x[i]);}
59 inline void vsCosh (int n, const float *x, float *y) {for (int i=0; i<n; i++) y[i]=cosh(x[i]);}
60 inline void vsTanh (int n, const float *x, float *y) {for (int i=0; i<n; i++) y[i]=tanh(x[i]);}
61 inline void vsAsin (int n, const float *x, float *y) {for (int i=0; i<n; i++) y[i]=asin(x[i]);}
62 inline void vsAcos (int n, const float *x, float *y) {for (int i=0; i<n; i++) y[i]=acos(x[i]);}
63 inline void vsAtan (int n, const float *x, float *y) {for (int i=0; i<n; i++) y[i]=atan(x[i]);}
64 inline void vsAtan2(int n, const float *x, const float *y, float *z) {
65  for (int i=0; i<n; i++) z[i]=atan2(x[i],y[i]);}
66 #endif
67 #endif
68 #endif
unop< E, Tanh< typename E::value_type > > tanh(const E &e)
Definition: arrays.h:952
binop< E1, E2, Pow< E1, E2 > > pow(const E1 &e1, const E2 &e2)
Definition: arrays.h:777
unop< E, Acos< typename E::value_type > > acos(const E &e)
Definition: arrays.h:883
unop< E, Exp< typename E::value_type > > exp(const E &e)
Definition: arrays.h:792
unop< E, Cosh< typename E::value_type > > cosh(const E &e)
Definition: arrays.h:939
unop< E, Log< typename E::value_type > > log(const E &e)
Definition: arrays.h:805
unop< E, Asin< typename E::value_type > > asin(const E &e)
Definition: arrays.h:870
binop< E1, E2, Atan2< E1, E2 > > atan2(const E1 &e1, const E2 &e2)
Definition: arrays.h:911
unop< E, Log10< typename E::value_type > > log10(const E &e)
Definition: arrays.h:818
unop< E, Tan< typename E::value_type > > tan(const E &e)
Definition: arrays.h:857
unop< E, Sin< typename E::value_type > > sin(const E &e)
Definition: arrays.h:831
unop< E, Cos< typename E::value_type > > cos(const E &e)
Definition: arrays.h:844
unop< E, Sqrt< typename E::value_type > > sqrt(const E &e)
Definition: arrays.h:965
unop< E, Sinh< typename E::value_type > > sinh(const E &e)
Definition: arrays.h:926
unop< E, Atan< typename E::value_type > > atan(const E &e)
Definition: arrays.h:896