快速开方算法比较:
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
}
}
分享到:
相关推荐
尤其在交流电有效值的计算、电机控制器的反馈处理、以及状态估计等需要频繁进行开方计算的场合,快速开方算法能够减少数据处理时间,降低延迟,从而保证系统的快速响应和高效运行。 此外,由于新型算法不依赖于微...
5. **代码实现**:在STM8S单片机上,我们可以使用C语言编写这种快速开方算法。由于STM8S系列的CPU支持位操作,因此可以直接对估算值进行位移操作,这将极大地提升计算速度。 总之,单片机快速开方运算是一种在资源...
在这种情况下,为了实现开方运算(sqrt),开发者通常会采用优化的算法,如查表法。本文将深入探讨如何在J2ME环境中使用查表法实现sqrt开方函数。 查表法的基本思想是预先计算好一部分常用数值的平方根,存储在一个...
十分实用的开方器,用于开方计算,只需输入需要开方的数字,按回车,即可得出答案。来下载吧!
### 基于FPGA快速平方根算法的实现 #### 摘要与背景 现场可编程门阵列(Field Programmable Gate Array,简称FPGA)作为一种高度灵活且高效的硬件平台,在众多领域得到了广泛应用。特别是在需要高速度和高灵活性的...
本文介绍了一种基于ADSP-BF533定点DSP的整数开平方快速算法,并给出了该算法的C语言及汇编实现。ADSP-BF533是一款适合多媒体信号处理的高性能处理器。算法特点在于不仅具有高精度,而且运算速度快、程序简单。算法...
### 开方算法详解 #### 一、手工计算方法 手工计算开方的过程较为繁琐,但原理清晰。以求一个数的平方根为例,通常采用逐步逼近的方法进行。 **步骤解析**: 1. **确定首位**:首先确定所求数字的整数部分首位是...
在提供的`FastSquareRoot.cpp`和`FastSquareRoot.h`文件中,很可能实现了一种快速开方算法。这类算法通常基于位操作和查表法,可以快速给出一个平方根的近似值,适用于对实时性能要求高的场景。 快速平方根算法的...
开方和三角函数等复杂计算汇编实现快速计算+完整公式推导
### 快速定点开平方算法解析 #### 一、引言 在嵌入式系统开发过程中,对于资源有限的处理器而言,高效的数学运算至关重要。本文介绍了一种适用于嵌入式系统的快速定点开平方算法,该算法特别适用于缺乏除法指令的...
本文将详细探讨如何在FPGA上实现复数开方运算,特别是基于JPL(Jet Propulsion Laboratory)算法的近似运算方法。 复数开方运算在通信系统、信号分析和控制系统中具有重要应用,它涉及到对复数形式的数据进行平方根...
《易语言学习之累加开方计算器》是一个适合初学者实践的编程项目,它结合了基本的数学运算和编程逻辑,旨在...总的来说,"易语言学习之累加开方计算器"是一个实用且全面的学习资源,可以帮助初学者快速进入编程世界。
综上所述,浮点数开方涉及到计算机中的数值计算、浮点数表示、数值稳定性和算法设计等多个方面,是理解和优化计算性能的关键点。通过深入学习这些知识点,开发者可以更好地理解和解决与浮点数开方相关的问题。
本文将深入探讨标题"**PPE.rar_reciprocal_倒数_开方**"所涵盖的三个关键概念:倒数计算、开方运算以及流水线结构,并结合描述中的"latency为23周期"来分析其性能。 1. **倒数计算(Reciprocal)**: 在数学中,一...
值得注意的是,虽然置换群快速幂运算和开方运算的算法已经相对成熟,但随着计算能力的提升和新型算法的涌现,这些基础算法仍然面临优化和改进的空间。研究人员持续在寻找更为高效的算法,以及对于已有算法在不同环境...
浮点数据算法主要涉及浮点数的表示方法和计算过程,是计算机科学中处理实数的一种方式。浮点数在计算机内部通常分为三部分:符号位(s)、阶码(E)和尾数(M)。浮点运算器是实现这些计算的核心硬件,它包括处理阶...
【51系列单片机开方汇编子程序】是一个用于计算四字节无符号二进制数平方根的高效算法。这个子程序主要用于单片机环境,它能够处理大范围的数值,并且尽可能地减少了计算时间。以下是该子程序的详细解释: 1. **...
(1)且用asin曲线计算代替难以描述的atan曲线,快速开方函数 (2)全部采用整形运算,加快了运算速度,返回的角度范围是0~360.00,包含4个象限,输出角度值 (3)asin曲线使用了一半的曲线,解决了asin邻近90度时...
单片机上的开方程序介绍 该文章介绍了在单片机上实现开平方操作的方法。目前,开平方方法大部分使用牛顿迭代法,但作者发现了一种比牛顿迭代法更加快速...该函数使用了上述算法来计算平方根,并且具有较高的计算效率。