AM_Math.h

Go to the documentation of this file.
00001 /*
00002  * Expression Template Matrix Library
00003  *
00004  * Copyright (C) 2004 - 2006 Ricky Lung <mtlung@users.sourceforge.net>
00005  *
00006  * This library is free software; you can redistribute it and/or
00007  * modify it under the terms of the GNU Lesser General Public
00008  * License as published by the Free Software Foundation; either
00009  * version 2.1 of the License, or (at your option) any later version.
00010  *
00011  * This library is distributed in the hope that it will be useful,
00012  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00013  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00014  * Lesser General Public License for more details.
00015  *
00016  * You should have received a copy of the GNU Lesser General Public
00017  * License along with this library; if not, write to the Free Software
00018  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00019  *
00020  */
00021 
00022 
00030 #ifndef _EXMAT_SIMD_SSE2_AM_MATH_H
00031 #define _EXMAT_SIMD_SSE2_AM_MATH_H
00032 
00033 
00034 // Approximated math
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

Generated on Sat May 6 23:11:54 2006 for Exmat by  doxygen 1.4.6-NO