cel.pas

来自「Delphi Pascal 数据挖掘领域算法包 数值算法大全」· PAS 代码 · 共 47 行

PAS
47
字号
FUNCTION cel(qqc,pp,aa,bb: real): real;
LABEL 1;
CONST
   ca=0.0003;
   pio2=1.5707963268;
VAR
   a,b,e,f,g: real;
   em,p,q,qc: real;
BEGIN
   IF (qqc = 0.0) THEN BEGIN
      writeln('pause in routine CEL'); readln END;
   qc := abs(qqc);
   a := aa;
   b := bb;
   p := pp;
   e := qc;
   em := 1.0;
   IF (p > 0.0) THEN BEGIN
      p := sqrt(p);
      b := b/p
   END ELSE BEGIN
      f := qc*qc;
      q := 1.0-f;
      g := 1.0-p;
      f := f-p;
      q := q*(b-a*p);
      p := sqrt(f/g);
      a := (a-b)/g;
      b := -q/(g*g*p)+a*p
   END;
1:   f := a;
   a := a+b/p;
   g := e/p;
   b := b+f*g;
   b := b+b;
   p := g+p;
   g := em;
   em := qc+em;
   IF (abs(g-qc) > (g*ca)) THEN BEGIN
      qc := sqrt(e);
      qc := qc+qc;
      e := qc*em;
      GOTO 1
   END;
   cel := pio2*(b+a*em)/(em*(em+p))
END;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?