Jaký je v C příkaz pro výpočet exponenciálu?

Víte jaký je příkaz v C pro výpočet exponenciálu o základu deset např. 10^2.2
Vím, že funguje příkaz x=exp(3) , ale ten používá základu e (2.71)

:arrow_right: administrator: přejmenováno z "příkaz pro výpočet exponenciálu"

V math.h najdeš funkci double pow (double __x, double __y);

díky

Ještě bych měl jeden dotaz. V případě že použiji y=pow(10,2.5) je velikost dat v programové paměti v pohodě, ale v případě použití y=pow(10,x) kde x je proměnná typu int vzroste velikost dat v programové paměti cca 7x plus 25% nárůst v datové paměti. Když je x typu float je situace lepší , nárůst programové pamětí cca 5x , v datové nic nepřibylo.

Ta funkce je napsaná jako double, všechny argumenty by tedy měly být stejného typu. Pochybuji, že s jinými typy to bude počítat správně. Pokud potřebuješ dát na vstup jiný datový typ, tak ho přetypuj na double a to samé platí o výsledku.
Př.: vstupní proměnné jsou int, výstup chci jako float
int a, b;
float y;
y=(float)pow((double)a, (double)b);

Rozhodně nepočítej, že funkce napsaná v double bude malá. Procesor nemá pro tento typ hw podporu a musí se to řešit sw. Stejně tak přetypování zabere určitý čas.

Myslím, že nejúspornější je využít vztahu mezi exponenciálními funkcemi o různých základech, kde se říká: a^x=e^(xln(a)) , takže správný výsledek vyjde pomocí příkazu x=exp(2.2ln(10)); .