expm1(), expm1f(), expm1l() se introdujeron con C99 y están disponibles en el archivo de encabezado <math.h>. Estos se utilizan para calcular el Número de Euler, e (2,7182818) elevado a una potencia igual al parámetro proporcionado menos 1,0, es decir, e x – 1.
expm1(x), expm1f(x), exmp1l(x) = e x – 1
Ejemplo:
doble expm1 (argumento doble);
flotar exp1f (argumento flotante);
long double expm1l(long double arg);
Sintaxis:
exp1(x);
exmp1f(x);
ejemplo1l(x);
Parámetros:
Función | Parámetro |
---|---|
exp1(x) | x ⇒ flotante |
exp1f(x) | x ⇒ doble |
exp1l(x) | x ⇒ largo doble |
Valores devueltos:
1. Si no se produce ningún error:
Función | Valor devuelto |
---|---|
exp1(x) | e x – 1 ⇒ flotante |
exp1f(x) | e x -1 ⇒ doble |
exp1l(x) | e x – 1 ⇒ largo doble |
2. Si ocurre un error de rango debido a un desbordamiento:
Función | Valor devuelto |
---|---|
exp1(x) | +ENORME_VALOR |
exp1f(x) | +ENORME_VALOR |
exp1l(x) | +ENORME_VALL |
3. Si se produce un error de rango debido a un desbordamiento: si se produce un error de rango debido a un desbordamiento, se devuelve el resultado redondeado.
4. Casos excepcionales: Los errores informados se manejan como se especifica en math_errhandling.
Parámetro | Valor devuelto |
---|---|
±0 | ±0 |
Yaya | Yaya |
-∞ | -1 |
+∞ | +∞ |
Ejemplo 1: A continuación se muestra el programa C para implementar exp1():
C
// C program to implement // exp1() #include <math.h> #include <stdio.h> // Driver code int main() { double arg = 2.2310233; printf("%lf\n", expm1(arg)); return 0; }
8.309388
Ejemplo 2: A continuación se muestra el programa C para implementar exp1f():
C
// C program to implement // exp1f() #include <math.h> #include <stdio.h> // Driver code int main() { float arg = 4.121; printf("%f\n", expm1f(arg)); return 0; }
60.620819
Ejemplo 3: A continuación se muestra el programa C para implementar exp1l():
C
// C program to implement // exp1l() #include <math.h> #include <stdio.h> // Driver code int main() { long double arg = 5.212323323441; printf("%Lf\n", expm1l(arg)); return 0; }
182.519939
¿Por qué usar expm1, expm1f, expm1l?
- Estas funciones son más precisas que la expresión e x – 1 si x → 0.
- Son muy útiles para cálculos financieros, como calcular tasas de interés (pequeñas), y para calcular el inverso de funciones hiperbólicas.