三角函数atan的快速算法
源代码在线查看: basictyp.h
/**
@file basictyp.h
@brief 基本的数据类型定义
@depend 无
@author 钟勇
@changelog
20090317:1.新建文件。
20081010:1.修正掩码宏__maskbits的错误,该错误是因为未将条件判断和掩码生成部分
用括号括在一起,造成在某些情况下编译异常。
*/
#ifndef __INC_BASICTYP_H__
#define __INC_BASICTYP_H__
//自定义基本数据类型
#ifndef __SHORT_TYPE_DEFINED__
#define __SHORT_TYPE_DEFINED__
#ifdef DSP_VC33
typedef double F4;
typedef long double F8;
#else
typedef float F4;
typedef double F8;
#endif
#include
typedef uint8_t U1;
typedef uint16_t U2;
typedef uint32_t U4;
typedef uint64_t U8;
typedef int8_t I1;
typedef int16_t I2;
typedef int32_t I4;
typedef int64_t I8;
#define U1_C(x) ((U1)(x))
#define U2_C(x) ((U2)(x))
#define U4_C(x) ((U4)(x))
#define U8_C(x) ((U8)(x))
#define I1_C(x) ((I1)(x))
#define I2_C(x) ((I2)(x))
#define I4_C(x) ((I4)(x))
#define I8_C(x) ((I8)(x))
#endif//__SHORT_TYPE_DEFINED__
//自定义bool类型
#ifndef __BOOLEAN_TYPE_DEFINED__
#define __BOOLEAN_TYPE_DEFINED__
typedef enum _bool_val{false = 0,true = 1} bool;
#endif /* __BOOLEAN_TYPE_DEFINED__ */
#ifndef NULL
#define NULL 0
#endif
// 掩码宏
#define __maskbits(cntLSB) ((cntLSB == 32) ? (U4_C(-1)):(~(U4_C(-1)
#ifdef __cplusplus
extern "C" {
#endif
#if defined(_TMS320C6400)||defined(_TMS320C6400_PLUS)||defined(_TMS320C6700)
void _strasgi(
register void *dst,
register const void *src,
register unsigned cnt
);
#if defined(_TMS320C6400_PLUS)
void _strasgi_64plus(
register void *dst,
register const void *src,
register unsigned cnt
);
#else
#define _strasgi_64plus(dst,src,cnt) _strasgi(dst,src,cnt)
#endif //defined(_TMS320C6400_PLUS)
#else
inline void _strasgi(
register void *dst,
register const void *src,
register unsigned cnt
)
{
register int i;
register int *ldst = (int*)dst;
register const int *lsrc = (const int*)src;
cnt /= 4;
_nassert(cnt >= 7);
i = 0; do { *ldst++ = *lsrc++; } while(++i < cnt);
}
#define _strasgi_64plus(dst,src,cnt) _strasgi(dst,src,cnt)
#endif
#ifdef __cplusplus
}
#endif
#endif//__INC_BASICTYP_H__