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