00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00020 #ifndef SHLIBTRIGIMPL_HPP
00021 #define SHLIBTRIGIMPL_HPP
00022
00023 #include "ShLibTrig.hpp"
00024 #include "ShAttrib.hpp"
00025 #include "ShInstructions.hpp"
00026
00027 namespace SH {
00028
00029 template<int N, typename T>
00030 ShGeneric<N, T> acos(const ShGeneric<N, T>& var)
00031 {
00032 ShAttrib<N, SH_TEMP, T> t;
00033 shACOS(t, var);
00034 return t;
00035 }
00036
00037 template<int N, typename T>
00038 ShGeneric<N, T> asin(const ShGeneric<N, T>& var)
00039 {
00040 ShAttrib<N, SH_TEMP, T> t;
00041 shASIN(t, var);
00042 return t;
00043 }
00044
00045 template<int N, typename T>
00046 ShGeneric<N, T> atan(const ShGeneric<N, T>& var)
00047 {
00048 ShAttrib<N, SH_TEMP, T> t;
00049 shATAN(t, var);
00050 return t;
00051 }
00052
00053 template<int N, typename T>
00054 ShGeneric<N, T> atan2(const ShGeneric<N, T>& y, const ShGeneric<N, T>& x)
00055 {
00056 ShAttrib<N, SH_TEMP, T> t;
00057 shATAN2(t, y, x);
00058 return t;
00059 }
00060
00061 template<int N, typename T>
00062 ShGeneric<N, T> cos(const ShGeneric<N, T>& var)
00063 {
00064 ShAttrib<N, SH_TEMP, T> t;
00065 shCOS(t, var);
00066 return t;
00067 }
00068
00069 template<int N, typename T>
00070 ShGeneric<N, T> sin(const ShGeneric<N, T>& var)
00071 {
00072 ShAttrib<N, SH_TEMP, T> t;
00073 shSIN(t, var);
00074 return t;
00075 }
00076
00077 template<int N, typename T>
00078 ShGeneric<N, T> tan(const ShGeneric<N, T>& var)
00079 {
00080 ShAttrib<N, SH_TEMP, T> t;
00081 shTAN(t, var);
00082 return t;
00083 }
00084
00085 template<int N, typename T>
00086 ShGeneric<N, T> cosh(const ShGeneric<N, T>& var)
00087 {
00088 ShAttrib<N, SH_TEMP, T> t;
00089 shCOSH(t, var);
00090 return t;
00091 }
00092
00093 template<int N, typename T>
00094 ShGeneric<N, T> sinh(const ShGeneric<N, T>& var)
00095 {
00096 ShAttrib<N, SH_TEMP, T> t;
00097 shSINH(t, var);
00098 return t;
00099 }
00100
00101 template<int N, typename T>
00102 ShGeneric<N, T> tanh(const ShGeneric<N, T>& var)
00103 {
00104 ShAttrib<N, SH_TEMP, T> t;
00105 shTANH(t, var);
00106 return t;
00107 }
00108
00109 template<int N, typename T>
00110 ShGeneric<N, T> acosh(const ShGeneric<N, T>& var)
00111 {
00112 ShAttrib<N, SH_TEMP, T> t;
00113 shACOSH(t, var);
00114 return t;
00115 }
00116
00117 template<int N, typename T>
00118 ShGeneric<N, T> asinh(const ShGeneric<N, T>& var)
00119 {
00120 ShAttrib<N, SH_TEMP, T> t;
00121 shASINH(t, var);
00122 return t;
00123 }
00124
00125 template<int N, typename T>
00126 ShGeneric<N, T> atanh(const ShGeneric<N, T>& var)
00127 {
00128 ShAttrib<N, SH_TEMP, T> t;
00129 shATANH(t, var);
00130 return t;
00131 }
00132
00133 }
00134
00135 #endif