Delphi Math 单元函数 **************************数学单元 Math.*********************************
Delphi / Kylix 跨平台运行时(Runtime)库 Copyright (c) 1996, 2001 Borland 软 件 ******************************************************************** 这个单元包含高性能的算术、三角、对数、统计和金融方面的计算及 FPU 程序函数用于补 充 Delphi 语言 System.pas 单元中的数学常规程序函数 注意 1) 对于有些函数,这个单元中涉及的概念或常数由 Earl F. Glynn (efg2) 和 Ray Lischner (tempest-sw)提供。 2) 所有的角度参数三角函数的结果都用弧度表示 3) 下列大部分的三角和对数
程序直接的映射到 Intel 80387 FPU 4) 浮点机指令、输入域、输出范围和错误处理主要由 FPU 硬件决定 5) 汇编程序中的代码支持 Pentium FPU 管线体系 &;#61548; 常数 IEEE 浮点类型的范围, 包括非正规的 1) MinSingle = 1.5e-45; 最小 Single 数 2) MaxSingle = 3.4e+38; 最大 Single 数 3) MinDouble = 5.0e-324; 最小 Double 数 4) MaxDouble = 1.7e+308; 最大 Double 数 5) MinExtended = 3.4e-4932; 最小 Extended 数 6) MaxExtended = 1.1e+4932; 最大 Extended 数 7) MinComp = -9.223372036854775807e+18; 最小 Comp 数 8) MaxComp = 9.223372036854775807e+18; 最大 Comp 数 下列常数不应当被用于比较关系,仅仅用于分配。若要用于比较关系请使用 IsNan 和 IsInfinity 函数。 (已提供在后面) 9) NaN = 0.0 / 0.0; 非数 (*$EXTERNALSYM NaN*) (*$HPPEMIT 'static const Extended NaN = 0.0 / 0.0;'*) 10) Infinity = 1.0 / 0.0; 正无穷大 (*$EXTERNALSYM Infinity*) (*$HPPEMIT 'static const Extended Infinity = 1.0 / 0.0;'*) 11) NegInfinity = -1.0 / 0.0; 负无穷大 (*$EXTERNALSYM NegInfinity*) (*$HPPEMIT 'static const Extended NegInfinity = -1.0 / 0.0;'*) 一、 三角函数 1) 函数 ArcCos(const X: Extended): Extended; ( IN: |X| &;lt;= 1 OUT: [0..PI] 弧度) 2) 函数 ArcSin(const X: Extended): Extended; (IN: |X| &;lt;= 1 OUT: [-PI/2..PI/2] 弧度) 3) 函数 ArcTan2(const Y, X: Extended): Extended; IN: |Y| &;lt; 2^64, |X| &;lt; 2^64, X &;lt;&;gt; 0 OUT: [-PI..PI] 弧度) 。计算 ArcTan(Y/X), 并且返回一个正确象限内的角度 4) 过程 SinCos(const Theta: Extended; var Sin, Cos: Extended) register; SinCos:比分别调用 Sin 和 Cos 计算同一个角度快两倍 5) 函数 Tan(const X: Extended): Extended; 6) 函数 Cotan(const X: Extended): Extended; { 1 / tan(X), X &;lt;&;gt; 0 } 7) 函数 Secant(const X: Extended): Extended; { 1 / cos(X) } 8) 函数 Cosecant(const X: Extended): Extended; { 1 / sin(X) }
9) 函数 Hypot(const X, Y: Extended): Extended; { Sqrt(X**2 + Y**2) } 二、 角度单位换算程序 1) 函数 RadToDeg(const Radians: Extended): Extended; { 度数:= 弧度 * 180 / PI } 2) 函数 RadToGrad(const Radians: Extended): Extended; { 梯度:= 弧度 * 200 / PI } 3) 函数 RadToCycle(const Radians: Extended): Extended;{ 圆周:= 弧度 / 2PI } 4) 函数 DegToRa
d(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; 三、 双曲线函数 1) 弧度 Cot(const X: Extended): Extended; { 别名为 Cotan } 2) 函数 Sec(const X: Extended): Exten