`
micheal19840929
  • 浏览: 167278 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

快速开方算法比较

    博客分类:
  • J2SE
阅读更多

快速开方算法比较:

public class Test {
	
	private static int a,b,c,p=0x80; 
	private static int K,A,B,C,R=0x4000,D=60000; 
	
	public static float sqt1(){ 
		if(D>50176){A=0;   a=0;  C=50176;c=224;} // 查表 
		  else if(D>36864){A=50176;a=224;C=36864;c=192;}      
		  else if(D>25600){A=36864;a=192;C=25600;c=160;}
		  else if(D>16384){A=25600;a=160;C=16384;c=128;}
		  else if(D>9216) {A=16384; a=128;C= 9216; c= 96;} 
		  else if(D>4096) {A= 9216; a= 96; C= 4096; c= 64; }
		  else if(D>1024) {A= 4096; a= 64; C= 1024; c= 32; } 
		  else {
			  A= 1024; a= 32; C= 0;    c= 0;  
		  }
		p=16;R=256;                // 初始化数据 
		  do{ b=c+p;B=C;B>>=1;       // 插值计算循环 
		     if(A!=0){K=A;K>>=1;} 
		        else K=0x8000;        // 65536>>=1的数 
		     B+=K;B-=R; 
		     if(D>B){C=B;c=b;} 
		        else{A=B;a=b;} 
		     p>>=1;R>>=2; 
		     }while(p!=1);             // 循环4次结束 
		   K=A-C;K>>=2;A-=K; C+=K;  // 小数部分四舍五入 
		   if(D<C)b=c; 
		      else{ 
		      if(D<A)b=++c; 
		         else b=a;
		      }
		   return b;
	}         //输出方根b 

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		Calculagraph.getInstance("fast").mark(null);
		int i=0;
		for(i=0;i<655350;i++)
		{
			D=i;
			sqt1();
		}
		System.out.println(i);
		Calculagraph.getInstance("fast").mark("end");
		System.out.println(Calculagraph.remove("fast").getInfo());		//30ms
		
		Calculagraph.getInstance("normal").mark(null);
		for(i=0;i<655350;i++)
		{
			Math.sqrt(i);
		}
		System.out.println(i);
		Calculagraph.getInstance("normal").mark("end");
		System.out.println(Calculagraph.remove("normal").getInfo());	//10ms
	}

}

 

分享到:
评论

相关推荐

    微处理器的快速开方计算方法.pdf

    尤其在交流电有效值的计算、电机控制器的反馈处理、以及状态估计等需要频繁进行开方计算的场合,快速开方算法能够减少数据处理时间,降低延迟,从而保证系统的快速响应和高效运行。 此外,由于新型算法不依赖于微...

    单片机快速开方运算

    5. **代码实现**:在STM8S单片机上,我们可以使用C语言编写这种快速开方算法。由于STM8S系列的CPU支持位操作,因此可以直接对估算值进行位移操作,这将极大地提升计算速度。 总之,单片机快速开方运算是一种在资源...

    J2ME经验总结之sqrt开方函数(查表法)

    在这种情况下,为了实现开方运算(sqrt),开发者通常会采用优化的算法,如查表法。本文将深入探讨如何在J2ME环境中使用查表法实现sqrt开方函数。 查表法的基本思想是预先计算好一部分常用数值的平方根,存储在一个...

    用于计算开方的C++程序---开方器

    十分实用的开方器,用于开方计算,只需输入需要开方的数字,按回车,即可得出答案。来下载吧!

    基于FPGA快速平方根算法的实现

    ### 基于FPGA快速平方根算法的实现 #### 摘要与背景 现场可编程门阵列(Field Programmable Gate Array,简称FPGA)作为一种高度灵活且高效的硬件平台,在众多领域得到了广泛应用。特别是在需要高速度和高灵活性的...

    整数开平方算法

    本文介绍了一种基于ADSP-BF533定点DSP的整数开平方快速算法,并给出了该算法的C语言及汇编实现。ADSP-BF533是一款适合多媒体信号处理的高性能处理器。算法特点在于不仅具有高精度,而且运算速度快、程序简单。算法...

    开方算法.docx

    ### 开方算法详解 #### 一、手工计算方法 手工计算开方的过程较为繁琐,但原理清晰。以求一个数的平方根为例,通常采用逐步逼近的方法进行。 **步骤解析**: 1. **确定首位**:首先确定所求数字的整数部分首位是...

    WXH开方函数

    在提供的`FastSquareRoot.cpp`和`FastSquareRoot.h`文件中,很可能实现了一种快速开方算法。这类算法通常基于位操作和查表法,可以快速给出一个平方根的近似值,适用于对实时性能要求高的场景。 快速平方根算法的...

    开方和三角函数等复杂计算汇编实现快速计算+完整公式推导

    开方和三角函数等复杂计算汇编实现快速计算+完整公式推导

    快速定点开平方算法文档,非常适合嵌入式

    ### 快速定点开平方算法解析 #### 一、引言 在嵌入式系统开发过程中,对于资源有限的处理器而言,高效的数学运算至关重要。本文介绍了一种适用于嵌入式系统的快速定点开平方算法,该算法特别适用于缺乏除法指令的...

    fpga复数开方sqrt

    本文将详细探讨如何在FPGA上实现复数开方运算,特别是基于JPL(Jet Propulsion Laboratory)算法的近似运算方法。 复数开方运算在通信系统、信号分析和控制系统中具有重要应用,它涉及到对复数形式的数据进行平方根...

    易语言学习之累加开方计算器

    《易语言学习之累加开方计算器》是一个适合初学者实践的编程项目,它结合了基本的数学运算和编程逻辑,旨在...总的来说,"易语言学习之累加开方计算器"是一个实用且全面的学习资源,可以帮助初学者快速进入编程世界。

    浮点数开方.rar

    综上所述,浮点数开方涉及到计算机中的数值计算、浮点数表示、数值稳定性和算法设计等多个方面,是理解和优化计算性能的关键点。通过深入学习这些知识点,开发者可以更好地理解和解决与浮点数开方相关的问题。

    PPE.rar_reciprocal_倒数_开方

    本文将深入探讨标题"**PPE.rar_reciprocal_倒数_开方**"所涵盖的三个关键概念:倒数计算、开方运算以及流水线结构,并结合描述中的"latency为23周期"来分析其性能。 1. **倒数计算(Reciprocal)**: 在数学中,一...

    算法合集之置换群快速幂运算研究与探讨PPT学习教案.pptx

    值得注意的是,虽然置换群快速幂运算和开方运算的算法已经相对成熟,但随着计算能力的提升和新型算法的涌现,这些基础算法仍然面临优化和改进的空间。研究人员持续在寻找更为高效的算法,以及对于已有算法在不同环境...

    浮点数据算法

    浮点数据算法主要涉及浮点数的表示方法和计算过程,是计算机科学中处理实数的一种方式。浮点数在计算机内部通常分为三部分:符号位(s)、阶码(E)和尾数(M)。浮点运算器是实现这些计算的核心硬件,它包括处理阶...

    51系列单片机开方汇编子程序

    【51系列单片机开方汇编子程序】是一个用于计算四字节无符号二进制数平方根的高效算法。这个子程序主要用于单片机环境,它能够处理大范围的数值,并且尽可能地减少了计算时间。以下是该子程序的详细解释: 1. **...

    单片机C语言查表法实现arctan arcsin 反正切 反正弦计算(不使用库函数)

    (1)且用asin曲线计算代替难以描述的atan曲线,快速开方函数 (2)全部采用整形运算,加快了运算速度,返回的角度范围是0~360.00,包含4个象限,输出角度值 (3)asin曲线使用了一半的曲线,解决了asin邻近90度时...

    单片机上的开方程序介绍

    单片机上的开方程序介绍 该文章介绍了在单片机上实现开平方操作的方法。目前,开平方方法大部分使用牛顿迭代法,但作者发现了一种比牛顿迭代法更加快速...该函数使用了上述算法来计算平方根,并且具有较高的计算效率。

Global site tag (gtag.js) - Google Analytics