注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

鑫淼梦园的博客

圆你的梦想 从这里开始

 
 
 

日志

 
 

Delphi_XE2 Math单元函数09  

2015-04-18 12:01:24|  分类: delphixe7 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
Delphi_XE2 Math单元函数09

************************;CodeGearDelphi/Kylix跨平台运;Copyright(c)1995,2011emb;************************;这个单元包含高性能的算术、三角、对数、统计和金融;参考:;1)P.J.Plauger,"TheS;2)W.J.Cody,Jr.,andW.Wait;3


**************************数学函数单元*********************************

CodeGear Delphi / Kylix 跨平台运行时(Runtime)库

Copyright (c) 1995, 2011 embarcadero技术

********************************************************************

这个单元包含高性能的算术、三角、对数、统计和金融方面的计算及FPU程序函数用于补充Delphi语言System.pas 单元中的数学常规程序函数

参考:

1) P.J. Plauger, "The Standard C Library", Prentice-Hall, 1992, Ch. 7. 《标准C程序库》

2) W.J. Cody, Jr., and W. Waite, "Software Manual For the Elementary Functions", Prentice-Hall, 1980.《软件手册初步》

3) Namir Shammas, "C/C++ Mathematical Algorithms for Scientists and Engineers", McGraw-Hill, 1995, Ch 8.《C/C++ 数学的运算法则对于科学家和工程师》

4) H.T. Lau, "A Numerical Library in C for Scientists and Engineers", CRC Press, 1994, Ch. 6.《C语言中的数字的程序库对于科学家和工程师》

5) "Pentium(tm) Processor User's Manual, Volume 3: Architecture and Programming Manual", Intel, 1994《Pentium(tm) 处理器使用手册,第 3 册: 体系结构和程序手册》

注意

1) 对于有些函数,这个单元中涉及的概念或常数由和 Ray 提供。

2) 所有的角度参数和三角函数返回值都用弧度表示

3) 下列大部分的三角和对数程序直接的映射到Intel 80387 FPU浮点指令

4) 输入域、输出范围和错误处理主要由 FPU 硬件决定

5) X86 BASM汇编程序中的代码支持Pentium FPU 管线体系

6)

? 常数

IEEE 浮点类型的范围, 包括非正规的

1) MinSingle = 1.4012984643248170709e-45; 最小Single数

2) MaxSingle = 340282346638528859811704183484516925440.0;最大Single数

3) MinDouble = 4.9406564584124654418e-324;最小Double数

4) MaxDouble = 1.7976931348623157081e+308;最大Double数

如果是32位

5) MinExtended = 3.64519953188247460253e-4951; 最小Extended数

6) MaxExtended = 1.18973149535723176505e+4932;最大Extended数

如果是64位

MinExtended = MinDouble;

MaxExtended = MaxDouble;

7) MinComp = -9223372036854775807; 最小Comp数

8) MaxComp = 9223372036854775807; 最大Comp数

下列常数不应当被用于比较关系,仅仅用于分配。若要用于比较关系请使用IsNan 和

(已提供在后面) IsInfinity 函数。

9) NaN = 0.0 / 0.0; 非数

10) Infinity = 1.0 / 0.0; 正无穷大

11) NegInfinity = -1.0 / 0.0; 负无穷大

一、 三角函数

( 输入: |X| <= 1 , 输出: [0..PI] 弧度)

1) 函数 ArcCos(const X: Extended): Extended;

ArcCos(const X:Double):Double; ArcCos(const X:Single):Single

(输入: |X| <= 1, 输出: [-PI/2…PI/2] 弧度)

2) 函数 ArcSin(const X: Extended): Extended;

ArcSin(const X:Double):Double; ArcSin(const X:Single):Single

(ArcTan2计算 ArcTan(Y/X), 并且返回一个正确象限角。

输入: |Y| < 264, |X| < 264, X <> 0输出: [-PI…PI] 弧度)。

3) 函数 ArcTan2(const Y, X: Extended): Extended;

ArcTan2 (const Y, X:Double):Double; ArcTan2 (const Y, X:Single):Single

(SinCos过程比分别调用Sin 和Cos 计算同一个角度快两倍.

输入Theta,输出Sin,Cos)

4) 过程 SinCos(const Theta: Extended; var Sin, Cos: Extended) ;//正弦,余弦函数

