三角函数atan的快速算法

源代码在线查看: basictyp.h

软件大小: 12 K
上传用户: kelvinitc
关键词: atan 三角函数 快速算法
下载地址: 免注册下载 普通下载 VIP

相关代码

				/**
				@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__
							

相关资源