wrote:
> thanks man, i understood all functions except exp function.
>
> can you tell me how to use this function to find the antilog of
> 0.something to base 10, and also how to make it work for different bases
pow(base, x) == exp(x * log(base)) :
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <float.h>
#include <time.h>
int main(void)
{
double x, y;
int i;
double M_log10 = log(10);
srand(time(0));
printf("exp(x) is the antilog(x, base=%.*g)\n\n", DBL_DIG, exp(1));
for (i = 0; i < 10; i++) {
x = rand() / (1. + RAND_MAX);
y = exp(x),
printf("exp(%g) = %g, log(%g) = %g\n", x, y, y, log(y));
y = pow(10, x);
printf("pow(10, %g) = %g, log10(%g) = %g\n", x, y, y, log10(y));
y = exp(x * M_log10);
printf("exp(%g * log(10)) = %g, log10(%g) = %g\n\n",
x, y, y, log10(y));
}
return 0;
}
This is the result of one run:
exp(x) is the antilog(x, base=2.71828182845905)
exp(0.54030

= 1.71654, log(1.71654) = 0.540308
pow(10, 0.54030

= 3.46983, log10(3.46983) = 0.540308
exp(0.540308 * log(10)) = 3.46983, log10(3.46983) = 0.540308
exp(0.655142) = 1.92542, log(1.92542) = 0.655142
pow(10, 0.655142) = 4.52004, log10(4.52004) = 0.655142
exp(0.655142 * log(10)) = 4.52004, log10(4.52004) = 0.655142
exp(0.430014) = 1.53728, log(1.5372

= 0.430014
pow(10, 0.430014) = 2.69162, log10(2.69162) = 0.430014
exp(0.430014 * log(10)) = 2.69162, log10(2.69162) = 0.430014
exp(0.656084) = 1.92723, log(1.92723) = 0.656084
pow(10, 0.656084) = 4.52985, log10(4.52985) = 0.656084
exp(0.656084 * log(10)) = 4.52985, log10(4.52985) = 0.656084
exp(0.567552) = 1.76394, log(1.76394) = 0.567552
pow(10, 0.567552) = 3.69447, log10(3.69447) = 0.567552
exp(0.567552 * log(10)) = 3.69447, log10(3.69447) = 0.567552
exp(0.346806) = 1.41454, log(1.41454) = 0.346806
pow(10, 0.346806) = 2.22232, log10(2.22232) = 0.346806
exp(0.346806 * log(10)) = 2.22232, log10(2.22232) = 0.346806
exp(0.418147) = 1.51914, log(1.51914) = 0.418147
pow(10, 0.418147) = 2.61907, log10(2.61907) = 0.418147
exp(0.418147 * log(10)) = 2.61907, log10(2.61907) = 0.418147
exp(0.859071) = 2.36097, log(2.36097) = 0.859071
pow(10, 0.859071) = 7.22888, log10(7.2288

= 0.859071
exp(0.859071 * log(10)) = 7.22888, log10(7.2288

= 0.859071
exp(0.824404) = 2.28052, log(2.28052) = 0.824404
pow(10, 0.824404) = 6.67427, log10(6.67427) = 0.824404
exp(0.824404 * log(10)) = 6.67427, log10(6.67427) = 0.824404
exp(0.225011) = 1.25234, log(1.25234) = 0.225011
pow(10, 0.225011) = 1.67885, log10(1.67885) = 0.225011
exp(0.225011 * log(10)) = 1.67885, log10(1.67885) = 0.225011