SinCos(const Theta: Single; var Sin, Cos: Single) ; SinCos(const Theta: Double; var Sin, Cos:Double) ; Tan(const X:Double):Double; Tan(const X:Single):Single; Cotan(const X:Double):Double; Cotan(const X:Single):Single; Secant (const X:Double):Double; Secant (const X:Single):Single; 5) 函数 Tan(const X: Extended): Extended; //正切函数 6) 函数 Cotan(cons X: Extended): Extended; { 余切函数1 / tan(X), X <> 0 } 7) 函数 Secant(const X: Extended): Extended; {正割函数 1 / cos(X) }

8) 函数 Cosecant(const X: Extended): Extended; {余割函数 1 / sin(X) }

Cosecant (const X:Double):Double;

Cosecant (const X:Single):Single;

{ 求直角三角形斜边长度,Sqrt(X2 + Y2) }

9) 函数 Hypot(const X, Y: Extended): Extended;

Hypot (const X, Y:Double):Double; Hypot (const X, Y:Single):Single;

二、 角度单位换算程序

以下函数均有Double和Single数据类型

1) 函数 RadToDeg(const Radians: Extended): Extended; { 度数:= 弧度 * 180 / PI }

2) 函数 RadToGrad(const Radians: Extended): Extended; { 梯度:= 弧度 * 200 / PI }

3) 函数 RadToCycle(const Radians: Extended): Extended;{ 圆周:= 弧度 / 2PI }

4) 函数DegToRad(const Degrees: Extended): Extended; {弧度:= 度数* PI / 180}

5) 函数DegToGrad(const Degrees: Extended): Extended;

6) 函数DegToCycle(const Degrees: Extended): Extended;

7) 函数GradToRad(const Grads: Extended): Extended; {弧度:= 梯度 * PI / 200 }

8) 函数GradToDeg(const Grads: Extended): Extended;

9) 函数GradToCycle(const Grads: Extended): Extended;

10) 函数CycleToRad(const Cycles: Extended): Extended; {弧度:= 圆周* 2PI }

11) 函数CycleToDeg(const Cycles: Extended): Extended;

12) 函数CycleToGrad(const Cycles: Extended): Extended;

三、双曲线函数及其逆函数

以下函数均有Double和Single数据类型

1) 弧度 Cot(const X: Extended): Extended; { 别名为 Cotan余切 }

2) 函数 Sec(const X: Extended): Extended; { 别名为 Secant 正割}

3) 函数 Csc(const X: Extended): Extended; { 别名为 Cosecant 余割}

4) 函数 Cosh(const X: Extended): Extended; //双曲余弦

5) 函数 Sinh(const X: Extended): Extended; // 双曲正弦

6) 函数 Tanh(const X: Extended): Extended; //双曲正切

7) 函数 CotH(const X: Extended): Extended; //双曲余切

8) 函数 SecH(const X: Extended): Extended; //双曲正割

9) 函数 CscH(const X: Extended): Extended; //双曲余割

10) 函数 ArcCot(const X: Extended): Extended; {反余切 IN: X <> 0 }

11) 函数 ArcSec(const X: Extended): Extended; {反正割 IN: X <> 0 }

12) 函数 ArcCsc(const X: Extended): Extended; {反余割 IN: X <> 0 }

13) 函数 ArcCosh(const X: Extended): Extended; { 反双曲余弦IN: X >= 1 }

14) 函数 ArcSinh(const X: Extended): Extended; //反双曲正弦

15) 函数 ArcTanh(const X: Extended): Extended; { 反双曲正切IN: |X| <= 1 }

16) 函数 ArcCotH(const X: Extended): Extended; {反双曲余切 IN: X <> 0 }

17) 函数 ArcSecH(const X: Extended): Extended; {反双曲正割 IN: X <> 0 }

18) 函数 ArcCscH(const X: Extended): Extended; { 反双曲余割IN: X <> 0 }

四、 对数函数

以下函数均有Double和Single数据类型

1) 函数 LnXP1(const X: Extended): Extended; { 基于e为底,计算Ln(X + 1), 精度X接近于0 }

2) 函数 Log10(const X: Extended): Extended; { 底为10的X对数}

3) 函数 Log2(const X: Extended): Extended; {底为2的X对数}

