00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00030 #ifndef _EXMAT_SIMD_SSE2_AM_MATH_H
00031 #define _EXMAT_SIMD_SSE2_AM_MATH_H
00032
00033
00034
00035
00036 #include "../../PlatformSpec.h"
00037
00038 namespace exmat {
00039 namespace Math {
00040 namespace SSE2 {
00041
00042
00044 extern float am_exp(float x);
00045 extern __m128 am_exp(__m128 x);
00046 extern void am_exp(const float* in, float* out, size_t N);
00047
00049 extern float am_log(float x);
00050 extern __m128 am_log(__m128 x);
00051 extern void am_log(const float* in, float* out, size_t N);
00052
00054 extern float am_pow(float x, float y);
00055 extern __m128 am_pow(__m128 x, __m128 y);
00056
00057
00059
00060
00061 extern float am_sin(float x);
00062 extern __m128 am_sin(__m128 x);
00063 extern void am_sin(const float* in, float* out, size_t N);
00064
00066 extern float am_cos(float x);
00067 extern __m128 am_cos(__m128 x);
00068 extern void am_cos(const float* in, float* out, size_t N);
00069
00071 extern void am_sincos(float x, float& s, float& c);
00072 extern void am_sincos(__m128 x, __m128& s, __m128& c);
00073
00075 extern float am_tan(float x);
00076 extern __m128 am_tan(__m128 x);
00077 extern void am_tan(const float* in, float* out, size_t N);
00078
00080 extern float am_asin(float x);
00081 extern void am_asinp(const float* in, float* out, size_t N);
00082
00084 extern float am_acos(float x);
00085 extern void am_acos(const float* in, float* out, size_t N);
00086
00088 extern float am_atan(float x);
00089 extern void am_atan(const float* in, float* out, size_t N);
00091
00092 };
00093 };
00094 };
00095
00096
00097 #endif // _EXMAT_SIMD_SSE2_AM_MATH_H