File : angles-trigonometric_functions.adb
------------------------------------------------------------------------------
--
-- package Angles.Trigonometric_Functions (body)
--
------------------------------------------------------------------------------
-- Update information:
--
-- 1995.12.26 (Jacob Sparre Andersen)
-- Written.
--
-- 1995.12.27 (Jacob Sparre Andersen)
-- Added co-tangens function and inverse trigonometric functions.
--
-- 1996.06.25 (Jacob Sparre Andersen)
-- Reformatted the header.
-- Corrected a few bugs.
--
-- (Insert additional update information above this line.)
------------------------------------------------------------------------------
with Ada.Numerics.Generic_Elementary_Functions;
package body Angles.Trigonometric_Functions is
---------------------------------------------------------------------------
-- package Elementary_Functions:
package Elementary_Functions is new
Ada.Numerics.Generic_Elementary_Functions(Float_Type => Scalar);
---------------------------------------------------------------------------
-- Trigonometric functions:
---------------------------------------------------------------------
-- function Sin:
function Sin (Value : in Angle) return Scalar is
begin -- Sin
return Elementary_Functions.Sin (Value.Radians);
end Sin;
---------------------------------------------------------------------
-- function Cos:
function Cos (Value : in Angle) return Scalar is
begin -- Cos
return Elementary_Functions.Cos (Value.Radians);
end Cos;
---------------------------------------------------------------------
-- function Tan:
function Tan (Value : in Angle) return Scalar is
begin -- Tan
return Elementary_Functions.Tan (Value.Radians);
end Tan;
---------------------------------------------------------------------
-- function Cot:
function Cot (Value : in Angle) return Scalar is
begin -- Cot
return Elementary_Functions.Cot (Value.Radians);
end Cot;
---------------------------------------------------------------------------
-- Inverse trigonometric functions:
---------------------------------------------------------------------
-- function Inverse_Sin:
function Inverse_Sin (X : in Scalar) return Angle is
begin -- Inverse_Sin
return (Radians => Elementary_Functions.ArcSin (X));
end Inverse_Sin;
---------------------------------------------------------------------
-- function Inverse_Cos:
function Inverse_Cos (X : in Scalar) return Angle is
begin -- Inverse_Cos
return (Radians => Elementary_Functions.ArcCos (X));
end Inverse_Cos;
---------------------------------------------------------------------
-- function Inverse_Tan:
function Inverse_Tan (X : in Scalar) return Angle is
begin -- Inverse_Tan
return (Radians => Elementary_Functions.ArcTan (X));
end Inverse_Tan;
---------------------------------------------------------------------
-- function Inverse_Cot:
function Inverse_Cot (X : in Scalar) return Angle is
begin -- Inverse_Cot
return (Radians => Elementary_Functions.ArcCot (X));
end Inverse_Cot;
---------------------------------------------------------------------------
end Angles.Trigonometric_Functions;