4) 函数 LogN(const N, X: Extended): Extended; {底为N的X对数}

五、 指数函数

IntPower:任意底数Base的Exponent整指数。快;

以下函数Base参数均有Double和Single数据类型

1) 函数 IntPower(const Base: Extended; const Exponent: Integer): Extended;

Power:任意底数的任意指数; 对于分指数,或 |指数| > MaxInt, 底数必须> 0, 以下函数均有Double和Single数据类型

2) 函数 Power(const Base, Exponent: Extended): Extended;

六、 各种例程

以下函数均有Double和Single数据类型

1) 过程 Frexp(const X: Extended; var Mantissa: Extended; var Exponent: Integer) ;

Frexp:将浮点数X分离出 尾数M和指数E;X=M*2E

2) 函数 Ldexp(const X: Extended; const P: Integer): Extended register;

Ldexp:返回值= X*2P

3) 函数 Ceil(const X: Extended):Integer;

Ceil:返回>= X的最小整数, |X| < MaxInt

4) 函数 Floor(const X: Extended): Integer;

Floor:返回 <= X的最大整数, |X| < MaxInt

5) 函数 Poly(const X: Extended; const Coefficients: array of Double): Extended;

Ploy:计算变量为X的一元高次方程多项式的值,数组C为各项系数;X的指数随着系数的次序增长。即数组中的第0位系数的指数为0,第N位系数的指数为N。表达式如下:

返回值=C[0]*X0 + C[1]*X1 + C[2]*X2 ... + C[N]*XN。

七、 统计函数

对于这些统计的和财务函数,常见的商业电子表格中的名字已经写在每个函数后面的注释中。以下函数均有Double和Single数据类型

1) 函数 Mean(const Data: array of Extended): Extended;

求数组Data的算术平均值(AVG): SUM / N ;SUM(Data) / (High(Data) - Low(Data) + 1)

X?1

NXi?

i?1N

2) 函数 Sum(const Data: array of Extended): Extended;求Data数组的和 (SUM) }

3) 函数 SumInt(const Data: array of Integer): Integer ;求整型数组Data的和,本函数只有整数类型

4) 函数 SumOfSquares(const Data: array of Extended): Extended;//数组Data平方和

5) 过程 SumsAndSquares(const Data: array of Extended; var Sum, SumOfSquares: Extended) ;返回数组Data的总和Sum、平方和SumOfSquares

6) 函数 MinValue(const Data: array of Extended): Extended;返回Data数组中最小数(MIN)

7) 函数 MinIntValue(const Data: array of Integer): Integer;返回Data数组中最小数(MIN),本函数只有整数类型

8) 函数 Min(const A, B: Integer): Integer; 返回最小整数

9) 函数 Min(const A, B: Int64): Int64; 返回最小Int64数

10) 函数 Min(const A, B: UInt64):U Int64; 返回无符号最小UInt64数

11) 函数 Min(const A, B: Single): Single; 返回最小Single数

12) 函数 Min(const A, B: Double): Double; 回最小Double数

13) 函数 Min(const A, B: Extended): Extended; 返回最小Extended数

14) 函数 MaxValue(const Data: array of Extended): Extended;返回Data数组最大数(MAX)

15) 函数 MaxIntValue(const Data: array of Integer): Integer;返回Integer数组最大数

16) 函数 Max(const A, B: Integer): Integer;返回最大Integer数

17) 函数 Max(const A, B: Int64): Int64;返回最大Int64数

18) 函数 Max(const A, B:U Int64): UInt64;返回最大UInt64数

19) 函数 Max(const A, B: Single): Single;;返回最大Single数

20) 函数 Max(const A, B: Double): Double; o;返回最大Double数

21) 函数 Max(const A, B: Extended): Extended;;返回最大Extended数

22) 函数 StdDev(const Data: array of Extended): Extended;

样本标准偏差(STD); Sqrt(Variance(Data)),又叫做样本标准偏差 ;样本标准差:

S?(Xi?

i?1N2?X)

N?1

23) 过程 MeanAndStdDev(const Data: array of Extended; var Mean, StdDev: Extended);

三亿文库3y.uu456.com包含各类专业文献、文学作品欣赏、各类资格考试、幼儿教育、小学教育、生活休闲娱乐、Delphi_XE2 Math单元函数09等内容。

  评论这张
 
阅读(310)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017