[Back to MATH SWAG index] [Back to Main SWAG index] [Original]
{
MSGID: 2:228/406 68DEA672
Here is the unit of trigonometric and hyperbolic
real functions:
}
UNIT trighyp;
{ Juhani Kaukoranta, Sysop of Pooki MBBS, Finland
Pooki MBBS 358-82-221 782 }
INTERFACE
FUNCTION TAN(x:Real):Real;
FUNCTION COT(x:Real): Real;
FUNCTION SEC(x:Real): Real;
FUNCTION COSEC(x:Real): Real;
FUNCTION SINH(x:Real): Real;
FUNCTION COSH(x:Real): Real;
FUNCTION TANH(x:Real): Real;
FUNCTION COTH(x:Real): Real;
FUNCTION SECH(x:Real): Real;
FUNCTION COSECH(x:Real): Real;
FUNCTION ARCSIN(x:Real):Real;
FUNCTION ARCCOS(x:Real):Real;
FUNCTION ARCCOT(x:Real): Real;
FUNCTION ARCSEC(x:Real): Real;
FUNCTION ARCCOSEC(x:Real): Real;
FUNCTION ARCSINH(x:Real): Real;
FUNCTION ARCCOSH(x:Real): Real;
FUNCTION ARCTANH(x:Real): Real;
FUNCTION ARCCOTH(x:Real): Real;
IMPLEMENTATION
FUNCTION TAN(x: Real): Real;
{ argument x is in radians }
BEGIN
TAN := SIN(x)/COS(x);
END;
FUNCTION COT(x:Real): Real;
{ cotangent, x is in radians }
BEGIN
COT := 1/TAN(x);
END;
FUNCTION SEC(x:Real): Real;
{ secant, x is in radians }
BEGIN
SEC := 1/COS(x);
END;
FUNCTION COSEC(x:Real): Real;
{ cosecant, x is in radians }
BEGIN
COSEC := 1/SIN(x);
END;
FUNCTION SINH(x:real):Real;
{ hyperbolic sin }
BEGIN
SINH := (EXP(x)-EXP(-x))/2;
END;
FUNCTION COSH(x:Real): Real;
{ hyperbolic cos }
BEGIN
COSH := (EXP(x)+EXP(-x))/2;
END;
FUNCTION TANH(x:Real): REAL;
{ hyperbolic tan }
BEGIN
TANH := SINH(x)/COSH(x);
END;
FUNCTION COTH(x: Real): Real;
{ hyperbolic cotangent }
BEGIN
COTH :=SINH(x)/COSH(x);
END;
FUNCTION SECH(x:Real): Real;
{ hyperbolic secant }
BEGIN
SECH := 1/COSH(x);
END;
FUNCTION COSECH(x:Real): Real;
{ hyperbolic cosecant }
BEGIN
COSECH := 1/SINH(x);
END;
FUNCTION ARCSIN(x:Real):Real;
{ inverse of sin, return value is in radians }
BEGIN
IF ABS(x)=1.0 THEN
ARCSIN := x*Pi/2
ELSE
ARCSIN := ARCTAN(x/SQRT(-SQR(x)+1));
END;
FUNCTION ARCCOS(x:Real):Real;
{ inverse of cos, return value is in radians }
BEGIN
IF x = 1.0 THEN
ARCCOS := 0
ELSE IF x = -1.0 THEN
ARCCOS :=Pi
ELSE
ARCCOS := -ARCTAN(x/SQRT(-SQR(x)+1))+Pi/2;
END;
FUNCTION ARCCOT(x:Real): Real;
{ inverse of cot, return value is in radians }
BEGIN
ARCCOT := ARCTAN(1/x);
END;
FUNCTION ARCSEC(x:Real): Real;
{ inverse of secant, return value is in radians }
BEGIN
ARCSEC := ARCCOS(1/x);
END;
FUNCTION ARCCOSEC(x:Real): Real;
{ inverse of cosecant, return value is in radians }
BEGIN
ARCCOSEC := ARCSIN(1/x);
END;
FUNCTION ARCSINH(x:Real): Real;
{ inverse of hyperbolic sin }
BEGIN
ARCSINH := LN(x + SQRT(x*x+1));
END;
FUNCTION ARCCOSH(x:Real): Real;
{ inverse of hyperbolic cos}
BEGIN
ARCCOSH := LN(x + SQRT(x*x-1));
END;
FUNCTION ARCTANH(x:Real): Real;
{ inverse of hyperbolic tan }
BEGIN
ARCTANH := LN((1+x)/(1-x))/2;
END;
FUNCTION ARCCOTH(x:Real): REAL;
{ inverse of hyperbolic cotangent }
BEGIN
ARCCOTH := LN((x+1)/(x-1))/2;
END;
END. { of unit }
[Back to MATH SWAG index] [Back to Main SWAG index] [Original]