Funciones matemáticas elementales

Ada.Numerics.Generic_Elementary_functions ofrece funciones matemáticas elementales. Es una librería genérica que se debe instanciar para cada tipo real en coma flotante para el que se quiera utilizar. También existe una versión no genérica llamada Ada.Numerics_Elementary_functions, con los mismos contenidos, que puede aplicarse a valores del tipo predefinido Float sin necesidad de instanciación.

Contenido

funciones:

function Sqrt (X : Float_Type'Base)           return Float_Type'Base;
function Log  (X : Float_Type'Base)           return Float_Type'Base;
function Log  (X, Base : Float_Type'Base)     return Float_Type'Base;
function Exp  (X : Float_Type'Base)           return Float_Type'Base;
function "**" (Left, Right : Float_Type'Base) return Float_Type'Base;
function Sin  (X : Float_Type'Base)           return Float_Type'Base;
function Sin  (X, Cycle : Float_Type'Base)    return Float_Type'Base;
function Cos  (X : Float_Type'Base)           return Float_Type'Base;
function Cos  (X, Cycle : Float_Type'Base)    return Float_Type'Base;
function Tan  (X : Float_Type'Base)           return Float_Type'Base;
function Tan  (X, Cycle : Float_Type'Base)    return Float_Type'Base;
function Cot  (X : Float_Type'Base)           return Float_Type'Base;
function Cot  (X, Cycle : Float_Type'Base)    return Float_Type'Base;

function Arcsin (X : Float_Type'Base)        return Float_Type'Base;
function Arcsin (X, Cycle : Float_Type'Base) return Float_Type'Base;
function Arccos (X : Float_Type'Base)        return Float_Type'Base;
function Arccos (X, Cycle : Float_Type'Base) return Float_Type'Base;

function Arctan (Y : Float_Type'Base; X : Float_Type'Base := 1.0)
  return Float_Type'Base;
function Arctan (Y : Float_Type'Base; X : Float_Type'Base := 1.0; Cycle : Float_Type'Base)
  return Float_Type'Base;
function Arccot (X : Float_Type'Base; Y : Float_Type'Base := 1.0)
  return Float_Type'Base;
function Arccot (X : Float_Type'Base; Y : Float_Type'Base := 1.0; Cycle : Float_Type'Base)
  return Float_Type'Base;


function Sinh (X : Float_Type'Base) return Float_Type'Base;
function Cosh (X : Float_Type'Base) return Float_Type'Base;
function Tanh (X : Float_Type'Base) return Float_Type'Base;
function Coth (X : Float_Type'Base) return Float_Type'Base;

function Arcsinh (X : Float_Type'Base) return Float_Type'Base;
function Arccosh (X : Float_Type'Base) return Float_Type'Base;
function Arctanh (X : Float_Type'Base) return Float_Type'Base;
function Arccoth (X : Float_Type'Base) return Float_Type'Base;
(cycle representa las unidades que determinan una circunferencia completa. Si no se especifica se suponen radianes

Significado

Sqrt   raíz cuadrada
Log    logaritmo
Exp    Exponencial
"**"   potencia
Sin    seno
Cos    coseno
Tan    tangente
Cot    cotangente
Arcsin arcoseno
Arccos arcocoseno
Arctan  arcotangente
Arccot  arcocotangente
Sinh    seno hiperbolico
Cosh    coseno hiperbolico
Tanh    tangente hiperbolica
Coth    cotangente hiperbolica
Arcsinh arcoseno hiperbolico
Arccosh arcocoseno hiperbolico
Arctanh arcotangente hiperbolica
Arccoth arcocotangente hiperbolica

Ejemplo

with Text_IO, Ada.Float_Text_IO, Ada.Numerics.Generic_Elementary_functions;
use Text_IO, Ada.Float_Text_IO, Ada.Numerics;
   
procedure UsaMat is
   package Funciones is new Generic_Elementary_functions(float);
   use Funciones;
   
   x, y : float;
begin
   put("Dame un número real:");
   get(x);
   
   y := sqrt(x);put("raíz cuadrada: ");
   
   put(y);
end UsaMat;