home *** CD-ROM | disk | FTP | other *** search
- (* ----------------------------------------------------------------------- *)
- (* FASTDEMO.PAS *)
- PROGRAM FastDemo;
-
- CONST
- anz = 500; (* Anzahl durchzufuehrender Berechnungen *)
- (*$I FASTTRIG.CON *)
-
- VAR
- W, WBogen, x : REAL; (* Winkel im Grad- und Bogenmass *)
- i, t1, t2, m, s, h : INTEGER;
- (*$I FASTTRIG.VAR *)
-
- (*$I FASTTRIG.PAS *)
- (* ----------------------------------------------------------------------- *)
- (* zur Zeitmessung aktuelle System-Zeit holen *)
- (* Hier eine Version in Turbo Pascal und MS-DOS *)
- PROCEDURE Time (VAR Min, Sek, Hdt : INTEGER);
- VAR Reg : RECORD ax,bx,cx,dx,bp,di,si,ds,es,flags : INTEGER END;
- BEGIN
- Reg.ax := $100 * $2C; MsDos (Reg);
- WITH Reg DO BEGIN
- Min := Lo(cx); Sek := Hi(dx); Hdt := Lo(dx);
- END;
- END;
- (* ----------------------------------------------------------------------- *)
- BEGIN
- FastTrigInit;
- WriteLn;
- Write('Winkel: '); ReadLn (W); WBogen := W * Pi / 180;
- WriteLn('normaler Sinus:');
- Time(m,s,h); t1 := h + s * 100 + m * 6000;
- FOR i := 1 TO anz DO x := Sin(WBogen);
- Time(m,s,h); t1 := t1 - h - s * 100 - m * 6000;
- WriteLn('Fertig !!'); WriteLn; WriteLn('FastSin:');
- Time(m,s,h); t2 := h + s * 100 + m * 6000;
- FOR i := 1 TO anz DO x := FastSin(W);
- Time(m,s,h); t2 := t2 - h - s * 100 - m * 6000;
- WriteLn('Fertig !!');
- WriteLn('Geschwindigkeitsfaktor:', (t1/t2):5:1);
- WriteLn('Fehler:',(Sin(WBogen)-FastSin(W)));
- WriteLn;
- WriteLn('norm.: ',Sin(WBogen)); WriteLn(' fast: ',FastSin(W));
- END.
-