程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> System.pas 單元中的數學常規程序函數

System.pas 單元中的數學常規程序函數

編輯:Delphi

這個單元包含高性能的算術、三角、對數、統計和金融方面的計算及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) 對於有些函數,這個單元中涉及的概念或常數由Earl F. Glynn (www.efg2.com) Ray Lischner (www.tempest-sw.com)提供。

2) 所有的角度參數三角函數的結果都用弧度表示

3) 下列大部分的三角和對數程序直接的映射到Intel 80387 FPU

4) 浮點機指令、輸入域、輸出范圍和錯誤處理主要由 FPU 硬件決定

5) 匯編程序中的代碼支持Pentium FPU 管線體系

l 常數

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;'*)

Infinity = 1.0 / 0.0; 正無窮大 (*$EXTERNALSYM Infinity*) (*$HPPEMIT 'static

1) const Extended Infinity = 1.0 / 0.0;'*)

2) NegInfinity = -1.0 / 0.0; 負無窮大 (*$EXTERNALSYM NegInfinity*) (*$HPPEMIT 'static const Extended NegInfinity = -1.0 / 0.0;'*)

一、 三角函數

1) 函數 ArcCos(const X: Extended): Extended; ( IN: |X| <= 1 OUT: [0..PI] 弧度)

2) 函數 ArcSin(const X: Extended): Extended; (IN: |X| <= 1 OUT: [-PI/2..PI/2] 弧度)

3) 函數 ArcTan2(const Y, X: Extended): Extended; IN: |Y| < 2^64, |X| < 2^64, X <> 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 <> 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) 函數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;

三、雙曲線函數

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 }

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved