summaryrefslogtreecommitdiffstats
path: root/mat/domace_naloge/30/kompleksnost.c
blob: ae36c997ed7c2a660de7e80349a1b6e5a871fc9a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
/* gcc kompleksnost.c -pedantic -E -Wall -Wextra -g -okompleksnost -lm -O0 */
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
#define KOLIKOKRAT 10000001
#define nrx(x, y) powl((x), 1.0 / (y)) /* nti koren izpeljemo iz potence na 1/eks */
int main (void) { /* za kvadratne in kubicne korene uporabimo sqrt in cbrt */
	long double rezultat = 0; /* da prevajalnik ne bi optimiziral */
	long double rezultat2 = 0;
	clock_t cas_zacetek, cas_konec, cas2_konec;
	cas_zacetek = clock();
	for (unsigned long long int x = 2; x <= KOLIKOKRAT; x++)
		rezultat += cbrtl(powl(x, 2)/(x-1))*sqrtl(powl(x-1, 2)/powl(x, 5))*nrx(powl(x, 20)/powl(x+1, 3), 6)*sqrtl((x+1)/powl(x, 3));
	cas_konec = clock();
	for (unsigned long long int x = 2; x <= KOLIKOKRAT; x++)
		rezultat2 += nrx(pow(x-1, 2), 3);
	cas2_konec = clock();
		fprintf(stdout, "neoptimizirana enacba je za 10e6 iteracij porabila %lf sekund, optimizirana pa %lf\n"
				"rezultat = %Lf, rezultat2 = %Lf\n",
				((double) (cas_konec-cas_zacetek))/CLOCKS_PER_SEC,
				((double) (cas2_konec-cas_konec))/CLOCKS_PER_SEC,
				rezultat,
				rezultat2
			);
	return 0;
}