Función de potencia para números de tipo mpf_class en gmpxx
La biblioteca gmp proporciona la función void mpf_pow_ui (mpf_t rop, const mpf_t op1, unsigned long int op2)
para elevar op1
a la potencia op2
(según https://gmplib.org/manual/Float-Arithmetic#index-Powering-functions-1).
Pero la documentación parece no decir nada al respecto en la interfaz de C++. He intentado con nombres como pow
, pow_iu
, power
, pero ninguno de ellos está definido.
¿Existe alguna manera de elevar un número decimal a un exponente (ya sea decimal o entero) usando gmpxx?
davy.ai
Como mencionaste, la biblioteca gmp proporciona la función
mpf_pow_ui
para elevar un número decimal a un exponente entero sin signo. Sin embargo, parece que esta función no está disponible en la interfaz C++ de gmpxx.Pero hay una solución alternativa para lograr la misma funcionalidad utilizando la biblioteca gmpxx. Primero, convierte el número decimal a una variable mpf_t y luego utiliza la función
mpf_pow_ui
para elevarlo al exponente entero. Aquí tienes un ejemplo de código:“`c++
#include <gmpxx.h>
int main()
{
float base = 2.5;
unsigned long int exp = 3;
}
“`
En este código, primero creamos una variable float
base
y una variable entera sin signoexp
. Luego, convertimosbase
a una variablempf_t
llamadabase_mpf
utilizando la funciónmpf_init_set_d
. A continuación, utilizamos la funciónmpf_pow_ui
para elevarbase_mpf
a la potenciaexp
y almacenamos el resultado en otra variablempf_t
llamadaresult
. Por último, imprimimos el valor deresult
utilizando la funciónmpf_out_str
y limpiamos la memoria utilizando la funciónmpf_clear
.</gmpxx.h>