ESBSinCos Procedure
Fast Computation of Sin and Cos, where Angle is in Radians.

Unit
QESBPCSMath

Declaration
Procedure ESBSinCos(const Angle: Extended; out SinX, CosX: Extended);

Parameters
Angle Angle in Radians.

Category
Arithmetic Routines for Floats

Implementation

procedure ESBSinCos (const Angle: Extended; out SinX, CosX: Extended);

procedure FSinCos (Angle: Extended; var SinX, CosX: Extended);
     asm
		fld		[Angle]			// St(0) <- Angle
		fsincos
		fstp		tbyte ptr [edx]    // St(0) -> CosX
		fstp    	tbyte ptr [eax]    // St(0) -> SinX
		fwait

     end;
begin
     if abs (Angle) >= TwoToPower63 then // must be less then 2^63
          raise EMathError.Create (rsAngleTooLarge);

     FSinCos (Angle, SinX, CosX);
End;


HTML generated by Time2HELP
http://www.time2help.com